51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

我的Web生活宝典:Linux命令集

在分享了"我的Web生活宝典:CMD命令集"后,我觉得对于Linux用户来说,一个集中的Linux命令集同样很重要。因此,我决定再整理一份Linux命令集,以方便自己和大家随时查阅。

虽然这些命令可能不是每个人都会用到,但我认为,有备无患总是好的。即使在需要时网上一搜就可以轻松搜索到,但一份整理好的命令集能激发搜索灵感,帮助我们更快找到解决方案。

这个命令集的整合,首先是为了满足我个人的需求,我希望通过这种方式,能够快速地复制粘贴这些命令,而不是每次都要重新输入,这样既节省时间,又减少了出错的可能性。当然,如果它对你有所帮助,你也可以拿去食用。

注意:这些命令可能会因为系统版本有所差异,根据自己的实际情况进行调整即可。

1.系统常用命令

1.1.显示命令

查看或设置当前系统的时间:

date +%Y--%m--%d

设置当前系统的时间:

date -s "YYYY-MM-DD HH:MM:SS"

显示硬件时钟时间(需要管理员权限):

sudo hwclock

查看日历:

cal

显示特定月份的日历:

cal 月 年

例如,显示2024年8月的日历:

cal 8 2024

显示特定年份的日历:

cal -y 年

例如,显示2024年的日历:

cal -y 2024

查看系统运行时间:

uptime

1.2.输出查看命令

显示输入的内容:

echo "要显示的内容"

将内容追加到文件:

echo "liulang" >> liulang.txt

显示文件内容:

cat <文件名>

显示文件内容并逐页浏览:

cat <文件名> | more

将一个文件的内容追加到另一个文件:

cat <源文件名> >> <目标文件名>

合并多个文件为一个文件:

cat <文件1名> <文件2名> > <合并后的文件名>

显示文件的头几行:

head -n <行数> <文件名>

显示文件的末尾几行:

tail -n <行数> <文件名>

从文件的第N行开始显示到末尾:

tail +<行数> <文件名>

追踪显示文件更新:

tail -f <文件名>

逐页显示文件内容(只能向下翻页):

more <文件名>

翻页显示文件内容(支持上下翻页):

less <文件名>

将命令输出逐页显示:

<命令> | more

<命令> | less

例如,以长列表格式显示目录并以more逐页浏览:

ls -al /etc | more

或使用less浏览:

ls -al /etc | less

1.3.查看硬件信息

查看PCI设备:

lspci

查看PCI设备的详细信息:

lspci -v

查看USB设备:

lsusb

查看USB设备的详细信息:

lsusb -v

查看加载的模块(驱动):

lsmod

1.4.关机、重启

关闭计算机:

shutdown -h now

或使用:

poweroff

重启计算机:

shutdown -r now

或使用:

reboot

设定时间关闭计算机:

shutdown -h +时间

例如,10分钟后关闭计算机:

shutdown -h +10

设定特定时间关闭计算机(24小时制):

shutdown -h HH:MM

例如,23:30关闭计算机:

shutdown -h 23:30

1.5.归档、压缩

压缩文件为ZIP格式:

zip 压缩后的zip文件名 要压缩的文件名

例如,压缩yjvc文件:

zip yjvc2.zip yjvc

解压ZIP文件:

unzip 压缩文件名.zip

例如,解压yjvc.zip

unzip yjvc.zip

使用gzip压缩文件:

gzip 要压缩的文件名

例如,压缩test.txt文件:

gzip test.txt

归档文件:

tar -cvf 归档文件名 要归档的文件名

例如,将yjvc文件打包成out.tar归档:

tar -cvf out.tar yjvc

解压tar归档:

tar -xvf 归档文件名

例如,释放yjvc.tar归档:

tar -xvf yjvc.tar

创建并压缩tar归档文件(使用gzip):

tar -cvzf 压缩后的tar.gz文件名 要压缩的目录或文件

例如,压缩/etc目录并创建backup.tar.gz

tar -cvzf backup.tar.gz /etc

查看tar归档文件内容:

tar -tf 归档文件名

例如,查看test.tar中包含的文件:

tar -tf test.tar

将文件打包成tar归档并压缩(使用gzip):

tar -zcvf 压缩后的tar.gz文件名 *

例如,压缩当前目录下所有文件:

tar -zcvf test.tar.gz *

解压gzip压缩的tar归档:

tar -zxvf 压缩文件名.tar.gz

例如,解压foo.tar.gz

tar -zxvf foo.tar.gz

使用gzip压缩文件(不删除原文件):

gzip 要压缩的文件名

查看gzip压缩文件的压缩率:

gzip -l 压缩文件名.gz

例如,查看test.txt.gz的压缩率:

gzip -l test.txt.gz

1.6.查找

使用locate快速查找文件或文件夹:

locate 关键字

例如,查找包含"yjvc"的文件或文件夹:

locate yjvc

注意:locate命令依赖预先建立的数据库,可以通过updatedb命令手动更新数据库。

使用find命令查找文件或文件夹:

find 路径 -name 搜索模式

例如,查找当前目录下名称包含"yjvc"的文件:

find . -name '*yjvc*'

查找根目录下所有后缀为.conf的文件:

find / -name '*.conf'

查找所有权限为777的文件:

find / -perm 777

查找根目录下所有的目录:

find / -type d

查找当前目录下以"a"开头的文件,并列出它们的详细情况:

find . -name 'a*' -exec ls -l {} \;

搜索系统根目录下名为yjvc.conf的文件:

find / -name yjvc.conf

1.7.终止当前的命令

ctrl+c

1.8.查看某个目录中各级子目录所使用的硬盘空间数

du [参数] <目录名>

2.基本命令

显示机器的处理器架构:

uname -m

显示正在使用的内核版本:

uname -r

显示硬件系统部件信息(SMBIOS / DMI):

dmidecode -q

罗列一个磁盘的架构特性:

hdparm -i /dev/hda

在磁盘上执行测试性读取操作:

hdparm -tT /dev/sda

显示机器的处理器架构(另一种方式):

arch

显示CPU信息:

cat /proc/cpuinfo

显示中断信息:

cat /proc/interrupts

校验内存使用:

cat /proc/meminfo

显示哪些swap被使用:

cat /proc/swaps

显示内核的版本:

cat /proc/version

显示网络适配器及统计:

cat /proc/net/dev

显示已加载的文件系统:

cat /proc/mounts

罗列 PCI 设备:

lspci -tv

显示 USB 设备:

lsusb -tv

显示系统日期:

date

显示特定年份的日历表(例如:2024年):

cal 2024

设置日期和时间(格式为:月日时分年.秒):

date 080810312024.00

将时间修改保存到 BIOS:

clock -w

3.关机

立即关闭系统:

shutdown -h now

或使用:

init 0

或:

telinit 0

按预定时间关闭系统:

shutdown -h hours:minutes &

例如,1小时后关闭系统:

shutdown -h +1 &

取消按预定时间关闭系统:

shutdown -c

立即重启系统:

shutdown -r now

或使用:

reboot

注销当前会话:

logout

注意:logout通常用于注销当前会话,不一定是重启或关机命令。

4.备份

制作/home目录的完整备份:

dump -0aj -f /tmp/home0.bak /home

制作/home目录的交互式备份:

dump -1aj -f /tmp/home0.bak /home

还原交互式备份:

restore -if /tmp/home0.bak

同步/home/tmp目录:

rsync -rogpav --delete /home /tmp

通过SSH通道同步/home到远程/tmp

rsync -rogpav -e ssh --delete /home user@ip_address:/tmp

通过SSH和压缩将远程目录同步到本地目录:

rsync -az -e ssh --delete user@ip_addr:/home/public /home/local

通过SSH和压缩将本地目录同步到远程目录:

rsync -az -e ssh --delete /home/local user@ip_addr:/home/public

通过SSH在远程主机上备份本地磁盘:

dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz'

备份磁盘内容到文件:

dd if=/dev/sda of=/tmp/file1

执行对/home/user目录的交互式备份操作:

tar -Puf backup.tar /home/user

通过SSH在远程目录中复制本地目录内容:

( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p'

通过SSH在远程目录中复制本地/home目录:

( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p'

本地将目录复制到另一个地方,保留权限及链接:

tar cf - . | (cd /tmp/backup ; tar xf - )

从一个目录查找并复制所有以.txt结尾的文件:

find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents

查找所有以.log结尾的文件并做成bzip包:

find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2

将MBR内容复制到软盘:

dd if=/dev/hda of=/dev/fd0 bs=512 count=1

从软盘恢复MBR内容:

dd if=/dev/fd0 of=/dev/hda bs=512 count=1

5.文件搜索

find / -name file1

搜索属于用户user1的文件和目录:

find / -user user1

/home/user1目录中搜索以.bin结尾的文件:

find /home/user1 -name '*.bin'

搜索在过去100天内未被使用过的执行文件:

find /usr/bin -type f -atime +100

搜索在10天内被创建或修改过的文件:

find /usr/bin -type f -mtime -10

搜索以.rpm结尾的文件并设置其权限为755:

find / -name '*.rpm' -exec chmod 755 '{}' \;

搜索以.rpm结尾的文件,忽略可移动设备:

find / -xdev -name '*.rpm'

使用locate寻找以.ps结尾的文件(需先运行updatedb):

locate '*.ps'

显示二进制文件、源码或man的位置:

whereis halt

显示二进制文件或可执行文件的完整路径:

which halt

6.文件和目录

进入/home目录:

cd /home

返回上一级目录:

cd ..

返回上两级目录:

cd ../..

进入个人的主目录:

cd

进入用户user1的主目录:

cd ~user1

返回上次所在的目录:

cd -

显示当前工作路径:

pwd

查看目录中的文件:

ls

查看目录中的文件,以不同文件类型结尾标识:

ls -F

显示文件和目录的详细资料:

ls -l

显示包括隐藏文件在内的所有文件:

ls -a

显示包含数字的文件名和目录名:

ls *[0-9]*

显示文件和目录的树形结构:

tree

另一种显示文件和目录树形结构的工具:

lstree

创建名为dir1的目录:

mkdir dir1

同时创建两个目录dir1dir2

mkdir dir1 dir2

创建一个目录树:

mkdir -p /tmp/dir1/dir2

删除名为file1的文件:

rm -f file1

删除名为dir1的空目录:

rmdir dir1

删除目录dir1及其内容:

rm -rf dir1

同时删除两个目录及其内容:

rm -rf dir1 dir2

重命名/移动目录dir1new_dir

mv dir1 new_dir

复制文件file1file2

cp file1 file2

复制一个目录下的所有文件到当前工作目录:

cp dir/* .

复制目录/tmp/dir1到当前工作目录:

cp -a /tmp/dir1 .

复制目录dir1dir2

cp -a dir1 dir2

创建指向文件或目录的软链接lnk1

ln -s file1 lnk1

创建指向文件或目录的物理链接:

ln file1 lnk1

修改文件或目录的时间戳:

touch -t 0712250000 file1

输出文件的MIME类型:

file file1

列出已知的编码:

iconv -l

将文件从一种编码转换为另一种编码:

iconv -f fromEncoding -t toEncoding inputFile > outputFile

批量调整当前目录下所有.jpg文件的大小并发送到缩略图目录(需要Imagemagick的convert):

find . -maxdepth 1 -name '*.jpg' -print -exec convert "{}" -resize 80x60 "thumbs/{}" \;

7.列出目录内容

显示所有文件(包括隐藏文件):

ls -a

显示详细信息:

ls -l

递归显示子目录结构:

ls -R

显示目录和链接信息:

ls -ld

历史记录中搜索命令:

Ctrl+R

显示当前目录:

pwd

8.挂载一个文件系统

挂载一个叫做hda2的盘到指定目录:

mount /dev/hda2 /mnt/hda2

确保目录/mnt/hda2已经存在。

卸载一个叫做hda2的盘:

umount /dev/hda2

先从挂载点/mnt/hda2退出。

当设备繁忙时强制卸载:

fuser -km /mnt/hda2

运行卸载操作而不写入/etc/mtab文件:

umount -n /mnt/hda2

当文件为只读或磁盘写满时非常有用。

挂载一个软盘:

mount /dev/fd0 /mnt/floppy

挂载一个CD-ROM或DVD-ROM:

mount /dev/cdrom /mnt/cdrom

挂载一个CD-RW或DVD-ROM:

mount /dev/hdc /mnt/cdrecorder

或者使用:

mount /dev/hdb /mnt/cdrecorder

挂载一个文件或ISO镜像文件:

mount -o loop file.iso /mnt/cdrom

挂载一个Windows FAT32文件系统:

mount -t vfat /dev/hda5 /mnt/hda5

挂载一个USB磁盘或闪存设备:

mount /dev/sda1 /mnt/usbdisk

挂载一个Windows网络共享:

mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share

8.打包和压缩文件

解压一个叫做 'file1.bz2' 的文件:

bunzip2 file1.bz2

压缩一个叫做 'file1' 的文件:

bzip2 file1

解压一个叫做 'file1.gz' 的文件:

gunzip file1.gz

压缩一个叫做 'file1' 的文件:

gzip file1

最大程度压缩文件:

gzip -9 file1

创建一个叫做 'file1.rar' 的压缩包:

rar a file1.rar test_file

同时压缩 'file1', 'file2' 以及目录 'dir1':

rar a file1.rar file1 file2 dir1

解压 rar 压缩包:

rar x file1.rar

使用 unrar 解压 rar 压缩包:

unrar x file1.rar

创建一个非压缩的 tarball:

tar -cvf archive.tar file1

创建一个包含了 'file1', 'file2' 以及 'dir1' 的档案文件:

tar -cvf archive.tar file1 file2 dir1

显示一个包中的内容:

tar -tf archive.tar

释放一个包:

tar -xvf archive.tar

将压缩包释放到 /tmp 目录下:

tar -xvf archive.tar -C /tmp

创建一个 bzip2 格式的压缩包:

tar -cvfj archive.tar.bz2 dir1

解压一个 bzip2 格式的压缩包:

tar -xvfj archive.tar.bz2

创建一个 gzip 格式的压缩包:

tar -cvfz archive.tar.gz dir1

解压一个 gzip 格式的压缩包:

tar -xvfz archive.tar.gz

创建一个 zip 格式的压缩包:

zip file1.zip file1

将几个文件和目录同时压缩成一个 zip 格式的压缩包:

zip -r file1.zip file1 file2 dir1

解压一个 zip 格式压缩包:

unzip file1.zip

9.查看文件内容

从第一个字节开始正向查看文件的内容:

cat file1

从最后一行开始反向查看一个文件的内容:

tac file1

查看一个长文件的内容,支持分页浏览:

more file1

类似于 more 命令,但允许在文件中和正向操作一样的反向操作:

less file1

查看一个文件的前两行:

head -2 file1

查看一个文件的最后两行:

tail -2 file1

实时查看被添加到一个文件中的内容,例如系统日志文件:

tail -f /var/log/messages

10.文件系统分析

检查磁盘hda1上的坏磁块,并显示详细信息:

badblocks -v /dev/hda1

修复/检查hda1磁盘上Linux文件系统的完整性:

fsck /dev/hda1

此命令会根据系统自动检测文件系统类型。

修复/检查hda1磁盘上ext2文件系统的完整性:

fsck.ext2 /dev/hda1

使用e2fsck工具修复/检查hda1磁盘上ext2文件系统的完整性:

e2fsck /dev/hda1

修复/检查hda1磁盘上ext3文件系统的完整性,使用-j选项以支持journaling功能:

e2fsck -j /dev/hda1

修复/检查hda1磁盘上ext3文件系统的完整性:

fsck.ext3 /dev/hda1

修复/检查hda1磁盘上FAT文件系统的完整性:

fsck.vfat /dev/hda1

修复/检查hda1磁盘上MS-DOS文件系统的完整性:

fsck.msdos /dev/hda1

使用dosfsck工具修复/检查hda1磁盘上DOS文件系统的完整性:

dosfsck /dev/hda1

11.文本处理

使用管道、标准输入和标准输出进行文本操作的通用语法:

cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt

合并一个文件的详细说明文本,并将结果写入一个新文件中:

cat file1 | command(sed, grep, awk, etc.) > result.txt

合并一个文件的详细说明文本,并将结果追加写入一个已有的文件中:

cat file1 | command(sed, grep, awk, etc.) >> result.txt

在文件/var/log/messages中查找关键词"Aug":

grep Aug /var/log/messages

在文件/var/log/messages中查找以"Aug"开始的词汇:

grep ^Aug /var/log/messages

选择/var/log/messages文件中所有包含数字的行:

grep [0-9] /var/log/messages

在目录/var/log及其子目录中搜索字符串"Aug":

grep Aug -R /var/log/*

example.txt文件中的"string1"替换成"string2":

sed 's/stringa1/stringa2/g' example.txt

example.txt文件中删除所有空白行:

sed '/^$/d' example.txt

example.txt文件中删除所有注释和空白行:

sed '/ *#/d; /^$/d' example.txt

合并上下单元格内容:

echo 'esempio' | tr '[:lower:]' '[:upper:]'

从文件example.txt中排除第一行:

sed -e '1d' example.txt

查看只包含词汇"string1"的行:

sed -n '/stringa1/p'

删除每一行最后的空白字符:

sed -e 's/ *$//' example.txt

从文档中只删除词汇"string1"并保留剩余全部:

sed -e 's/stringa1//g' example.txt

查看从第一行到第5行内容:

sed -n '1,5p;5q' example.txt

查看第5行:

sed -n '5p;5q' example.txt

用单个零替换多个零:

sed -e 's/00*/0/g' example.txt

标示文件的行数:

cat -n file1

删除example.txt文件中的所有偶数行:

cat example.txt | awk 'NR%2==1'

查看一行第一栏:

echo a b c | awk '{print $1}'

查看一行的第一和第三栏:

echo a b c | awk '{print $1,$3}'

合并两个文件或两栏的内容:

paste file1 file2

合并两个文件或两栏的内容,中间用"+"区分:

paste -d '+' file1 file2

排序两个文件的内容:

sort file1 file2

取出两个文件的并集(重复的行只保留一份):

sort file1 file2 | uniq

删除交集,留下其他的行:

sort file1 file2 | uniq -u

取出两个文件的交集(只留下同时存在于两个文件中的行):

sort file1 file2 | uniq -d

比较两个文件的内容只删除file1所包含的内容:

comm -1 file1 file2

比较两个文件的内容只删除file2所包含的内容:

comm -2 file1 file2

比较两个文件的内容只删除两个文件共有的部分:

comm -3 file1 file2

12.磁盘空间

显示已经挂载的分区列表,并以易读的格式(如GB、MB)显示空间使用情况:

df -h

以尺寸大小排列文件和目录,并使用more进行分页显示:

ls -lSr | more

估算目录'dir1'已经使用的磁盘空间,并以易读的格式显示:

du -sh dir1

以容量大小为依据依次显示文件和目录的大小,使用sort进行逆序排序:

du -sk * | sort -rn

在类Fedora或RedHat系统中,以大小为依据依次显示已安装的rpm包所使用的空间:

rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n

在类Ubuntu或Debian系统中,以大小为依据显示已安装的deb包所使用的空间:

dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n

13.用户和群组

创建一个新用户组:

groupadd group_name

删除一个用户组:

groupdel group_name

重命名一个用户组:

groupmod -n new_group_name old_group_name

创建一个属于"admin"用户组的用户,指定用户的全名、主目录和登录shell:

useradd -c "Name Surname" -g admin -d /home/user1 -s /bin/bash user1

创建一个新用户:

useradd user1

删除一个用户及其主目录:

userdel -r user1

修改用户属性,包括用户的注释、所属组、主目录和登录shell:

usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1

修改当前用户的口令:

passwd

修改指定用户的口令,此命令需要root权限:

passwd user1

设置用户口令的失效期限:

chage -E 2005-12-31 user1

检查/etc/passwd文件的格式和语法,同时检查存在的用户:

pwck

检查/etc/passwd文件的格式和语法,同时检查存在的群组:

grpck

切换到一个新的用户组,以改变新创建文件的预设用户组:

newgrp group_name

14.文件的权限 使用 "+" 设置权限,使用 "-" 用于取消

显示文件权限等详细信息,并以易读的格式展示文件大小:

ls -lh

将终端输出划分成5栏显示:

ls /tmp | pr -T5 -W$COLUMNS

给所有人(所有用户、组和其他用户)设置对目录的读、写和执行权限:

chmod ugo+rwx directory1

删除群组和其他人对目录的读、写和执行权限:

chmod go-rwx directory1

改变文件的所有人属性为user1

chown user1 file1

递归地改变目录及其下所有文件的所有人属性为user1

chown -R user1 directory1

改变文件的群组属性为group1

chgrp group1 file1

改变文件的所有人和群组属性分别为user1group1

chown user1:group1 file1

罗列系统中所有使用了SUID(Set User ID upon execution)控制的文件:

find / -perm -u+s

设置一个二进制文件的 SUID 位,运行该文件的用户也被赋予和所有者同样的权限:

chmod u+s /bin/file1

禁用一个二进制文件的 SUID 位:

chmod u-s /bin/file1

设置一个目录的 SGID 位,类似SUID,但这是针对目录的:

chmod g+s /home/public

禁用一个目录的 SGID 位:

chmod g-s /home/public

设置一个文件的 STIKY 位,只允许合法所有人删除文件:

chmod o+t /home/public

禁用一个目录的 STIKY 位:

chmod o-t /home/public

为所有者、所属组和其他用户添加执行的权限:

chmod +x 文件路径

为所有者、所属组和其他用户删除执行的权限:

chmod -x 文件路径

为所有者添加执行的权限:

chmod u+x 文件路径

为所属组添加执行的权限:

chmod g+x 文件路径

为其他用户添加执行的权限:

chmod o+x 文件路径

为所有者、所属组添加执行的权限:

chmod ug+x 文件路径

为所有者、所属组和其他用户添加写、执行的权限,取消读权限:

chmod =wx 文件路径

为所有者、所属组添加写、执行的权限,取消读权限:

chmod ug=wx 文件路径

15.文件的特殊属性 ,使用 "+" 设置权限,使用 "-" 用于取消

只允许以追加方式读写文件,即只能向文件末尾添加内容,不能覆盖原有内容:

chattr +a file1

允许这个文件能被内核自动压缩/解压:

chattr +c file1

在进行文件系统备份时,dump程序将忽略这个文件:

chattr +d file1

设置成不可变的文件,不能被删除、修改、重命名或者链接:

chattr +i file1

允许一个文件被安全地删除,即文件被删除后,内容仍然保留在磁盘上,可以通过lsattr查看:

chattr +s file1

一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘:

chattr +S file1

若文件被删除,系统会允许你在以后恢复这个被删除的文件:

chattr +u file1

显示文件的特殊属性,如上述的追加(a)、压缩(c)、备份忽略(d)、不可变(i)、安全删除(s)、同步写入(S)、未分配(u)等:

lsattr

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

将一个文本文件的格式从MSDOS转换成UNIX:

dos2unix filedos.txt fileunix.txt

此命令将filedos.txt(使用DOS或Windows换行符的文件)转换为UNIX格式(使用LF作为换行符)的fileunix.txt

将一个文本文件的格式从UNIX转换成MSDOS:

unix2dos fileunix.txt filedos.txt

此命令将fileunix.txt(使用UNIX换行符的文件)转换为MSDOS格式(使用CRLF作为换行符)的filedos.txt

将一个文本文件转换成HTML:

recode ..HTML < page.txt > page.html

recode命令用于转换文件编码或格式,这里将page.txt文本文件转换为HTML格式并输出到page.html

显示所有允许的转换格式:

recode -l | more

recode -l列出所有可用的转换格式,通过管道传递给more命令进行分页显示。

17.初始化一个文件系统

hda1分区创建一个文件系统:

mkfs /dev/hda1

此命令会根据系统默认设置创建文件系统,具体类型可能根据系统配置而异。

hda1分区创建一个Linux ext2文件系统:

mke2fs /dev/hda1

此命令创建一个ext2文件系统,它是Linux系统中常用的文件系统类型之一。

hda1分区创建一个Linux ext3(日志型)文件系统:

mke2fs -j /dev/hda1

此命令添加了-j选项,用于创建一个带有日志功能的ext3文件系统,它提供了比ext2更高的数据完整性。

创建一个FAT32文件系统:

mkfs -t vfat 32 -F /dev/hda1

此命令使用mkfs命令的-t vfat选项指定文件系统类型为FAT32,32表示FAT32,-F选项用于强制格式化。

格式化一个软盘:

fdformat -n /dev/fd0

此命令用于格式化软盘,-n选项表示不验证软盘上是否有数据。

创建一个swap文件系统:

mkswap /dev/hda3

此命令将分区/dev/hda3格式化为交换空间(swap),用于扩展系统虚拟内存。

18.SWAP 文件系统

创建一个swap文件系统:

mkswap /dev/hda3

此命令将/dev/hda3分区格式化为swap空间,使其能够被系统用作虚拟内存。

启用一个新的swap文件系统:

swapon /dev/hda3

此命令激活/dev/hda3分区作为系统的交换空间。在执行此命令后,系统将开始使用该分区作为虚拟内存。

启用两个swap分区:

swapon /dev/hda2 /dev/hdb3

此命令同时激活/dev/hda2/dev/hdb3两个分区作为系统的交换空间。这可以在多个分区上分配交换空间,以提高系统处理大量数据的能力。

请注意,swapon命令通常在系统启动时通过/etc/fstab文件自动执行,您可以在该文件中设置swap空间,并让系统在启动时自动挂载它们。如果您需要临时启用或禁用swap空间,可以使用swaponswapoff命令。例如,要禁用/dev/hda3上的swap空间,可以使用以下命令:

swapoff /dev/hda3

19.光盘

清空一个可复写的光盘内容:

cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force

此命令使用cdrecord的多个选项来快速格式化可擦写光盘,并在完成后弹出光驱。

在磁盘上创建一个光盘的ISO镜像文件:

mkisofs /dev/cdrom > cd.iso

使用mkisofs创建光盘内容的ISO镜像,并将输出重定向到文件cd.iso

创建一个压缩了的光盘ISO镜像文件:

mkisofs /dev/cdrom | gzip > cd_iso.gz

创建光盘的ISO镜像并通过gzip进行压缩,然后输出到文件cd_iso.gz

创建一个目录的ISO镜像文件,包含多个选项设置:

mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd

此命令使用mkisofs的多个选项来创建目录data_cd的ISO镜像文件,包括设置卷标签、允许文件名以点开头等。

刻录一个ISO镜像文件到光盘:

cdrecord -v dev=/dev/cdrom cd.iso

使用cdrecord刻录ISO镜像文件cd.iso到光盘。

刻录一个压缩了的ISO镜像文件:

gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom -

先使用gzip解压缩cd_iso.gz,然后通过管道传递给cdrecord进行刻录。

挂载一个ISO镜像文件:

mount -o loop cd.iso /mnt/iso

使用mount命令的loop选项将ISO镜像文件cd.iso挂载到/mnt/iso目录。

从一个CD光盘转录音轨到wav文件中:

cd-paranoia -B

使用cd-paranoia命令的-B选项进行高质量抓轨。

使用参数-3从一个CD光盘转录音轨到wav文件中:

cd-paranoia -- "-3"

cd-paranoia命令的-3选项表示使用错误校正级别3。

扫描总线以识别SCSI通道:

cdrecord --scanbus

使用cdrecord--scanbus选项来扫描SCSI总线,以识别连接的设备。

校验一个设备的md5sum编码,例如一张CD:

dd if=/dev/hdc | md5sum

使用dd命令直接从设备/dev/hdc读取数据,并通过管道传递给md5sum来计算其MD5校验码。

20.RPM 包

安装一个rpm包:

rpm -ivh package.rpm

此命令安装名为package.rpm的RPM包,-i表示安装,-v表示详细模式,-h表示显示安装进度。

安装一个rpm包而忽略依赖关系警告:

rpm -ivh --nodeeps package.rpm

使用--nodeeps选项忽略依赖性检查。

更新一个rpm包但不改变其配置文件:

rpm -U package.rpm

-U选项用于更新包,如果包已安装,则更新它;如果未安装,则安装它。

更新一个确定已经安装的rpm包:

rpm -F package.rpm

-F选项仅用于已安装的包,它会替换现有文件。

删除一个rpm包:

rpm -e package_name

-e选项用于删除包。

显示系统中所有已经安装的rpm包:

rpm -qa

显示所有名称中包含 "httpd" 字样的rpm包:

rpm -qa | grep httpd

获取一个已安装包的特殊信息:

rpm -qi package_name

显示一个组件的rpm包:

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 -q package_name --scripts

显示一个rpm包的修改历史:

rpm -q package_name --changelog

确认所给的文件由哪个rpm包所提供:

rpm -qf /etc/httpd/conf/httpd.conf

显示由一个尚未安装的rpm包提供的文件列表:

rpm -qp package.rpm -l

导入公钥数字证书:

rpm --import /media/cdrom/RPM-GPG-KEY

确认一个rpm包的完整性:

rpm --checksig package.rpm

确认已安装的所有rpm包的完整性:

rpm -qa gpg-pubkey

检查文件尺寸、许可、类型、所有者、群组、MD5检查以及最后修改时间:

rpm -V package_name

检查系统中所有已安装的rpm包:

rpm -Va

确认一个rpm包还未安装:

rpm -Vp package.rpm

从一个rpm包运行可执行文件:

rpm2cpio package.rpm | cpio --extract --make-directories *bin*

从一个rpm源码安装一个构建好的包:

rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm

从一个rpm源码构建一个 rpm 包:

rpmbuild --rebuild package_name.src.rpm

21.deb 包

使用dpkg安装/更新一个.deb包:

dpkg -i package.deb

使用dpkg从系统删除一个.deb包:

dpkg -r package_name

显示系统中所有已经安装的.deb包:

dpkg -l

显示所有名称中包含 "httpd" 字样的.deb包:

dpkg -l | grep httpd

获得已经安装在系统中一个特殊包的信息:

dpkg -s package_name

显示系统中已经安装的一个.deb包所提供的文件列表:

dpkg -L package_name

显示尚未安装的一个包所提供的文件列表:

dpkg --contents package.deb

确认所给的文件由哪个.deb包提供:

dpkg -S /bin/ping

使用APT安装/更新一个.deb包:

apt-get install package_name

从光盘安装/更新一个.deb包:

apt-cdrom install package_name

升级列表中的软件包:

apt-get update

升级所有已安装的软件:

apt-get upgrade

从系统删除一个.deb包:

apt-get remove package_name

确认依赖的软件仓库正确:

apt-get check

从下载的软件包中清理缓存:

apt-get clean

返回包含所要搜索字符串的软件包名称:

apt-cache search searched-package

APT工具提供了更高级的包管理功能,包括自动解决依赖关系、更新软件包列表以及从互联网安装软件等。在使用APT命令时,通常不需要指定.deb文件的路径,因为APT会从配置的软件仓库中自动下载和安装。

22.网络(以太网和 WIFI 无线)

显示一个以太网卡的配置:

ifconfig eth0

启用一个名为eth0的网络设备:

ifup eth0

禁用一个名为eth0的网络设备:

ifdown eth0

eth0网卡设置静态IP地址和子网掩码:

ifconfig eth0 192.168.1.1 netmask 255.255.255.0

eth0设置为混杂模式以嗅探数据包:

ifconfig eth0 promisc

以DHCP模式启用eth0

dhclient eth0

显示路由表:

route -n

配置默认网关:

route add -net 0/0 gw IP_Gateway

配置静态路由以访问192.168.0.0/16网络:

route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1

删除静态路由:

route del 0/0 gw IP_gateway

激活IP路由功能:

echo "1" > /proc/sys/net/ipv4/ip_forward

显示系统的主机名:

hostname

将主机名解析为IP地址(或反向解析):

host www.example.com

使用nslookup工具解析主机名或IP地址:

nslookup www.example.com

显示所有接口的链接状态:

ip link show

显示eth0接口的链接状态:

mii-tool eth0

显示网络接口eth0的统计信息:

ethtool eth0

显示所有活动的网络连接及其进程ID:

netstat -tup

显示所有监听中的网络服务及其进程ID:

netstat -tupl

捕获所有TCP端口80的HTTP流量:

tcpdump tcp port 80

扫描并显示无线网络:

iwlist scan

显示无线网卡eth1的配置:

iwconfig eth1

再次显示系统的主机名(命令与上文重复):

hostname

再次将主机名解析为IP地址(命令与上文重复):

host www.example.com

再次使用nslookup工具解析主机名或IP地址(命令与上文重复):

nslookup www.example.com

在Whois数据库中查询域名信息:

whois www.example.com

23.YUM 软件包升级器

下载并安装一个rpm包:

yum install package_name

此命令使用yum从配置的仓库下载并安装名为package_name的包。

将安装一个rpm包,使用你自己的软件仓库解决所有依赖关系:

yum localinstall package_name.rpm

此命令安装一个已经下载的rpm包,并利用本地仓库解决依赖。

更新当前系统中所有安装的rpm包:

yum update

此命令更新系统中所有已安装的包到最新版本。

更新一个rpm包:

yum update package_name.rpm

此命令更新指定的rpm包。

更新一个已安装的包:

yum update package_name

此命令更新系统中已安装的名为package_name的包。

删除一个rpm包:

yum remove package_name

此命令从系统中删除名为package_name的包。

列出当前系统中安装的所有包:

yum list

此命令列出系统中所有已安装的包。

在rpm仓库中搜寻软件包:

yum search package_name

此命令在仓库中搜索包含package_name的包。

清理rpm缓存删除下载的包:

yum clean packages

此命令清理yum缓存,删除已下载的包文件。

删除所有头文件:

yum clean headers

此命令清理yum缓存中的所有头文件。

删除所有缓存的包和头文件:

yum clean all

此命令清理yum的所有缓存,包括包文件和头文件。

24.软件包管理命令(RPM)

软件包的安装:

rpm --ivh wu-ftpd-2.6.2-8.i386.rpm

软件包的删除:

rpm --e wu-ftpd

注意:这里必须使用软件名wu-ftpdwu-ftpd-2.6.2-8而不是使用当初安装时的软件包名.wu-ftpd-2.6.2-8.i386.rpm

软件包升级:

rpm --Uvh wu-ftpd-2.6.2-8.i386.rpm --Uvh:升级参数

软件包的更新:

rpm --Fvhwu-ftpd-2.6.2-8.i386.rpm -Fvh:更新参数

软件包的查询:

rpm --q wu-ftpd

查询软件包所安装的位置:

rpm --ql package-name

未完待续......

赞(1)
未经允许不得转载:工具盒子 » 我的Web生活宝典:Linux命令集