Linux命令行是Linux系统的核心交互方式,掌握命令行操作能极大提升系统管理效率,以下从基础操作到进阶应用,详细解析Linux命令行的使用方法。
基本操作与快捷键
进入Linux命令行后,首先需要熟悉基本命令结构和快捷键,命令格式通常为“命令选项 参数”,例如ls -l /home中,ls是命令,-l是选项,/home是参数,常用快捷键包括:Ctrl+C终止当前命令、Ctrl+D退出终端、Tab自动补全命令或路径、Ctrl+R搜索历史命令、浏览命令历史,输入grep后按Tab,会自动补全为grep命令;输入cd Doc后按Tab,若存在唯一匹配目录(如Documents),会自动补全完整路径。
文件与目录管理
文件管理是命令行的核心操作,常用命令如下:
| 命令 | 选项 | 功能示例 |
|---|---|---|
ls |
-l(详细)、-a(隐藏文件) |
ls -la /:列出根目录所有文件,包含权限、大小等 |
cd |
无(返回家目录)、(上级目录) | cd /var/log:切换到日志目录;cd ..:返回上级目录 |
mkdir |
-p(递归创建) |
mkdir -p /tmp/test/a:创建多级嵌套目录 |
touch |
无 | touch file.txt:创建空文件或更新文件时间戳 |
cp |
-r(递归目录)、-i(覆盖提示) |
cp -r /tmp/test /home/:复制整个目录到home |
mv |
无 | mv old.txt new.txt:重命名;mv file.txt /tmp/:移动文件 |
rm |
-r(递归删除)、-f(强制) |
rm -rf /tmp/test:强制删除目录及其内容 |
find |
-name(按名)、-type(按类型) |
find / -name "*.log":查找所有.log文件 |
要查找/home目录下所有.txt文件并复制到/backup目录,可执行:find /home -name "*.txt" -exec cp {} /backup/ \;。
文本处理与编辑
Linux命令行擅长文本处理,常用工具包括cat、grep、sed、awk等:
- 查看文件:
cat file.txt(显示全文)、less file.txt(分页查看,支持q退出)、head -n 10 file.txt(查看前10行)、tail -f /var/log/syslog(实时查看日志更新)。 - :
grep "error" log.txt(过滤包含“error”的行)、grep -v "warning" log.txt(排除包含“warning”的行)。 - 编辑文本:
vi file.txt进入vim编辑器,按i进入插入模式编辑,按Esc后输入wq保存退出,q!强制退出不保存。 - 流处理:
echo "hello world" > file.txt(覆盖写入)、echo "append" >> file.txt(追加写入);sort file.txt | uniq(排序后去重);sed 's/old/new/g' file.txt(全局替换“old”为“new”)。
统计日志文件中“error”出现的次数:grep -c "error" /var/log/nginx/error.log。
系统监控与信息查询
- 系统信息:
uname -a(查看内核版本)、lscpu(CPU信息)、free -h(内存使用情况,-h以人类可读格式显示)、df -h(磁盘空间使用)。 - 进程监控:
ps aux(查看所有进程)、top(动态实时进程,按M按内存排序、P按CPU排序)、htop(增强版top,需安装)、kill -9 PID(强制终止进程)。 - 系统负载:
uptime(查看负载平均值,1/5/15分钟负载)、vmstat 1(每秒显示系统资源使用情况)。
查看占用CPU最高的3个进程:ps aux --sort=-%cpu | head -n 4(含表头共4行)。
网络配置与诊断
- 网络接口:
ip addr(或ifconfig)查看网卡IP,sudo dhclient eth0(动态获取IP)。 - 连通性测试:
ping www.baidu.com(测试网络连通性)、traceroute 8.8.8.8(跟踪路由路径)、mtr 8.8.8.8(结合ping和traceroute,更直观)。 - 端口与服务:
netstat -tuln(查看监听端口)、ss -tuln(更快的netstat替代)、curl -I www.baidu.com(查看HTTP响应头)。 - 文件传输:
scp file.txt user@remote:/path/(远程复制文件)、rsync -avz /local/ user@remote:/remote/(同步目录,-a归档、-v显示详情、-z压缩)。
检查本地80端口是否被占用:netstat -tuln | grep :80。
权限与用户管理
- 权限修改:
chmod 755 file.txt(数字法:所有者7=rwx,组5=r-x,其他5=r-x)、chmod u+x script.sh(符号法:给所有者添加执行权限)。 - 所有者修改:
chown user:group file.txt(修改文件所有者和所属组)、chown -R user /dir/(递归修改目录所有者)。 - sudo权限:
sudo visudo编辑/etc/sudoers文件,添加user ALL=(ALL) NOPASSWD: /usr/bin/apt,让用户无需密码执行apt命令。
软件安装与管理
不同发行版使用包管理器:
- Debian/Ubuntu:
sudo apt update(更新软件源)、sudo apt install nginx(安装nginx)、sudo apt remove nginx(卸载)。 - CentOS/RHEL:
sudo yum install httpd(安装Apache)、sudo dnf remove httpd(dnf是yum的升级版)。 - 通用工具:
snap install vscode(安装snap版VSCode)、flatpak install flathub org.mozilla.firefox(安装flatpak版Firefox)。
Linux命令行的高效性在于其灵活的组合能力,例如通过管道连接多个命令(cat file.txt | grep "error" | wc -l统计错误行数),结合脚本实现自动化任务,初学者可从ls、cd、cp等基础命令入手,逐步掌握文本处理和系统管理,善用man命令(如man grep)查看详细帮助文档,多实践才能熟练运用。
相关问答FAQs
Q1:Linux命令行中,如何快速查找包含特定内容的文件?
A:使用find命令结合grep,在/var/log目录下查找所有包含“error”的.log文件:find /var/log -name "*.log" -exec grep -l "error" {} \;。-name "*.log"限定文件类型,-exec grep -l "error" {} \;对每个找到的文件执行grep搜索(-l仅输出包含内容的文件名)。
Q2:如何查看当前系统运行的进程并按CPU占用率排序?
A:使用ps命令配合--sort选项。ps aux --sort=-%cpu,表示降序,%cpu为CPU占用率字段,或使用top命令后按P键(大写),即可按CPU使用率实时排序进程列表。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/17003.html