刚接触Linux的新手总会被黑底白字的命令行劝退,其实只要掌握高频的Linux常用命令,不管是做开发调试、运维部署还是个人玩云服务器,都能轻松应对。我当年初学Linux的时候,死记硬背了上百条命令,结果真正日常用的也就20来条,今天就把我攒了5年的使用经验分享给大家。
一、新手入门:为什么要先学Linux常用命令?
很多新手会问:现在Linux也有图形界面了,为什么还要记命令?其实绝大多数企业的服务器、云主机、容器环境都不会安装图形界面,一是占用系统资源,二是命令行的操作效率远高于图形界面——比如批量修改100个文件的后缀、筛选10G日志里的错误信息,命令行一行就能搞定,图形界面可能要操作半小时。
而且Linux常用命令的复用性极强,不管是Ubuntu、CentOS还是其他衍生版,核心命令的用法几乎完全一致,学会之后所有Linux环境都能通用。大家不用一开始就追求背会所有命令,先把高频使用的20%命令练熟,就能覆盖90%的日常操作场景。
二、Linux常用命令分类整理(附基础用法)
我把日常最高频的命令分成了5大类,大家可以按需查找:
1. 文件基础操作类(占日常操作70%)
这是最常用的一类命令,新手最先掌握这部分就足够完成基础操作:
– ls:列出当前目录下的文件,加-l可以看文件权限、大小、修改时间,加-a可以显示隐藏文件
– cd:切换目录,cd ..回到上一级目录,cd ~回到当前用户的主目录,cd /回到系统根目录
– pwd:查看当前所在的目录路径,我刚学的时候经常切目录切懵,全靠这个命令定位
– mkdir:新建文件夹,加-p可以自动创建不存在的父目录,比如mkdir -p a/b/c可以一次建三级目录
– rm:删除文件/文件夹,删除目录需要加-r递归删除
– cp:复制文件/文件夹,复制目录加-r,比如cp -r ./test /data就是把test目录复制到/data下
– mv:移动/重命名文件,比如mv a.txt b.txt就是把a.txt重命名为b.txt
– tar:压缩/解压命令,最常用的tar -zxvf 文件名.tar.gz就是解压tar.gz格式的压缩包
2. 系统状态查询类
主要用于排查服务器资源问题:
– df -h:查看磁盘占用情况,加-h会自动把大小转换成GB/MB的可读格式
– du -sh *:查看当前目录下每个文件夹的大小,磁盘满了的时候用这个找大文件特别好用
– top:实时查看CPU、内存占用情况,按q退出
– ps aux|grep 进程名:查看指定进程是否在运行,比如ps aux|grep nginx就能看到nginx的进程信息
– history:查看最近执行过的命令,不用重复敲之前的长命令
3. 权限管理类
Linux是多用户系统,权限不对很容易出现文件访问不了的问题:
– chmod 权限值 文件名:修改文件权限,最常用的是chmod 755 文件名,给所有者读写执行权限,其他用户只读和执行权限
– chown -R 用户:用户组 目录:批量修改目录的所有者,比如部署站点的时候经常要把文件所有者改成web服务器的运行用户
– sudo:用管理员权限执行命令,普通用户执行权限不够的命令时前面加sudo就行
4. 网络排查类
做部署、接口调试的时候经常用到:
– ping 域名/IP:测试网络连通性,比如ping baidu.com就能看服务器能不能连公网
– curl 地址:测试接口/页面返回,不用开浏览器就能看请求结果
– netstat -tunlp:查看端口占用情况,服务启动失败的时候先查对应端口是不是被占了
– scp 本地文件 root@IP:远程路径:把本地文件传到服务器上,不用装FTP工具就能传文件
5. 文本处理类
查日志、改配置的时候必备:
– grep 关键词 文件名:筛选文件里包含关键词的行,查错误日志的时候特别好用,比如grep "error" app.log就能找出所有报错的行
– vim 文件名:Linux自带的文本编辑器,记住三个操作就行:按i进入编辑模式,编辑完按ESC退出编辑模式,输入:wq保存退出,输入:q!强制不保存退出。
三、实操场景:用Linux常用命令完成一次静态站点部署
光看命令没用,给大家举一个真实的使用场景:买了阿里云ECS服务器,要部署自己的个人静态博客,全程用上面的命令就能搞定:
1. 首先本地打开终端,用ssh登录服务器:ssh root@你的服务器公网IP,输入密码就能登录
2. 登录后先pwd确认当前在/root目录,然后建站点存放目录:mkdir -p /data/www/blog
3. 本地把打包好的博客静态文件压缩成dist.tar.gz,用scp传到服务器:scp ./dist.tar.gz root@你的IP:/data/www/blog
4. 回到服务器终端,切换到对应目录:cd /data/www/blog,解压文件:tar -zxvf dist.tar.gz
5. 给文件修改权限,让nginx可以访问:chown -R nginx:nginx ./dist
6. 配置完nginx后,测试能不能正常访问:curl http://localhost
7. 如果访问失败,先查nginx进程有没有运行:ps aux|grep nginx,再查80端口有没有被占用:netstat -tunlp|grep 80
整个流程没有任何复杂操作,用的全是上面提到的Linux常用命令,10分钟就能完成部署。
四、常见问题&避坑指南:我踩过的那些Linux命令坑
学Linux的时候我踩过特别多坑,给大家列几个新手最容易犯的错误,能帮你少走很多弯路:
1. 永远不要随便执行rm -rf /*,也不要在根目录执行rm -rf *:我之前有个实习同事,在测试服务器根目录敲了这个命令,整个服务器的文件全被删了,花了一整天才恢复数据。用rm的时候建议先加-i参数,会弹出确认提示再删除,重要文件删除前一定要备份。
2. 不要随便给文件开777权限:很多新人遇到权限问题就直接chmod 777 文件名,这个权限意味着所有用户都能读写执行该文件,有极大的安全隐患,一般站点文件给755权限就足够了。
3. 不要搞混cd /和cd ~:前者是切换到系统根目录,后者是切换到当前用户的主目录,我刚学的时候经常搞混,找自己传的文件找了半小时才发现切错了目录。
4. mv命令默认会覆盖同名文件:如果怕误覆盖,可以加-n参数,比如mv -n a.txt ./test,如果test目录下已经有a.txt就不会覆盖。
5. 执行sudo命令前一定要确认命令正确性:sudo是管理员权限,执行错误的话影响范围会非常大。
五、写在最后
其实Linux常用命令真的不用死记硬背,不用一开始就逼自己背几百条命令,先把上面提到的20来条高频命令用熟,遇到不会的就用man 命令名查官方文档,或者临时搜索就行,用的次数多了自然就记住了。
现在不管是云服务器、容器还是嵌入式设备,基本都是Linux系统,掌握Linux常用命令不管是做开发还是运维,都是非常实用的技能,大家可以现在就打开自己的云服务器试着敲两条,很快就能上手。