1、cat命令
cat命令主要用于查看和连接文件,需要所有者的使用权限,基本语法格式如下:
代码语言:javascript复制cat [选项] 文件
常用参数
- -n:会在输出的每一行前面增加行号
- -b:也是显示行号,只不过是只对非空行显示行号
- -s:多个空行压缩为一个空行,输出内容只显示一个空行
- -E:在输出的每行末尾处增加“$”的标识符
举例说明
- 直接查看文件内容
cat testfile
- 将标准输入(0)重定向到testfile文件,达到覆盖的效果
cat > testfile
- 将标准输入(0)追加到testfile文件
cat >> testfile
- 配合管道命令使用,cat命令的输出内容作为另一个命令的输入
cat testfile | command
- 配合tail命令,查看testfile文件的最后10行
cat testfile | tail -n 10
- 清空testfile.txt文件内容
cat /dev/null ./testfile.txt
命令使用总结
cat testfile 会将指定文件的内容输出到终端上 cat命令可以实现创建文件的作用, cat > testfile如果testfile文件不存在会自动创建文件并保存即可 在日常使用中,cat命令与管道[|]配合使用的场景比较多,例如cat testfile | ls -l 等 cat命令也可以同时查看多个文件,例如cat testfile1 tesefile2
2、chgrp命令
chgrp命令主要作用是改变文件或目录所属的群组属性,与chown命令类似,区别在于chgrp命令可以是普通所有者权限可执行,chgrp命令只能修改文件或目录的所属群组,而chown命令必须要用root权限执行,且既可以改变文件或目录的群组也可修改文件或目录的群组属性,基本语法格式如下:
代码语言:javascript复制 chgrp [所属群组] [文件或目录]
常用参数
- -R:将指定目录下的所有文件及子目录一并处理(即实现递归处理)
举例说明
- 改变testfile.txt文件的群组为tcms
chgrp tcms testfile.txt
- 改变/home/java/tool目录所属群组为tcms
chgrp tcms /home/java/tool/
- 根据指定的文件testfile.txt,修改testfile2.txt的群组属性,即将testfile2.txt文件的root群组修改为tcms群组
chgrp --reference=testfile2.txt testfile.txt
3、chown命令
chown命令是将文件的所有者改为指定的用户或组,需要注意的是chown命令需要用超级用户root权限去执行。常规命令格式如下:
代码语言:javascript复制 chown [参数选项] [用户]:[群组] [文件或目录]
常用参数
- -R : 处理指定目录以及其子目录下的所有文件
举例说明
- 修改/home/java/main/test.java文件的所有者设置为tcms
chown tcms /home/java/main/test.java
- 将/home/java/main/目录下的所有文件所有者设置为tcms,组设置为gtcms
chown -R tcms:gtcms /home/java/main/
4、chmod命令
chmod命令主要是修改文件或目前所属拥有者权限或所属群组的权限。
常用参数
- -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
- u:文件的拥有者(OWNER)
- g:文件所属的群组(group)
- o:其他的用户(other users)
- a:表示所有用户(即包含以上ugo)
- :表示对文件增加某个权限
- -:表示对文件取消某个权限
- r:表示读取权限
- w:表示写入权限
- x:表示可执行权限
举例说明
- 给testfile.txt文件赋予最高权限
chmod rwx testfile.txt
chmod 777 testfile.txt
chomd ugo rwx testfile.txt
chmod a rwx testfile.txt
- 给/home/java/test目录赋予所有人只读权限
chmod r /home/java/test/
chmod 4 /home/java/test/
chmod a r /home/java/test/
- 对test.java文件拥有者增加可写权限
chmod u w test.java
关于文件权限的说明
linux对文件的权限按照文件所有者(Owner)、用户组(Group)、其它用户(Other Users)区分,可见下图所示:
同时,对各自所拥有的权限划分了相应的权重分数: r – 4 w – 2 x – 1 chmod命令每三个是一组,分表代表文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行
所有者权限/权重 | 用户组权限/权重 | 其他用户权限/权重 | 文件的权限 | 文件权重分数 |
---|---|---|---|---|
rwx / 7 | rwx / 7 | rwx / 7 | -rwxrwxrwx | 777 |
rwx / 7 | r-x / 5 | r-x / 5 | -rwxr-xr-x | 755 |
rwx / 7 | r-x / 5 | r-- / 4 | -rwxr-xr-- | 754 |
5、cmp命令
cmp命令主要是比较两个文件是否有差异,返回的信息只提示有无差异,如果没有差异不显示任何信息,如果有差异显示差异的字符或列的编号
举例说明
- 比较两个文件test1.txt、test2.txt
cmp test1.txt test2.txt
代码语言:javascript复制 如果文件相同,则不显示消息。如果文件不同,则显示第一个不同的位置。differ: char 4, line 1
6、diff命令
diff命令主要是对文件以行的形式做对比,从而比较两个文件的差异
常用参数
- -b:不检查空格字符的不同
- -B:不检查空白行
- -c :显示全部内文,并标出不同之处
- -i:不检查大小写的不同
- -y:以并列的方式显示文件的异同之处
- -W:在使用-y参数时,指定栏宽
举例说明
- 比较两个日志的差异
diff test1.log test2.log
- 比价两个日志的差异,按并排的格式输出差异信息
diff test1.log test2.log -y -W 60
7、file命令
file命令用于辨别文件的类型
举例说明
- 查看test.log文件的类型
file test.log
test.log: UTF-8 Unicode text
8、find命令
find命令用于在指定目录下查找文件和目录,它可以使用不同的选项来过滤和限制查找的结果,命令格式如下:
代码语言:javascript复制 find [路径] [查询条件]
常用参数
- -name:按文件名查找,支持使用通配符 *
- -type:按文件类型查找,可以是 f(普通文件)、d(目录)
- -mtime:按修改时间查找,支持使用 或 - 表示在指定天数前或后,days 是一个整数表示天数。例如:-mtime 0 表示查找今天修改过的文件,-mtime -7 表示查找一周以前修改过的文件
- -amin n:查找在 n 分钟内被访问过的文件, n:查找比 n 天前更早的文件或目录,-n:查找在 n 天内更改过属性的文件或目录
举例说明
- 查找当前目录下以“.log”结尾的文件
find . -type f -name "*.log"
- 查找 /home/log 目录下在 4 天前修改过的文件
find /home/log/ -type f -mtime 4
- 在当前目录下查询名为test.sh的文件并删除
find . -name "test.sh" -exec rm {} ;
以上例子中,-exec 选项允许你执行一个命令,{} 将会被匹配到的文件名替代,; 表示命令结束。
9、cut命令
cut命令主要用于截取字符串来用
常用参数
- -b :以字节为单位进行分割
- -c :以字符为单位进行分割
- -d :自定义分隔符
- -f :与-d一起使用,指定显示哪个区域
举例说明
通常配合管道|使用
代码语言:javascript复制 who | cut -b 3
10、ln命令
ln命令主要是为某一个文件在另外一个位置建立一个同步的链接,链接分为硬链接和软连接,命令格式如下:
代码语言:javascript复制 ln [参数][源文件或目录][目标文件或目录]
常用参数
- -s:软链接(符号链接)
举例说明
给文件创建软链接,为log2024.log文件创建软链接link2024.log,如果log2024.log丢失,link2024.log将失效:
代码语言:javascript复制 ln -s log2024.log link2024.log
11、less命令
less命令是浏览文件的命令,支持上翻下翻和搜索功能,基本语法格式如下:
代码语言:javascript复制 less [参数选项] [文件]
常用参数
- -i:忽略搜索时的大小写
- -N:显示每行的行号
- b:向上翻一页
- [pageup]:向上翻动一页
- 空格键:滚动一页
- [pagedown]: 向下翻动一页
- d:向后翻半页
- /字符串:向下搜索"字符串"的功能
- ?字符串:向上搜索"字符串"的功能
- Q:退出less 命令
举例说明
- 查看文件testfile.log内容
less testfile.log
- 可以了浏览多个文件
less testfile1.log testfile2.log
说明: 输入n:切换到testfile2.log 输入p:切回到testfile1.log
12、mv命令
mv命令用来给文件或目录移动地址,或者给文件目录重命名,基本语法格式:
代码语言:javascript复制 mv [参数选项] [旧文件或目录] [新文件或目录]
常用参数
- -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份
- -r:处理指定目录以及其子目录下的所有文件
举例说明
- 将test文件重命名为file
mv test file
代码语言:javascript复制 mv test.txt /home/sk/test/ 将文件移动到某目录下
13、rm命令
rm命令主要用于删除某个文件或目录
常用参数
- -r:将目录及以下之档案亦逐一删除
- -f:即使原档案属性设为唯读,亦直接删除,无需逐一确认
举例说明
- 删除一个文件test.txt
rm test.txt
- 删除一个目录,必须要用-r参数
rm -r /home/sk/test/
- 删除一个目录下的所有文件及目录
rm -r *
14、cp命令
cp命令是一个常规且用的较广的一个命令,主要就是对文件或目录进行复制,基本语法格式:
代码语言:javascript复制 cp [参数] [文件或目录] [文件或目录]
常用参数
- -r 或 --recursive:用于复制目录及其所有的子目录和文件,如果要复制目录,需要使用该选项
举例说明
- 将文件 file.txt 复制到目录 /path/to/destination/ 中
cp file.txt /path/to/destination/
- 将当前目录 test/ 下的所有文件复制到新目录 newtest 下
cp –r test/ newtest
15、tee命令
tee命令用于读取标准输入的数据,并将其内容输出成文件,基本语法格式:
代码语言:javascript复制tee [参数] [文件]
常用参数
- -a或–append 附加到既有文件的后面,而非覆盖它
举例说明
通常配合管道使用较多
代码语言:javascript复制cat rizhi.log | tee -a file.log # 读取日志文件的内容后写入到file文件中
16、awk命令
awk命令通过提供编程语言的功能,如变量、数学运算、字符串处理等,使得对文本文件的分析和操作变得非常灵活和高效
举例说明
- 打印整行
awk '{print}' file
- 打印行数
awk '{print NR, $0}' file
总结说明
以上总结的命令,主要是针对Linux文件管理部分日常常用的一些命令,并列举了每个命令高频使用的参数和应用场景,如有其他疑问请大家评论留言指出,欢迎大家指正。最后,希望这篇博文能给大家提供些许帮助,感谢大家的支持!
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3vtuwevgbfms4