1. Linux基础指令入门指南
刚接触Linux系统的朋友总会对黑乎乎的终端窗口感到不知所措。作为从Windows转战Linux的老用户,我清楚地记得第一次面对命令行时的手足无措——那些看似简单的字母组合背后,藏着整个操作系统的力量。今天我们就来拆解最基础的Linux指令,这些命令就像乐高积木的基块,掌握了它们,你就能搭建出各种复杂的系统操作。
与图形界面不同,命令行操作具有精准、高效、可脚本化的特点。服务器管理员90%的工作都在终端完成,因为:
- 消耗资源极少(没有GUI开销)
- 可远程执行(通过SSH连接)
- 能批量自动化(编写shell脚本)
- 操作可追溯(历史命令记录)
2. 文件系统导航指令
2.1 pwd:定位你的当前位置
第一次打开终端时,你就像被蒙上眼睛放在迷宫中央。pwd(Print Working Directory)就是解开眼罩的命令:
bash复制$ pwd
/home/username
这个命令会显示你当前所在的绝对路径。注意:
- 路径以
/开头表示从根目录计算 - 家目录通常为
/home/用户名(root用户是/root) - 路径区分大小写(Documents和documents是不同的)
提示:在输错路径时,先用pwd确认当前位置,再规划后续路径
2.2 ls:查看目录内容
相当于Windows的资源管理器列表,ls命令有多种用法:
基础形式:
bash复制$ ls
Documents Downloads Music Pictures
进阶参数组合:
bash复制$ ls -lah
total 48K
drwxr-xr-x 12 user user 4.0K Jun 15 10:23 .
drwxr-xr-x 3 root root 4.0K May 20 09:12 ..
-rw------- 1 user user 896 Jun 14 18:23 .bash_history
drwxr-xr-x 2 user user 4.0K Jun 1 14:15 Documents
参数解析:
-l:长格式显示(权限、所有者、大小等)-a:显示隐藏文件(以.开头的文件)-h:人类可读的文件大小(自动转换KB/MB)--color:不同类型文件显示不同颜色
常见问题:
- 如果出现
ls: cannot open directory: Permission denied,表示当前用户没有读取权限 - 想查看特定目录内容:
ls /var/log而不用先cd过去
2.3 cd:切换工作目录
改变当前所在位置的命令,使用频率极高:
bash复制$ cd /usr/local/bin # 绝对路径跳转
$ cd ../.. # 向上移动两级
$ cd ~ # 快速回家目录
$ cd - # 返回上一个目录
路径导航技巧:
.表示当前目录(如./script.sh)..表示上级目录~是用户家目录的快捷方式-可以在两个目录间快速切换
踩坑记录:路径中有空格时要用引号包裹,如
cd "My Documents"
3. 文件操作基础指令
3.1 mkdir:创建目录
新建文件夹的命令,比右键新建更高效:
bash复制$ mkdir new_folder
$ mkdir -p project/{src,doc,test} # 一次性创建多级目录
实用参数:
-p:自动创建父目录(不会因上级目录不存在而报错)-m:设置目录权限(如mkdir -m 755 secure_dir)
3.2 touch:创建空文件
快速创建新文件的命令:
bash复制$ touch new_file.txt
$ touch file{1..5}.log # 批量创建file1.log到file5.log
隐藏功能:
- 更新文件时间戳(access/modify时间)
- 配合find命令批量创建:
find . -name "*.bak" -exec touch {} \;
3.3 cp:文件复制
文件复制的正确姿势:
bash复制$ cp source.txt destination/
$ cp -r dir1/ dir2/ # 递归复制目录
$ cp -v *.jpg /backup # 显示详细操作过程
关键参数:
-r:递归复制目录及其内容-i:覆盖前提示确认(防误操作)-u:只复制更新的文件(增量备份)-p:保留原文件属性(权限、时间等)
3.4 mv:移动/重命名
兼具移动和重命名功能的命令:
bash复制$ mv old_name.txt new_name.txt # 重命名
$ mv file.txt /target/dir/ # 移动文件
$ mv *.png ~/Pictures/ # 批量移动
注意事项:
- 跨磁盘移动实际是"复制+删除"操作
- 没有回收站机制,覆盖即永久丢失
- 可用
-n参数禁止覆盖已有文件
3.5 rm:删除文件
危险但必要的命令,使用需谨慎:
bash复制$ rm temp.log # 删除单个文件
$ rm -rf old_project/ # 强制删除整个目录
安全建议:
- 先用
ls确认要删除的文件 - 重要文件先用
-i参数交互式删除 - 可以建立
alias rm='rm -i'防止误删 - 考虑使用
trash-cli替代直接删除
4. 文件内容查看指令
4.1 cat:快速查看文件
最简单的文件内容查看方式:
bash复制$ cat /etc/os-release
$ cat file1.txt file2.txt > combined.txt # 合并文件
适用场景:
- 查看小文件(不超过屏幕高度)
- 配合重定向进行文件合并
- 作为管道操作的输入源
4.2 less:分页查看器
查看大文件的正确方式:
bash复制$ less /var/log/syslog
操作指南:
- 空格:向下翻页
- b:向上翻页
- /keyword:搜索关键词
- q:退出查看器
- F:实时跟踪文件末尾(类似tail -f)
4.3 head/tail:查看首尾内容
快速预览文件头尾:
bash复制$ head -n 20 access.log # 显示前20行
$ tail -f /var/log/nginx/access.log # 实时监控日志
实用技巧:
- 默认显示10行
-f参数对监控日志文件特别有用- 结合管道可以提取特定行:
cat file | head -n 50 | tail -n 10
5. 系统信息查询指令
5.1 uname:系统信息
快速获取系统内核信息:
bash复制$ uname -a
Linux server1 5.4.0-135-generic #152-Ubuntu SMP Wed Nov 23 20:19:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
常用参数:
-s:内核名称(通常为Linux)-r:内核发行版本-m:硬件架构(x86_64/arm等)
5.2 df:磁盘空间检查
查看磁盘使用情况:
bash复制$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 15G 33G 32% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
参数说明:
-h:人性化显示大小单位-T:同时显示文件系统类型-i:查看inode使用情况
5.3 free:内存查看
检查内存和交换空间:
bash复制$ free -m
total used free shared buff/cache available
Mem: 7982 1523 4092 123 2366 6089
Swap: 2047 0 2047
关键指标:
- available:实际可用内存(含buff/cache)
- 当swap使用量持续增长时,说明物理内存不足
6. 用户与权限指令
6.1 sudo:超级用户权限
临时获取root权限的命令:
bash复制$ sudo apt update
$ sudo -i # 切换到root shell
安全实践:
- 不要滥用sudo权限
- 编辑sudoers文件使用
visudo命令 - 可以限制特定命令的sudo权限
6.2 chmod:修改文件权限
权限管理的基础命令:
bash复制$ chmod 755 script.sh
$ chmod +x backup.py # 添加执行权限
权限数字含义:
- 4:读权限(r)
- 2:写权限(w)
- 1:执行权限(x)
- 7=4+2+1(rwx),6=4+2(rw),5=4+1(rx)
6.3 chown:更改文件所有者
变更文件归属的命令:
bash复制$ sudo chown user:group file.txt
$ chown -R www-data:www-data /var/www/ # 递归修改
使用场景:
- 修复"Permission denied"错误
- Web服务器需要特定用户权限
- 文件共享时的权限调整
7. 网络相关指令
7.1 ping:网络连通性测试
最基础的网络诊断工具:
bash复制$ ping -c 4 google.com
PING google.com (142.250.190.46) 56(84) bytes of data.
64 bytes from fra16s48-in-f14.1e100.net (142.250.190.46): icmp_seq=1 ttl=117 time=12.3 ms
实用参数:
-c:指定发送包数量-i:设置发包间隔(秒)-w:设置超时时间(秒)
7.2 ifconfig/ip:网络接口配置
查看和配置网络接口:
传统方式:
bash复制$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
现代方式(推荐):
bash复制$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
7.3 netstat/ss:网络连接查看
检查系统网络连接状态:
传统netstat:
bash复制$ netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd
现代ss命令(更快):
bash复制$ ss -tulnp
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1234,fd=3))
8. 进程管理指令
8.1 ps:查看进程状态
系统进程快照:
bash复制$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 169316 13104 ? Ss Jun15 0:15 /sbin/init
user 1234 0.3 2.1 1023456 172304 ? Sl Jun15 10:23 /usr/lib/firefox/firefox
常用组合:
ps aux:查看所有用户的所有进程ps -ef:完整格式列表ps -u username:查看特定用户的进程
8.2 top/htop:实时进程监控
动态查看系统资源使用:
基础版:
bash复制$ top
增强版(推荐安装):
bash复制$ htop
htop操作技巧:
- F2:进入设置界面
- F3:搜索进程
- F4:过滤进程
- F9:杀死进程
- 空格:标记进程
8.3 kill:终止进程
结束进程的标准方式:
bash复制$ kill 1234 # 默认发送TERM信号
$ kill -9 1234 # 强制终止
$ pkill firefox # 按名称终止
信号说明:
- 1 (HUP):重新加载配置
- 9 (KILL):强制终止(无法捕获)
- 15 (TERM):优雅终止(默认)
9. 实用组合技巧
9.1 管道与重定向
命令协作的基础:
bash复制$ cat access.log | grep "404" | sort | uniq -c > 404_errors.txt
$ find /var/log -name "*.log" -type f -size +1M -exec ls -lh {} \; 2>/dev/null
典型应用:
>:覆盖输出到文件>>:追加到文件2>:重定向错误输出|:将一个命令的输出作为下一个的输入
9.2 命令历史与补全
提高效率的必备技能:
历史命令操作:
history:查看命令历史!123:执行历史记录中第123条命令!!:重复上一条命令Ctrl+R:反向搜索历史命令
Tab补全技巧:
- 输入部分命令/路径后按Tab自动补全
- 按两次Tab显示所有可能选项
- 在
cd命令中特别有用
9.3 别名设置
创建自己的快捷命令:
bash复制$ alias ll='ls -alF'
$ alias update='sudo apt update && sudo apt upgrade'
永久生效方法:
将别名添加到~/.bashrc文件中:
bash复制echo "alias ll='ls -alF'" >> ~/.bashrc
source ~/.bashrc
10. 安全操作建议
10.1 危险命令防范
这些命令要格外小心:
rm -rf /:删除整个系统:(){ :|:& };::fork炸弹mv / /dev/null:让根目录消失chmod -R 777 /:权限全开
防护措施:
- 重要操作前先备份
- 使用
-i交互参数 - 对root账户设置别名保护
- 考虑使用
safe-rm等替代工具
10.2 权限最小化原则
Linux安全的核心思想:
- 普通用户完成日常工作
- 仅必要时使用sudo
- 为特定命令授权而非全部
- 定期审查sudoers文件
检查自己的权限:
bash复制$ sudo -l
User user may run the following commands on host:
(ALL) /usr/bin/apt, /usr/bin/systemctl restart nginx
10.3 日志审查习惯
养成检查日志的好习惯:
常见日志位置:
/var/log/syslog:系统主日志/var/log/auth.log:认证相关/var/log/nginx/:Web服务器日志/var/log/mysql/:数据库日志
日志查看技巧:
bash复制$ sudo tail -f /var/log/syslog | grep -i error
$ journalctl -u nginx --since "2023-06-01" --until "2023-06-15"
掌握这些基础命令后,你已经可以完成Linux系统上80%的日常操作。建议先在测试环境中练习,逐步培养肌肉记忆。记住,每个Linux高手都是从这些简单命令开始积累的。