开发常用的 Linux 命令2(文件的查看、搜索和权限)
作为开发者,Linux是我们必须掌握的操作系统之一。因此,在编写代码和部署应用程序时,熟练使用Linux命令非常重要。这些常用命令不得不会,掌握这些命令,工作上会事半功倍,大大提高工作效率。
二、查看文件内容
cat命令
用于查看文本文件的内容,后接要查看的文件名,通常可用管道与more和less一起使用
cat [选项] [文件]
其中,选项可以是以下任何组合:
选项 | 执行 |
---|---|
-n | 对每一行进行编号 |
-b | 对非空行进行编号 |
-s | 压缩空白行 |
-v | 显示非打印字符 |
-E | 在行末添加美元符号 |
基本用法:
命令 | 执行 |
---|---|
cat file1 | 从第一个字节开始正向查看文件的内容 |
tac file1 | 从最后一行开始反向查看一个文件的内容 |
cat -n file1 | 标示文件的行数,并输出 |
more file1 | 查看一个长文件的内容 |
head -n 2 file1 | 查看一个文件的前两行 |
tail -n 2 file1 | 查看一个文件的最后两行 |
tail -n +1000 file1 | 从1000行开始显示,显示1000行以后的 |
这里的file1是一个文件名
示例:
1.显示filename.txt的1000行到3000行
cat filename.txt | head -n 3000 | tail -n +1000
2.执行filename.txt,从第3000行开始,显示1000(即显示3000~3999行)
cat filename.txt | tail -n +3000 | head -n 1000
3.将文件file1.txt和file2.txt连接起来,并显示行号
cat -n file1.txt file2.txt
三、文件搜索
find命令
用来查找系统文件的,用于在指定目录下查找文件或目录。它通过输入路径和条件来搜索符合要求的文件或目录,并将结果输出到终端
具体用法如下:
find [path] [expression]
其中,path
指定了要搜索的路径,可以是绝对路径或相对路径。如果未指定路径,则默认为当前工作目录。
expression
则是搜索的条件表达式,用于限定搜索范围。例如,可以按文件名、类型、大小、权限等条件进行搜索。
常用示例:
1.从 '/' 开始进入根文件系统搜索文件和目录
find / -name file1
2.搜索属于用户 'user1' 的文件和目录
find / -user user1
3.搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -atime +100
4.搜索在100天内被创建或者修改过的文件
find /usr/bin -type f -mtime -100
5.显示一个二进制文件、源码或man的位置
whereis halt
6.显示一个二进制文件或可执行文件的完整路径
which halt
7.删除大于50M的文件:
find /var/mail/ -size +50M -exec rm {} \;
8.查找Downloads/文件夹下的所有目录:
find Downloads/ -type d
9.查找Desktop/路径下大小大于100M的文件:
find Desktop/ -size +100M
10.查找/path/to/folder路径下以".txt"结尾的文件
find /path/to/folder -name "*.txt"
四.文件的权限
chmod命令
文件的权限可以使用chmod命令进行修改,使用 "+" 设置权限,使用 "-" 用于取消
chmod [who] [+/-/=] [permission] file
其中,who表示要修改的用户或用户组,可以是以下之一:
- u:代表文件所有者。
- g:代表文件所属用户组。
- o:代表其他用户。
- a:代表所有用户,即u、g和o的组合。
"+"表示添加权限,"-"表示删除权限,"="表示设置权限。
permission可以是以下之一:
-
r:读权限。
-
w:写权限。
-
x:执行权限。
-
X:只有当文件是目录或者已经有可执行的权限时,才添加执行权限。
file表示要修改权限的文件名或目录名。
示例:
1.使用ls -lh 显示权限
2.将文件file.txt的所有者的读写权限设置为可读可写:
chmod u+rw file.txt
3.将文件file.txt的所有者和所属用户组的读写权限设置为可读可写:
chmod ug+rw file.txt
4.将文件file.txt的所有用户的读权限设置为可读:
chmod a+r file.txt
5.设置directory1 目录的所有人(u)、群组(g)以及其他人(o)以读(r,4 )、写(w,2)和执行(x,1)的权限
chmod ugo+rwx directory1
6.删除群组(g)与其他人(o)对directory1 目录的读写执行权限
chmod go-rwx directory1
chown命令
chown命令用于更改文件或目录的所有者和/或所属组。它允许管理员将文件或目录的所有权转移给其他用户或组。,使用 "+" 设置权限,使用 "-" 用于取消,具体用法如下:
chown [选项] [所有者][:组] 文件名/目录名
其中,选项是可选的,可以是以下之一:
- -c:只在更改执行后产生输出。
- -f:强制进行更改,不显示错误信息。
- -R:递归处理子目录及其内容。
- -v:显示每次更改的详细信息。
所有者可以是用户名或用户ID,组可以是组名或组ID。如果省略组,则会将文件的所属组更改为新所有者的主要组。
示例:
1.改变一个文件的所有人属性
chown user1 file1
2.改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chown -R user1 directory1
3.改变一个文件的所有人和群组属性
chown user1:group1 file1
4.将文件file.txt的所有者更改为tom,所属组更改为users:
chown tom:users file.txt
5.将目录dir及其所有子目录和文件的所有者和所属组都更改为tom和users,则可以使用-R选项:
chown -R tom:users dir/
chgrp命令
chgrp命令用于改变文件所属用户组
chgrp [选项] [新的所属组名] 文件或目录
其中,[选项]
表示可选参数,常见的有:
-R
:递归地更改一个目录及其所有子目录和文件的所属组。--reference=参考文件或目录
:将指定文件或目录的所属组作为参考,并将需要更改的文件或目录的所属组设置为该参考文件或目录的所属组。
[新的所属组名]
表示要将文件或目录更改为的新的所属组。
文件或目录
表示要进行更改的文件或目录名称。
1.改变文件的群组
chgrp group1 file1
2.将文件file.txt
的所属组更改为group1
chgrp group1 file.txt
3.将目录/data
及其子目录和文件的所属组都更改为group2
chgrp -R group2 /data