Linux 常用命令手册
指南更适合现代Linux发行版(如 CentOS 7+/Ubuntu 18.04+)
1. 基本导航与查看
| 命令 | 说明 | 备注 |
|---|---|---|
pwd |
打印当前工作目录的完整路径。 | |
ls |
列出当前目录的内容。 | |
ls -lrt |
以长列表格式列出,按修改时间反向排序(最新在最下)。 | 常用组合 |
cd [目录路径] |
切换到指定目录。 | |
cd 或 cd ~ |
返回当前用户的家目录(如 /root 或 /home/用户名)。 |
|
cd .. |
返回上一级目录。 | |
cd / |
切换到根目录。 | |
./ |
代表当前目录,常用于执行当前目录下的脚本(如 ./script.sh)。 |
2. 目录与文件操作
创建
bash
mkdir dir_name# 在当前目录创建新文件夹
mkdir -p /path/to/dir# 创建多级目录(父目录不存在则一并创建)
touch file_name# 创建新的空文件
删除
bash
rm file_name# 删除文件(会询问)
rm -f file_name# 强制删除文件(无提示)
rm -r dir_name# 递归删除目录及其内容(会询问)
rm -rf dir_name# **强制递归删除目录,极其危险,慎用!**
提示 :
rm -rf命令一旦执行,数据极难恢复。尤其在根目录或重要目录下使用时,务必再三确认路径。
移动与重命名
bash
mv source target# 移动文件或目录,也可用于重命名
提示 :与
rm一样,mv也会覆盖或删除已存在的目标文件,使用时请注意。
3. 文件编辑(vi/vim)
1.打开文件 :vi file_name 或 vim file_name(vim是vi的增强版)。
2.进入编辑模式 :按 i (插入)或 a (追加)。
3.退出编辑模式 :按 Esc 键。
4.保存与退出(命令模式):
:w- 保存。:wq或ZZ- 保存并退出。:q!- 不保存强制退出。
4. 文件内容查看
| 命令 | 说明 | 适用场景 |
|---|---|---|
cat file_name |
一次性显示全部文件内容。 | 小文件 |
less file_name |
分页查看文件内容,支持搜索(/向下,?向上)。 |
浏览大文件 |
tail -f file_name |
实时追踪文件末尾新增内容(监控日志)。 | 动态日志 |
tail -n 100 file_name |
查看文件最后100行。 | 日志尾部 |
head -n 50 file_name |
查看文件开头50行。 | 文件头部 |
grep 'keyword' file_name |
搜索文件中包含关键字的行。 | 过滤信息 |
| `grep -E '(A.*B | B.*A)' file` | 使用扩展正则匹配同时包含A和B的行。 |
Vim/less 内导航(命令模式或浏览模式):
G:跳转到文件末尾。gg:跳转到文件开头。$:跳转到行尾。^或0:跳转到行首。Ctrl + f:向下翻页。Ctrl + b:向上翻页。
5. 文件复制与传输
本地复制
bash
cp source_file dest_file# 复制文件
cp -r source_dir/ dest_dir/# 递归复制整个目录
远程传输(scp)
bash
# 从本地复制到远程
scp local_file user@remote_ip:/remote/dir/
scp -r local_dir/ user@remote_ip:/remote/dir/ # 复制目录
# 从远程复制到本地
scp user@remote_ip:/remote/file local_dir/
常用参数:
-P:指定远程SSH端口(注意是大写P,因为-p已被scp用于保留属性)。-r:递归复制目录。-v:显示详细传输信息。
6. 权限与用户管理
修改文件权限
bash
chmod 755 script.sh# 为用户添加执行权限的常用方式
chmod +x script.sh# 为所有用户添加执行权限
修改文件属主/属组
bash
chown user:group file_name# 更改文件所有者和组
chown -R user:group dir_name/# 递归更改目录及其内容
用户与组(需root权限)
bash
groupadd group_name# 创建用户组
useradd -G group_name username# 创建用户并加入附加组
passwd username# 为用户设置密码
usermod -d /new/home username# 修改用户的家目录
7. 进程管理
bash
ps -ef | grep process_name# 查看特定进程信息
kill -9 pid# 强制终止指定PID的进程
pkill -f process_name# 根据进程名终止进程
8. 网络与防火墙
查看网络信息
bash
ip addr show# 查看IP地址(推荐,现代命令)
ifconfig# 传统查看命令,可能需安装 net-tools
防火墙(不同系统差异大)
- CentOS 7+/RHEL 7+ (firewalld):
bash
firewall-cmd --zone=public --add-port=1010/tcp --permanent
firewall-cmd --reload
- 使用 iptables 的系统 :
编辑/etc/sysconfig/iptables(如果存在)并重启iptables服务(此方式已逐渐被淘汰)。
9. 系统信息与主机名
bash
hostname# 查看当前主机名
hostnamectl set-hostname new_name # (Systemd系统)永久修改主机名
uname -a# 查看内核及系统信息
free -h# 查看内存使用情况
df -h# 查看磁盘空间使用情况
du -sh dir_name# 查看目录占用空间大小
10. 查找文件
bash
find /path -name "*.log"# 按名称查找
find /path -type f -mtime -7# 查找7天内修改过的文件
locate file_name# 从数据库快速查找(需先运行 updatedb)
11. 打包与压缩
| 命令 | 说明 |
|---|---|
tar -czvf archive.tar.gz dir/ |
创建 .tar.gz 压缩包。 |
tar -xzvf archive.tar.gz |
解压 .tar.gz 压缩包。 |
tar -cjvf archive.tar.bz2 dir/ |
创建 .tar.bz2 压缩包。 |
tar -xjvf archive.tar.bz2 |
解压 .tar.bz2 压缩包。 |
zip -r archive.zip dir/ |
创建 .zip 压缩包。 |
unzip archive.zip |
解压 .zip 压缩包。 |
gzip file |
将文件压缩为 .gz(原文件会消失)。 |
gunzip file.gz |
解压 .gz 文件。 |
12. 环境变量与Java
1.编辑全局环境变量文件(通常为 /etc/profile 或用户家目录的 ~/.bashrc)。
2.在文件末尾添加:
bash
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # 请修改为你的实际路径
export PATH=$JAVA_HOME/bin:$PATH
3.使配置立即生效:source ~/.bashrc
4.验证:java -version, echo $JAVA_HOME
13. 软件安装与管理
- RPM包 (RedHat/CentOS):
bash
rpm -ivh package.rpm# 安装
rpm -e package_name# 卸载(谨慎,注意依赖)
- DPKG包 (Debian/Ubuntu):
bash
dpkg -i package.deb# 安装
dpkg -r package_name# 卸载
- 使用包管理器(推荐):
bash
# CentOS/RHEL/Fedora (yum/dnf)
yum install package_name
dnf install package_name
# Debian/Ubuntu (apt)
apt update
apt install package_name
14. 服务管理(Systemd系统)
bash
systemctl start service_name# 启动服务
systemctl stop service_name# 停止服务
systemctl restart service_name# 重启服务
systemctl status service_name# 查看服务状态
systemctl enable service_name# 设置开机自启