本文最后更新于:2023年12月5日 晚上
pwd
basename 和 dirname
cd
切换到来时的目录:cd -
ls
说明: ls 查看不同后缀文件时的颜色由 /etc/DIR_COLORS 和 @LS_COLORS 变量定义
stat
file
判断文件的类型不能依靠后缀,可以使用 file 命令判断文件的类型
hexdump
一般用来查看“二进制”文件的十六进制编码,但实际上它能查看任何文件,而不只限于二进制文件
文件通配符 glob
文件通配符可以用来匹配符合条件的多个文件,方便批量管理文件
此外, 还有预定义的字符类: man 7 glob
文件通配符(glob)和正则表达式(regex):
- 文件通配符就是
* ? []
这三个,正则表达式则功能强大
- **对于
*
**文件通配符中*
匹配 0 个或多个字符,可以单独使用。而在正则表达式中*
是匹配前面的 0 次或多次,前面必须由内容,不能单独使用
- 对于
?
和*
一样,文件通配符中,?
可以单独使用,正则表达式中不可以
- **对于
[]
**文件通配符[]
中的内容是按照 ASCII 统计的,例如[a-z]
会匹配 a、A、b、B…y、Y、z,而正则表达式[]
中的内容是按照人类的方式统计,例如[a-z]
会匹配 a、b、c、d、e…x、y、z
- 对于
.
文件通配符中.
就是.
,没有别的意思,正则表达式中.
匹配单个字符
touch
创建空文件和 刷新文件时间
cp
注意:不同类型的文件不能覆盖,例如普通文件可以覆盖普通文件,但是不能覆盖目录
mv
移动和重命名文件,同一分区移动会很快
mv
和 rename
:
mv
一次只能重命名一个文件,rename
可以批量重命名文件
rename
这个命令好像可以使用正则,但是我试了一下,不行,可能是版本的问题
rm
此命令非常危险, 建议使用 mv 替代 rm
rm 虽然删除了文件,但是在安全场景要求较高的情况下,可以使用 shred 命令安全删除文件
tree
显示目录树
df
查看文件系统,显示磁盘占用情况和 inode 使用情况
- -a –all
- -h –human-readable
- -i –inodes 显示 inode 信息而非块使用量
关于 df 和 lsblk:
mkdir
rmdir
挂载点不能删除
tee
从标准输入读入并写往标准输出和文件,把标准输入的数据复制到文件列表中的每一个文件,同时送往标准输出
lsof
linux 下万物皆文件,网络也是文件,lsof 的作用是列出打开的文件
lsof 的参数巨多,下面列举常用的参数:
示例:
seq
https://www.zsythink.net/archives/128/
输出连续的数字,或者固定间隔的数字,或者指定格式的数字
练习题
将/etc/issue 文件中的内容转换为大写后保存至/tmp/issue.out 文件中
将当前系统登录用户的信息转换为大写后保存至/tmp/who.out 文件中
一个 linux 用户给 root 发邮件,要求邮件标题为”help”,邮件正文如下:
Hello,I am 用户名,The system version is here,please help me to check it,thanks!
操作系统版本信息
将/root/下文件列表,显示成一行,并文件名之间用空格隔开
计算 1+2+3+…+99+100 的总和
删除 Windows 文本文件中的回车字符 ,即“\r”
处理字符串“xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4”,只保留其中的数字和空格
将 PATH 变量每个目录显示在独立的一行
将指定文件中 0-9 分别替代成 a-j
将文件/etc/centos-release 中每个单词(由字母组成)显示在独立一行,并无空行
ls
输出的内容明明是分行的, 为什么显示出来就不分行了?
不单ls
会这样,不少其他命令也会这样。它们会使用 isatty 函数查询输出是否指向终端,对输出到终端和非终端的处理,可能不一样
常见的比如:
1、输出到终端时,使用 color,非终端则不用;
2、输出到终端时,使用 text 方式,非终端则用 binary。
如果需要一致的输出,应当明确使用相关参数
這取決於 stdout 是不是終端。如果是終端就可以讀取終端的寬度,根據寬度排版。