Linux命令行(二)
查找定位文件命令
pwd命令
显示用户当前所在目录
例:
显示当前所在目录
pwd
cd命令
切换当前工作路径
例:
切换到/etc目录
cd /etc例:
返回上一级目录
cd -
ls命令
显示目录文件中文件信息,可搭配-a显示全部文件,-l查看文件属性、大小等详细信息
例:
显示目录中全部文件信息
ls -a
tree命令
以树状图的形式列出目录内容及结构
例:
以树状图的形式列出目录内容及结构
tree
find命令
按照指定条件查找文件所在位置,常用参数如下表所示
| 参数 | 含义 |
|---|---|
| -name | 匹配名称 |
| -perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
| -user | 匹配所有者 |
| -group | 匹配所属组 |
| -mtime -n +n | 匹配修改内容的时间(-n为n天以内,+n为n天以前) |
| -atime -n +n | 匹配访问文件的时间(-n为n天以内,+n为n天以前) |
| -ctime -n +n | 匹配修改文件权限的时间(-n为n天以内,+n为n天以前) |
| -nouser | 匹配无所有者文件 |
| -nogroup | 匹配无所属组的文件 |
| -newer f1 !f2 | 匹配比文件f1新但比文件f2旧的文件 |
| -type | 匹配文件类型(b块设备,d目录,c字符设备,p管道,l链接文件,f文本文件) |
| -size | 匹配文件大小(+50KB为查找超过50KB的文件,-50KB为查找小于50KB的文件) |
| -prune | 忽略某个目录 |
| -exec…… {}\; | 后面可跟用于进一步处理搜索结果的命令 |
例:
搜索所有以host开头的文件
find /etc -name “host*”
locate命令
按照名称快速搜索文件所对应的位置
首次使用locate命令前,需要使用updatedb命令来生成索引数据库
updatedb
例:
搜索所有包含whereis名称的文件所在的位置
locate whereis
whereis命令
按照名称快速搜索二进制程序(命令)、源代码以及帮助文件所对应的位置
例:
查找ls命令所在位置
whereis ls
which命令
按照指定名称快速搜索二进制程序(命令)所对应的位置
例:
查找locate命令所在位置
which locate
文本文件编辑命令
cat命令
查看纯文本文件(内容较少)
例:
查看initial-setup-ks.cfg文件(添加-n可以显示行号)
cat -n initial-setup-ks.cfg
more命令
查看纯文本文件(内容较多)
例:
查看initial-setup-ks.cfg文件
more initial-setup-ks.cfg
head命令
查看纯文本文件的前N行
例:
查看initial-setup-ks.cfg文件前10行
head -n 10 initial-setup-ks.cfg
tail命令
查看纯文本文件的后N行
例:
查看initial-setup-ks.cfg文件(添加-n可以显示行号)
tail -n 10 initial-setup-ks.cfg
tr命令
用于替换文本内容中的字符
例:
将文本中的英文替换为大写
cat anaconda-ks.cfg | tr [a-z] [A-Z]
wc命令
统计指定文本文件的行数、字数或字节数,常用参数如下表所示
| 参数 | 含义 |
|---|---|
| -l | 只显示行数 |
| -w | 只显示单词数 |
| -c | 只显示字节数 |
例:
查看当前系统有多少用户
wc -l /etc/passwd
stat命令
用于查看文件的具体存储细节和时间等信息
例:
查看anaconda-ks.cfg文件信息
stat anaconda-ks.cfg
grep命令
按行提取文本内容,常用参数如下表所示
| 参数 | 含义 |
|---|---|
| -b | 将可执行文件(binary)当作文本文件(text)来搜索 |
| -c | 仅显示找到的行数 |
| -I | 忽略大小写 |
| -n | 显示行号 |
| -v | 反向选择——仅列出没有关键词的行 |
例:
查看当前系统中不允许登录系统的所有用户信息
grep /sbin/nologin /etc/passwd
cut命令
按列提取文本内容,-f设置需要查看的列数,-d设置间隔符号
例:
提取passwd文件中用户名信息,提取以:为间隔符的第一列内容
cut -d : -f 1 /etc/passwd
diff命令
比较多个文件之间内容的差异,--brief确认两个文件是否相同,-c详细比较多个文件的差异之处
例:
比较fileA.txt和fileB.txt内容具体不同
diff -c fileA.txt fileB.txt
uniq命令
去除文本中连续的重复行
例:
去除fileA.txt文件中重复行
uniq fileA.txt
sort命令
对文本内容进行再排序
| 参数 | 含义 |
|---|---|
| -f | 忽略大小写 |
| -b | 忽略缩进与空格 |
| -n | 以数值型排序 |
| -r | 反向排序 |
| -u | 去除重复行 |
| -t | 指定间隔符 |
| -k | 设置字段范围 |
例:
默认按照字母顺序排序
sort fileA.txt
文件目录管理命令
touch命令
创建空白文件或设置文件的时间,常用参数如下表所示
| 参数 | 含义 |
|---|---|
| -a | 仅修改”访问时间” |
| -m | 仅修改”修改时间” |
| -d | 同时修改”访问时间”和”修改时间” |
例:
创建文件test
touch test
mkdir命令
创建空白目录,可使用-p参数递归创建具有嵌套层叠关系的文件
例:
创建空目录test
mkdir test
cp命令
复制文件或目录,常用参数如下表所示
| 参数 | 含义 |
|---|---|
| -p | 保留原始文件属性 |
| -d | 若对象为”链接文件”,则保留该”链接文件”的属性 |
| -r | 递归持续复制(用于目录) |
| -i | 若目标文件存在则询问是否覆盖 |
| -a | 相当于-pdr(以上p、d、r三种效果) |
例:
复制test文件
cp test
mv命令
用于剪切或重命名文件
例:
将test文件重命名为test.txt
mv test test.txt
rm命令
用于删除文件或目录,常用参数如下表所示
| 参数 | 含义 |
|---|---|
| -f | 强制执行 |
| -i | 删除前询问 |
| -r | 删除目录 |
| -v | 显示过程 |
例:
删除test.txt文件
rm test.txt
dd命令
按照指定大小和个数的数据块来复制文件或转换文件,常用参数如下表所示
| 参数 | 含义 |
|---|---|
| if | 输入的文件名称 |
| of | 输出的文件名称 |
| bs | 设置每个块的大小 |
| count | 设置要复制的块的个数 |
例:
从/dev/zero中取出一个大小10KB的数据块存入test文件中
dd if=/dev/zero of=test count=1 bs=10KB
file命令
用于查看文件类型
例:
查看anaconda-ks.cfg文件类型
file anaconda-ks.cfg
tar命令
用于对文件进行打包压缩或解压,常用参数如下表所示
| 参数 | 含义 |
|---|---|
| -c | 创建压缩文件 |
| -x | 解开压缩文件 |
| -t | 查看压缩包内有哪些文件 |
| -z | 用gzip压缩或解压 |
| -j | 用bzip2压缩或解压 |
| -v | 显示文件名 |
| -p | 保留原始的权限或属性 |
| -P | 使用绝对路径来压缩 |
| -C | 指定解压到的目录 |





