:基本的bash shell命令
Posted zcj仲从建
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了:基本的bash shell命令相关的知识,希望对你有一定的参考价值。
3.1 启动shell
- /etc/passwd:包含系统用户账户列表以及每个用户的基本配置信息
- 每个条目有七个字段,每个字段用冒号隔开
- 用户名
- 用户密码
- 用户的系统UID
- 用户的系统GID
- 用户的全名
- 用户的默认主目录
- 用户的默认shell程序
- 每个条目有七个字段,每个字段用冒号隔开
rich:x:501:501:Rich Blum:/home/rich:/bin/bash
- 默认情况下,bash shell启动时会自动处理用户主目录下.bashrc文件中的命令
3.2 shell 提示符
- PS1:控制默认命令行提示符的格式
- PS2:控制后续命令行的提示符格式
- bash shell提示符字符表
- 所有提示符特殊字符都从反斜线(\\)开始
字符 描述
\\d 日期,格式是 "星期 月份 日" (例如,"Tue May 26")
\\h 主机名,第一个 `.' 之前的部分
\\H 主机名
\\n 换行
\\r 回车
\\t 显示当前时间,采用 24小时制 HH:MM:SS 格式
\\T 显示当前时间,采用 12小时制的 HH:MM:SS 格式
\\@ 显示当前时间,采用 12小时制「上午/下午」格式
\\A 显示当前时间,采用 24小时制「上午/下午」格式
\\u 当前用户的用户名
\\w 当前工作目录
\\W 当前工作目录的基本部分
\\! 此命令的历史编号
\\# 此命令的命令编号
\\$ 如果有效 UID 是 0,就是 #, 其他情况下是 $
\\\\ 一个反斜杠
\\[ 一个不可打印字符序列的开始,可以用于在提示符中嵌入终端控制序列
\\] 一个不可打印字符序列的结束
- eg:
$PS1="[\\t][\\u]\\$"//新的shell提示符显示了当前时间和用户名
3.3 bash 手册
- 打开bash 手册:$man bash
3.4 浏览文件
3.4.1 Linux文件系统
- Linux将文件存储在单个目录结构中,这个目录称为虚拟目录
- Linux虚拟目录包含一个称为根目录的基础目录
- 根驱动器:在Linux PC上安装的第一块硬盘
- 根驱动器包含虚拟目录的核心,其他目录都是在那里开始构建的
- Linux在跟驱动器上创建的一些特别的目录称为挂载点
- 挂载点是虚拟目录中用于分配额外存储设备的目录
- Linux虚拟目录会让这些目录和文件出现在这些挂载点目录中,然后实际上他们存放在另一个驱动器中
- 文件系统存储在跟驱动器中,而用户文件则存储在另一个驱动器中
- cd命令
- 如果用户没有指定目标路径,那么将切换到你的用户主目录
- 目标路径参数的两种表达方式
- 绝对文件路径
- 相对文件路劲
- .:当前目录
- ..:父目录
3.5 文件及目录列表
- ls命令
- 作用:显示当前目录下的文件和目录
- LS_COLORS环境变量支持彩色来区分不同类型的文件
- 单参数
- -F:区分文件和目录
- 在目录名后加/
- 在可执行文件后面加“*”
- -a:将隐藏文件和普通的文件及目录一起显示出来
- -R:列出当前目录下包含的目录中的文件
- -l:按长列表格式输出显示
- 第一行显示了目录中包含的快的总数
- 第二行及以后显示文件的下列信息
- 文件类型:目录(d)、文件(-)、字符型文件(c)或块(b)
- 文件的权限
- 文件的硬链接总数
- 文件属主的用户名
- 文件属组的组名
- 文件的大小
- 文件的修改时间
- 文件或目录名
- -F:区分文件和目录
- 组合参数:双破折号参数必须分开输入,但破折号参数可以组合输入
- -sail
- -i:列出每个文件的索引节点
- -s:列出文件的快大小
- 组合后的输出信息
- 索引节点
- 文件快大小
- 文件权限
- 指向文件的硬链接数
- 文件属主
- 文件属组
- 文件大小
- 文件最后修改时间
- 文件真实名字
- -sail
- 过滤输出列表
- ?:代表一个字符
- *:代表零个或多个字符
3.6 处理文件
3.6.1 创建文件
- touch命令
- 作用:
- 创建指定的新文件,并将你的用户名作为文件属主
- touch创建的文件的大小为0
- 创建指定的新文件,并将你的用户名作为文件属主
- 修改已有文件的访问时间和修改时间,而不改变文件的内容
- touch默认使用当前时间,也可以通过-t参数加上指定时间
- 作用:
$touch newtext
$touch -t 201605211607 oldtext
3.6.2 复制文件
- cp命令
- 作用:复制文件和目录
- 当source和destination都是文件:将源文件复制至一个新文件,并且以destination命名
- 如果目标文件已经存在,则会提示是否覆盖
- 当source和destination都是文件:将源文件复制至一个新文件,并且以destination命名
- 参数
- -f:强制覆盖已存在的目标文件,不提示
- -i:在强制覆盖目标文件时提示
- -p:如果可能,保留文件属性
- -r:递归的复制文件
- -R:递归的复制目录
- -u:只在源文件比目标文件新的情况下复制(相当于更新)
- 作用:复制文件和目录
3.6.3 链接文件
- 链接是目录中指向文件的占位符
- 链接的两种分类
- 符号链接,即软链接
- 创建命令
- cp -s source destination
- ln -s source destination
- Linux系统把软链接当成一个单独的文件,与源文件具有不同的索引节点号,且文件变小了
- 创建命令
- 硬链接
- 创建命令
- cp -l source destination
- ln source destination
- 会创建一个读的文件,其中包含了源文件的信息以及位置,引用硬链接文件等同于引用了源文件
- 硬链接和源文件有相同的索引节点号
- 只能在同种存储媒介上的文件间创建硬链接,不能在不同挂载点下的文件间创建,这种情况可以使用软链接
- 创建命令
- 符号链接,即软链接
- 注意:可以创建多个链接指向同一个文件,但不要创建多个链接指向链接文件,否则容易混淆且容易断掉
3.6.4 重命名文件
- mv 命令
- Linux系统中重命名文件称为移动(move)
- 移动文件可以改变文件名,但是会保留同样的索引节点号和时间戳
- 移动一个具有软链接指向的文件会带来麻烦,会导致链接失效
3.6.5 删除文件
- rm 命令
- Linux系统中删除叫做移除(remove)
- bash shell没有回收站或垃圾箱,所以文件的删除是永久不可恢复的
- 删除软硬链接文件的区别
- 由于硬链接和源文件具有相同的索引节点号,所有即使删除了源文件,硬链接也会一直维持着这个索引节点号,直到删除最后一个硬链接他的文件
- 对于软链接来说,源文件不存在了,它们就变成了无效的文件
3.7 处理目录
3.7.1 创建目录
- mkdir命令
- 创建新目录并分配新的索引节点号
3.7.2 删除目录
- 两种方式
- rmdir命令
- 默认情况只删除空目录
- rm命令
- 加上参数-r递归删除目录下的文件最后删除目录自身
- 加上参数-rf则会不加提示的强制删除目录及其下面的文件
- rmdir命令
3.8 查看文件内容
3.8.1 查看文件统计信息
- stat命令
- 提供系统上某个文件的所有状态信息,包括主次设备号等等
3.8.2 查看文件类型
- file命令
- file命令将文件分为3类
- 文本文件:包含可打印字符的文件
- 可执行文件:可在系统上运行的文件
- 数据文件:包含不可打印二进制字符、又不能在系统上运行的文件
- file命令将文件分为3类
3.8.3 查看整个文件
- 三个命令实现
- cat命令
- 显示文本文件中所有数据
- 参数
- -n:给所有行加行号
- -b:只给有文本的行加行号
- -s:将多个空白行压缩成单个空白行
- -T:隐藏制表符
- more命令
- more命令会实现文本内容,但是会在显示每页数据之后停下来
- 命令选项
- H:显示帮助菜单
- less命令
- more命令的升级
- cat命令
3.8.4 查看部分文件
- 两个命令实现
- tail命令
- 显示文件的末尾部分内容,默认只显示文件末尾10行
- 参数
- -f:允许在其他进程使用该文件是查看文件的内容,不断显示加入到文件中的新内容
- head命令
- 显示文件开头那些行的内容,默认显示文件前十行,不支持-f选项
- 对于不知道文件内容而想知道大致内容时的很好工具
- tail命令
以上是关于:基本的bash shell命令的主要内容,如果未能解决你的问题,请参考以下文章