常用Linux 命令大全

1、基本命令

shutdown -h now 关闭系统(1)
init 0 关闭系统(2)
telinit 0 关闭系统(3)shutdown -h hours:minutes &按预定时间关闭系统shutdown-c 取消按预定时间关闭系统shutdown -r now 重启(1)reboot 重启(2)logout 注销

2、关机

shutdown -h now #关闭系统
init 0 #关闭系统
telinit 0 #关闭系统
shutdown -h hours:minutes & #按预定时间关闭系统
shutdown -c #取消按预定时间关闭系统
shutdown -r now #重启
reboot #重启
logout #注销

3、文件和目录

cd /home # 进入 '/home' 目录
cd .. # 返回上一级目录
cd ../.. # 返回上两级目录
cd # 进入个人的主目录
cd ~user1 # 进入 user1 的主目录
cd - # 返回上次所在的目录
pwd # 显示工作路径
ls # 查看目录中的文件
ls -F # 查看目录中的文件
ls -l # 显示文件和目录的详细资料
ls -a # 显示隐藏文件
ls *[0-9]* # 显示包含数字的文件名和目录名
tree # 显示文件和目录由根目录开始的树形结构(1)
lstree # 显示文件和目录由根目录开始的树形结构(2)
mkdir dir1 # 创建一个叫做 'dir1' 的目录
mkdir dir1 dir2 # 同时创建两个目录
mkdir -p /tmp/dir1/dir2 # 创建一个目录树
rm -f file1 # 删除一个叫做 'file1' 的文件
rmdir dir1 # 删除一个叫做 'dir1' 的目录
rm -rf dir1 # 删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2 # 同时删除两个目录及它们的内容
mv dir1 new_dir # 重命名/移动 一个目录
cp file1 file2 # 复制一个文件
cp dir/* . # 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . # 复制一个目录到当前工作目录
cp -a dir1 dir2 # 复制一个目录
ln -s file1 lnk1 # 创建一个指向文件或目录的软链接
ln file1 lnk1 # 创建一个指向文件或目录的物理链接
touch -t 0712250000 file1 # 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
file file1 # outputs the mime type of the file as text
iconv -l # 列出已知的编码
iconv -f fromEncoding -t toEncoding inputFile > outputFile # 假设输入文件采用 fromEncoding 编码,将其转换为 toEncoding 编码并生成新文件
find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" ; # 批量调整当前目录中的文件大小,并将其发送到缩略图目录(需要 ImageMagick 的 convert 工具)

4、文件搜索

find / -name file1 # 从 '/' 开始进入根文件系统搜索文件和目录
find / -user user1 # 搜索属于用户 'user1' 的文件和目录
find /home/user1 -name \*.bin # 在目录 '/home/user1' 中搜索带有'.bin' 结尾的文件
find /usr/bin -type f -atime +100 # 搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 # 搜索在10天内被创建或者修改过的文件
find / -name \*.rpm -exec chmod 755 '{}' \; # 搜索以 '.rpm' 结尾的文件并定义其权限为755
find / -xdev -name \*.rpm # 搜索以 '.rpm' 结尾的文件,忽略光驱、U盘等可移动设备
locate \*.ps # 寻找以 '.ps' 结尾的文件 - 需先运行 'updatedb' 命令更新索引
whereis halt # 显示halt命令对应的二进制文件、源码或man手册的位置
which halt # 显示halt二进制文件或可执行文件的完整路径

5、挂载一个文件系统

mount /dev/hda2 /mnt/hda2 # 挂载hda2盘 - 需确保'/mnt/hda2'目录已存在
umount /dev/hda2 # 卸载hda2盘 - 需先从'/mnt/hda2'挂载点退出
fuser -km /mnt/hda2 # 当设备繁忙时强制卸载
umount -n /mnt/hda2 # 运行卸载操作而不写入/etc/mtab文件 - 适用于文件只读或磁盘写满的情况
mount /dev/fd0 /mnt/floppy # 挂载软盘
mount /dev/cdrom /mnt/cdrom # 挂载cdrom或dvdrom
mount /dev/hdc /mnt/cdrecorder # 挂载cdrw或dvdrom
mount /dev/hdb /mnt/cdrecorder # 挂载cdrw或dvdrom
mount -o loop file.iso /mnt/cdrom # 挂载ISO镜像文件
mount -t vfat /dev/hda5 /mnt/hda5 # 挂载Windows FAT32文件系统
mount /dev/sda1 /mnt/usbdisk # 挂载USB设备(如U盘、移动硬盘)
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share # 挂载Windows网络共享

6、磁盘空间

df -h # 显示已经挂载的分区列表(以人类可读的格式)
ls -lSr | more # 以尺寸大小升序排列文件和目录,并分页显示
du -sh dir1 # 估算目录 'dir1' 已经使用的磁盘空间(以人类可读的格式)
du -sk * | sort -rn # 以容量大小为依据降序显示当前目录下所有文件和目录的大小(单位:KB)
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n # 以大小为依据升序显示已安装的rpm包所使用的空间(适用于fedora、redhat类系统)
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n # 以大小为依据升序显示已安装的deb包所使用的空间(适用于ubuntu、debian类系统)

7、用户和群组

groupadd group_name # 创建一个新用户组
groupdel group_name # 删除一个用户组
groupmod -n new_group_name old_group_name # 重命名一个用户组
useradd -c "Name Surname" -g admin -d /home/user1 -s /bin/bash user1 # 创建一个属于"admin"用户组的用户,指定家目录和默认shell
useradd user1 # 创建一个新用户(使用默认配置)
userdel -r user1 # 删除一个用户('-r'表示同时删除主目录)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 # 修改用户属性(注释、所属组、家目录、登录shell)
passwd # 修改当前用户的口令
passwd user1 # 修改指定用户的口令(仅root可执行)
chage -E 2005-12-31 user1 # 设置用户口令的失效期限
pwck # 检查'/etc/passwd'文件的格式和语法,并修正错误及检查存在的用户
grpck # 检查'/etc/group'文件的格式和语法,并修正错误及检查存在的群组
newgrp group_name # 登录到一个新的群组,以改变新创建文件的预设群组

8、文件的权限

ls -lh # 显示文件和目录的权限及详细信息(人类可读格式)
ls /tmp | pr -T5 -W$COLUMNS # 将终端划分成5栏显示/tmp目录内容

# 权限设置基础操作
chmod ugo+rwx directory1 # 设置目录的所有人(u)、群组(g)及其他人(o)拥有读(r)、写(w)和执行(x)权限
chmod go-rwx directory1 # 删除群组(g)与其他人(o)对目录的读写执行权限
chmod +x 文件路径 # 为所有者、所属组和其他用户添加执行权限
chmod -x 文件路径 # 为所有者、所属组和其他用户删除执行权限

# 针对特定用户的权限操作
chmod u+x 文件路径 # 为所有者添加执行权限
chmod g+x 文件路径 # 为所属组添加执行权限
chmod o+x 文件路径 # 为其他用户添加执行权限
chmod ug+x 文件路径 # 为所有者、所属组添加执行权限
chmod =wx 文件路径 # 为所有用户添加写、执行权限,取消读权限
chmod ug=wx 文件路径 # 为所有者、所属组添加写、执行权限,取消读权限

# 所有者与群组属性修改
chown user1 file1 # 改变一个文件的所有人属性
chown -R user1 directory1 # 递归改变目录及其中所有文件的所有人属性
chgrp group1 file1 # 改变文件的群组属性
chown user1:group1 file1 # 同时改变文件的所有人和群组属性

# SUID/SGID/STICKY位管理
find / -perm -u+s # 罗列系统中所有使用了SUID控制的文件
chmod u+s /bin/file1 # 设置二进制文件的SUID位(运行用户获得所有者权限)
chmod u-s /bin/file1 # 禁用二进制文件的SUID位
chmod g+s /home/public # 设置目录的SGID位(类似SUID,针对目录)
chmod g-s /home/public # 禁用目录的SGID位
chmod o+t /home/public # 设置目录的STICKY位(仅所有者可删除文件)
chmod o-t /home/public # 禁用目录的STICKY位

9、文件的特殊属性

使用 “+” 设置权限,使用 “-” 用于取消

chattr +a file1 # 只允许以追加方式读写文件
chattr +c file1 # 允许这个文件能被内核自动压缩/解压
chattr +d file1 # 在进行文件系统备份时,dump程序将忽略这个文件
chattr +i file1 # 设置成不可变的文件,不能被删除、修改、重命名或者链接
chattr +s file1 # 允许一个文件被安全地删除
chattr +S file1 # 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
chattr +u file1 # 若文件被删除,系统会允许你在以后恢复这个被删除的文件
lsattr # 显示文件的特殊属性

10、打包和压缩文件

(Fedora, Redhat及类似系统

## 一、RPM包安装与更新
rpm -ivh package.rpm # 安装一个rpm包
rpm -ivh --nodeeps package.rpm # 安装一个rpm包并忽略依赖关系警告
rpm -U package.rpm # 更新一个rpm包(不改变配置文件)
rpm -F package.rpm # 更新一个确定已安装的rpm包

## 二、RPM包查询
rpm -qa # 显示系统中所有已安装的rpm包
rpm -qa | grep httpd # 显示所有名称包含"httpd"的rpm包
rpm -qi package_name # 获取已安装包的详细信息
rpm -qg "System Environment/Daemons" # 显示指定组件的rpm包
rpm -ql package_name # 显示已安装rpm包提供的文件列表
rpm -qc package_name # 显示已安装rpm包提供的配置文件列表
rpm -q package_name --whatrequires # 显示与指定rpm包存在依赖关系的列表
rpm -q package_name --whatprovides # 显示指定rpm包提供的依赖
rpm -q package_name --scripts # 显示安装/删除期间执行的脚本
rpm -q package_name --changelog # 显示rpm包的修改历史
rpm -qf /etc/httpd/conf/httpd.conf # 确认指定文件由哪个rpm包提供
rpm -qp package.rpm -l # 显示尚未安装的rpm包提供的文件列表

## 三、RPM包验证与签名
rpm --import /media/cdrom/RPM-GPG-KEY # 导入公钥数字证书
rpm --checksig package.rpm # 确认rpm包的完整性
rpm -qa gpg-pubkey # 确认已安装的所有rpm包的完整性
rpm -V package_name # 检查文件尺寸、许可、类型、所有者等属性
rpm -Va # 检查系统中所有已安装的rpm包(谨慎使用)
rpm -Vp package.rpm # 确认rpm包尚未安装

## 四、RPM包卸载与高级操作
rpm -e package_name.rpm # 删除一个rpm包
rpm2cpio package.rpm | cpio --extract --make-directories *bin* # 从rpm包提取可执行文件
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm # 从源码安装构建好的rpm包
rpmbuild --rebuild package_name.src.rpm # 从rpm源码构建rpm包

12、YUM 软件包升级器

(Fedora, RedHat及类似系统)

yum install package_name # 下载并安装一个rpm包
yum localinstall package_name.rpm # 安装本地rpm包,通过软件仓库解决依赖关系
yum update # 更新当前系统中所有安装的rpm包
yum update package_name # 更新指定的一个rpm包
yum remove package_name # 删除一个rpm包
yum list # 列出当前系统中安装的所有包
yum search package_name # 在rpm仓库中搜寻软件包
yum clean packages # 清理rpm缓存,删除下载的包
yum clean headers # 删除所有头文件
yum clean all # 删除所有缓存的包和头文件

13、DEB 包

(Debian, Ubuntu 以及类似系统)

## 一、DEB包管理命令(dpkg)
dpkg -i package.deb # 安装/更新一个deb包
dpkg -r package_name # 从系统删除一个deb包
dpkg -l # 显示系统中所有已经安装的deb包
dpkg -l | grep httpd # 显示所有名称中包含"httpd"字样的deb包
dpkg -s package_name # 获得已安装的特定包的详细信息
dpkg -L package_name # 显示已安装的deb包提供的文件列表
dpkg --contents package.deb # 显示尚未安装的deb包提供的文件列表
dpkg -S /bin/ping # 确认指定文件由哪个deb包提供

## 二、APT软件工具命令(Debian、Ubuntu及类似系统)
apt-get install package_name # 安装/更新一个deb包
apt-cdrom install package_name # 从光盘安装/更新一个deb包
apt-get update # 升级软件包列表
apt-get upgrade # 升级所有已安装的软件
apt-get remove package_name # 从系统删除一个deb包
apt-get check # 确认依赖的软件仓库正确
apt-get clean # 清理下载的软件包缓存
apt-cache search searched-package # 搜索名称包含指定字符串的软件包

14、查看文件内容

cat file1 # 从第一个字节开始正向查看文件的内容
tac file1 # 从最后一行开始反向查看一个文件的内容
more file1 # 分页查看一个长文件的内容(仅正向浏览)
less file1 # 类似'more'命令,但支持正向和反向浏览文件内容
head -2 file1 # 查看一个文件的前两行
tail -2 file1 # 查看一个文件的最后两行
tail -f /var/log/messages # 实时查看文件新增内容(常用于日志监控)

15、文本处理

## 一、基础文本重定向与合并(cat)
cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt # 文本处理通用语法,结合管道(PIPE)、标准输入(STDIN)和标准输出(STDOUT)
cat file1 | command(sed, grep, awk, etc...) > result.txt # 处理文件内容,将结果写入新文件(覆盖原有内容)
cat file1 | command(sed, grep, awk, etc...) >> result.txt # 处理文件内容,将结果追加到已有文件末尾
cat -n file1 # 显示文件内容并标注每一行的行数

## 二、文本搜索(grep)
grep Aug /var/log/messages # 在文件'/var/log/messages'中查找关键词"Aug"
grep ^Aug /var/log/messages # 在文件'/var/log/messages'中查找以"Aug"开头的行
grep [0-9] /var/log/messages # 筛选'/var/log/messages'中所有包含数字的行
grep Aug -R /var/log/* # 在目录'/var/log'及子目录中递归搜索字符串"Aug"

## 三、文本编辑(sed)
sed 's/stringa1/stringa2/g' example.txt # 将example.txt中的"string1"全局替换为"string2"
sed '/^$/d' example.txt # 从example.txt中删除所有空白行
sed '/ *#/d; /^$/d' example.txt # 从example.txt中删除所有注释行(#开头)和空白行
sed -e '1d' result.txt # 从文件中排除第一行
sed -n '/stringa1/p' example.txt # 只显示包含词汇"string1"的行
sed -e 's/ *$//' example.txt # 删除每一行末尾的空白字符
sed -e 's/stringa1//g' example.txt # 从文档中删除所有"string1",保留其他内容
sed -n '1,5p;5q' example.txt # 查看文件第1行到第5行的内容
sed -n '5p;5q' example.txt # 只查看文件第5行的内容
sed -e 's/00*/0/g' example.txt # 用单个"0"替换文件中的连续多个"0"

## 四、字符转换与字段提取(tr/awk)
echo 'esempio' | tr '[:lower:]' '[:upper:]' # 将字符串从小写转换为大写
cat example.txt | awk 'NR%2==1' # 删除example.txt中的所有偶数行(保留奇数行)
echo a b c | awk '{print $1}' # 提取一行中的第一栏(字段)
echo a b c | awk '{print $1,$3}' # 提取一行中的第一栏和第三栏(字段)

## 五、文件合并(paste)
paste file1 file2 # 按行合并两个文件的内容(左右对应)
paste -d '+' file1 file2 # 按行合并两个文件,字段间用"+"分隔

## 六、文本排序与去重(sort/uniq)
sort file1 file2 # 合并并排序两个文件的内容
sort file1 file2 | uniq # 取两个文件的并集(重复行只保留1份)
sort file1 file2 | uniq -u # 删除两个文件的交集,保留仅在单个文件中存在的行
sort file1 file2 | uniq -d # 取两个文件的交集(只保留同时存在于两个文件中的行)

## 七、文件内容比较(comm)
comm -1 file1 file2 # 比较两个文件,只删除file1独有的内容
comm -2 file1 file2 # 比较两个文件,只删除file2独有的内容
comm -3 file1 file2 # 比较两个文件,只删除两个文件共有的内容

16、字符设置和文件格式转换

dos2unix filedos.txt fileunix.txt #将一个文本文件的格式从MSDOS转换成UNIX
unix2dos fileunix.txt filedos.txt #将一个文本文件的格式从UNIX转换成MSDOS
recode ..HTML < page.txt > page.html #将一个文本文件转换成html
recode -l | more #显示所有允许的转换格式

17、文件系统分析

一、磁盘坏块检查(badblocks)​
badblocks -v /dev/hda1 # 检查磁盘 hda1 上的坏磁块,-v 参数显示详细检查过程​
二、文件系统完整性修复(fsck 系列)​
1. 通用 /ext2 文件系统​
fsck /dev/hda1 # 修复 / 检查 hda1 磁盘上 Linux 文件系统的完整性(自动识别文件系统类型)​
fsck.ext2 /dev/hda1 # 修复 / 检查 hda1 磁盘上 ext2 文件系统的完整性​
e2fsck /dev/hda1 # 修复 / 检查 hda1 磁盘上 ext2 文件系统的完整性(ext2 专属修复工具)​
2. ext3 文件系统​
e2fsck -j /dev/hda1 # 修复 / 检查 hda1 磁盘上 ext3 文件系统的完整性(-j 识别 ext3 日志)​
fsck.ext3 /dev/hda1 # 修复 / 检查 hda1 磁盘上 ext3 文件系统的完整性​
3. FAT/DOS 文件系统​
fsck.vfat/dev/hda1 # 修复 / 检查 hda1 磁盘上 FAT 文件系统的完整性​
fsck.msdos/dev/hda1 # 修复 / 检查 hda1 磁盘上 DOS 文件系统的完整性​
dosfsck /dev/hda1 # 修复 / 检查 hda1 磁盘上 DOS 文件系统的完整性(DOS/FAT 专属修复工具)

18、初始化一个文件系统

mkfs /dev/hda1 #在hda1分区创建一个文件系统
mke2fs /dev/hda1 #在hda1分区创建一个linux ext2的文件系统
mke2fs -j /dev/hda1 #在hda1分区创建一个linux ext3(日志型)的文件系统
mkfs -t vfat 32 -F /dev/hda1 #创建一个 FAT32 文件系统
fdformat -n /dev/fd0 #格式化一个软盘
mkswap /dev/hda3 #创建一个swap文件系统

19、SWAP文件系统

mkswap /dev/hda3 #创建一个swap文件系统
swapon /dev/hda3 #启用一个新的swap文件系统
swapon /dev/hda2 /dev/hdb3 #启用两个swap分区

20、备份

### 一、目录备份命令
- dump -0aj -f /tmp/home0.bak /home 制作一个 '/home' #目录的完整备份
- dump -1aj -f /tmp/home0.bak /home 制作一个 '/home' #目录的交互式备份
- tar -Puf backup.tar /home/user 执行一次对 '/home/user' #目录的交互式备份操作


### 二、备份还原命令
- restore -if /tmp/home0.bak 还原一个 #交互式备份
- dd if=/dev/fd0 of=/dev/hda bs=512 count=1  #从已经保存到软盘的备份中恢复 MBR内容


### 三、磁盘与分区操作
- dd if=/dev/sda of=/tmp/file1 备份 #磁盘内容到一个文件
- dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz'  #通过ssh在 远程主机上执行一次备份本地磁盘的操作
- dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 #MBR (Master Boot Record)内容复制到软盘的动作


### 四、目录与文件同步/复制
- rsync -rogpav --delete /home /tmp 同步两边的 #目录
- rsync -rogpav -e ssh --delete /home ip_address:/tmp  #通过SSH通道 rsync
- rsync -az -e ssh --delete ip_addr:/home/public /home/local  #通过ssh和压缩将一个 远程目录同步到本地目录
- rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压缩将 #本地目录同步到远程目录
- ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p'  #通过ssh在 远程目录中复制一个目录内容
- ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p'  #通过ssh在 #远程目录中复制一个本地目录
- tar cf - . | (cd /tmp/backup ; tar xf - )  #本地将一个 目录复制到另一个地方,保留原有权限及链接
- find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents #从一个目录查找并复制所有以 '.txt' 结尾的 文件到另一个目录
- find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 #查找所有以 '.log' 结尾的 文件并做成一个bzip包

21、光盘

cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force # 清空可复写光盘的内容
mkisofs /dev/cdrom > cd.iso # 在磁盘上创建光盘的 ISO 镜像文件
mkisofs /dev/cdrom | gzip > cd_iso.gz # 在磁盘上创建光盘的压缩 ISO 镜像文件
mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd # 创建指定目录(data_cd)的 ISO 镜像文件
cdrecord -v dev=/dev/cdrom cd.iso # 刻录 ISO 镜像文件到光盘
gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - # 刻录压缩的 ISO 镜像文件到光盘
mount -o loop cd.iso/mnt/iso # 挂载 ISO 镜像文件到 /mnt/iso 目录
cd-paranoia -B # 从 CD 光盘中转录音轨到 WAV 文件
cd-paranoia -- "-3" # 从 CD 光盘中(带参数 - 3)转录音轨到 WAV 文件
cdrecord --scanbus # 扫描总线以识别 SCSI 通道(用于确认光盘设备)
dd if=/dev/hdc | md5sum # 校验设备(如 CD 光盘 /dev/hdc)的 MD5SUM 编码

22、网络

ifconfig eth0 # 显示以太网卡 eth0 的配置信息
ifup eth0 # 启用网络设备 eth0
ifdown eth0 # 禁用网络设备 eth0
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 # 为 eth0 配置 IP 地址(192.168.1.1)和子网掩码(255.255.255.0)
ifconfig eth0 promisc # 将 eth0 设置为混杂模式(用于数据包嗅探)
dhclient eth0 # 以 DHCP 模式启用 eth0(自动获取 IP 地址)
route -n # 显示路由表
route add -net 0/0 gw IP_Gateway # 配置默认网关(将 IP_Gateway 替换为实际网关 IP)
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 # 配置静态路由(访问 192.168.0.0/16 网段时,通过网关 192.168.1.1 转发)
route del 0/0 gw IP_Gateway # 删除默认静态路由(将 IP_Gateway 替换为实际网关 IP)
echo "1" > /proc/sys/net/ipv4/ip_forward # 启用 IP 路由转发功能
hostname # 显示系统主机名
host www.example.com # 解析主机名(将www.example.com转换为 IP 地址,或反向解析 IP 为域名)
nslookup www.example.com # 解析主机名(将www.example.com转换为 IP 地址,或反向解析 IP 为域名)
ip link show # 显示所有网络接口的链路状态
mii-tool eth0 # 显示网络设备 eth0 的链路状态
ethtool eth0 # 显示网卡 eth0 的统计信息
netstat -tup # 显示所有活跃的网络连接及其对应的进程 PID
netstat -tupl # 显示系统上所有监听的网络服务及其对应的进程 PID
tcpdump tcp port 80 # 抓取所有 TCP 80 端口的网络流量(即 HTTP 流量)
iwlist scan # 扫描周围可用的无线网络
iwconfig eth1 # 显示无线网卡 eth1 的配置信息
whois www.example.com # 在 Whois 数据库中查询域名www.example.com的注册信息

23、列出目录内容

ls -a # 显示当前目录下所有文件(包括以。开头的隐藏文件)
ls -l # 以长格式显示当前目录下文件的详细信息(含权限、大小、修改时间等)
ls -R # 递归显示当前目录及其所有子目录下的文件结构
ls -ld # 仅显示目录本身或链接文件的详细信息(不展示目录内内容)
ctrl+r # 快捷键:在命令历史记录中搜索命令(输入命令中任意字符即可匹配)
pwd # 显示当前所在的工作目录路径
(补充说明)# Linux 系统中,以英文句号 “.” 开头的文件或目录为隐藏文件 / 目录

24、查看文件的类型

file:查看文件的类型

25、复制文件目录等操作

- cp 源文件(文件夹)目标文件(文件夹) # 复制文件和目录
- cp -r 源文件夹 目标文件夹 # 递归复制整个目录树(复制文件夹必须使用)
- cp -v 源文件 目标文件 # 复制文件时显示详细信息
- touch 文件名 # 当文件不存在时创建文件;当文件存在时修改其创建时间(生成空文件或修改文件的存取/修改时间记录值)
- touch * # 将当前目录下所有文件的时间修改为系统当前时间
- touch -d 20040210 test # 将test文件的日期改为2004年2月10日
- touch abc # 若abc文件存在,则修改为系统当前时间;若不存在,则生成一个当前时间的空文件
- mv 文件 目标目录 # 移动文件到目标目录
- mv a.txt ../ # 将a.txt文件移动到上层目录
- mv a.txt b.txt # 将a.txt文件重命名为b.txt
- mv dir2 ../ # 将dir2目录上移一层
- rm 文件名 # 删除文件
- rm -i 文件名 # 交互式删除文件(删除前会询问确认)
- rm -r 文件夹名称 # 递归删除文件夹(空文件夹和非空文件夹都可删除)
- mkdir 文件夹名称 # 创建文件夹
- rmdir 文件夹名称 # 删除文件夹(只能删除空文件夹)
- mkdir -p dir1/dir2 # 连续创建多级目录(在当前目录下创建dir1,并在dir1下创建dir2)
- rmdir -p dir1/dir2 # 删除dir1下的dir2目录,若dir1目录为空则一并删除
- rm * # 删除当前目录下的所有文件(不包括目录)
- rm -f *.txt # 强制删除所有后缀名为txt的文件(不询问)
- rm -i * # 删除当前目录下所有文件时逐一询问(遇到目录会自动略过)
- rm -r test # 删除test目录及其包含的所有文件和子目录
- rm -r * # 删除当前目录下所有文件、所有子目录及子目录下的文件
- rm -rf test # 强行删除test目录及其内容,不进行询问
- grep 要找的字串 要寻找字串的源文件 # 在文件中搜索匹配的字符并输出结果
- grep linux test.txt # 在test.txt文件中搜索字符串"linux"并输出匹配内容
- ln 源文件或目录 目标文件或目录 # 在文件和目录之间建立链接(默认创建硬链接)
- ln -s /usr/share/do doc # 创建软链接文件doc,指向目录/usr/share/do
- ln /usr/share/test hard # 创建硬链接文件hard,指向文件/usr/share/test(增加一个指向该存储区域的文件)

26、系统常用命令

1、显示命令

date # 查看当前系统的时间(默认格式)
date +% Y--% m--% d # 以 “年 -- 月 -- 日” 的格式显示当前系统时间
date -s 时间值 # 设置当前系统的时间(例如 “date -s 2024-10-16 14:30” 设置为 2024 年 10 月 16 日 14 点 30 分)
hwclock # 显示硬件时钟时间(需管理员权限,也可使用 “clock” 命令,功能相同)
cal # 显示当前月份的日历
cal 4 2004 # 显示 2004 年 4 月份的日历
cal -y 2003 # 显示 2003 年一整年的日历
uptime # 查看系统当前的运行时间(含开机时长、用户数、系统负载等信息)

2、输出查看命令

echo "liuyazhuang" >> liuyazhuang.txt # 将字符串 “liuyazhuang” 追加到 liuyazhuang.txt 文件末尾
echo 内容 # 显示输入的指定内容(如 “echo hello” 会输出 “hello”)
cat test.txt # 显示 test.txt 文件的全部内容
cat test.txt | more # 逐页显示 test.txt 文件的内容(按空格翻页,按 Q 退出)
cat test.txt >> test1.txt # 将 test.txt 的内容附加到 test1.txt 文件之后(不覆盖原内容)
cat test.txt test2.txt > readme.txt # 将 test.txt 和 test2.txt 的内容合并,生成并写入 readme.txt 文件(覆盖原有内容)
head 文件名 # 显示文件的前 10 行内容(默认显示 10 行)
head -n 行数 文件名 # 显示文件的前指定行数内容(如 “head -5 test.txt” 显示 test.txt 前 5 行)
tail /etc/passwd # 显示 /etc/passwd 文件的最后 10 行内容(默认显示 10 行)
tail -n 行数 文件名 # 显示文件的最后指定行数内容(如 “tail -3 test.txt” 显示 test.txt 最后 3 行)
tail -f 文件名 # 追踪显示文件的实时更新内容(常用于查看日志,命令持续运行,按 Ctrl+C 退出)
tail -10 /etc/passwd # 显示 /etc/passwd 文件的倒数 10 行内容
tail +10 /etc/passwd # 显示 /etc/passwd 文件从第 10 行开始到末尾的所有内容
more 文件名 # 翻页显示文件内容(仅支持向下翻页,按空格翻页,按 Q 退出)
ls -al | more # 以长格式显示当前目录下所有文件,内容按页展示(满页暂停,空格继续,Q 退出)
less 文件名 # 翻页显示文件内容(支持上下键翻页,按 Q 退出)
ls -al | less # 以长格式显示当前目录下所有文件,支持上下键滚动浏览(按 Q 退出)

3、查看硬件信息

lspci # 查看系统中所有 PCI 设备(如显卡、网卡、声卡等)
lspci -v # 查看系统中所有 PCI 设备的详细信息(含设备型号、驱动等)
lsusb # 查看系统中已连接的所有 USB 设备(如 U 盘、鼠标、键盘等)
lsusb -v # 查看系统中已连接 USB 设备的详细信息(含设备 ID、厂商信息等)
lsmod # 查看当前系统中已加载的内核模块(即已启用的硬件驱动程序)

4、归档、压缩

zip liuyazhuang.zip myfile # 将 myfile 文件压缩为 liuyazhuang.zip(格式:zip 压缩后的文件名 原文件)
unzip liuyazhuang.zip # 解压 liuyazhuang.zip 压缩文件
gzip 文件名 # 压缩指定指定文件(压缩后原文件会被删除,生成.gz 后缀的压缩文件)
tar -cvf out.tar liuyazhuang # 将文件 "liuyazhuang" 打包成归档文件 out.tar(-c:创建新归档;-v:显示过程;-f:指定文件名)
tar -xvf liuyazhuang.tar # 释放 liuyazhuang.tar 归档文件(-x:解开归档)
tar -cvzf backup.tar.gz/etc # 将 /etc 目录打包并通过 gzip 压缩为 backup.tar.gz(-z:调用 gzip 压缩)
tar -cvf test.tar * # 将当前目录下所有文件打包成 test.tar(需手动添加.tar 扩展名)
tar -zcvf test.tar.gz * # 将当前目录下所有文件打包并通过 gzip 压缩为 test.tar.gz
tar -tf test.tar # 查看 test.tar 归档文件中包含的所有文件(-t:查看内容)
tar -xvf test.tar # 解开 test.tar 归档文件
tar -zxvf foo.tar.gz # 解压并解开 foo.tar.gz 压缩归档文件
gzip test.txt # 压缩 test.txt 文件(无需额外参数,压缩后生成 test.txt.gz)
gzip -l test.txt.gz # 显示 test.txt.gz 压缩文件的压缩率信息

6、查找

locate keyword # 快速查找名称包含 keyword 的文件或文件夹(需依赖预先建立的数据库)
updatedb # 手工建立或更新 locate 命令所需的数据库(默认每天自动更新)
find . -name liuyazhuang # 查找当前目录下名称中含有 "liuyazhuang" 的文件
find /-name *.conf # 查找根目录下(整个硬盘)所有后缀为.conf 的文件
find /-perm 777 # 查找系统中所有权限为 777 的文件
find /-type d # 返回根目录下所有的目录
find . -name "a*" -exec ls -l {} ; # 查找当前目录下名称以 "a" 开头的文件,并执行 ls -l 命令显示详细信息
find /-name httpd.conf # 搜索系统根目录下名为 httpd.conf 的文件
ctrl+c # 快捷键:终止当前正在执行的命令
who # 查看当前系统中登录的用户信息
w # 查看当前系统中登录的用户信息(比 who 更详细,包含用户活动)
dmesg # 显示系统诊断信息(包括操作系统版本、物理内存大小等)
df # 查看文件系统各分区的空间占用情况
du [参数] < 目录名 > # 查看指定目录中各级子目录所使用的硬盘空间
free # 查看系统内存及虚拟内存(交换空间)的大小和占用情况

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部