为什么要学命令行?

Linux服务器没有图形界面,所有操作都要用命令行。掌握这30个命令,90%的日常操作都能搞定。


文件操作

ls - 列出文件

1
2
3
4
5
ls                          # 列出当前目录文件
ls -l # 详细信息(权限、大小、时间)
ls -a # 显示隐藏文件(以.开头)
ls -la # 详细+隐藏
ls /path/to/directory # 列出指定目录

cd - 切换目录

1
2
3
4
5
cd /                        # 进入根目录
cd ~ # 进入家目录
cd .. # 返回上一级
cd - # 返回上一次所在目录
cd /path/to/directory # 进入指定目录

pwd - 显示当前目录

1
pwd                         # 显示完整路径

mkdir - 创建目录

1
2
3
mkdir mydir                 # 创建单个目录
mkdir -p a/b/c # 递归创建多级目录
mkdir -m 755 mydir # 创建时设置权限

rm - 删除文件/目录

1
2
3
4
rm file.txt                 # 删除文件
rm -f file.txt # 强制删除(不提示)
rm -r mydir # 删除目录
rm -rf mydir # 强制递归删除(危险!)

注意rm -rf 删后无法恢复,谨慎使用!

cp - 复制

1
2
3
cp file1.txt file2.txt      # 复制文件
cp -r dir1 dir2 # 递归复制目录
cp file.txt /path/to/dest/ # 复制到指定目录

mv - 移动/重命名

1
2
mv old.txt new.txt          # 重命名
mv file.txt /path/to/dest/ # 移动文件

查看文件

cat - 查看全部内容

1
2
cat file.txt                # 显示全部
cat -n file.txt # 显示行号

less - 分页查看

1
2
less file.txt               # 打开文件
# 按 `q` 退出,`j` 下行,`k` 上行,`/关键词` 搜索

head/tail - 查看头部/尾部

1
2
3
4
head file.txt               # 前10行
head -n 20 file.txt # 前20行
tail file.txt # 后10行
tail -f file.txt # 实时查看(看日志常用)

搜索命令

find - 查找文件

1
2
3
4
find / -name "filename"     # 在根目录查找
find /path -type f # 只查找文件
find /path -type d # 只查找目录
find /path -size +100M # 查找大于100M的文件

grep - 搜索文本

1
2
3
4
grep "关键词" file.txt      # 在文件中搜索
grep -r "关键词" /path # 递归搜索目录
grep -i "关键词" file.txt # 忽略大小写
grep -n "关键词" file.txt # 显示行号

系统信息

whoami - 当前用户

1
whoami                      # 显示当前用户名

uname - 系统信息

1
2
3
uname -a                    # 详细系统信息
uname -r # 内核版本
uname -m # 机器架构

df - 磁盘使用

1
2
df -h                       # 人类可读格式
df -h / # 指定目录

du - 目录大小

1
2
du -sh /path                # 目录总大小
du -h --max-depth=1 /path # 显示一级子目录大小

进程管理

ps - 查看进程

1
2
3
ps aux                      # 显示所有进程
ps -ef # 完整格式
ps aux | grep nginx # 搜索nginx进程

kill - 结束进程

1
2
3
kill PID                    # 正常结束
kill -9 PID # 强制结束
killall nginx # 结束所有nginx进程

systemctl - 服务管理

1
2
3
4
5
6
systemctl status nginx      # 查看服务状态
systemctl start nginx # 启动
systemctl stop nginx # 停止
systemctl restart nginx # 重启
systemctl enable nginx # 开机自启
systemctl disable nginx # 禁用开机自启

权限管理

chmod - 修改权限

1
2
3
chmod 755 file.txt          # rwxr-xr-x(所有者读写执行,其他人读执行)
chmod +x script.sh # 添加执行权限
chmod -w file.txt # 移除写权限

权限数字说明

  • 4 = 读(r)
  • 2 = 写(w)
  • 1 = 执行(x)

chown - 修改所有者

1
2
3
chown user file.txt         # 修改所有者
chown user:group file.txt # 修改所有者和组
chown -R user /path # 递归修改

其他常用

tar - 压缩解压

1
2
tar -czf archive.tar.gz /path    # 压缩
tar -xzf archive.tar.gz # 解压

wget - 下载文件

1
2
wget http://example.com/file.zip       # 下载
wget -O newname.zip http://xxx.zip # 另存为

history - 命令历史

1
2
history                     # 显示历史命令
!100 # 执行第100条命令

总结

30个命令记住分类:

  • 文件操作:ls, cd, pwd, mkdir, rm, cp, mv
  • 查看文件:cat, less, head, tail
  • 搜索:find, grep
  • 系统信息:whoami, uname, df, du
  • 进程管理:ps, kill, systemctl
  • 权限:chmod, chown
  • 其他:tar, wget, history

下一篇:文件权限管理。