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