Linux 命令 —— 常用命令总结
常用命令
文件夹与文件相关操作
创建一个文件(touch、vi、nano):
-
使用
touch
命令,如果文件不存在则创建,如果存在则更新文件的时间戳;touch 命令只用于常见空文件,不能直接向文件中输入内容;如果需要输入内容,可用使用文编编辑器,如:vi、nano;示例:
touch newfile.txt # 创建新的空文件 touch file1.txt file2.txt file3.txt # 同时创建多个文件
-
使用文本编辑器
vi
,如果文件不存在则创建新文件,如果文件存在则打开文件。vi 编辑器有两种主要模式:命令模式、插入模式;命令模式:默认模式,启动 vi 后默认进入此模式,用于执行命令(如保存、退出、移动光标等);
插入模式:用于编辑文本;
命令模式切换到插入模式:
i
:在当前光标位置前插入文本;a
:在当前光标位置后插入文本;o
:在当前行的下一行插入新行并进入插入模式;O
:在当前行的上一行插入新行并进入插入模式;
插入模式命令模式切换到插入模式:按
Esc
键可返回命令模式;保存和退出
:w
:保存文件但不退出 vi;:q
:若文件未修改,直接退出 vi;若文件已修改,会提示先保存;:q!
:强制退出 vi,不保存修改;:wq
或:x
:保存并退出 vi;ZZ
:保存并退出(快捷键);
示例:
-
打开文件:
vi myfile.txt
-
进入插入模式并输入文本:按 i,然后输入内容;
-
保存并退出:按 Esc,然后输入 :wq ;
-
使用文本编辑器
nano
;如果文件不存在则创建新文件,如果文件存在则打开文件。nano 是一个简单易用的命令行文本编辑器,适合初学者或不熟悉 vi/vim 的用户。在 nano 中编辑文本非常直观,可以像在其他文本编辑器中一样直接输入、删除和修改字符:
- 保存文件:按下
Ctrl + O
组合键,此时屏幕底部会提示输入要保存的文件名,按Enter
确认并保存文件; - 退出编辑器:按下
Ctrl + X
组合键。如果文件已被修改,nano 会询问你是否要保存更改。输入 Y 表示保存并退出,输入 N 表示不保存直接退出; - 插入文本:直接输入文本即可;
示例:
-
打开文件:
nano myfile.txt
-
编辑文件:直接输入文本;
-
保存文件:按 Ctrl + O,然后按 Enter;
-
退出 nano:按 Ctrl + X;
- 保存文件:按下
创建一个文件目录或文件夹(mkdir):
-
mkdir
命令用于创建目录,-p
选项可以递归创建多级目录;示例:
-
创建单个目录:
mkdir new_directory
在当前工作目录下创建一个new_directory的新目录;
-
同时创建多个目录:
mkdir dir1 dir2 dir3
在当前工作目录下同时创建dir1、dir2和dir3三个目录;
-
递归创建多级目录:
mkdir -p parent_dir/child_dir/grandchild_dir
如果parent_dir不存在,-p选项会先创建parent_dir,接着创建child_dir,最后创建grandchild_dir;
-
创建目录并设置权限:
mkdir -m 700 secret_dir
创建一个名为secret_dir的目录,并将其权限设置为 700,即只有目录所有者具有读、写、执行权限,所属组和其他用户没有任何权限;
-
删除一个文件或目录以及目录中所有文件(rm):
-
rm
命令用于删除文件和目录,rm -rf
中-r
表示递归删除,-f
表示强制删除,不提示;示例:
rm test.txt # 删除文件 rm -f test.txt # 强制删除文件 rm file1.txt file2.txt file3.txt # 删除多个文件 rm -r myfolder # 删除目录及其所有子目录和文件,执行时会提示确认信息 rm -rf myfolder # 不提示删除目录及其所有内容
移动或重命名一个文件或目录(mv):
-
mv
命令可以用于移动文件或目录,同时也可用于重命名文件或目录,重命名时将源文件名和目标文件名给出即可。示例:
-
重命名文件:
mv oldfile.txt newfile.txt
将当前目录下的 oldfile.txt 文件重命名为 newfile.txt;
-
重命名目录:
mv old_directory new_directory
-
移动文件到其他目录:
mv file.txt /home/user/documents/
把当前目录下的 file.txt 文件移动到 /home/user/documents/ 目录中;
-
移动目录到其他目录:
mv my_folder /new_location/
-
同时移动多个文件:
mv file1.txt file2.txt /destination/
-
列出当前目录中的文件和文件夹(ls):
-
ls
命令用于列出目录内容,显示指定目录下的文件和子目录信息;示例:
-
显示当前目录的内容:
ls
列出当前工作目录下的非隐藏文件和目录的名称;
-
显示指定目录的内容:
ls /home/user/documents
列出 /home/user/documents 目录下的非隐藏文件和目录的名称;
-
显示所有文件和目录(包括隐藏的):
ls -a
-
以长格式显示详细信息:
ls -l
-
以人类可读的格式显示文件大小:
ls -lh
-
递归显示目录内容:
ls -R
-
查找文件或目录(find):
-
使用文件搜索工具
find
命令,可以根据各种条件在指定目录及其子目录中查找文件和目录;示例:
-
按文件名查找:
在当前目录及其子目录中查找名为 test.txt 的文件:
find . -name "test.txt"
按文件名不区分大小查找:
find . -name "test.txt"
查找所有文件名包含 readme 且不区分大小写的文件:
find . -iname "*readme\*"
-
按文件类型查找:
查找 /var/log 目录下的所有普通文件:
find /var/log -type f
查找当前目录下的所有目录:
find . -type d
-
按文件大小查找:
查找大小大于 10M 的文件:
find . -size +10M
查找大小小于 500k 的文件:
find /tmp -size -500k
-
按文件权限查找:
查找权限为 777 的文件和目录:
find . -perm 777
查找具有可执行权限的文件:
find /usr/bin -perm /a+x
-
按文件时间属性查找
查找 7 天之内修改过的文件:
find . -mtime -7
查找 30 天之前修改过的文件:
find /var/log -mtime +30
-
压缩与解压缩
在 Linux 系统中,常见的压缩文件格式包括以下几种
1、.tar 格式
.tar
是一种打包格式(归档文件格式),它只是将多个文件或文件夹打包成一个文件,并不进行压缩;
-
使用
tar
命令:常用于归档和压缩,支持多种压缩格式;示例:
打包:将 documents 目录打包成 documents.tar 文件;
tar -cvf documents.tar documents -c:创建新的归档文件。 -v:显示详细的操作过程。 -f:指定归档文件的名称。
解包:解包 documents.tar 文件;
tar -xvf documents.tar -x:从归档文件中提取文件。 -v:显示详细的操作过程。 -f:指定要提取的归档文件名称。
2、.gz 格式
gzip
常用于压缩单个文件;
-
使用
gzip
命令:用于单个文件的压缩和解压;示例:
压缩:将 documents.tar 压缩成 documents.tar.gz
gzip documents.tar # 生成 documents.tar.gz 上述是使用tar打包后再使用gzip进行压缩;等价于 tar -zcvf documents.tar.gz documents -z:使用 gzip 进行压缩或解压缩。 不是对tar文件进行压缩和解压,就不能使用tar
解压:将 documents.tar.gz 文件解压
gzip -d documents.tar.gz # 解压成 documents.ta
3、.zip 格式
.zip
是一种常见的跨平台压缩格式,支持多文件压缩,在 Windows、Linux 和 macOS 等系统中都广泛使用;
-
使用
zip
和unzip
:用于创建和解压.zip
文件;示例:
压缩:将
documents
目录压缩成documents.zip
文件zip documents.zip documents
解压:将
documents.zip
文件解压unzip documents.zip
4、.7z 格式
-
7z
是一个高压缩率的工具,支持多种压缩格式; -
使用
7z
命令;示例:
压缩:将
documents
目录压缩成documents.7z
文件7z a documents.7z documents
解压:将
documents.7z
文件解压7z x documents.7z
5、.rar 格式
rar
压缩率较高,支持分卷压缩;
-
使用
rar
和unrar
命令:用于创建和解压.rar
文件;示例:
压缩:将
documents
目录压缩成documents.rar
文件rar a documents.rar documents
解压:将
documents.rar
文件解压unrar x documents.rar
权限相关
权限表示方法
- 数字模式:使用三个八进制数表示文件或目录的权限,每一个数对应不同的用户类别(所有者、所属组、其他用户)的权限;每个数的二进制位的取值是读(4)、写(2)、执行(1)权限,3个数组合得到一个3位数,表示所有者、所属组和其他用户的权限值;例如,755 表示所有者具有读、写、执行权限(4 + 2 + 1),所属组和其他用户具有读和执行权限(4 + 1)。
- 符号模式:使用 u(所有者)、g(所属组)、o(其他用户)、a(所有用户)表示不同的用户类别;+ 表示添加权限,- 表示移除权限,= 表示设置权限;r(读)、w(写)、x(执行)表示具体的权限。
1、查看权限(ls -l):
-
使用
ls -l
命令可以查看文件或目录的权限;示例:
ls -l filename
输出示例:
-rw-r--r-- 1 user group 4096 Oct 10 12:34 filename
- 第 1 列:权限信息(如 -rw-r–r–);
- 第 3 列:文件所有者(如 user);
- 第 4 列:文件所属组(如 group);
权限符号说明:
r
:读权限(read);w
:写权限(write);x
:执行权限(execute);-
:无权限;
权限分为三组:
- 所有者权限(前 3 位);
- 所属组权限(中间 3 位);
- 其他用户权限(最后 3 位);
2、修改权限(chmod)
-
使用
chmod
命令可以修改文件或目录的权限; -
符号模式:
chmod [who][operator][permissions] filename
who —— u:所有者(user)、g:所属组(group)、o:其他用户(others)、a:所有用户(all,默认);
operator —— +:添加权限、-:移除权限、=:设置权限;
permissions —— r:读权限、w:写权限、x:执行权限;
-
示例:
chmod u+x filename # 给所有者添加执行权限 chmod g-w filename # 移除所属组的写权限 chmod o=r filename # 设置其他用户的权限为只读 chmod a+rw filename # 给所有用户添加读写权限
-
数字模式
所有者、所属组、其他用户的权限可以用 3 个八进制数表示,每个数的二进制位表示不同的权限 —— 4:读权限(r)、2:写权限(w)、1:执行权限(x);
chmod 755 filename # 所有者:rwx,所属组:r-x,其他用户:r-x chmod 644 filename # 所有者:rw-,所属组:r--,其他用户:r--
3、修改所有者(chown)
-
使用
chown
命令可以修改文件或目录的所有者和所属组;示例:
chown user filename # 将文件所有者改为 user chown user:group filename # 将文件所有者改为 user,所属组改为 group
4、修改所属组(chgrp)
-
使用
chgrp
命令可以修改文件或目录的所属组;示例:
chgrp group filename # 将文件所属组改为 group
网络相关
参考:Linux 命令—— ping、telnet、curl、wget(网络连接相关命令)
1、查看网络接口信息(ifconfig或ip)
-
ifconfig
(传统命令)、ip
(推荐使用):示例:
查看所有网络接口的详细信息:
ifconfig # 或 ip addr show
2、查看路由表(route或ip
)
-
route
或ip
命令 -
示例:
route -n # 或 ip route show
3、测试网络连接:
-
ping
命令通过发送 ICMP 包来测试网络连通性。示例:
ping www.baidu.com # 测试与目标主机的连通性;
-
traceroute
命令跟踪数据包的路由路径:示例:
traceroute www.baidu.com
-
mtr
命令结合ping
和traceroute
的功能:示例:
mtr www.baidu.com
4、查看网络连接状态
-
使用
netstat
命令# 查看所有网络连接: netstat -a # 查看 TCP 连接: netstat -at # 查看 UDP 连接: netstat -au
-
使用
ss
命令# 查看所有网络连接: ss -a # 查看 TCP 连接: ss -t
日志查看
参考:Linux 命令 —— grep、tail、head、cat、more、less(查看日志常用命令)
- 常用
cat
(查看整个文件内容)、more
(分页查看)、less
(功能更强大的分页查看)、tail
(查看文件尾部内容)等命令。
-
grep 和 find 的区别:
grep 主要用于在文件内容中查找匹配指定模式的行;find 用于在文件系统中查找符合条件的文件或目录;
如:grep 针对文件内容搜索, 在 log.txt 中找含 “error” 的行;
grep "error" log.txt
find 针对文件系统,在根目录下找名为 test.txt 的文件;
find / -name "test.txt"
查看进程与端口
1、查看 JAVA 进程并关闭进程:
-
使用用
ps -ef | grep java
查看所有 Java 进程,找到对应进程的PID
(进程号);ps
命令可以列出当前运行的进程。结合grep
可以过滤出 Java 进程;示例:
ps -ef | grep java
-e
:显示所有进程;-f
:显示完整格式;grep java
:过滤出包含java
关键字的进程;
或使用
jps
命令,jps 是 JDK 自带的工具,专门用于查看 Java 进程; -
用
kill
命令关闭,kill 更具进程号关闭进程;示例:
kill 12345 # 关闭 PID=12345 进程 kill -9 12345 # 强制关闭 PID=12345 进程
-
使用
pkill
命令,pkill 可以根据进程名称关闭进程;示例:
pkill java # 关闭所有名称中包含java的进程
2、端口查看:
-
使用
lsof
命令,查看某个端口的占用情况;示例:
lsof -i :8080
-i
:指定端口号;
通过
lsof -i:端口号
找到占用端口的进程,可以再用kill
命令杀掉进程。
3、检查端口是否开放
-
使用
telnet
命令,也可以测试端口是否开放;示例:
telnet 192.168.1.100 8080 # 测试远程主机的端口
-
使用
nc
(netcat)命令,nc
是一个网络工具,也可以测试端口是否开放;示例:
nc -zv 192.168.1.100 8080 # 测试远程主机的端口
-z
:只扫描,不发送数据;-v
:显示详细信息;
4、查看端口对应的服务
-
使用
/etc/services
文件,/etc/services 文件包含了端口号与服务的映射关系;示例:
grep 8080 /etc/services # 查看端口对应的服务
其他命令
查看命令历史记录:
- 使用
history
命令用于显示用户之前输入过的命令历史;
查看 Linux 磁盘空间使用情况:
- 使用
df
命令用于显示磁盘分区上的可用空间等信息,df -h
,-h
选项以人类可读的格式显示;
上传和下载文件:
-
使用
scp
(Secure Copy)命令进行文件传输;示例:
从本地上传到远程
scp 本地文件路径 用户名@远程主机地址:远程路径
;scp myfile.txt user@192.168.1.100:/home/user/
从远程下载到本地
scp 用户名@远程主机地址:远程文件路径 本地路径
;scp user@192.168.1.100:/home/user/myfile.txt /local/directory/
-
使用
sftp
(Secure File Transfer Protocol),sftp 是基于 SSH 的交互式文件传输工具;示例:
连接到远程主机:
sftp username@remote_host
上传文件:
# put /path/to/local/file /path/to/remote/directory put myfile.txt /home/user/
下载文件:
# get /path/to/remote/file /path/to/local/directory get /home/user/myfile.txt /local/directory/
-
使用
rz
和sz
命令,rz 和 sz 是 Linux 中用于通过 ZMODEM 协议进行文件传输的命令。它们通常与终端工具(如 xterm、SecureCRT 或 Xshell)结合使用,适合在远程服务器和本地计算机之间传输文件;rz
用于从本地计算机上传文件到远程服务器;示例:
-
在远程服务器的终端中运行:
rz
选项
-y
:覆盖已存在的文件;(rz -y)-e
:对控制字符进行转义(适用于二进制文件);
-
终端会弹出一个文件选择对话框(取决于终端工具),选择要上传的文件;
-
文件将上传到当前工作目录;
sz
用于从远程服务器下载文件到本地计算机;示例:
-
在远程服务器的终端中运行:
sz filename
-y
:覆盖已存在的文件;-e
:对控制字符进行转义(适用于二进制文件);
-
终端会弹出一个保存文件对话框(取决于终端工具),选择保存位置;
-
文件将下载到本地计算机;
-