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 | 指定解压到的目录 |