Linux 常用命令整理大全及命令使用心得
本文章是为了总结自己用过的命令,以及一些心得,网上有很多类似的,但自己总结才能更好的理解。
文章目录
- 一、文件和目录管理
- 01、 ls :列出目录内容
- 02、cd:更改当前目录
- 03、pwd:显示当前工作目录
- 04、mkdir:创建新目录
- 05、rmdir:删除空目录
- 06、rm:删除文件或目录
- 07、cp:复制文件或目录
- 08、mv:移动或重命名文件或目录
- 09、touch:创建一个空文件或更新文件的时间戳
- 10、cat:连接文件并打印到标准输出
- 11、more 和 less:分页查看文件内容
- 12、head 和 tail 查看文件的开头或结尾部分
- 二、修改文件 vi 或 vim
- 01、vi 编辑器的 3 种模式
- 02、使用 vi 或 vim 打开文件
- 03、使用 vi 或 vim 编辑文件
- 04、使用 vi 或 vim 保存文件
- 05、使用 vi 或 vim 取消编辑
- 三、文件搜索和查找
- 01、find:在目录中搜索文件或目录
- 02、grep:搜索文件中的文本
- 03、locate:快速查找文件(依赖于预构建的数据库)
- 四、系统信息和监控
- 01、top:实时显示系统性能信息,包括CPU、内存使用情况等
- 五、用户和权限管理
- 01、su:切换到另一个用户(通常需要root权限)
- 02、sudo:以另一个用户的身份执行命令(通常是root)
- 03、chmod:更改文件或目录的权限
- 04、chown:更改文件或目录的所有者
- 05、useradd:添加用户
- 06、userdel:删除用户
- 07、groupadd:添加用户组
- 08、groupdel:删除用户组
- 六、网络管理
- 01、ping:测试到另一台主机的网络连接。
- 02、ifconfig:显示或配置网络接口
- 03、ip:显示或配置网络接口
- 04、netstat:显示网络连接、路由表、接口统计等
- 05、ss:更现代的替代品,用于显示套接字统计信息
- 06、curl:从网络下载文件
- 07、wget:从网络下载文件
- 七、软件包管理
- 01、apt:(Debian/Ubuntu系)- 管理软件包
- 02、yum:(Red Hat/Fedora系)- 管理软件包
- 03、dnf:(Red Hat/Fedora系)- 管理软件包
- 04、pacman:(Arch Linux)- 管理软件包
一、文件和目录管理
01、 ls :列出目录内容
ls
:展示文件夹下所有文件。常用
ls -l
:以长格式显示文件和目录的详细信息。ls -a
:显示包括隐藏文件在内的所有文件。ls -lh
:以人类可读的格式显示文件大小。ls -lSr
:查看⽂件和⽬录列表(以⽂件⼤⼩升序查看)tree
:查看⽂件和⽬录的树形结构 (如果没有需要先安装 yum install tree)ls -R
:连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来。
02、cd:更改当前目录
cd ..
:返回上一级目录。常用
cd ~
:返回用户主目录。cd /path/to/directory
:切换到指定目录。常用
- 这个命令可以配合
tab
键使用,用于补全文件名,使用模糊搜索,如果模糊搜索到多个文件,tab
补全不生效。
- 这个命令可以配合
03、pwd:显示当前工作目录
pwd
:命令就是这个。
04、mkdir:创建新目录
mkdir wen
:创建目录mkdir rjw wen
:同时创建两个目录mkdir -p /path/to/directory
:递归创建目录,包括必要的父目录。
05、rmdir:删除空目录
rmdir wen
:删除目录
06、rm:删除文件或目录
rm file
:删除文件。rm -r directory
:递归删除目录及其内容。rm -rf directory
:强制递归删除目录及其内容,不提示确认。rm -rf dir1
:删除dir1
⽬录和其内容。rm -rf dir1 dir2
:同时删除两个⽬录及其内容。
07、cp:复制文件或目录
cp file1 file2
:复制文件。cp -r directory1 directory2
:递归复制目录。cp dir/* .
:复制某目录下的所有文件至当前目录。cp -a dir1 dir2
:复制dir1
目录到dir2
目录。cp -a /temp/dir1 .
:复制一个目录至当前目录。
08、mv:移动或重命名文件或目录
mv oldname newname
:重命名文件或目录。mv file /path/to/directory
:移动文件到指定目录。
09、touch:创建一个空文件或更新文件的时间戳
touch wen.txt
:创建一个空白文件。touch -a "2020-10-10 15:34" wen.txt
:仅修改访问时间。黑客常用
touch -m "2020-10-10 15:34" wen.txt
:仅修改修改时间。黑客常用
touch -d "2020-10-10 15:34" wen.txt
:修改访问和修改时间。黑客常用
10、cat:连接文件并打印到标准输出
cat file
:查看文件内容。cat -n file1
:标示文件的行数。cat file1 file2 > file3
:合并文件内容到file3
。
11、more 和 less:分页查看文件内容
more file
:逐页查看文件内容。less file
:类似more
,但功能更强大,支持向前翻页,有方向。
12、head 和 tail 查看文件的开头或结尾部分
head file
:查看文件的前10行。tail file
:查看文件的后10行。tail -n 20 file
:查看文件的后20行。tail -f file
:实时跟踪文件内容更新(常用于查看日志文件)。
二、修改文件 vi 或 vim
01、vi 编辑器的 3 种模式
命令模式(command mode
)、插入模式(Insert mode
)和底行模式(last line mode
)
-
命令行模式(
command mode
):控制屏幕光标的移动,字符、字或行的删除和查找,移动复制某区段及进入Insert mode
下,或者到last line mode
。- 控制光标移动:
↑,↓,j
。 - 删除当前行:
dd
。 - 查找:
/字符
,会在底部显示。 - 进入编辑模式:
i o a
。 - 进入底行模式:
:
。
- 控制光标移动:
-
编辑模式(
Insert mode
):只有在Insert mode
下,才可以做文字输入,按ESC
键可回到命令行模式。ESC
退出编辑模式到命令行模式。
-
底行模式(
last line mode
):将文件保存或退出vi
,也可以设置编辑环境,如寻找字符串、列出行号等。- 退出编辑:
:q
。 - 强制退出:
:q!
。 - 保存并退出:
:wq
。
- 退出编辑:
02、使用 vi 或 vim 打开文件
vi example.txt
:打开文件。vim example.txt
:打开文件。- 两者功能相同,没有区别。
注意:使用 vi
编辑器打开文件后,处于命令模式
,不能编辑,需要点击键盘 i / a / o
进入编辑模式才能编辑。
03、使用 vi 或 vim 编辑文件
- 使用
vi
编辑器打开文件后点击按键i / a / o
进入编辑模式。 i
:在光标所在字符前开始插入。a
:在光标所在字符后开始插入。o
:在光标所在行的下面另起一新行插入。
04、使用 vi 或 vim 保存文件
- 处于编辑模式时:
ESC
进入命令行模式。:
进入底行模式。:wq
保存并退出编辑。:q
不保存退出编辑。:q!
不保存强制退出编辑。
- 处于命令模式时:
:
进入底行模式。:wq
退出编辑。
05、使用 vi 或 vim 取消编辑
ESC
:进入命令行模式。:
:进入底行模式。q!
:撤销本次修改并退出编辑。
三、文件搜索和查找
01、find:在目录中搜索文件或目录
基本语法:find [起始目录] [匹配条件] [操作]
。
find /path/to/search -name filename
:查找名称匹配特定模式的文件。find / -name filename
:从/
开始进入根文件系统搜索文件和目录(完整文件或文件名)find /path/to/search -name "*.tmp" -exec rm {} \
:查找并删除文件。find /path/to/search -name "*.sh" -exec chmod +x {} \
:查找并更改文件权限。find /home -name "*.log" -ls
:查找/home
目录下所有扩展名为.log
的文件,并显示其详细信息。find /path/to/search -iname "*.LOG"
:查找名称忽略大小写的匹配。find /path/to/search -type f
:查找文件,使用type
类型,file
。find /path/to/search -type d
:查找目录,使用type
类型,directory
。find /path/to/search -size +100M
:查找大于100MB
的文件。find /path/to/search -size -1k
:查找小于1KB
的文件。find /path/to/search -mtime -7
:查找在过去7 天
内修改过的文件。find /usr/bin -type f -atime +100
:搜索在过去100天内未被使用过的执行文件。find /path/to/search -perm 755
:查找权限为755
的文件。find /path/to/search -user username
:查找属于特定用户的文件。find / -user user1
:搜索属于用户user1
的文件和目录。find /path/to/search -group groupname
:查找属于特定组的文件。find /path/to/search \( -name "*.txt" -a -size +1k \)
:查找满足多个条件的文件AND
。find /path/to/search \( -name "*.txt" -o -name "*.log" \)
:查找满足任一条件的文件OR
。find /var/log -size +10M -exec rm {} \
:查找/var/log
目录下大于10MB
的文件,并删除它们。find /etc -user root -exec chmod 644 {} \
:查找/etc
目录下所有属于root
用户的文件,并修改其权限为644
。find /tmp -mtime +7 -exec mv {} /old_files/ \
:查找/tmp
目录下 7 天前修改的文件,并移动到/old_files
目录。find . -regex '.*\(net\|comm\).*'
:-regex
选项匹配整个路径名,出当前目录树中所有文件名中任意位置包含字符串net
或comm
的文件。
在使用 find
命令时,尤其是带有 -exec
选项时,请务必小心,因为错误的操作可能会导致数据丢失。
02、grep:搜索文件中的文本
grep "text" file
:在文件中搜索包含指定文本的行。grep -r "text" /path
:递归搜索目录中的文件。
03、locate:快速查找文件(依赖于预构建的数据库)
locate filename
:查找包含指定名称的文件。
四、系统信息和监控
01、top:实时显示系统性能信息,包括CPU、内存使用情况等
-
htop
- 类似于top,但提供了更友好的界面(需要安装)。 -
df
- 显示磁盘使用情况。df -h
:以人类可读的格式显示。
-
du
- 显示目录或文件的磁盘使用情况。du -sh /path
:显示指定目录的总大小。
-
free
- 显示内存使用情况。free -h
:以人类可读的格式显示。
-
uptime
- 显示系统运行时间和平均负载。 -
ps
- 显示当前运行的进程。ps aux
:显示所有用户的所有进程。
-
kill
- 终止进程。kill PID
:根据进程ID终止进程。kill -9 PID
:强制终止进程。
五、用户和权限管理
01、su:切换到另一个用户(通常需要root权限)
su username
:切换到指定用户。
02、sudo:以另一个用户的身份执行命令(通常是root)
sudo command
:以root权限执行命令。
03、chmod:更改文件或目录的权限
chmod 755 file
:设置文件权限。
04、chown:更改文件或目录的所有者
chown user:group file
:更改文件的所有者和组。
05、useradd:添加用户
sudo useradd username
:添加用户。
06、userdel:删除用户
sudo userdel username
:删除用户。
07、groupadd:添加用户组
sudo groupadd groupname
:添加用户组。
08、groupdel:删除用户组
sudo groupdel groupname
:删除用户组。
六、网络管理
01、ping:测试到另一台主机的网络连接。
ping hostname
:发送ICMP ECHO_REQUEST报文到指定主机。
02、ifconfig:显示或配置网络接口
ifconfig
:显示网络接口信息。
03、ip:显示或配置网络接口
ip a
:显示网络接口信息。
04、netstat:显示网络连接、路由表、接口统计等
netstat -tuln
:显示监听中的TCP和UDP端口。
05、ss:更现代的替代品,用于显示套接字统计信息
ss -tuln
:显示监听中的TCP和UDP端口。
06、curl:从网络下载文件
curl http://example.com
:使用curl下载文件。
07、wget:从网络下载文件
wget http://example.com
:使用wget下载文件。
七、软件包管理
01、apt:(Debian/Ubuntu系)- 管理软件包
sudo apt update
:更新包列表。sudo apt install package
:安装包。sudo apt remove package
:卸载包。
02、yum:(Red Hat/Fedora系)- 管理软件包
sudo yum update
:更新包列表。sudo yum install package
:安装包。sudo yum remove package
:卸载包。
03、dnf:(Red Hat/Fedora系)- 管理软件包
sudo dnf update
:更新包列表。sudo dnf install package
:安装包。sudo dnf remove package
:卸载包。
04、pacman:(Arch Linux)- 管理软件包
sudo pacman -Syu
:更新系统和软件包。sudo pacman -S package
:安装包。sudo pacman -R package
:卸载包。