Linux常用命令行
一、文件系统操作
ls
- 列出目录内容
ls -lah /home # 查看/home目录的详细内容(含隐藏文件)
- `-l`:详细信息(权限、所有者、大小)
- `-a`:显示隐藏文件(以`.`开头的文件)
- `-h`:人性化显示文件大小(如KB/MB)
cd
- 切换目录
cd /var/log # 进入/var/log目录
cd .. # 返回上级目录
mkdir
- 创建目录/文件夹
mkdir -p project/{src,doc} # 创建project目录及其子目录src/doc
- `-p`:递归创建多级目录
cp
- 复制文件/目录
cp file.txt backup/ # 复制文件
cp -r config/ backup/ # 复制目录
- `-r`:递归复制目录
mv
- 移动/重命名文件
mv old.txt new.txt # 重命名文件
mv file.txt /tmp/ # 移动文件到/tmp
rm
- 删除文件/目录
rm file.txt # 删除文件
rm -rf old_dir/ # 强制删除目录(慎用!)
- `-r`:递归删除目录
- `-f`:强制删除(无确认提示)
pwd
- 查看当前目录路径touch/vim
-创建文件
touch aaa.txt:创建文件
vim a.txt:编辑、创建a.txt
czvf/xzvf
-压缩/解压文件
tar czvf tom.tar.gz /root:压缩文件
tar xzvf tom.tar.gz -C /root/aaa:解压文件
二、文本处理
grep
-匹配文本中关键词的搜索,不能查系统里的文件
grep "error" /var/log/syslog # 搜索包含"error"的行
grep -i "warning" file.log # 不区分大小写搜索
- `-i`:忽略大小写
- `-v`:反向匹配(排除关键词)
find
- 按照指定文件进行查找(信息匹配)查系统
find /etc -name "host*“ -print:查找host的文件
find /etc -name "*.txt" :查找.txt的文件
3. echo
- 输出重定向
echo “ddd” >aaa.txt:输出重定向,在aaa.txt文件里输入dddd
sed
- 流编辑器(文本替换/处理)
sed 's/foo/bar/g' file.txt # 替换文件中所有foo为bar
sed -i.bak 's/old/new/' file.txt # 直接修改文件并备份原文件
awk
- 文本分析工具
awk '{print $1}' access.log # 输出第一列(如IP地址)
awk -F: '{print $1}' /etc/passwd # 以冒号分隔,输出用户名
cat
- 查看文件内容
cat file.txt # 显示文件内容
cat file1.txt file2.txt > merged.txt # 合并文件
less
/more
- 分页查看文件
less /var/log/auth.log # 支持上下翻页和搜索
more large_file.log # 逐页显示(仅向下翻页)
head
/tail
- 查看文件的头部/尾部
head-n 10 /etc/passwd :查看文部
tail-n 10 /etc/passwd :查看尾部
tail-f /var/log/messages :tail -f +文件 查看日志
三、系统管理
sudo
- 以管理员权限执行命令
sudo apt update # 更新软件包列表
sudo systemctl restart nginx # 重启Nginx服务
top
/htop
- 实时进程监控
top # 显示CPU/内存使用情况
htop # 增强版(支持颜色和鼠标操作)
ps
- 查看进程状态
ps aux # 显示所有进程详细信息
ps aux | grep nginx # 过滤Nginx相关进程
free
- 显示内存和交换空间使用情况。
free -h # -h易读格式,-w显示完整列
kill
- 终止进程
kill 1234 # 终止PID为1234的进程
kill -9 1234 # 强制终止进程(无法捕获的信号)
df
- 查看磁盘空间
df -h # 显示所有挂载点的磁盘使用情况
- `-h`:人性化显示单位
du
- 查看目录/文件大小
du -sh /var/log # 查看/var/log目录的总大小
du -h --max-depth=1 /home # 显示/home下一级子目录的大小
reboot
- 重启init
- 关机、单用户、多用户、图形、重启
init 6 重启
init 0 关机
四、网络管理
ifconfig
/ip
- 查看/配置网络接口
ifconfig eth0 # 查看eth0接口信息
ip addr show # 显示所有网络接口
ping
- 测试网络连通性
ping google.com # 持续测试连通性
ping -c 4 8.8.8.8 # 发送4次探测包
netstat
/ss
- 查看网络连接
netstat -tuln # 显示所有监听端口
ss -tunlp # 显示TCP/UDP连接及进程信息
curl
/wget
- 下载文件/测试API
curl -O https://example.com/file.iso # 下载文件
wget http://example.com/file.zip # 同效
traceroute
- 追踪数据包路径
traceroute google.com # 显示数据包经过的路由节点
五、权限管理
chmod
- 修改文件权限
chmod 755 script.sh # 设置权限为rwxr-xr-x
chmod +x script.sh # 添加可执行权限
- 数字模式:`755`(rwxr-xr-x)
- 符号模式:`u+x`(给所有者添加执行权限)
chown
- 修改文件所有者
chown user:group file.txt # 修改所有者和所属组
su
- 切换用户
su - username # 切换用户并加载环境变量
who/whomi
- 查看用户/当前用户
六、软件管理
- APT(Debian/Ubuntu)
sudo apt update # 更新软件包列表
sudo apt install nginx # 安装Nginx
sudo apt remove nginx # 卸载Nginx(保留配置)
sudo apt purge nginx # 完全卸载(删除配置)
- YUM/DNF(RHEL/CentOS)
sudo yum check-update # 检查更新
sudo yum install httpd # 安装Apache
sudo yum remove httpd # 卸载Apache
七、实用组合技巧
- 查找并删除7天前的日志文件
find /var/log -name "*.log" -mtime +7 -exec rm {} \;
- 实时监控新增日志内容
tail -f /var/log/nginx/access.log
- 统计代码行数
find src/ -name "*.py" | xargs wc -l
- 快速创建大文件(测试用)
dd if=/dev/zero of=testfile bs=1M count=1024 # 生成1GB文件
八、危险命令警告
rm -rf /
- 递归强制删除根目录(系统毁灭性操作)dd if=/dev/sda
- 直接操作磁盘可能导致数据丢失:(){ :|:& };:
- Fork炸弹(快速耗尽系统资源)
学习建议
- 使用
man
查看命令手册(如man ls
) - 掌握
Tab
自动补全 和Ctrl+R
历史命令搜索 - 编写Shell脚本自动化重复任务
- linux命令行区分大小写,注意规范输入
- 使用
alias
简化常用命令:
alias ll='ls -alhF --color=auto'