Shell命令是Linux和Unix系统中的基础,用于完成各种操作,如文件管理、程序执行、文本处理等。下面列举一些常用的Shell命令,并详细解释它们的功能及应用场景:
-
ls
- 列出目录内容- 功能:列出指定目录中的文件和目录。
- 应用场景:查看目录中的内容。
- 例子:
ls -lh
显示当前目录下的文件和目录,并以人类可读的格式显示文件大小。
-
cd
- 更改当前目录- 功能:更改Shell的当前工作目录。
- 应用场景:在文件系统中导航。
- 例子:
cd /home/user
切换到/home/user
目录。
-
pwd
- 打印当前目录- 功能:显示当前工作目录的完整路径。
- 应用场景:找出当前所在目录。
- 例子:
pwd
输出当前目录路径。
-
mkdir
- 创建目录- 功能:创建一个新目录。
- 应用场景:创建新的文件夹。
- 例子:
mkdir new_folder
在当前目录下创建一个名为new_folder
的新目录。 - 详细用法:4. 常用shell之mkdir的用法及衍生-CSDN博客
-
rmdir
- 删除目录- 功能:删除空目录。
- 应用场景:移除不再需要的空目录。
- 例子:
rmdir old_folder
删除名为old_folder
的目录(目录必须为空)。 - 详细用法:5. 常用shell之rmdir - 删除目录 的用法和衍生用法-CSDN博客
-
touch
- 创建或更新文件- 功能:创建一个新文件或更新现有文件的时间戳。
- 应用场景:快速创建空文件或更改文件时间戳。
- 例子:
touch new_file.txt
创建一个名为new_file.txt
的空文件。 - 详细用法:6. 常用shell之 touch - 创建或更新文件 的用法和衍生用法-CSDN博客
-
rm
- 删除文件或目录- 功能:删除文件或目录。
- 应用场景:移除文件或目录。
- 例子:
rm file.txt
删除名为file.txt
的文件。 - 详细用法:7. 常用shell之 rm - 删除文件或目录 的用法,以及相关衍生用法-CSDN博客
-
cp
- 复制文件或目录- 功能:复制文件或目录。
- 应用场景:复制文件或整个目录到新位置。
- 例子:
cp source.txt destination.txt
将source.txt
文件复制到destination.txt
。 - 详细用法:8. 常用shell之 cp - 复制文件或目录 的用法及衍生用法-CSDN博客
-
mv
- 移动或重命名文件或目录- 功能:移动文件或目录,或重命名它们。
- 应用场景:整理文件或更改文件名。
- 例子:
mv old_name.txt new_name.txt
将old_name.txt
重命名为new_name.txt
。 - 详细用法:9. 常用shell之 mv - 移动或重命名文件或目录 的用法及衍生用法-CSDN博客
-
grep
- 文本搜索- 功能:在文件中搜索符合条件的文本行。
- 应用场景:搜索包含特定文本的文件。
- 例子:
grep "search_term" file.txt
在file.txt
中搜索包含 "search_term" 的行。 - 详细用法:10. 常用shell之 mv - 移动或重命名文件或目录 的用法和衍生用法-CSDN博客
-
find
- 查找文件- 功能:在目录树中搜索文件。
- 应用场景:寻找符合特定条件的文件或目录。
- 例子:
find /home -name "*.txt"
在/home
目录及其子目录下查找所有扩展名为.txt
的文件。 - 详细用法:11. 常用shell之 find - 查找文件 的用法和衍生用法-CSDN博客
-
cat
- 查看和连接文件- 功能:查看文件内容、连接多个文件内容到标准输出。
- 应用场景:查看文件内容或合并文件。
- 例子:
cat file1.txt file2.txt
查看file1.txt
和file2.txt
的内容。 - 详细用法:12. 常用shell之 cat - 查看和连接文件 的用法和衍生用法-CSDN博客
-
echo
- 输出文本- 功能:在标准输出(通常是终端)上显示一行文本或变量。
- 应用场景:显示消息、变量值或将内容写入文件。
- 例子:
echo "Hello World"
显示 "Hello World"。 - 详细用法:13. 常用shell之 echo - 输出文本 的用法和衍生用法-CSDN博客
-
tail
- 查看文件末尾内容- 功能:显示文件的最后几行。
- 应用场景:查看日志文件或其他持续增长文件的最新内容。
- 例子:
tail -f /var/log/syslog
实时查看系统日志文件的新更新。 - 详细用法:14. 常用shell之 tail - 查看文件末尾内容 的用法和衍生用法-CSDN博客
-
head
- 查看文件开头内容- 功能:显示文件的前几行。
- 应用场景:快速查看文件的开始部分。
- 例子:
head -n 5 file.txt
显示file.txt
的前5行。 - 详细用法:15. 常用shell之 head - 查看文件开头内容 的用法和衍生用法-CSDN博客
-
sort
- 排序文本文件中的行- 功能:按字母或数字顺序对文件内容进行排序。
- 应用场景:排序或合并文件。
- 例子:
sort file.txt
对file.txt
文件内容进行排序。 - 详细用法:16. 常用shell之 sort - 排序文本文件中的行 的用法和衍生用法-CSDN博客
-
uniq
- 报告或省略重复行- 功能:从输入中删除重复的连续行。
- 应用场景:处理排序后的文件,删除或统计重复行。
- 例子:
sort file.txt | uniq
对文件排序后删除重复行。 - 详细用法:17. 常用shell之 uniq - 报告或省略重复行 的用法和衍生用法-CSDN博客
-
cut
- 剪切文本文件中的部分- 功能:按列提取文本文件的内容。
- 应用场景:从文件中提取指定的列。
- 例子:
cut -d':' -f 1 /etc/passwd
提取/etc/passwd
文件中以冒号分隔的第一列。
-
awk
- 强大的文本处理工具- 功能:用于模式扫描和处理语言的工具,非常适合文本处理。
- 应用场景:复杂的文本处理,如分析、提取和报告。
- 例子:
awk '{print $2, $1}' file.txt
交换每行的第一和第二个字段。 - 详细用法:19. 常用shell之awk的用法-CSDN博客
-
sed
- 流编辑器- 功能:对文本流(如文件)执行基本的文本转换。
- 应用场景:文本替换、插入、删除等。
- 例子:
sed 's/old/new/g' file.txt
将file.txt
中的 "old" 全部替换为 "new"。 - 详细用法:20. 常用shell之sed的用法及优缺点-CSDN博客
-
chmod
- 更改文件权限- 功能:更改文件或目录的访问权限。
- 应用场景:设置文件的读、写和执行权限。
- 例子:
chmod 755 script.sh
设置script.sh
可被所有人读取和执行,只有所有者可写。
-
chown
- 更改文件所有者- 功能:更改文件或目录的所有者和组。
- 应用场景:更改文件的所有权。
- 例子:
chown user:group file.txt
更改file.txt
的所有者为 "user",组为 "group"。
-
df
- 显示磁盘空间使用情况- 功能:显示文件系统的磁盘空间使用情况。
- 应用场景:监控磁盘空间。
- 例子:
df -h
以人类可读的格式显示磁盘空间使用情况。
-
du
- 显示目录空间使用情况- 功能:显示文件或目录所占用的磁盘空间。
- 应用场景:查找占用大量磁盘空间的文件或目录。
- 例子:
du -sh /path/to/directory
显示指定目录的总磁盘使用量。
-
ps
- 查看活动进程- 功能:显示当前系统中的活动进程。
- 应用场景:监控和管理进程。
- 例子:
ps aux
显示系统中所有进程的详细列表。
-
top
- 实时显示进程动态- 功能:实时显示进程及系统资源的使用情况。
- 应用场景:动态监控系统和进程状态。
- 例子:直接运行
top
会打开一个交互界面,显示当前活动进程及资源使用情况。
-
kill
- 终止进程- 功能:发送信号到进程,通常用于终止进程。
- 应用场景:终止挂起的或无响应的进程。
- 例子:
kill -9 1234
强制终止 PID 为 1234 的进程。
-
tar
- 打包和解压文件- 功能:将文件打包成一个大文件,可选压缩或解压。
- 应用场景:文件备份和压缩。
-
crontab
- 定时任务调度- 功能:安排定时任务。
- 应用场景:自动执行周期性任务,如备份、脚本运行等。
- 例子:
crontab -e
打开定时任务编辑器,添加或修改计划任务。
-
wget
- 网络下载工具- 功能:从网络上下载文件。
- 应用场景:命令行下载网页、文件等。
- 例子:
wget http://example.com/file.zip
下载指定URL的文件。
-
curl
- 数据传输工具- 功能:与服务器交换数据。
- 应用场景:命令行下进行数据上传、下载,API测试等。
- 例子:
curl http://example.com
显示指定 URL 的内容。
-
ssh
- 安全远程登录- 功能:安全地远程登录到另一台计算机。
- 应用场景:远程管理服务器或设备。
- 例子:
ssh user@example.com
使用 SSH 连接到 example.com。
-
scp
- 安全复制文件- 功能:通过 SSH 安全地传输文件。
- 应用场景:在不同计算机间安全地复制文件。
- 例子:
scp file.txt user@example.com:/path
将本地的file.txt
复制到远程服务器。
-
iptables
- 网络防火墙配置- 功能:配置 Linux 内核防火墙。
- 应用场景:设置网络访问控制规则。
- 例子:
iptables -L
列出所有防火墙规则。
-
df
- 磁盘空间使用情况- 功能:显示文件系统的磁盘使用情况。
- 应用场景:检查磁盘空间。
- 例子:
df -h
以人类可读的格式显示磁盘使用情况。
-
du
- 磁盘占用空间- 功能:估算和显示文件或目录所占磁盘空间。
- 应用场景:分析磁盘空间使用。
- 例子:
du -sh /path/to/dir
显示指定目录的总占用空间。
-
nano
/vi
/vim
- 文本编辑器- 功能:在命令行中编辑文本文件。
- 应用场景:创建和修改配置文件或编写代码。
- 例子:
nano file.txt
或vi file.txt
打开文件进行编辑。
-
jobs
- 列出后台作业- 功能:显示当前后台运行的作业。
- 应用场景:管理后台进程。
- 例子:
jobs
列出所有后台作业。
-
fg
- 将后台作业移到前台- 功能:将后台作业移至前台继续运行。
- 应用场景:继续在前台操作被暂停的作业。
- 例子:
fg %1
将作业号为1的后台作业移到前台。
-
bg
- 将作业放到后台运行- 功能:使作业在后台继续运行。
- 应用场景:将暂停的作业放到后台继续运行。
- 例子:
bg %1
将作业号为1的作业放到后台。
-
alias
- 创建命令别名- 功能:为长命令或常用命令创建短的别名。
- 应用场景:简化复杂的命令或常用命令序列。
- 例子:
alias ll='ls -l'
创建ll
作为ls -l
的别名。
-
unalias
- 移除别名- 功能:删除之前创建的别名。
- 应用场景:删除不再需要的命令别名。
- 例子:
unalias ll
移除ll
这个别名。
-
env
- 查看环境变量- 功能:显示当前用户的环境变量。
- 应用场景:查看或设置环境变量。
- 例子:
env
显示当前所有环境变量。
-
export
- 设置或显示环境变量- 功能:创建新的环境变量或修改现有的环境变量。
- 应用场景:配置程序运行时的环境设置。
- 例子:
export PATH=$PATH:/new/path
添加/new/path
到现有的PATH
环境变量。
-
unset
- 删除环境变量或函数- 功能:删除指定的环境变量或函数。
- 应用场景:清理不再需要的环境变量或函数。
- 例子:
unset PATH
删除PATH
环境变量。
-
which
- 显示命令的完整路径- 功能:显示指定命令的完整路径。
- 应用场景:确定正在使用的命令的位置。
- 例子:
which ls
显示ls
命令的路径。
-
whereis
- 查找文件- 功能:定位命令、源文件和手册页的位置。
- 应用场景:查找程序相关文件的位置。
- 例子:
whereis python
查找 Python 的可执行文件和源码位置。
-
man
- 显示命令手册- 功能:显示命令的手册页(帮助文档)。
- 应用场景:学习特定命令的用法和选项。
- 例子:
man ls
显示ls
命令的手册页。
-
history
- 命令历史- 功能:显示用户命令历史。
- 应用场景:回顾或重用之前的命令。
- 例子:
history
显示命令历史列表。
-
chmod
- 更改文件权限- 功能:更改文件或目录的权限。
- 应用场景:控制对文件和目录的访问。
- 例子:
chmod 755 filename
设置文件的读、写、执行权限。
-
chown
- 更改文件所有者和组- 功能:更改文件或目录的所有者和组。
- 应用场景:管理文件和目录的所有权。
- 例子:
chown user:group filename
更改文件的所有者和组。
-
gzip
/gunzip
- 压缩和解压文件- 功能:使用 Gzip 压缩或解压文件。
- 应用场景:减小文件大小以节省空间或便于传输。
- 例子:
gzip file
压缩文件,gunzip file.gz
解压文件。
-
zip
/unzip
- 压缩和解压 ZIP 文件- 功能:创建和解压 ZIP 格式的压缩文件。
- 应用场景:文件打包和压缩。
- 例子:
zip archive.zip file1 file2
压缩文件,unzip archive.zip
解压文件。
-
watch
- 定期执行命令- 功能:定期执行命令并显示其输出。
- 应用场景:监视命令的输出,如系统资源、进程状态等。
- 例子:
watch df -h
每隔2秒更新并显示磁盘空间使用情况。
-
df
- 显示磁盘使用情况- 功能:显示系统中文件系统的磁盘使用情况。
- 应用场景:监控磁盘空间使用。
- 例子:
df -h
以人类可读的格式显示磁盘空间使用情况。
-
free
- 查看内存使用情况- 功能:显示系统的空闲和已用内存及交换空间。
- 应用场景:监控内存使用情况。
- 例子:
free -m
以 MB 为单位显示内存使用情况。
-
ping
- 检查网络连接- 功能:发送 ICMP ECHO_REQUEST 以测试目标主机的可达性。
- 应用场景:诊断网络连接问题。
- 例子:
ping google.com
测试与 google.com 的网络连接。
-
netstat
- 网络统计信息- 功能:显示网络连接、路由表、接口统计等网络信息。
- 应用场景:网络问题诊断和分析。
- 例子:
netstat -a
显示所有网络连接。
-
traceroute
- 跟踪网络路径- 功能:显示数据包到达主机所经过的路由。
- 应用场景:网络路径分析。
- 例子:
traceroute google.com
跟踪到 google.com 的路径。
-
dig
- 查询 DNS 信息- 功能:查询 DNS 名称服务器信息。
- 应用场景:DNS 故障诊断和信息查询。
- 例子:
dig example.com
查询 example.com 的 DNS 信息。
-
nslookup
- 查询 DNS 信息- 功能:查询域名的 DNS 信息。
- 应用场景:DNS 问题调试。
- 例子:
nslookup google.com
查询 google.com 的 DNS 信息。
-
ifconfig
- 配置或显示网络接口参数- 功能:配置或显示网络接口的网络参数。
- 应用场景:网络配置和故障排查。
- 例子:
ifconfig eth0
显示或配置名为 eth0 的网络接口。
-
iwconfig
- 配置无线网络接口- 功能:用于配置无线网络接口的参数。
- 应用场景:无线网络接口配置。
- 例子:
iwconfig wlan0
查看或配置名为 wlan0 的无线网络接口。
-
hostname
- 显示或设置系统的主机名- 功能:显示或设置系统的主机名。
- 应用场景:管理系统主机名。
- 例子:
hostname
显示当前系统主机名。
-
useradd
/userdel
- 添加或删除用户- 功能:添加或删除系统用户。
- 应用场景:用户账户管理。
- 例子:
useradd newuser
添加新用户,userdel olduser
删除用户。
-
groupadd
/groupdel
- 添加或删除组- 功能:添加或删除用户组。
- 应用场景:用户组管理。
- 例子:
groupadd newgroup
添加新组,groupdel oldgroup
删除组。
-
passwd
- 更新用户密码- 功能:更新用户的密码。
- 应用场景:修改用户账户密码。
- 例子:
passwd username
修改指定用户的密码。
-
chgrp
- 更改文件或目录的群组- 功能:更改文件或目录的群组归属。
- 应用场景:管理文件或目录的群组权限。
- 例子:
chgrp groupname file
更改文件的群组。
-
chmod
- 更改文件或目录的权限- 功能:更改文件或目录的访问权限。
- 应用场景:管理文件或目录的访问权限。
- 例子:
chmod 755 file
设置文件的权限。
-
su
- 切换用户身份- 功能:切换当前用户身份到另一个用户。
- 应用场景:临时以其他用户身份执行命令。
- 例子:
su - username
切换到指定用户。
-
sudo
- 以超级用户身份执行命令- 功能:以超级用户或指定用户身份执行命令。
- 应用场景:执行需要管理员权限的命令。
- 例子:
sudo apt update
以超级用户身份更新软件包列表。
-
apt-get
/yum
/dnf
- 包管理器- 功能:软件包安装和管理(基于发行版)。
- 应用场景:安装、更新和移除软件包。
- 例子:
apt-get install nginx
安装 Nginx(在基于Debian的系统上)。
-
mount
/umount
- 挂载或卸载文件系统- 功能:挂载或卸载文件系统。
- 应用场景:管理设备或存储的挂载点。
- 例子:
mount /dev/sdb1 /mnt
挂载设备,umount /mnt
卸载。
-
fdisk
- 磁盘分区工具- 功能:查看和修改磁盘分区表。
- 应用场景:磁盘分区管理。
- 例子:
fdisk /dev/sda
修改/dev/sda
磁盘的分区表。
-
mkfs
- 创建文件系统- 功能:在分区上创建新的文件系统。
- 应用场景:格式化分区,准备存储使用。
- 例子:
mkfs.ext4 /dev/sdb1
在/dev/sdb1
创建一个新的 ext4 文件系统。
-
fsck
- 检查和修复文件系统- 功能:检查和修复文件系统的一致性和完整性。
- 应用场景:修复损坏或不一致的文件系统。
- 例子:
fsck /dev/sda1
检查并修复/dev/sda1
分区。
-
dd
- 转换和复制文件- 功能:复制文件并在复制过程中进行指定的转换。
- 应用场景:备份整个磁盘或分区,创建启动盘等。
- 例子:
dd if=/dev/sda of=/dev/sdb
将 sda 磁盘的内容复制到 sdb 磁盘。
-
find
- 查找文件和目录- 功能:在目录树中查找文件和目录。
- 应用场景:搜索文件和目录,执行搜索到的文件上的操作。
- 例子:
find / -name "*.conf"
在根目录下查找所有以.conf
结尾的文件。
-
locate
- 快速查找文件- 功能:基于数据库快速查找文件的位置。
- 应用场景:快速定位文件。
- 例子:
locate nginx.conf
快速查找名为nginx.conf
的文件。
-
tar
- 打包和压缩/解压缩文件- 功能:创建文件档案,并可选地对其进行压缩或解压缩。
- 应用场景:文件打包和压缩。
- 例子:
tar -czvf archive.tar.gz /path/to/dir