作为程序员,Linux命令行是必备技能。无论是开发、部署还是运维,都离不开Linux终端。
现在的服务器,绝大多数跑的是Linux系统。部署应用、查看日志、排查问题、性能调优,都需要在Linux终端上操作。不会Linux命令,就像不会用筷子一样,在服务器上寸步难行。
而且Linux命令行非常高效。很多在图形界面下需要点很多次鼠标的操作,在命令行里一条命令就能搞定。熟练使用Linux命令,能大幅提高工作效率。
我刚开始工作的时候,也不太会Linux命令,每次上服务器都小心翼翼的,生怕输错命令搞坏了系统。后来逼着自己多用、多记、多练,慢慢就熟练了。现在Linux命令已经成了我工作中最常用的工具之一。
今天分享Linux常用命令速查表,按类别整理,方便查阅和记忆。建议收藏,用到的时候翻一翻。
文件操作
查看文件
cat file:查看文件全部内容less file:分页查看文件(按q退出,空格翻页,上下键滚动)head -n 10 file:查看文件前10行tail -n 10 file:查看文件后10行tail -f file:实时查看文件新增内容(看日志常用)wc file:统计文件行数、单词数、字符数
创建和删除
touch file:创建空文件或更新文件时间戳rm file:删除文件rm -f file:强制删除文件,不提示cp file1 file2:复制文件mv file1 file2:移动或重命名文件ln -s file link:创建软链接
查找文件
find /path -name "*.log":按文件名查找find /path -type f -size +10M:查找大于10M的文件find /path -mtime -7:查找7天内修改的文件locate file:快速查找文件(需要先运行updatedb更新数据库)which command:查找命令的位置whereis command:查找命令的二进制、源码、man手册位置
目录管理
pwd:显示当前目录cd /path:切换目录cd ..:返回上一级目录cd ~:回到家目录cd -:回到上一次的目录ls:列出当前目录文件ls -l:详细列表(权限、所有者、大小、时间)ls -a:显示隐藏文件ls -lh:人性化显示文件大小(K、M、G)ls -lt:按修改时间排序mkdir dir:创建目录mkdir -p dir1/dir2/dir3:递归创建目录rmdir dir:删除空目录rm -rf dir:递归强制删除目录(慎用!)cp -r dir1 dir2:递归复制目录mv dir1 dir2:移动或重命名目录tree:以树状图显示目录结构(需要安装tree)
权限管理
Linux文件权限分为读(r=4)、写(w=2)、执行(x=1),分所有者(u)、组(g)、其他(o)三组。
chmod 755 file:设置文件权限(rwxr-xr-x)chmod +x file:给文件添加执行权限chmod u+w file:给所有者添加写权限chown user:group file:修改文件所有者和组chown -R user:group dir:递归修改目录所有者和组chgrp group file:修改文件所属组umask:显示或设置默认权限掩码
常用权限:
- 755:所有者可读写执行,其他可读执行(目录、可执行文件)
- 644:所有者可读写,其他只读(普通文件)
- 777:所有人可读写执行(慎用,不安全)
进程管理
ps:查看当前终端进程ps aux:查看所有进程详细信息ps aux | grep nginx:查找nginx进程top:实时显示进程状态(按q退出)htop:更美观的进程监控(需要安装)kill pid:终止进程(发送TERM信号)kill -9 pid:强制杀死进程(发送KILL信号)killall process:按名称杀死所有进程pkill process:按名称匹配杀死进程bg:把挂起的进程放到后台运行fg:把后台进程调到前台jobs:查看后台任务nohup command &:后台运行命令,退出终端不终止&:命令末尾加&,后台运行Ctrl+C:终止当前进程Ctrl+Z:挂起当前进程
网络操作
ifconfig:查看网络接口信息(新系统用ip addr)ip addr:查看网络接口信息ping host:测试网络连通性ping -c 4 host:发送4个包后停止netstat -tlnp:查看监听端口和进程(新系统用ss)ss -tlnp:查看监听端口和进程curl url:发送HTTP请求curl -I url:只显示响应头curl -X POST -d "key=value" url:发送POST请求wget url:下载文件wget -c url:断点续传下载ssh user@host:远程登录ssh -p port user@host:指定端口登录scp file user@host:/path:远程复制文件scp -r dir user@host:/path:远程复制目录telnet host port:测试端口连通性nc -zv host port:测试端口是否开放dig domain:DNS查询nslookup domain:DNS查询hostname:显示主机名route -n:查看路由表iptables -L:查看防火墙规则
系统监控
uptime:显示系统运行时间和负载free -h:显示内存使用情况df -h:显示磁盘使用情况du -sh /path:显示目录大小du -sh /* | sort -rh:显示根目录下各目录大小,排序top:实时系统监控vmstat:虚拟内存统计iostat:IO统计(需要安装sysstat)sar:系统活动报告(需要安装sysstat)dmesg:查看内核日志uname -a:显示系统信息cat /etc/os-release:查看发行版信息cat /proc/cpuinfo:查看CPU信息cat /proc/meminfo:查看内存信息lscpu:查看CPU架构信息lsblk:查看块设备(磁盘)信息fdisk -l:查看磁盘分区mount:查看挂载信息history:查看命令历史!n:执行第n条历史命令!!:执行上一条命令
文本处理
grep pattern file:在文件中搜索匹配的行grep -i pattern file:忽略大小写grep -v pattern file:显示不匹配的行grep -r pattern /path:递归搜索目录grep -n pattern file:显示行号grep -c pattern file:统计匹配行数egrep "pattern1|pattern2" file:扩展正则(或关系)sed 's/old/new/g' file:替换文本sed -i 's/old/new/g' file:直接修改文件sed '10d' file:删除第10行sed -n '10,20p' file:显示第10到20行awk '{print $1}' file:打印第一列awk -F: '{print $1}' /etc/passwd:指定分隔符为冒号awk '$3 > 1000' file:第三列大于1000的行sort file:排序sort -r file:倒序排序sort -n file:按数字排序sort -t: -k3 file:按冒号分隔的第三列排序uniq file:去重(需要先排序)uniq -c file:统计重复次数cut -d: -f1 file:按冒号分隔取第一列paste file1 file2:合并两个文件的行join file1 file2:按关键字连接两个文件wc -l file:统计行数wc -w file:统计单词数wc -c file:统计字符数diff file1 file2:比较两个文件差异vimdiff file1 file2:用vim比较文件cat file | grep pattern | sort | uniq -c:管道组合使用
压缩解压
tar -cvf archive.tar files:打包成tartar -xvf archive.tar:解压tartar -czvf archive.tar.gz files:打包并gzip压缩tar -xzvf archive.tar.gz:解压tar.gztar -cjvf archive.tar.bz2 files:打包并bzip2压缩tar -xjvf archive.tar.bz2:解压tar.bz2tar -tf archive.tar:查看压缩包内容zip archive.zip files:压缩成zipunzip archive.zip:解压zipunzip -l archive.zip:查看zip内容gzip file:压缩文件(生成.gz)gunzip file.gz:解压.gzbzip2 file:压缩文件(生成.bz2)bunzip2 file.bz2:解压.bz2
软件包管理
Debian/Ubuntu(apt)
apt update:更新软件源apt upgrade:升级所有软件apt install package:安装软件apt remove package:卸载软件apt purge package:卸载并删除配置apt search keyword:搜索软件apt show package:查看软件信息dpkg -i package.deb:安装deb包dpkg -l:列出已安装软件
CentOS/RHEL(yum)
yum install package:安装软件yum remove package:卸载软件yum update:升级所有软件yum search keyword:搜索软件yum info package:查看软件信息yum list installed:列出已安装软件rpm -ivh package.rpm:安装rpm包rpm -qa:列出已安装软件
其他常用命令
echo "text":输出文本echo $VAR:输出环境变量date:显示当前时间date "+%Y-%m-%d %H:%M:%S":格式化时间cal:显示日历clear:清屏(Ctrl+L)man command:查看命令手册command --help:查看命令帮助which command:查找命令位置type command:查看命令类型alias ll="ls -l":设置别名unalias ll:取消别名export VAR=value:设置环境变量source file:加载配置文件. file:同上,加载配置文件su - user:切换用户sudo command:以root权限执行命令passwd:修改密码logout:退出登录exit:退出终端reboot:重启系统shutdown -h now:立即关机shutdown -r +5:5分钟后重启crontab -e:编辑定时任务crontab -l:查看定时任务
快捷键
Ctrl+C:终止当前命令Ctrl+Z:挂起当前命令Ctrl+D:退出当前shell(EOF)Ctrl+L:清屏Ctrl+A:光标移到行首Ctrl+E:光标移到行尾Ctrl+U:删除光标前的内容Ctrl+K:删除光标后的内容Ctrl+R:搜索历史命令Ctrl+W:删除光标前一个单词Tab:自动补全命令或文件名!!:执行上一条命令!$:上一条命令的最后一个参数
学习建议
Linux命令很多,不用死记硬背,常用的记住,不常用的用到的时候查就行。
学习建议:
- 多用多练,在实际工作中使用命令行,不要依赖图形界面
- 先掌握最常用的20%命令,能解决80%的问题
- 用好man手册和--help,遇到不会的命令先查帮助
- 学会用管道(|)和重定向(>、>>),组合命令实现复杂功能
- 写shell脚本,把常用的操作自动化
- 收藏速查表,用到的时候翻一翻
Linux命令行是一个强大的工具,掌握它能让你在服务器上游刃有余,工作效率大幅提升。希望这篇速查表能帮到你。
评论(0)
暂无评论,快来抢沙发~
评论功能仅对会员开放,请先登录
登录