linux的用法
功能 | 命令 | 常用参数 |
---|---|---|
查看文件内容 | cat , less , head , tail | -n , -f |
文件搜索 | find , grep | -name , -type , -r |
权限管理 | chmod , chown , sudo | -R , 755 |
进程管理 | ps , top , kill | aux , -9 |
网络工具 | curl , ping , ss | -O , -tuln |
文本处理 | sed , awk , grep | s/old/new/g , {print} |
二、文件与目录管理
1. 文件操作
-
cp
:复制文件或目录bash
cp file.txt backup/ # 复制文件到目录 cp -r dir1 dir2 # 递归复制目录(保留子目录结构) cp -v file1 file2 # 显示详细复制过程
-
mv
:移动或重命名bash
mv old.txt new.txt # 重命名文件 mv file.txt /tmp/ # 移动文件到/tmp目录 mv dir1/ dir2/ # 移动目录(若dir2存在,则dir1会进入dir2内)
-
rm
:删除文件或目录(⚠️ 慎用!)bash
rm file.txt # 删除文件 rm -rf dir/ # 强制递归删除目录(无确认,危险!)
-
touch
:创建空文件或更新文件时间戳bash
touch newfile.txt # 创建空文件 touch existing_file.txt # 更新文件的访问和修改时间为当前时间
2. 目录操作
-
mkdir
:创建目录bash
mkdir project # 创建单个目录 mkdir -p project/src/test # 递归创建多级目录(即使上级目录不存在)
-
rmdir
:删除空目录bash
rmdir empty_dir/ # 删除空目录(若目录非空会报错)
三、文件查看与搜索
1. 查看文件内容
-
cat
:显示整个文件内容bash
cat file.txt # 显示文件内容(适合小文件) cat file1.txt file2.txt # 合并显示多个文件
-
less
/more
:分页查看文件bash
less large_file.log # 上下翻页(按 `q` 退出,`/关键词` 搜索) more large_file.log # 仅支持向下翻页(逐渐被 less 替代)
-
head
/tail
:查看文件头部或尾部bash
head -n 5 file.log # 显示前5行 tail -n 10 file.log # 显示最后10行 tail -f /var/log/syslog # 实时追踪日志文件更新(调试神器)
2. 文件搜索
-
find
:按条件搜索文件bash
find /home -name "*.txt" # 在/home下搜索所有.txt文件 find . -type d -name "src" # 在当前目录搜索名为src的目录 find /var -size +10M # 搜索大于10MB的文件
-
grep
:在文件中搜索文本模式bash
grep "error" file.log # 查找包含"error"的行 grep -r "TODO" /project # 递归搜索目录中所有文件的"TODO" grep -i "warning" file.log # 忽略大小写搜索 grep -v "success" file.log # 反向匹配(显示不包含"success"的行)
四、权限与用户管理
1. 权限控制
-
chmod
:修改文件权限(读r
=4,写w
=2,执行x
=1)bash
chmod 755 script.sh # 权限:rwxr-xr-x(所有者可读写执行,其他用户读执行) chmod +x script.sh # 为所有用户添加执行权限 chmod u=rw,g=r,o= file.txt # 所有者读写,组用户读,其他用户无权限
-
chown
:修改文件所有者和所属组bash
chown user:group file.txt # 修改所有者和组 chown -R user:group dir/ # 递归修改目录及其子文件
2. 用户与组
-
sudo
:以超级用户权限执行命令bash
sudo apt update # 需要输入当前用户的密码 sudo -i # 切换到root用户(谨慎使用)
-
passwd
:修改用户密码bash
passwd # 修改当前用户密码 sudo passwd username # 修改其他用户密码(需root权限)
-
useradd
/userdel
:管理用户bash
sudo useradd -m alice # 创建用户并创建主目录 sudo userdel -r bob # 删除用户并删除主目录
五、系统监控与进程管理
1. 进程查看与控制
-
ps
:查看进程状态bash
ps aux # 显示所有进程的详细信息(CPU、内存占用) ps -ef | grep nginx # 结合管道过滤进程
-
top
/htop
:动态监控系统资源bash
top # 实时显示进程、CPU、内存(按 `P` 按CPU排序) htop # 更友好的交互式界面(需安装:`sudo apt install htop`)
-
kill
:终止进程bash
kill 1234 # 终止PID为1234的进程(默认发送SIGTERM信号) kill -9 1234 # 强制终止进程(SIGKILL信号)
2. 系统资源监控
-
df
:查看磁盘空间bash
df -h # 以易读格式(GB/MB)显示磁盘使用情况
-
free
:查看内存使用bash
free -h # 显示内存和交换分区使用情况
-
uptime
:查看系统运行时间与负载bash
uptime # 输出:系统运行时间、用户数、平均负载
六、网络相关命令
1. 网络配置与检测
-
ifconfig
/ip
:查看和配置网络接口bash
ip addr show # 显示所有网络接口的IP地址(推荐) ifconfig eth0 # 显示eth0接口的详细信息(传统命令)
-
ping
:测试网络连通性bash
ping 8.8.8.8 # 测试与Google DNS的连通性(按Ctrl+C停止)
-
curl
/wget
:下载文件或访问APIbash
curl -O https://example.com/file.zip # 下载文件 wget -c https://example.com/file.zip # 断点续传下载 curl -X GET "https://api.example.com" # 发送HTTP请求
2. 端口与连接管理
-
netstat
/ss
:查看网络连接和端口bash
ss -tuln # 显示所有监听的TCP/UDP端口(推荐) netstat -tuln # 传统命令(功能类似)
-
lsof
:列出打开的文件和网络连接bash
lsof -i :80 # 查看占用80端口的进程
七、软件包管理
1. Debian/Ubuntu (apt
)
-
更新与安装软件
bash
sudo apt update # 更新软件源列表 sudo apt install nginx # 安装软件 sudo apt remove nginx # 卸载软件(保留配置文件) sudo apt purge nginx # 彻底卸载(删除配置文件) sudo apt upgrade # 升级所有已安装的软件
2. Red Hat/CentOS (yum
/dnf
)
-
基础操作
bash
sudo dnf install httpd # 安装软件 sudo dnf update httpd # 更新指定软件 sudo dnf remove httpd # 卸载软件
3. Arch Linux (pacman
)
-
常用命令
bash
sudo pacman -Syu # 更新系统并升级所有软件 sudo pacman -S vim # 安装软件 sudo pacman -Rns vim # 卸载软件及其依赖
八、文本处理与管道
1. 文本处理三剑客
-
grep
:过滤文本bash
cat log.txt | grep "error" # 过滤包含"error"的行
-
sed
:流编辑器(替换、删除文本)bash
sed 's/foo/bar/g' file.txt # 将文件中的所有foo替换为bar sed -i.bak 's/old/new/' file # 直接修改文件并备份原文件(-i参数)
-
awk
:强大的文本分析工具bash
awk '{print $1}' file.txt # 打印每行的第一个字段 awk -F':' '{print $1}' /etc/passwd # 以冒号为分隔符,打印用户名
2. 管道 (|
) 与重定向
-
管道:将前一个命令的输出作为后一个命令的输入
bash
ps aux | grep chrome # 查找所有Chrome进程
-
重定向:控制输入/输出方向
bash
echo "Hello" > output.txt # 覆盖写入文件 echo "World" >> output.txt # 追加到文件末尾 ls nofile 2> error.log # 将错误信息重定向到error.log
九、Shell 脚本基础
1. 编写简单脚本
-
创建脚本文件(例如
hello.sh
):bash
#!/bin/bash echo "Hello, $USER!" # 输出当前用户
-
运行脚本:
bash
chmod +x hello.sh # 添加执行权限 ./hello.sh # 执行脚本
2. 变量与条件判断
-
变量赋值与使用
bash
name="Linux" echo "Welcome to $name!" # 输出:Welcome to Linux!
-
条件判断
bash
if [ -f "/path/to/file" ]; then echo "文件存在" else echo "文件不存在" fi
十、快速帮助
-
man
:查看命令手册bash
man ls # 查看ls的详细用法
-
--help
:快速查看选项bash
grep --help # 显示grep的简要帮助信息