首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >程序员需要掌握的shell命令有哪些

程序员需要掌握的shell命令有哪些

作者头像
用户11690639
发布2026-06-18 08:10:10
发布2026-06-18 08:10:10
220
举报

今天工作比较碎(日常):给大家分工时,还想着把项目工包统计一下(没来得及做);整理日报;分BUG,想着改7个BUG(没改呢);和产品经理沟通新项目,了解需求方案、讨论技术可实现性;还有辅助助我们组小同学在现场安装Node;其实node本身安装很简单,但前提需要掌握一些常用的shell命令。突发奇想,给大家整理一下吧,可做为日常学习;

大致归纳了一下,程序员需要掌握的shell命令分为:文件目录操作、文件本编辑查看、进程管理、网络调测、文件或目录权限管理、常用的开发工具类命令、系统资源查看信息、其它...

一、文件和目录操作

命令

作用

示例

ls

列出目录内容

ls -al (显示隐藏文件)

cd

切换目录

cd /home/software

pwd

显示当前目录

mkdir

创建目录

mkdir -p /data/software (递归创建)

rm

删除文件和目录

rm -rf ./node_modules(删除当前路径下的node_modules,慎用删除,一定要确认)

cp

复制文件

cp -r dir1 dir2 (递归复制)

mv

移动/重命名文件

mv old.txt new.txt (如果在同一路径下就是重命名,如果不同路径是移动文件)

find

查找文件

find -name "*.js"

tar

打包/解压文件

解压: tar -czvf archive.tar.gz dir tar -xJf node-v22.15.1-linux-x64.tar.xz 打包:排除特定文件- tar -czvf backup.tar.gz --exclude="*.log" --exclude="temp/" dir1 追加文件到已有tar包(仅适用于未压缩tar包) tar -rvf a.tar test.txt 分卷拆分 tar -czvf -dir1|split -b 100M - archive_part.tar.gz 【合并分卷 cat archive_part.tar.gz* | tar -xzvf -】 保留原始文件权限 tar -cpzvf backup.tar.gz /etc (-p 是保留原始权限)

注:说一下几种压缩格式的压缩率:

  • gzip:速度快,压缩率一般(*.tar.gz 或 *.tgz),加参数-z 进行压缩解压;tar -czvf archive.tar.gz dir1
  • bzip2:速度慢,压缩率中等(*.tar.bz2),加参数-j做bzip2的压缩和解压 ;tar -cjvf archive.tar.bz2 dir1
  • xz:速度最慢,压缩率最高;使用-J参数进行xz 的压缩和解压;tar -cJvf archive.tar.xz dir1

二、 文本处理与查看

命令

作用

示例

cat

显示文件内容

cat zl.log

grep

文本搜索

grep "error" app.log

sed

替换文本

sed 's/foo/bar/g' zl.txt (s是替换操作,foo是要匹配的内容,bar 是替换后的内容,g是全局替换, zl.txt是要操作的目标文件) 支持正则匹配规则,特殊字符需\转义; sed -E 是指忽略大小写; sed -i.bak 是备份原文件

awk

文本分析,逐行处理数据的工作

awk '{print $1}' zl.csv (提取每一行的第一个字段,默认csv是以空格或制表符分隔); awk -F ',' '{print $1}' zl.csv,表示zl.csv以,分隔 '{$pirnt $0}' 表示整行,$1至$n对应名列

head

显示文件头部

head -n 10 zl.log

tail

显示文件尾部

tail -f app.log (用的最多,实时追踪日志)

vim/nano

文件编辑

vim application.yml

三、进程管理

命令

作用

示例

ps

查看进程状态

ps -ef|grep java ps aux|grep java ( 结果更细)

top

实时进程监控

top

kill

终止进程

kill -9 1234 kill -SIGUSR1 39900(mongo 的进程号,可以将大日志不停服的按日期切分中,重新生成新日志,用于日志太大无法打开和查看)

nohup

后台运行程序

nohup python app.py & 有些命令当前绘话运行,但如果希望退出绘话也可能远行,就可以用到这个后台运行的命令

四 网络与调试

命令

作用

示例

curl

http请求工具

curl -X POST http://api.com curl -X POST -H "Content-Type: application/json" -d '{"type":"station","command":1,"duration":10,"playText":"","uids":[33810,1111],"system":"生产集控"}' http://127.0.0.1:8060/xxxx/sendCancelAlarm

wget

下载文件

wget https://example.com/file.zip

ssh

远程登录

ssh user@192.168.1.100

scp

文件安全传输

scp file.txt user@host:/path

netstat

网络状态查看

netstat -antp netstat -tuln (查看监听端口)

ping

测试网络通否

ping www.baidu.com

telnet

测试端口联通性

telnet 192.168.1.1 8080

五、权限管理

命令

作用

示例

chmod

修改文件权限

chmod 777 script.sh

chown

修改文件所有者

chown appuser:group nginx.conf

sudo

以管理员权限执行命令

sudo mv a.txt /usr/local/a.txt

su

切换用户

su - root

六 系统信息

命令

作用

示例

df

磁盘空间使用

df -lh

du

目录空间占用

du -sh * du -h --max-depth=1 /data |sort -hr |head -n 10 du -h:以G计算磁盘目录 --max-depth=1:限制只显示指定目录下的一级子目录大小(可以去掉这个参数) sort -hr:按G从大到小排序; head -n 10: 输出前10行

free

内存使用情况

free -m (MB单位)

uname

系统信息

uname -a

date

显示/设置日期

date "+%Y-%m-%d %H:%M:%S"

七、其它

命令

作用

示例

|

管道符(即前一个命令的输出做为后一个命令的输入)

cat app.log| grep "error" |wc -l (统计错误行数)

>或>>

重定向

echo “hello” >zl.log (覆盖写入) echo "hello" >>(追加写入)

history

查看历史命令(偷学命令最佳典范)

history | grep nginx (查看历史执行过的nginx相关命令)

python

临时开一个端口

python -m SimpleHTTPServer 8090(临时开一个端口,用于测试端口联通性)

就这些吧,要下雨了,下班回家,想起来哪些好用的再补充给大家,希望对大家有所帮助

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档