Shell命令汇总
Published in:2024-01-27 | category: 兴趣 工具

Shell 命令汇总

1.目录操作

  • ls:列出目录内容。使用 -l 选项以长列表格式显示详细信息,使用 -a 显示隐藏文件。

1
ls -la
  • cd:更改目录。

1
cd /path/to/directory  
  • pwd:显示当前工作目录的路径。

1
pwd  
  • mkdir:创建一个新目录。

1
mkdir new_directory  
  • rmdir:删除空目录。

1
rmdir empty_directory 
  • rm:删除文件或目录。使用 -r 递归删除目录及其内容,使用 -f 强制删除无需确认。

1
rm -rf /path/to/directory  
  • cp:复制文件或目录。使用 -r 复制目录。

1
2
cp source_file target_file  
cp -r source_directory target_directory
  • mv:移动或重命名文件或目录。

1
mv old_name new_name  
  • touch:创建一个空文件或者更新现有文件的时间戳。

1
touch filename  
  • rename:批量重命名文件。

1
rename 's/old/new/' *.txt  

2.文件操作

  • cat:查看文件内容或将多个文件合并输出。

1
cat filename  
  • moreless:分页查看文件内容。lessmore 功能更强大,支持向前和向后翻页。

1
less filename 
  • tail:查看文件末尾的内容。使用 -f 可以实时跟踪文件的更新。

1
tail -f filename  
  • head:查看文件开头的内容。

1
head filename  
  • grep:搜索文本并打印匹配的行。使用 -i 忽略大小写,使用 -r 递归搜索。

1
grep 'pattern' filename 
  • sed:流编辑器,可以对文本进行过滤和替换。

1
sed 's/old/new/' filename 
  • awk:文本模式扫描和处理语言,用于复杂的文本处理。

1
awk '{print $1}' filename  
  • nano, vi, vim, emacs:文本编辑器。

1
2
3
nano filename  
vim filename
emacs file.txt
  • find:在目录树中查找文件。

1
find /path/to/search -name "filename"  
  • locate:使用预建的数据库快速查找文件的位置(数据库通过 updatedb 命令更新)。

1
locate filename 

3.系统信息

  • top:实时显示系统进程和资源使用情况。

1
top  
  • ps:显示当前运行的进程。

1
ps aux  
  • kill:终止进程。使用 -9 强制终止。

1
kill -9 PID 
  • df:查看磁盘使用情况。

1
df -h  
  • du:查看文件或目录的磁盘使用量。

1
du -sh /path/to/directory  
  • free:查看内存使用情况。

1
free -m 
  • uptime:显示系统运行时间和负载。

1
uptime  
  • uname:显示系统信息。使用 -a 显示所有信息。

1
uname -a  
  • who:显示当前登录的用户。

1
who  
  • w:显示当前登录用户和他们正在做的事情。

1
w 
  • hostname:显示或设置系统的主机名。

1
hostname  

4.网络操作

  • ping:检查与远程服务器的连接。

1
ping example.com  
  • ifconfig / ip addr:显示网络接口的配置信息。

1
2
ifconfig  
ip addr
  • netstat:显示网络连接、路由表、接口统计等网络信息。

1
netstat -tulpn  
  • ssh:远程登录到其他计算机。

1
ssh [email protected]  
  • scp:安全地复制文件到远端服务器或从远端服务器复制文件。

1
scp local_file [email protected]:remote_file  
  • wget / curl:从网络上下载文件。

1
2
wget http://example.com/file  
curl -O http://example.com/file
  • traceroute / tracepath:显示数据包到达主机所经过的路由。

1
traceroute example.com  
  • dig:查询 DNS 名称服务器信息。

1
dig example.com  
  • nslookup:查询域名系统以获取域名或 IP 地址对应的信息。

1
nslookup example.com
  • route:显示和操作 IP 路由表。

1
route -n  
  • iptables:配置 Linux 内核防火墙。

1
iptables -L  
  • httpd / apache2:Apache HTTP 服务器。

1
systemctl start apache2  
  • nginx:高性能的 HTTP 和反向代理服务器。

1
systemctl start nginx  
  • ftp:文件传输协议客户端。

1
ftp ftp.example.com  
  • sftp:SSH 文件传输协议,安全地传输文件。

1
sftp [email protected]  

5.压缩操作

  • tar:创建和解压 tar 归档文件。

1
2
tar cvf archive_name.tar /path/to/directory
tar xvf archive_name.tar
  • gzip / gunzip:压缩或解压缩 gzip 文件。

1
2
gzip filename  
gunzip filename.gz
  • zip / unzip:创建和解压 zip 文件。

1
2
zip archive_name.zip file1 file2  
unzip archive_name.zip
  • bzip2 / bunzip2:压缩或解压缩 bzip2 文件。

1
2
bzip2 filename  
bunzip2 filename.bz2

6.管道和重定向

  • |:管道,将一个命令的输出作为另一个命令的输入。

1
cat file.txt | grep "search_term"  
  • >:重定向标准输出到文件,覆盖文件内容。

1
echo "Hello, World!" > file.txt  
  • >>:重定向标准输出到文件,附加在文件末尾。

1
echo "Hello, World!" >> file.txt  
  • <:将文件内容作为命令的标准输入。

1
grep "search_term" < file.txt 
  • 2>:重定向标准错误到文件。

1
command 2> error.log
  • &>:重定向标准输出和标准错误到同一个文件。

1
command &> output.log 
  • tee:读取标准输入的数据,并同时写入到标准输出和一个或多个文件中,常与管道一起使用。

1
command | tee output.txt  

7.包管理

  • dpkg:Debian 包管理工具,用于安装、构建、删除和管理 Debian 包。

1
dpkg -i package.deb  
  • rpm:RPM 包管理工具,用于安装、卸载、查询和更新 RPM 包。

1
rpm -ivh package.rpm  

8.权限管理

  • sudo:以超级用户(或其他用户)的身份执行命令。

1
sudo apt-get update 
  • su:切换当前用户到另一个用户。

1
su - username  
  • useradd / adduser:创建新的系统用户。

1
2
useradd new_user  
adduser new_user
  • usermod:修改用户账号属性。

1
usermod -aG groupname username 
  • passwd:更改用户密码。

1
passwd username  
  • groups:显示用户所属的所有组。

1
groups username
  • chgrp:更改文件或目录的群组所有权。

1
chgrp groupname filename  
  • setfacl:设置文件访问控制列表(ACL),提供比传统权限更详细的权限设置。

1
setfacl -m u:username:rwx file  
  • getfacl:获取文件的访问控制列表。

1
getfacl file 
  • chmod:改变文件或目录的权限。

1
chmod 755 filename 
  • chown:改变文件或目录的所有者。

1
chown username:groupname filename  

9.系统管理

  • apt-get, yum, dnf, pacman:不同的Linux发行版使用不同的包管理器来安装、更新和删除软件包。

1
2
3
4
apt-get install package_name  
yum install package_name
dnf install package_name
pacman -S package_name
  • service:在系统上启动、停止、重启和管理服务。

1
service service_name start  
  • systemctl:控制 systemd 系统和服务管理器。

1
systemctl start service_name  
  • crontab:安排定时任务。

1
crontab -e  
  • journalctl:查看由 systemd 管理的系统和服务日志。

1
journalctl -u service_name  
  • dmesg:显示或控制内核环形缓冲区消息。

1
dmesg | grep something  
  • logrotate:自动轮转、压缩、删除和邮寄系统日志文件。

1
logrotate /etc/logrotate.conf  
  • syslog / rsyslog / syslog-ng:处理系统日志的守护进程。

1
service rsyslog status  
  • fsck:检查和修复 Linux 文件系统。

1
fsck /dev/sda1  
  • testdisk:强大的免费数据恢复软件。

1
testdisk /dev/sda  
  • photorec:与 testdisk 相关的工具,用于恢复丢失的文件。

1
photorec /dev/sda  
  • grub:GNU GRUB 是一个启动加载程序,用于在多操作系统中管理引导过程。

1
update-grub  
  • init / telinit:init 是所有进程的父进程,用于控制系统的运行级别。

1
telinit 3  

10.硬件管理

  • fdisk:磁盘分区工具。

1
fdisk /dev/sdx  
  • mkfs:在分区上创建文件系统。

1
mkfs -t ext4 /dev/sdx1  
  • mount / umount:挂载或卸载文件系统。

1
2
mount /dev/sdx1 /mnt  
umount /mnt
  • lscpu:显示 CPU 架构信息。

1
lscpu  
  • lsblk:列出所有可用的块设备。

1
lsblk  
  • lspci:列出所有 PCI 设备。

1
lspci  
  • lsusb:列出 USB 设备。

1
lsusb  
  • dmidecode:提取硬件系统组件的信息,如序列号和固件版本。

1
dmidecode  

11.进程管理

  • bg:将一个在后台暂停的作业继续执行。

1
bg %job_id 
  • fg:将后台中的作业调至前台继续运行。

1
fg %job_id 
  • jobs:显示当前会话中的所有作业及其状态。

1
jobs  
  • nohup:运行命令,即使退出登录也不会中断。

1
nohup command &  
  • screen / tmux:使用虚拟终端,允许用户在单个终端窗口中多次登录会话。

1
2
screen  
tmux

12.脚本编写和执行

  • bash / sh:Shell 脚本解释器,用于执行 Shell 脚本。

1
2
bash script.sh  
sh script.sh
  • cron:time-based 作业调度器,用于自动运行脚本和命令。

1
crontab -l 
  • at:用于安排一次性任务。

1
at 10:30 PM  
  • watch:周期性地执行命令,并显示输出。

1
watch -n 5 'ls -l /path/to/directory'  
  • alias:创建命令别名简化命令输入。

1
alias ll='ls -la'  

13.系统监控和性能

  • iostat:报告 CPU 统计和所有块设备的 I/O 统计。

1
iostat  
  • vmstat:报告虚拟内存统计。

1
vmstat  
  • htop:交互式进程查看器,类似于 top,但提供更多信息和更好的用户界面。

1
htop  
  • lsof:列出被进程打开的文件。

1
lsof  
  • strace:跟踪系统调用和信号。

1
strace -p PID  
  • tcpdump:抓取网络上的数据包。

1
tcpdump -i eth0 
  • nmap:网络探测和安全审核。

1
nmap -A target_host  
  • nice / renice:调整程序运行的优先级。

1
2
nice -n 10 command  
renice 10 -p PID
  • ionice:设置程序访问磁盘的优先级。

1
ionice -c 3 -p PID  
  • tune2fs:调整可调文件系统参数。

1
tune2fs -l /dev/sda1  

14.文本处理

  • sort:对文本文件中的行进行排序。

1
sort filename  
  • uniq:报告或省略重复的行,常用于 sort 命令之后。

1
sort filename | uniq  
  • cut:移除文件中的部分字段。

1
cut -d',' -f1 filename  
  • paste:合并两个或多个文件的行。

1
paste file1 file2  
  • join:在两个文件中,将含有相同字段的行连接起来。

1
join file1 file2  
  • tr:替换或删除字符。

1
cat file.txt | tr '[:lower:]' '[:upper:]'
  • nl:给文件加上行号。

1
nl file.txt  
  • wc:统计文件的行、词和字符数。

1
wc filename  

15.加密和备份

  • openssl:强大的加密工具,用于创建私钥、证书签名请求(CSR)、证书和其他。

1
openssl genrsa -out private.key 2048
  • gpg:GNU Privacy Guard,用于加密和签名数据。

1
gpg --encrypt --recipient [email protected] file  
  • ssh-keygen:用于生成 SSH 密钥对。

1
ssh-keygen -t rsa  
  • fail2ban:防止暴力破解的工具,它监视日志文件并基于配置的规则封禁可疑的 IP 地址。

1
fail2ban-client status  
  • rsync:用于备份和同步文件和目录。

1
rsync -a /path/to/source /path/to/destination  
  • dd:用于复制和转换原始磁盘数据。

1
dd if=/dev/sda of=/path/to/backup.img  
  • tar:除了创建和解压归档文件,tar 也常用于备份。

1
tar cvpzf backup.tar.gz /path/to/directory  

16.虚拟化和容器

  • docker:容器化平台,用于开发、运输和运行应用。

1
docker run image_name  
  • virsh:命令行工具,用于管理 KVM 和 Xen 虚拟机。

1
virsh list --all 
  • vagrant:构建和维护虚拟化环境的命令行工具。

1
vagrant up  

17.版本控制系统

  • git:分布式版本控制系统,用于跟踪和协调源代码变更。

1
git clone https://github.com/user/repo.git 
  • svn:集中式版本控制系统。

1
svn checkout http://example.com/svn/repo/trunk  

18.编程和开发工具

  • make:自动化编译程序,通常与 Makefile 文件一起使用。

1
make  
  • gcc:GNU 编译器集合,用于编译 C 和 C++ 程序。

1
gcc -o output source.c  
  • gdb:GNU 调试器,用于调试程序。

1
gdb ./program  
Prev:
SQL常见用法
Next:
Docker常见用法