bash基本命令大全涵盖了文件操作、系统管理、文本处理、权限控制等多个方面,是Linux和Unix系统管理中最常用的命令行工具,以下从基础到进阶,详细介绍常用bash命令及其使用场景。

文件和目录操作
文件和目录是系统中最基本的元素,bash提供了丰富的命令来管理它们。ls
命令用于列出目录内容,常用选项包括-l
(显示详细信息)、-a
(显示隐藏文件)、-h
(以人类可读格式显示文件大小)。ls -lah
会以长格式、显示所有文件(包括隐藏文件)并以KB、MB等单位显示文件大小。cd
命令用于切换目录,cd ..
返回上一级目录,cd ~
进入用户主目录,cd -
在最近两次访问的目录间切换。
mkdir
用于创建目录,mkdir -p
可以递归创建多级目录,例如mkdir -p /tmp/test/a/b
会同时创建test、a、b三个目录。rmdir
只能删除空目录,而rm
命令功能更强大,rm -r
递归删除目录及其内容,rm -f
强制删除文件而不提示,rm -rf
需谨慎使用,会直接删除目录及所有文件且不提示。cp
命令用于复制文件或目录,cp -r
复制目录,cp -p
保留文件权限、时间戳等属性。mv
命令用于移动文件或重命名文件,例如mv old.txt new.txt
将文件重命名,mv /tmp/test /home/
将目录移动到home下。
touch
命令用于创建空文件或更新文件时间戳,例如touch newfile.txt
创建新文件,touch -a file.txt
仅更新访问时间。cat
用于查看文件内容,cat -n
显示行号,适合查看小文件。more
和less
用于分页查看大文件,less
功能更强大,支持向前翻页(按b键)、搜索(按/键)等操作。head
和tail
用于查看文件开头或结尾部分,head -n 10 file.txt
查看前10行,tail -f file.txt
实时跟踪文件内容变化(常用于日志监控)。
文本处理
bash的文本处理能力非常强大,常用命令包括grep
、sed
、awk
等。grep
用于文本搜索,grep "pattern" file.txt
在文件中搜索包含pattern的行,-i
选项忽略大小写,-r
递归搜索目录,-v
反选(输出不包含pattern的行)。grep -r "error" /var/log/
在日志目录中搜索包含error的行。

sed
(流编辑器)用于文本替换和编辑,sed 's/old/new/g' file.txt
将文件中所有old替换为new,-i
选项直接修改文件(如sed -i 's/old/new/g' file.txt
)。awk
用于文本分析和格式化,awk '{print $1}' file.txt
打印每行的第一列,-F
选项指定分隔符(如awk -F: '{print $1}' /etc/passwd
以冒号为分隔符打印用户名)。sort
用于排序,sort -n
按数字排序,-r
倒序排序,-k
指定按哪一列排序。uniq
用于去重,需配合sort
使用(如sort file.txt | uniq
),-c
选项显示重复次数。
系统信息和进程管理
uname
命令显示系统信息,uname -a
显示所有信息(内核版本、主机名等)。top
和htop
用于实时监控系统进程,top
按CPU占用排序,htop
以彩色界面显示,支持交互操作(如按k键终止进程)。ps
命令查看当前进程,ps aux
显示所有进程的详细信息,grep
结合使用可筛选特定进程(如ps aux | grep nginx
)。kill
和killall
用于终止进程,kill -9
强制终止进程,killall nginx
终止所有nginx进程。
df
和du
用于磁盘空间管理,df -h
显示各分区使用情况(以人类可读格式),du -sh /home
显示home目录的总大小。free
命令查看内存使用情况,-h
选项以GB、MB等单位显示。date
用于显示和设置系统时间,date "+%Y-%m-%d %H:%M:%S"
自定义时间格式。
权限管理
Linux通过权限位控制文件访问,chmod
修改权限,chmod 755 file.txt
设置所有者可读写执行、组用户和其他用户可读执行,r=4、w=2、x=1
。chown
修改文件所有者,chown user:group file.txt
同时修改所有者和所属组。su
和sudo
用于切换用户,su -
切换到root用户并加载root环境,sudo command
以管理员权限执行命令。

压缩和解压
tar
是常用的打包工具,tar -czvf archive.tar.gz /path/to/dir
打包并gzip压缩,-x
解压,-v
显示过程,-f
指定文件名。zip
和unzip
用于zip格式压缩,zip -r archive.zip /path/to/dir
递归压缩目录,unzip archive.zip
解压。
网络命令
ping
测试网络连通性,ping www.baidu.com
。ifconfig
和ip addr
查看网络接口信息,ip addr show eth0
查看指定网卡IP。netstat
和ss
查看网络连接,netstat -tuln
显示监听端口,ss -tuln
功能类似但更快。wget
和curl
用于下载文件,wget https://example.com/file.zip
,curl -O https://example.com/file.zip
。
常用快捷键
bash支持多种快捷键提高效率,Ctrl+C
终止当前命令,Ctrl+D
退出终端,Ctrl+R
搜索历史命令,Tab
自动补全命令或文件名,Ctrl+L
清屏。
相关问答FAQs
Q1: 如何查看一个文件的行数?
A1: 可以使用wc -l file.txt
命令,其中-l
选项表示统计行数。wc -l /etc/passwd
会显示该文件的行数。
Q2: 如何查找包含特定关键词的文件?
A2: 可以使用find
命令结合grep
,例如find /path/to/dir -type f -exec grep -l "keyword" {} \;
,其中-type f
表示查找文件,-exec grep -l "keyword"
表示在每个文件中搜索包含keyword的行并输出文件名。