Linux常用命令总结

文件操作

创建空文件

1
touch app.log

复制文件

1
cp config.example.json config.json

复制整个目录

1
cp -r /data/backup /data/backup_new

移动/重命名文件

1
mv old_name.txt new_name.txt

删除文件

1
rm app.log

强制删除文件

1
rm -f temp.txt

删除目录及内容

1
rm -rf old_project/

注意:rm -rf 加上根目录时很危险,操作前确认好路径。

创建软链接

1
ln -s /path/to/target link_name

目录操作

进入目录

1
cd /var/log

返回上级目录

1
cd ..

返回主目录

1
cd ~

返回上一个目录

1
cd -

创建目录

1
mkdir project

递归创建目录

1
mkdir -p /path/to/nested/dir

列出当前目录内容

1
ls

显示详细信息

1
ls -l

显示隐藏文件

1
ls -la

人性化显示大小

1
ls -lh

文件查看

查看整个文件

1
cat app.log

显示前20行

1
head -n 20 app.log

显示后50行

1
tail -n 50 app.log

实时追踪日志

1
tail -f app.log

搜索关键词

1
grep "ERROR" app.log

搜索并显示行号,忽略大小写

1
grep -n -i "error" app.log

递归搜索

1
grep -rn "password" ./config/

分页查看大文件

1
less app.log

统计行数

1
wc -l app.log

文件搜索

按名称查找

1
find . -name "*.log"

查找目录

1
find . -type d -name "node_modules"

按大小查找

1
find . -size +100M

按修改时间查找

1
find . -mtime -7

快速搜索(需updatedb)

1
locate nginx.conf

查找命令位置

1
which python

权限管理

修改权限

1
chmod 755 script.sh

添加执行权限

1
chmod +x start.sh

修改所有者

1
chown user:group app.py
数值 权限
777 rwxrwxrwx
755 rwxr-xr-x
644 rw-r–r–

用户和用户组

查看当前用户

1
whoami

切换用户

1
su - newuser

以管理员执行

1
sudo apt update

添加用户

1
useradd -m newuser

添加到用户组

1
usermod -aG docker username

进程管理

查看所有进程

1
ps aux

查找特定进程

1
ps aux | grep nginx

动态查看进程

1
top

更友好的进程监控

1
htop

终止进程

1
kill 1234

强制杀死进程

1
kill -9 1234

按名称终止进程

1
pkill nginx

后台运行

1
nohup ./script.sh &

网络命令

测试连通性

1
ping google.com

发送HTTP请求

1
curl https://api.example.com

远程连接

1
ssh user@server.com

远程复制文件

1
scp file.txt user@server:/path/

查看端口占用

1
netstat -tulnp

查看端口占用(新版)

1
ss -tulnp

查看指定端口占用

1
lsof -i:8080

系统管理

重启系统

1
sudo reboot

关机

1
sudo shutdown -h now

更新软件包

1
sudo apt update && sudo apt upgrade

安装软件(Ubuntu)

1
sudo apt install <package>

安装软件(CentOS)

1
sudo yum install <package>

查看磁盘使用

1
df -h

查看内存使用

1
free -h

查看系统负载

1
uptime

防火墙

查看防火墙状态(Ubuntu)

1
sudo ufw status

开放端口(Ubuntu)

1
sudo ufw allow 80/tcp

拒绝端口(Ubuntu)

1
sudo ufw deny 3306/tcp

启用防火墙(Ubuntu)

1
sudo ufw enable

查看所有规则(CentOS)

1
firewall-cmd --list-all

开放端口(CentOS)

1
firewall-cmd --permanent --add-port=8080/tcp

重载防火墙配置(CentOS)

1
firewall-cmd --reload

压缩解压

tar压缩

1
tar -czvf archive.tar.gz dir/

tar解压

1
tar -xzvf archive.tar.gz

zip压缩

1
zip -r archive.zip dir/

zip解压

1
unzip archive.zip

管道和重定向

管道组合命令

1
cat app.log | grep ERROR | tail -20

覆盖写入文件

1
echo "hello" > file.txt

追加写入文件

1
echo "world" >> file.txt

快捷键

快捷键 作用
Ctrl + C 终止命令
Ctrl + Z 暂停命令
Ctrl + L 清屏
Ctrl + R 搜索历史
Tab 自动补全
!! 执行上一条

常见场景

端口被占用

查看端口占用

1
netstat -tulnp | grep 8080

查看端口占用(lsof)

1
lsof -i:8080

杀死占用进程

1
kill -9 <PID>

服务管理

启动服务

1
sudo systemctl start nginx

停止服务

1
sudo systemctl stop nginx

重启服务

1
sudo systemctl restart nginx

查看服务状态

1
sudo systemctl status nginx

设置开机启动

1
sudo systemctl enable nginx

日志分析

统计错误数量

1
grep -c "ERROR" app.log

实时追踪错误

1
tail -f app.log | grep ERROR

统计访问量Top10

1
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10

数据库连接

连接MySQL

1
mysql -u root -p

连接Redis

1
redis-cli

连接PostgreSQL

1
psql -U user -d database

文件传输

上传到远程

1
scp file.txt user@server:/path/

从远程下载

1
scp user@server:/path/file.txt ./

同步目录

1
rsync -avz dir/ user@server:/path/