1. Linux基础指令概述
作为一名在Linux环境下工作多年的开发者,我深刻体会到掌握基础指令的重要性。Linux操作系统以其稳定性和灵活性著称,而命令行界面则是发挥其强大功能的核心入口。无论是系统管理员、开发人员还是普通用户,熟练使用基础指令都能极大提升工作效率。
Linux指令通常由命令本身、选项(option)和参数(argument)三部分组成。例如在ls -l /home这个命令中:
ls是列出目录内容的命令-l是长格式显示的选项/home是要查看的目录参数
提示:Linux是大小写敏感的系统,命令、选项和参数都需要注意大小写。例如
-a和-A可能是完全不同的选项。
2. 文件与目录操作指令
2.1 导航与查看
pwd(Print Working Directory)是最基础也最常用的命令之一,它能显示当前所在目录的完整路径。当你在复杂的目录结构中迷失时,这个命令能快速帮你定位。
ls命令用于列出目录内容,它有多个实用选项:
-l:以长格式显示,包含权限、所有者、大小等信息-a:显示所有文件,包括隐藏文件(以.开头的文件)-h:将文件大小以人类可读格式显示(如KB、MB)-t:按修改时间排序-r:反向排序
我经常使用的组合是ls -lath,它能显示详细的文件信息并按时间倒序排列,方便找到最新修改的文件。
cd(Change Directory)用于切换目录,有几个特殊用法值得记住:
cd ~:返回用户主目录cd ..:返回上级目录cd -:返回上一个工作目录
2.2 文件操作
cp命令用于复制文件或目录,基本语法是cp [选项] 源文件 目标文件。常用选项包括:
-r:递归复制目录及其内容-i:覆盖前提示确认-v:显示复制过程
mv命令兼具移动和重命名功能:
- 移动文件:
mv file.txt /path/to/destination/ - 重命名文件:
mv oldname.txt newname.txt
rm用于删除文件,需要特别注意:
-r:递归删除目录-f:强制删除,不提示- 危险组合:
rm -rf /会删除系统所有文件,绝对不要尝试
警告:Linux没有回收站机制,删除的文件通常无法恢复。建议初学者先使用
-i选项或设置别名alias rm='rm -i'。
touch命令有两个主要用途:
- 创建空文件:
touch newfile.txt - 更新文件时间戳:
touch existingfile.txt
2.3 目录管理
mkdir创建目录,常用选项:
-p:创建多级目录,如mkdir -p project/{src,test,docs}
rmdir删除空目录,要删除非空目录应使用rm -r
tree以树状图显示目录结构(可能需要安装):
$ tree -L 2 . ├── dir1 │ ├── file1 │ └── file2 └── dir2 ├── file3 └── file43. 文件内容查看与处理
3.1 查看文件内容
cat是最简单的文件内容查看命令,适合小文件:
cat file.txt:显示整个文件cat -n file.txt:显示行号
less和more适合查看大文件,支持分页浏览:
- 空格:向下翻页
- b:向上翻页
- /pattern:搜索
- q:退出
head和tail查看文件开头或结尾:
head -n 10 file.log:显示前10行tail -f file.log:实时追踪文件变化(常用于监控日志)
3.2 文本处理
grep是强大的文本搜索工具:
grep "error" logfile.txt:搜索包含"error"的行grep -i "warning":忽略大小写grep -r "function" /path/:递归搜索目录grep -v "debug":反向匹配,显示不包含"debug"的行
awk是强大的文本处理语言,基础用法:
awk '{print $1}' file.txt:打印每行第一个字段awk -F: '{print $1}' /etc/passwd:以冒号分隔并打印第一列
sed是流编辑器,常用于文本替换:
sed 's/old/new/g' file.txt:全局替换sed -i.bak 's/old/new/' file.txt:直接修改文件并创建备份
sort排序:
sort file.txt:按字母顺序排序sort -n:按数值排序sort -r:逆序排序
uniq去重(通常与sort配合使用):
sort file.txt | uniq -c:统计出现次数
wc统计:
wc -l file.txt:统计行数wc -w:统计单词数wc -c:统计字节数
4. 系统信息与进程管理
4.1 系统信息
uname显示系统信息:
uname -a:显示所有信息
df查看磁盘空间:
df -h:人类可读格式显示
du查看目录占用空间:
du -sh *:显示当前目录各子项大小du -h --max-depth=1:显示一级子目录大小
free查看内存使用:
free -h:人类可读格式
top和htop(需安装)实时显示系统状态和进程信息:
- 按q退出
- 按M按内存排序
- 按P按CPU排序
4.2 进程管理
ps查看进程:
ps aux:显示所有进程ps -ef | grep nginx:查找特定进程
kill终止进程:
kill -9 PID:强制终止进程
nohup使进程在退出终端后继续运行:
nohup command &
jobs查看后台作业:
fg %1:将作业1调到前台bg %2:将作业2放到后台继续运行
5. 网络相关指令
5.1 网络配置与测试
ifconfig或ip addr查看网络接口信息(现代系统推荐使用ip命令)
ping测试网络连通性:
ping -c 4 example.com:发送4个测试包
traceroute或tracepath追踪路由:
traceroute example.com
netstat或ss查看网络连接:
netstat -tulnp:查看监听端口ss -tulnp:更快的替代方案
curl和wget下载文件:
curl -O http://example.com/file.zipwget http://example.com/file.zip
5.2 SSH相关
ssh远程登录:
ssh user@hostssh -p 2222 user@host:指定端口
scp安全复制:
scp file.txt user@remote:/path/:上传scp user@remote:/path/file.txt .:下载
sftp安全文件传输:
sftp user@host- 交互式命令类似FTP
6. 权限与用户管理
6.1 文件权限
chmod修改权限:
- 数字模式:
chmod 755 file.sh - 符号模式:
chmod u+x file.sh
chown修改所有者:
chown user:group file.txt
umask设置默认权限掩码
6.2 用户与组
whoami显示当前用户
id显示用户信息
useradd和usermod管理用户
passwd修改密码
su和sudo切换用户或提权
7. 压缩与打包
tar是最常用的打包工具:
tar -cvf archive.tar files/:创建tar包tar -xvf archive.tar:解压tar -czvf archive.tar.gz files/:创建gzip压缩包tar -xzvf archive.tar.gz:解压gzip包
gzip和gunzip:
gzip file:压缩为file.gzgunzip file.gz:解压
zip和unzip:
zip archive.zip files/unzip archive.zip
8. 实用技巧与组合命令
8.1 命令组合
管道|将前一个命令的输出作为后一个命令的输入:
ps aux | grep nginx
重定向:
>:覆盖输出到文件>>:追加到文件2>:重定向错误输出
命令替换:
`command`或$(command)
8.2 实用技巧
alias创建命令别名:
alias ll='ls -alh'
history查看命令历史:
!number:执行历史中编号为number的命令!!:重复上一条命令!$:上一条命令的最后一个参数
find查找文件:
find / -name "*.conf":全盘查找.conf文件find . -mtime -7:查找7天内修改过的文件find /var/log -size +10M:查找大于10MB的文件
xargs将输入转换为参数:
find . -name "*.tmp" | xargs rm
watch定期执行命令:
watch -n 1 'df -h':每秒刷新磁盘使用情况
9. 环境变量与Shell配置
env显示环境变量
export设置环境变量:
export PATH=$PATH:/new/path
echo $VAR查看特定变量
source或.执行脚本文件:
source ~/.bashrc. ~/.profile
10. 进阶工具与技巧
vim或nano文本编辑器
cron定时任务:
crontab -e:编辑定时任务crontab -l:列出定时任务
rsync高效文件同步:
rsync -avz source/ user@host:destination/
screen或tmux终端复用器
man查看命令手册:
man lsman 5 passwd:查看第5节的手册(文件格式)
info查看GNU信息文档
whatis和apropos查找命令:
whatis lsapropos "list directory"
11. 个人经验分享
在实际工作中,我总结出几个提高效率的经验:
善用Tab补全:输入命令或路径时,按Tab键可以自动补全,按两次Tab显示所有可能选项。
命令历史搜索:按Ctrl+R可以反向搜索历史命令,避免重复输入长命令。
创建常用别名:在
~/.bashrc中添加常用命令的别名,例如:alias grep='grep --color=auto' alias ll='ls -alh' alias gs='git status'使用脚本自动化:将重复性工作写成Shell脚本,例如备份脚本:
#!/bin/bash backup_dir="/backup/$(date +%Y%m%d)" mkdir -p $backup_dir rsync -av /important/data/ $backup_dir/日志查看技巧:查看日志时,结合多个命令:
tail -f /var/log/nginx/error.log | grep -v "favicon.ico"安全操作习惯:
- 执行
rm命令前先确认路径 - 使用
-i选项或设置别名 - 重要操作前先备份
- 执行
学习资源推荐:
man手册是最权威的参考资料tldr命令提供简洁的用法示例(需安装)- 在线资源如Linux Documentation Project