常用Linux命令和讲解

本文全面介绍了Linux系统中的各种实用命令,包括系统信息查询、文件管理、用户管理、文件权限设置、打包压缩等,是Linux初学者和高级用户必备的参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统信息 

arch 显示机器的处理器架构(1) 

uname -m 显示机器的处理器架构(2) 

uname -r 显示正在使用的内核版本 

dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) 

hdparm -i /dev/hda 罗列一个磁盘的架构特性 

hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 

cat /proc/cpuinfo 显示CPU info的信息 

cat /proc/interrupts 显示中断 

cat /proc/meminfo 校验内存使用 

cat /proc/swaps 显示哪些swap被使用 

cat /proc/version 显示内核的版本 

cat /proc/net/dev 显示网络适配器及统计 

cat /proc/mounts 显示已加载的文件系统 

lspci -tv 罗列 PCI 设备 

lsusb -tv 显示 USB 设备 

date 显示系统日期 

cal 2007 显示2007年的日历表 

date 041217002007.00 设置日期和时间 - 月日时分年.秒 

clock -w 将时间修改保存到 BIOS 




关机 (系统的关机、重启以及登出 ) 

shutdown -h now 关闭系统(1) 

init 0 关闭系统(2) 

telinit 0 关闭系统(3) 

shutdown -h hours:minutes & 按预定时间关闭系统 

shutdown -c 取消按预定时间关闭系统 

shutdown -r now 重启(1) 

reboot 重启(2) 

logout 注销 




文件和目录 

cd /home 进入 '/ home' 目录' 

cd .. 返回上一级目录 

cd ../.. 返回上两级目录 

cd 进入个人的主目录 

cd ~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 creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding. 

find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" \; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick) 




文件搜索 

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' 结尾的文件并定义其权限 

find / -xdev -name \*.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备 

locate \*.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令 

whereis halt 显示一个二进制文件、源码或man的位置 

which halt 显示一个二进制文件或可执行文件的完整路径 




挂载一个文件系统 

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 捷盘或闪存设备 

mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享 




磁盘空间 

df -h 显示已经挂载的分区列表 

ls -lSr |more 以尺寸大小排列文件和目录 

du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间' 

du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小 

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类系统) 


返回顶部索引 ^


用户和群组 

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" 用户组的用户 

useradd user1 创建一个新用户 

userdel -r user1 删除一个用户 ( '-r' 排除主目录) 

usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性 

passwd 修改口令 

passwd user1 修改一个用户的口令 (只允许root执行) 

chage -E 2005-12-31 user1 设置用户口令的失效期限 

pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户 

grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组 

newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组 


返回顶部索引 ^


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

ls -lh 显示权限 

ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示 

chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限 

chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限 

chown user1 file1 改变一个文件的所有人属性 

chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性 

chgrp group1 file1 改变文件的群组 

chown user1:group1 file1 改变一个文件的所有人和群组属性 

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 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件 

chmod o-t /home/public 禁用一个目录的 STIKY 位 


返回顶部索引 ^


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

chattr +a file1 只允许以追加方式读写文件 

chattr +c file1 允许这个文件能被内核自动压缩/解压 

chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件 

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

chattr +s file1 允许一个文件被安全地删除 

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

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

lsattr 显示特殊的属性 


返回顶部索引 ^


打包和压缩文件 

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

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

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

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

gzip -9 file1 最大程度压缩 

rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包 

rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1' 

rar x file1.rar 解压rar包 

unrar x file1.rar 解压rar包 

tar -cvf archive.tar file1 创建一个非压缩的 tarball 

tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件 

tar -tf archive.tar 显示一个包中的内容 

tar -xvf archive.tar 释放一个包 

tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下 

tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包 

tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包 

tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包 

tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包 

zip file1.zip file1 创建一个zip格式的压缩包 

zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包 

unzip file1.zip 解压一个zip格式压缩包 



set 与 shopt
这两个命令主要用于定制shell环境。
set -o [option] (打开设置)
set +o [option] (关闭设定)
eg : set -o vi
    set +o vi
shopt -p [option] (查看当前的shopt设置)
shopt -u option (option选项设置复位)
shopt -s option (启动option选项)
eg: shopt -s cdspell (开启cd的纠错功能)
eg: shopt -u cdspell (关掉cd的纠错)

source 与.
Source命令也称为“点命令”,也就是一个点符号(.)。
source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
比如将我们对于.bashrc的修改生效,我们没必要重启bash,只需要
source ~/.bashrc 或是 . ~/.bashrc
source的另外一个功能就是可以执行命令序列,可以将命令序列写在一个文件中
用source直接执行,比如source abc.sh(这个和mysql中的source很像)

cd
cd - 在最近两个访问目录之间切换
CDPATH=/home/baiqingqi 设置cd的基本目录
alias cd1="cd .."
alias cd2="cd ../.."

dirs/popd/pushd
可以将目录压入和退出栈
eg: pushd .
    popd

shopt -s cdspell
可以纠正cd目录时候的错误
eg: cd ~/docments
感觉是用了行编辑距离,可以在行编辑距离为2以内纠错

date
显示/设置时间和日期命令
eg: date --date="1 day ago"
eg: date --date="10 months 2 days ago"
eg: date {mmddhhmiyyyy.ss}
eg: date +%T -s"22:19:53"
eg: date --date="3 hours"
eg: date --date="this Wed"

ssh
ssh -V 查看ssh的版本
ssh -vl baiqingqi 125.39.25.202; -v参数是加入调试信息
~ 这个是ssh的转义符号,可以完成很多有用的ssh功能
比如,网络中断的时候强制断开ssh链接。输入:
~.(请先输入一个enter,ssh转义必须位于行首,再输入.断开链接)
在比如在在ssh中切换,输入:
~^Z(先转义ssh,再输入Ctrl + z,这个可以用于不喜欢用screen 的同学,
    操作完了之后可以通过jops 查看,fg %命令切换回原来的ssh)

grep
grep [options] pattern [file]
eg: grep baiqingqi /etc/passwd
ps aux|grep fang_s|grep -v grep
-v选项作用是选择不包含后面的内容
grep -c pattern [file] 统计包含的行数
eg:grep -cv baiqingqi /etc/passwd
grep -i pattern [file] 忽略大小写
grep -r 在子目录中递归的查找

find
基本用法: find 路径 约束条件
find /etc -name "*ssw*"
find . -type f -size +10M (找出当前目录大于10M的文件)
find . -mtime +60 (找出60天内为修改的文件)
find . -mtime -2 (找出最近2天修改过的文件)
find . -name abc -type f -print0 | xargs -0 /bin/rm -f (删除当前
    目录下的abc文件)
find /home/baiqingqi -type f -mtime +60 | xargs tar -cvf /tmp/`date '+%d%m%Y'_archive.tar`
(将我的主目录下60天以内没有被修改的文件归档)

join
基本用法:join [options] file1 file2
比如join a.txt b.txt > c.txt

tr
一般用法 tr [option] SET1 [SET2]
转换文件内容,一般会配合cut,sort,uniq命令一起使用
eg: tr a-z A-Z < c.txt > d.txt
(将c.txt中的所有小写字母转换为大写字母并输出到了d.txt文件中)
eg: tr -d[\$A-Z] < d.txt
(将d.txt中的所有大写字母和$字符删除)

xargs
xargs 是一个功能强大的命令,其主要功能是:它可以将一个命令的输出作为
另外一个命令的输入。
eg: find /etc -name "*.conf" | xargs ls -lh
(将etc下的所有.conf文件显示出来,同ls -lh /etc/*.conf)
cat url-list | xargs wget --tries=45
(下载url-list中的所有url,同wget --tries -i url-list)
find . -name -type f "*.jpg" |xargs tar -cvzf images.tar.gz
ls *.txt |xargs -n1 -i cp {} /tmp
(将当前目录下的所有.txt文档复制到tmp目录下)
cut -d: -f1 < /etc/passwd |sort|xargs echo

sort
对一个文本文件排序,功能也很强大。
eg: sort a.txt
sort -n a.txt (把a.txt中的第一个字段按照数字大小排序)

sort -nk2 a.txt(按照a.txt中的第二个字段并当作数字来排序)
sort -t: -nf2 a.txt(利用:作为分隔符,并将第二个字段当作数字排序)
tr [:\$]  " " < a.txt |sort -nk3
(把a.txt中的:与$符号去掉并按照第三个字段的数值大小排序)
tr [:\$]  " " < a.txt |sort -rnk3
(把a.txt中的:与$符号去掉并按照第三个字段数值大小反向排序,并去除重复的元素)
sort -t. -nk1 -nk2 -nk3 -nk4 /etc/hosts
(基于ip地址对/etc/hosts文件排序)

uniq
cut -d" " -f1 a.txt |sort |uniq -ic
(将a.txt中的第一个字段排序并统计重复量,-i不计大小写)
cut -d" " -f1 a.txt |sort |uniq -cd
(将a.txt中的第一个字段排序并统计重复量,并且只输出含有重复的量)

cut
cut命令主要用于显示一个文本文件中特定的列和其他命令的输出
常用参数-d, -f, -c, -b
eg: cut -d: -f1,2 a.txt
eg: cut -c 5- a.txt
eg: cut -b7-10 a.txt

stat
stat命令主要用于查看文件或者文件系统的状态和属性
eg: stat a.txt
eg: stat -f /
(查看系统文件的某些属性)

diff
比较两个文件的差异,输出不友好
eg: diff -w a.txt b.txt
(比较a.txt 和b.txt的差异,乎约空格)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值