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:卸载包。
