Linux常用命令速查
索引表格
命令 | 功能简述 |
---|---|
目录与文件基本操作 | |
pwd | 显示当前目录 |
ls | 列出目录和文件名称 |
cp | 复制文件或目录 |
mv | 移动或更名现有的文件或目录 |
rm | 删除文件或目录 |
mkdir | 新建目录 |
rmdir | 删除空目录 |
file | 显示文件类型 |
stat | 显示文件或文件系统的详细信息 |
du | 显示文件或目录大小 |
touch | 更改文件或目录的时间标记 |
ln | 建立链接文件 |
查找文件或目录 | |
which | 在$PATH设定的目录范围查找指定文件 |
whereis | 查找文件(只用于查找:二进制文件、源代码文件、man手册) |
find | 在指定目录下查找文件 |
文件内容操作 | |
wc | 计算文件的字节数、字数、行数 |
head | 显示文件最前面部分内容 |
tail | 显示文件最后面部分内容 |
cat | 输出显示文件内容 |
tac | 反向显示文件内容 |
more | 浏览文件内容 |
less | 浏览文件内容 |
fold | 修改文件显示的宽度 |
cut | 获取文件中每行的指定范围 |
diff | 比较并显示文件差异部分 |
diffstat | 由diff比较的结果显示比对统计信息 |
comm | 比较文件内容(早期指令) |
cmp | 比较两个文件差异 |
grep | 搜索文件中符合条件的字符串 |
egrep | 搜索文件中符合条件的字符串,效果同 grep -E |
fgrep | 搜索文件中特定的字符串,效果同 grep -F |
split | 按大小分割文件 |
csplit | 按行分割文件 |
join | 将两文件相同的栏位合并 |
paste | 合并文件内容并显示 |
uniq | 显示并删除文件中重复的行 |
sort | 将文件内容重新排序 |
col | 标准文本过滤器 |
tr | 替换或删除文件或字符流中的字符 |
od | 以八进制、十六进制或其他编码格式输出文件内容 |
dd | 转换和数据输出到文件 |
tee | 文件内容T型输入输出 |
awk | 文字数据处理的高级工具 |
sed | 流编辑器 |
sum | 计算并显示文件的校验和 |
cksum | 计算并显示文件的CRC校验和 |
md5sum | 采用MD5算法计算文件的校验和 |
iconv | 字符集的转换 |
文件权限管理 | |
lsattr | 查看ext2文件系统上的文件属性 |
chattr | 修改文件属性 |
chmod | 改变文件的权限 |
chown | 改变文件的拥有者 |
chgrp | 改变文件的所属组 |
umask | 显示和设置新建文件的屏蔽权限 |
文件系统与磁盘操作 | |
df | 显示文件系统的使用状况 |
findfs | 用卷标或是UUID查找特定文件系统 |
fsck | 检查或修复文件系统 |
fdisk | 显示或修改硬盘分区 |
cfdisk | 图形界面修改硬盘分区 |
mkfs | 格式化 |
mkreiserfs | 格式化为reiserfs文件系统 |
mke2fs | 格式化为ext2/ext3/ext4文件系统 |
e2fsck | 检验ext2/ext3/ext4文件系统 |
e2label | 设置ext2/ext3/ext4文件系统卷标 |
tune2fs | 调整ext2/ext3/ext4文件系统的参数 |
mkswap | 新建SWAP分区 |
swapon | 开启指定的交换分区 |
swapoff | 关闭指定的交换分区 |
mount | 挂载文件系统 |
umount | 卸载文件系统 |
sync | 将内存缓冲区中的数据写回硬盘 |
blockdev | 在命令行中调用ioxtls函数,控制block设备 |
磁盘配额管理 | |
quota | 显示用户或群组的磁盘配额信息 |
edquota | 编辑用户或群组的磁盘配额容量 |
quotastats | 显示当前用户磁盘配额的限制 |
quotaoff | 关闭用户磁盘配额限制 |
quotaon | 打开用户磁盘配额限制 |
quotacheck | 检查用户磁盘配额限制 |
repquota | 显示某个文件系统的磁盘配额限制 |
备份打包与压缩 | |
ar | 将多个文件打包成一个文件 |
tar | 打包和解包文件 |
zip | 压缩文件(扩展名一般为.zip,windows兼容可用) |
unzip | 解压文件(扩展名一般为.zip) |
zipinfo | 显示zip压缩文件的信息 |
gzip | 压缩文件(扩展名一般为.gz) |
gunzip | 解压文件(扩展名一般为.gz) |
gzexe | 将某个可执行文件进行压缩,运行时自动解压 |
zcat | 查看被gzip压缩的文件中的内容 |
bzip2 | 以bzip2格式压缩文件(扩展名一般为.bzip2) |
bunzip2 | 解压bzip2格式文件(扩展名一般为.bzip2) |
compress | 很古老的unix压缩文件指令(扩展名一般为.Z) |
uncompress | 很古老的unix解压文件指令(扩展名一般为.Z) |
账号管理 | |
logname | 显示当前登录用户的账号 |
whoami | 显示当前登录用户的账号和ID号 |
useradd | 新建用户帐号 |
adduser | 新建用户帐号(是useradd命令的符号链接) |
userdel | 删除用户帐号 |
usermod | 修改用户帐号 |
passwd | 修改用户密码 |
chsh | 改变用户登录时所使用的shell |
groups | 显示当前登录用户所属群组 |
groupadd | 新建群组 |
groupdel | 删除组 |
groupmod | 修改组账号 |
gpasswd | 组管理命令 |
id | 显示用户与组的id信息 |
su | 切换用户身份 |
sudo | 使用指定的用户权限执行程序 |
users | 显示当前本机已登录用户列表 |
who | 显示当前本机已登录的用户列表及相关信息 |
w | 显示当前本机已登录的用户列表及其正在执行的操作 |
last | 显示最近登录的用户信息 |
lastb | 显示最近登录失败的用户信息 |
pwck | 检查密码文件的正确性 |
wall | 向所有用户广播信息 |
write | 传送信息给其他用户 |
终端&shell操作 | |
clear | 清除屏幕 |
echo | 显示文字 |
yes | 重复输出相同的字符串 |
dircolors | 设置使用ls时文件或目录的显示颜色 |
watch | 将指令的输出结果以全屏显示 |
alias | 定义命令及参数的别名 |
unalias | 删除别名设置 |
hash | 显示与清除 hash table |
enable | 临时关闭或启动shell内部命令 |
history | 显示使用过的指令 |
fc | 修改或执行已使用过的指令 |
vlock | 锁定终端的使用权 |
sleep | 暂停终端指定的秒数 |
suspend | 暂停当前所使用的shell |
exit | 退出当前shell |
mesg | 控制当前终端的消息写入权限 |
bc | 数字计算器 |
logsave | 将指定程序或指令的输出存储到记录文件中 |
shell变量操作 | |
set | C shell下设置变量(相当于bash下的export) |
declare | 声明shell变量 |
export | 声明环境变量 |
unset | 删除变量设置 |
时间与日期 | |
cal | 显示日历 |
date | 显示与修改日期时间 |
hwclock | 显示与设定硬件时钟 |
uptime | 显示系统已经运行的时间 |
计划任务 | |
at | 在指定时间执行命令 |
atq | 查询待执行的任务 |
atrm | 删除待执行的任务 |
batch | 执行批处理任务 |
crontab | 设置计划任务 |
logrotate | 定期或定量将日志文件压缩备份、轮转、删除 |
进程管理 | |
ps | 显示进程信息 |
pstree | 以树状表示进程信息 |
pidof | 查找正在执行进程的pid |
pgrep | 按进程名称查找进程PID |
top | 实时显示当前的所有进程状态 |
pmap | 显示进程的内存映射关系 |
jobs | 显示正在后台执行的任务 |
fg | 将后台任务放到前台 |
bg | 将程序放到后台执行 |
nohup | 终端退出后,仍继续运行某指令 |
kill | 向进程发信号(常用于关闭进程) |
killall | 根据进程名称终止进程 |
pkill | 向进程发信号(功能类似kill,但使用进程名称,而不是pid) |
wait | 等待进程的返回值 |
nice | 以指定优先级运行指令 |
renice | 调整正在运行进程的优先级 |
ipcs | 显示IPC(进程间通信)状态 |
ipcrm | 删除IPC(进程间通信)渠道 |
系统级指令 | |
arch | 显示CPU架构 |
uname | 显示系统信息 |
dmesg | 显示或修改内核ring buffeer信息 |
halt | 关闭系统 |
reboot | 重启系统 |
shutdown | 定时关机或重启指令 |
ctrlaltdel | 设置Ctrl+Alt+Del热键动作 |
init | 进程初始化工具 |
runlevel | 显示当前与之前的执行等级 |
vmstat | 显示虚拟内存的状态 |
free | 显示内存使用状态 |
sysctl | 显示和设置内核参数 |
ulimit | 限制用户对系统资源的使用 |
模块与驱动 | |
lsmod | 显示已经加载到内核中的模块的信息 |
modinfo | 显示模块的信息 |
insmod | 加载模块 |
rmmod | 卸载模块 |
modprobe | 智能加载模块到内核或卸载模块 |
depmod | 分析可加载模块的关联性 |
网络(部分最常用)指令 | |
ifconfig | 设置或显示网络信息 |
ping | 传送ICMP echo包,测试主机之间网络的连通性 |
netstat | 查询网络的当前状态 |
ssh | 远程加密客户端连接工具 |
slogin | 远程加密客户端连接工具(完全同ssh) |
telnet | 远程联机工具(早期) |
tcpdump | 显示网络上TCP的联机状态 |
wget | 从指定网址下载网页或文件 |
以后继续补充…… | |
帮助信息 | |
help | shell内置指令说明 |
info | 显示帮助说明信息(有时比man更详细) |
man | 显示各种指令的帮助信息 |
whatis | 查询一个命令执行什么功能 |
pwd
功能:显示当前所在目录
语法:pwd [参数]
参数 | 说明 |
---|---|
-L | 当前目录为符号链接(link)目录时,显示符号连接目录(默认参数) |
-P | 无视符号链接,显示当前真实的物理目录 |
实例:
# pwd
/root/test01
ls
功能:列出目录和文件名
语法:ls [参数] [文件名]
参数 | 说明 |
---|---|
-a | 显示所有的文件,包括以“.”开头的隐藏文件和“.”和“..” |
-h | 以较易阅读的方式显示文件大小,如以K和M为单位 |
-i | 列出inodes的编号 |
-l | 使用长列表列出 |
-m | 以水平的排列显示文件名和目录名,每项间以“,”隔开 |
-r | 以字母的反相顺序列出 |
-t | 依照文件的最后修改时间顺序列出,最后修改的排在最前 |
-A | 同-a参数,但不列出“.”、“..” |
-F | 在列出的文件名后加一个符号
(“*”表示可执行文件,“/”表示目录,“@”表示符号链接, |
-R | 递归处理,列出目录与子目录下的所有文件 |
cp
功能:复制文件或目录
语法:cp [参数] 源文件或目录名 目的路径/(目的文件或目录名)
参数 | 说明 |
---|---|
-a | 保留链接、文件属性,并复制目录下所有内容,效果等同于-dpr参数一起使用 |
-b | 覆盖已存在文件时,会先备份已存在的文件,在原文件名尾加~ |
-f | 强制复制 |
-i | 覆盖文件前先提示询问用户 |
-p | 保留原有文件的属性 |
-r | 若源文件是一个目录文件,则将复制此目录和其下所有的文件和子目录 |
-u | 仅在源文件比目的文件时间新时复制 |
实例:
1. 将文件testfile1复制为testfile2
#cp testfile1 testfile2
2. 复制整个test目录到新目录abc下
#cp -r test abc/
mv
功能:
语法1:mv [参数] 源文件或目录名 目的文件或目录名
语法2:mv [参数] 源文件名列表 目的路径
参数 | 说明 |
---|---|
-b | 若目的文件存在,在覆盖时会将旧有目的文件备份(文件名后加~) |
-f | 强制执行,覆盖已有文件时不给任何提示 |
-i | 覆盖旧文件时会先提示询问用户 |
-u | 若目的文件已存在,且目的文件比源文件更新,则不执行 |
-v | 列出详细的过程 |
实例:
1. 将 testfile1文件更名为 testfile2
# mv testfile1 testfile2
2. 将 testfile1文件移动到 /tmp下
# mv testfile1 /tmp
mkdir
功能:新建目录
语法:mkdir [参数] 目录名
参数 | 说明 |
---|---|
-m | 模式用法与chmod相同,可参阅chmode参数用法 |
-p | 若上层目录不存在,会依序建立;若该目录已存在,将会略过,且不出现错误信息 |
实例:
1. 建立 bb目录,若 aa目录不存在,则顺便建立 aa目录
# mkdir -p aa/bb
补充说明:若不加-p参数,当aa目录不存在时会报错
rmdir
功能:删除空目录(注意:当目标目录非空目录时会报错)
语法:rm [参数] 目录名
参数 | 说明 |
---|---|
-p | 当目标目录被删除后,它的上级目录成为空目录的话,则上级目录也一并删除 |
实例:
1. 删除目录 bb,若bb删除后,aa成为空目录的话,则aa也被一并删除
# rm -p aa/bb
rm
功能:删除文件或目录
语法:rm [参数] 文件名(或目录名)
参数 | 说明 |
---|---|
-d | 删除目录,但如果此目录下不为空,则不能删除 |
-f | 强制删除文件或目录,且删除前没有询问提示 |
-i | 在删除文件或目录前,会先提示询问用户 |
-r | 删除目录,且将此目录下的所有文件及子目录都一并删除 |
-v | 显示完整的执行过程 |
实例:
1. 强制删除test目录与目录下的所有文件与子目录
# rm -rf test/
2. 删除当前目录下所有以a开头的文件
# rm a*
file
功能:显示文件类型
语法:file [参数] 文件名称
参数 | 说明 |
---|---|
-b | 不显示文件名称 |
-c | 显示详细的指令执行过程 |
-f 文件名 | 指定名称文件,让file指令依照此文件内容辨识 |
-L | 若为链接文件,直接显示原始文件的类型 |
-v | 显示版本信息 |
-z | 尝试去读取压缩文件的内容 |
实例:
1. 显示文件a的类型
# file a
a: ASCII text
2. 显示文件类型,但不显示文件名称
# file -b /dev/hda1
block special
stat
功能:显示文件或文件系统的详细信息
语法:stat [参数] 文件名
参数 | 说明 |
---|---|
-f | 显示文件所在文件系统的详细信息 |
-L | 若目的文件为符号链接文件,则显示其真实文件的信息 |
-t | 以简单模式列出信息 |
实例:
1. 显示文件 testfile的详细信息
# stat testfile
File: 'testfile'
Size: 4096 Blocks:8 IO Block: 4096 directory
Device: 890h/2001d Inode: 51987 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-05-01 14:46:24.000000000 +0800 最后访问时间
Modify: 2016-05-01 14:46:19.000000000 +0800 最后修改时间
Change: 2016-05-01 15:01:02.000000000 +0800 最后属性或状态修改时间
du
功能:显示文件或目录大小
语法:du [参数] 文件名
参数 | 说明 |
---|---|
-a | 显示目录中个别文件的大小 |
-b | 以byte(字节)为单位显示大小 |
-c | 显示个别文件大小,以及大小总和 |
-D | 显示符号链接的源文件的大小 |
-h | 提高可读性,自动以K、M、G为单位显示大小 |
-H | 与-h类似,但以1000为单位,而不是1024 |
-k | 以1024字节为单位 |
-l | 重复计算硬链接文件所占的空间 |
-L 符号链接 | 指定符号链接文件的大小 |
-m | 以MB为单位显示 |
-s | 只显示总和大小 |
-S | 显示目录内容时,不包含子目录的大小 |
-x | 若目录中有其他不同的文件系统,不显示其他文件系统 |
--exclude=文件名 | 忽略指定的文件或目录 |
--max-depth=目录层数 | 超过指定层数的目录后,予以忽略 |
实例:
1. 显示当前目录下的所有目录及子目录的大小
# du
2. 以可读性高的方式显示根目录下的所有目录用量大小
# du -sh /*
touch
功能:更改文件或目录的时间标记(若文件不存在,则新建一个空文件)
语法:touch [参数] 文件名
参数 | 说明 |
---|---|
-a | 改变文件的访问时间(Access time) |
-c | 若目的文件不存在,则不建立新的文件 |
-m | 改变文件的修改时间(Modify time) |
-t 指定时间 | 更改文件的时间标记为指定时间,格式为MMDDhhmm |
实例:
1. 新建一个名为 testfile1的空文件
# touch testfile1
2. 将 /etc/local.conf文件的最后修改时间、最后属性修改时间及最后访问时间更改为当前时间
# touch /etc/local.conf
ln
功能:建立链接文件
语法:ln [参数] 源文件 目的文件
参数 | 说明 |
---|---|
-b | 当目的文件存在时,则先为已存在的文件建个备份再覆盖 |
-d | 允许超级用户建立目录的硬链接 |
-f | 当目的文件已存在时,强制覆盖,无提示 |
-i | 当目的文件已存在时,先提示询问用户是否覆盖 |
-n | 若目的文件是一个指向目录的符号链接,则将它视为普通文件 |
-s | 建立符号链接(软链接) |
-v | 显示详细的过程 |
实例:
1. 为 testfile1文件建立一个名为 testfile2的硬链接文件
# ln testfile1 testfile2
2. 为 testfile1文件建立一个名为 tf1的符号链接文件
# ln -s testfile1 tf1
which
功能:在$PATH设定的目录范围查找指定文件
语法:which 文件名
参数 | 说明 |
---|---|
-v | 显示版本信息 |
实例:
1. 查找 python所在目录
# which python
whereis
功能:查找文件(只用于查找:二进制文件、源代码文件、man手册)
语法:whereis [参数] 文件名
参数 | 说明 |
---|---|
-b | 只查找二进制文件(即可执行文件) |
-B 目录 | 只在指定目录下搜索二进制文件(即可执行文件) |
-f | 不显示文件名前的路径名称 |
-m | 只查找man说明文件 |
-M 目录 | 只在指定目录下查找man说明文件 |
-s | 只查找原始代码文件 |
-S 目录 | 只在指定目录下查找原始代码文件 |
-u | 查找不包含指定类型的文件 |
实例:
1. 查找 python可执行文件位置
# whereis python
find
功能:在指定路径下查找文件(若不指定路径即为在当前路径下查找)
语法:find [路径] [参数语法]
参数 | 说明 |
---|---|
-amin 分钟 | 查找指定分钟内被访问过的文件 |
-atime 小时 | 查找指定小时内被访问过的文件 |
-anewer 文件 | 查找访问时间或修改时间比指定文件较新的文件 |
-mmin 分钟 | 查找指定分钟内被修改过的文件 |
-mtime 小时 | 查找指定小时内被修改过的文件 |
-mnewer 文件 | 查找修改时间比指定文件较新的文件 |
-cmin 分钟 | 查找指定分钟内被修改过属性的文件 |
-ctime 小时 | 查找指定小时内被修改过属性的文件 |
-cnewer 文件 | 查找修改属性时间比指定文件较新的文件 |
-empty | 查找文件大小为0,或是目录下没有文件的目录 |
-false | 将find指令的返回值皆设为False |
-true | 将find指令的返回值皆设为True |
-uid 用户ID号 | 查找拥有者为指定的用户ID号的文件或目录 |
-user 用户名 | 查找拥有者为指定用户名的文件或目录 |
-nouser | 查找不属于本地主机用户ID的文件或目录 |
-gid 组ID号 | 查找拥有者所属组为指定的组ID号的文件或目录 |
-group 组名称 | 查找拥有者所属组为指定组名称的文件或目录 |
-nogroup | 查找不属于本地主机组ID的文件或目录 |
-inum inode号 | 查找符合指定的inode编号的文件或目录 |
-links 链接数 | 查找符合指定的硬连接数目的文件或目录 |
-regex 正则表达式 | 查找文件名匹配正则表达式的文件或目录 |
-path 模式表达式 | 查找文件路径(含文件名)匹配模式表达式(一般可为正则表达式)的文件或目录 |
-name 模式表达式 | 查找文件名匹配模式表达式(一般可为正则表达式)的文件或目录 |
-perm 权限数值 | 查找符合指定的权限数值的文件或目录 |
-size 文件大小 | 查找符合指定的文件大小的文件 |
-type 文件类型 | 查找符合指定文件类型的文件
b(block special), c(character special), d(directory), p(named pipe), f(regular file), |
-used 天数 | 查找文件或目录被更改之后,在指定天数内被访问过的文件 |
实例:
1. 查找当前目录及子目录下所有以a结尾的文件和目录
# find ./ -name "*a"
2. 查找/usr/bin目录及子目录下所有以p开头的文件和目录
# find /usr/bin -name "p*"
wc
功能:计算文件的字节数、字数、行数
语法:wc [参数] [文件名]
说明:不适用于含汉字文件
参数 | 说明 |
---|---|
-c | 只显示字节数 |
-m | 只显示字符数 |
-l | 只显示行数 |
-L | 显示文件中最长行的字符数 |
-w | 只显示字数 |
实例:
1. 显示 a.txt文件的字符数、行数
# wc -ml a.txt
head
功能:显示文件最前面部分内容(默认显示10行)
语法:head [参数] [文件名]
参数 | 说明 |
---|---|
-c 字节数 | 显示前指定字节数的内容 |
-n 行数 | 显示前指定行数的内容 |
-q | 不显示文件名 |
-v | 显示文件名 |
实例:
1. 显示 a.txt文件的前3行
# head -n 3 a.txt
2. 显示 a.txt文件的前10个字节
# head -c 10 a.txt
tail
功能:显示文件最后面部分内容(默认显示10行)
语法:tail [参数] [文件名]
参数 | 说明 |
---|---|
-c 字节数 | 显示前指定字节数的内容 |
-n 行数 | 显示前指定行数的内容 |
-q | 不显示文件名 |
-v | 显示文件名 |
-f | 持续显示文件末尾数据(一般为追加数据),通常用于日志文件的监控 |
-s 秒数 | 与-f一起使用,指定每次读取间隔的秒数 |
--pid=进程号 | 与-f一起使用,当指定进程号的进程结束时,则停止tail命令 |
实例:
1. 持续监控 /var/log/mailog文件,只要有新内容,就会在屏幕输出
# tail -f /var/log/maillog
cat
功能:输出显示文件内容
语法:cat [参数] [文件名]
参数 | 说明 |
---|---|
-A | 显示全部,效果等同-vET |
-b | 在所有非空白行上,显示编号 |
-e | 等同于-vE |
-E | 在每行最后标上“$”符号 |
-n | 在所有行前显示编号(包括空白行) |
-s | 出现连续两行以上的空白时,会仅显示一行空白 |
-t | 等同于-vT |
-T | 将tab以“^I”来表示 |
-v | 除了LFD与tab外,其他控制字符均用“^”表示 |
实例:
1. 显示 /etc/hosts文件的内容,并显示行号
# cat -n /etc/hosts
tac
功能:反向显示文件内容
语法:tac [参数] [文件名]
参数 | 说明 |
---|---|
-s 指定文字 | 找到文件中的指定文字作为间隔符,将文件分隔显示,但每个分隔内的内容是正向显示的 |
-b | 将间隔符放在被间隔的文字前面 |
-r | 将间隔符参数作为正则表达式 |
实例:
1. 反向显示 a.txt文件
# tac a.txt
more
功能:显示文件内容
语法:more [参数] [文件名]
操作:空格键:向下翻页,Enter键:向下一行,b:向上翻页,h:显示帮助,q:退出
说明:more指令不能自由向上滚动行,故不如 less指令好用,参数详见 man文档
实例:
1. 显示 a.txt文件,每次显示20行
# more -20 a.txt
less
功能:浏览文件内容
语法:less [参数] [文件名]
操作:PageDown:下翻一页,PageDown:上翻一页,↓:下翻一行,↑:上翻一行, d:下翻半页,u:上翻半页,h:显示帮助,
q:退出,/ 字符串:搜索特定关键词
参数 | 说明 |
---|---|
-e | 文件内容显示完毕后,自动退出 |
-f | 强制显示非文本文件 |
-g | 不加亮显示使用搜索指令的关键词 |
-i | 搜索时忽略大小写 |
-N | 每行行首显示行号 |
-Q | 关闭警告 |
-s | 将连续的空行表示成一个空行 |
-S | 过长的行不换行显示 |
-x 数字 | 将tab字符取代为指定数字个空格 |
实例:
1. 浏览 a.txt文件
# less a.txt
fold
功能:修改文件显示的宽度
语法:fold [参数] [文件名]
参数 | 说明 |
---|---|
-w 数字 | 设置每行的宽度(默认宽度为80) |
-b | 以字节为单位计算宽度 |
-c | 以字符为单位计算宽度 |
-s | 若一行超过指定宽度,在超过宽度单词前的空白处换行 |
实例:
1. 以100列为宽度显示 testfile1文件
# fold -w 100 testfile1
cut
功能:获取文件中每行的指定范围
语法:cut [参数] [文件名]
参数 | 说明 |
---|---|
-b 数字范围 | 仅输出指定数字范围个字节,数字范围格式(如:1-10) |
-c 数字范围 | 仅输出指定数字范围个字符,数字范围格式(如:1-10) |
-d 字符 | 指定字符为分隔符 |
-f 输出范围 | 如果以分隔符分隔每行,仅输出每行中指定区段范围的内容 |
-s | 若改行没有分隔符,则不显示该行 |
实例:
1. 显示 testfile1文件每行的第1~10个字符
# cut -c 1-10 testfile1
2. 以/etc/passwd为例(文件中以冒号作为每行中的不同字段间的分隔符),仅显示每行的用户名
# cut -f 1 -d : /etc/passwd
diff
功能:比较并显示文件差异部分
语法:diff [参数] 文件1 文件2
参数 | 说明 |
---|---|
-a | 将二进制文件也看作普通文本文件 |
-b | 不比较空格符 |
-B | 不比较空行 |
-c | 显示相异处的前后文,并标识不同之处 |
-I 字符串 | 忽略指定字符串的差异 |
-i | 不检查大小写的不同 |
-l | 将结果使用pr指令分页 |
-n | 将结果以RCS格式来表示 |
-p | 若比较的文件为 C语言源文件,则显示差异所在函数 |
-q | 仅显示是否有差异,不显示其他信息 |
-r | 递归处理,比较子目录和其下所有文件 |
-s | 即使没有差异,也显示信息 |
-S 文件 | 若是比较目录,则从指定文件开始比较 |
-t | 输出结果时,将tab字符显出(默认会以空格显示tab) |
-T | 在每行前加上tab |
-v | 显示版本信息 |
-w | 忽略所有的空格符 |
-W 宽度 | 若使用-y参数时,指定列宽 |
-x 文件或目录 | 不对比指定的文件或目录 |
-X 模式文件 | 不比对指定模式文件中所有列出的文件 |
-y | 以并列方式显示比对结果 |
实例:
1. 比对 file1和 file2文件,并列显示比对结果
# diff -y file1 file2
2. 比对 testdir1和 testdir2这两个目录
# diff testdir1 testdir2
diffstat
功能:由diff比较的结果显示比对统计信息
语法:diffstat [参数] 比对结果文件
参数 | 说明 |
---|---|
-c | 将输出的文件的每行前加上“#” |
-e 文件 | 将标准错误输出到指定文件 |
-h | 显示帮助信息 |
-k | 在报告中不显示文件合并信息 |
-o 文件 | 将标准屏幕输出内容输出到指定文件 |
-u | 不在报告中将文件排序 |
-v | 显示执行过程 |
-V | 显示版本信息 |
-w | 指定输出的列宽 |
实例:
1. 比较 file1和 file2文件的差异,并用diffstat输出统计结果
# diff file1 file2 | diffstat
comm
功能:比较文件内容(早期指令)
语法:comm [参数] 文件1 文件2
参数 | 说明 |
---|---|
-1 | 不显示在文件1中出现过的行 |
-2 | 不显示在文件2中出现过的行 |
-3 | 不显示在同时在两个文件中出现过的行 |
实例:
1. 比较 testfile1 和 tesfile2 文件
# comm testfile1 testfile2
cmp
功能:比较两个文件差异
语法:cmp [参数] 文件1 文件2
说明:由于diff指令更为强大,所以这个 cmp指令并不常用
参数 | 说明 |
---|---|
-b | 列出相差的字节数 |
-i 数字 | 略过前面若干个字符 |
-l | 列出所有不同处 |
-n 数字 | 限制比较的字节数 |
-s | 安静模式,不显示任何信息 |
-v | 显示版本信息 |
实例:
1. 比较 file1和 file2这两个文件
# cmp -l file1 file2
grep
功能:搜索文件中符合条件的字符串
语法:grep [参数] 模式表达式 文件或目录名
参数 | 说明 |
---|---|
-a | 不忽略二进制数据 |
-A 行数 | 除了显示找到的那行外,再显示后面指定的行数 |
-b | 显示搜索到的那行的前一行,并显示搜索到的第一个字符离文件头的位置 |
-B 行数 | 除了显示找到的那行外,再显示之前的指定的行数 |
-c | 计算搜索到的符合条件的行数 |
-C | 除了显示找到的那行外,再显示之前和之后的指定的行数 |
-d 操作 | 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作
可选的操作:read(搜索文件), recurse(搜索目录) |
-e 模板样式 | 将指定的模板样式作为搜索条件,此时不需要输入标准格式中的“正则表达式”内容 |
-E | 可使用“扩展的正则表达式”来解析 |
-f 文件 | 搜索指定文件中给出的各个正则表达式 |
-F | 将正则表达式视为普通的固定字符串来对待 |
-G | 使用“基本正则表达式”规则来解析 |
-h | 不显示文件名称 |
-H | 显示文件名称 |
-i | 忽略大小写 |
-l | 显示找到的符合条件的文件的名称 |
-L | 显示不符合条件的文件的名称 |
-n | 在显示找到的行前,显示该行的行数 |
-q | 不显示任何信息 |
-r | 递归搜索整个目录中的文件(效果同 -d recurse) |
-s | 不显示错误信息 |
-v | 取反,搜索不匹配该模式表达式的文件内容 |
-V | 显示版本信息 |
-w | 只显示含全单词匹配模式模式表达式的行 |
-x | 只显示整行匹配的行 |
-y | 同 -i参数 |
实例:
1. 搜索当前目录及子目录中,所有含字符串“abcd”的文件
# grep -r abcd ./
2. 搜索 testdir目录及其子目录下所有的 .c文件,找到其中含有字符串 abc的行,列出
# find testdir -name "*.c" | xargs grep abc
egrep
功能:搜索文件中符合条件的字符串,效果同 grep -E
语法:egrep [参数] 扩展正则表达式 文件或目录名
实例:
1. 搜索当前目录及子目录中,所有含字符串“abcd”的文件
# egrep -r abcd ./
fgrep
功能:搜索文件中特定的字符串,效果同 grep -F
语法:fgrep [参数] 字符串 文件或目录名
实例:
1. 搜索当前目录及子目录中,所有含字符串“abcd”的文件
# fgrep -r abcd ./
split
功能:按大小分割文件
语法:split [参数] [文件名]
参数 | 说明 |
---|---|
-b 数字 | 分割文件,每个文件大小为指定数字Byte |
-c 数字 | 设定每个输出文件中每行的最大字节数 |
-d | 分割后的每个文件名末尾添加数字序号(如:00,01,02, ...) |
-a 数字 | 分割后的每个文件名末尾数字序号的长度(格式以2为底,如-a 3,即为:000, 001, ...) |
-l 数字 | 指定每个文件的行数 |
--verbose | 分割出现错误时,显示在屏幕上 |
实例:
1. 以10k字节为单位,分割 testfile1
# split -b 10k testfile1
csplit
功能:按行分割文件
语法:csplit [参数] 文件名 样式
说明:上面语法中,“样式”为一个整数,代表从第 n行开始分割成另一个文件。 若加上大括号(如:{m}),表示分割 m次,{*}表示自动计算分割次数
参数 | 说明 |
---|---|
-b 输出格式 | 设置输出的文件名称格式(预设为xx00, xx01, ...) |
-f 字符串 | 以指定字符串作为输出一系列文件的开头 |
-k | 即使出现错误,也不删除已经分割的文件 |
-n | 输出文件名的位数,若使用-b参数,则本参数无效 |
-s | 安静模式,不显示任何信息 |
-z | 删除内容为空的文件 |
实例:
1. 将 testfile1文件分割为2个文件,以第300行为分界,并指定输出文件名以abc为开头
# csplit -f abc testfiel1 300
2. 将 testfile1文件以100行为单位,分割8次
# csplit testfile 100 {8}
join
功能:将两文件相同的栏位合并
语法:join [参数] 文件1 文件2
参数 | 说明 |
---|---|
-a 数字 | 数字为1或2,表示文件1或文件2,显示文件1或文件2中无法比较的栏位中的文字 |
-e 字符串 | 若文件1与文件2中找不到指定的栏位,则在输出中填入指定的字符串 |
-i | 对比时忽略大小写差异 |
-1 栏位 | 合并到文件1指定的栏位 |
-2 栏位 | 合并到文件2指定的栏位 |
-j 栏位 | 等同于:-1 栏位 -2 栏位 |
-j1 | 等同于:-1 栏位 |
-j2 | 等同于:-2 栏位 |
-o | 按照指定的格式来显示结果 |
-t 字符 | 指定栏位分隔符 |
实例:
1. 合并文件 fiel1和 file2的相同栏位
# join file1 file2
paste
功能:合并文件内容并显示
语法:paste [参数] [文件列表]
参数 | 说明 |
---|---|
-d 分隔符 | 指定分隔符,一般默认为tab |
-s | 串行处理每个文件,而不是并行处理 |
实例:
1. 将 file1与 file2文件内容合并
# paste file1 file2
uniq
功能:显示并删除文件中重复的行
语法:uniq [参数] [输入文件] [输出文件]
参数 | 说明 |
---|---|
-c | 在每一行的左边显示重复出现的次数 |
-d | 仅显示重复出现的行 |
-f 栏位 | 不比较指定的栏位 |
-i | 忽略大小写 |
-s 字符 | 不比较指定字符 |
-u | 仅显示出现的每一行 |
-w 字符数 | 每行仅比较前指定数字个字符 |
实例:
1. 去除 testfile1文件中重复行
# uniq testfile1
sort
功能:将文件内容重新排序
语法:sort [参数] [文件名]
说明:将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后, 依次按ASCII码值进行比较,最后将他们按升序输出
参数 | 说明 |
---|---|
-b | 忽略每行前面开始处的空白 |
-d | 只对空格、数字和英文字符排序 |
-f | 忽略大小写 |
-g | 排序时,只比较一般的数字部分 |
-i | 排序时,只考虑可以输出的字符串 |
-M | 比较月份英文简称,如:"JAN" < "FEB" < ... < "DEC" |
-n | 根据字符串的数值进行比较 |
-r | 将结果以反序显示 |
-t 分隔符 | 以指定字符作为栏位分隔符(默认分隔符为空白) |
-k 栏位 | 以指定的栏位来排序,栏位数字1表示第1栏 |
实例:
1. 将 w指令的输出,通过 sort按第6个栏位进行排序
# w | sort -k 6
2. 对 testfile1文件排序并显示
# sort testfile1
col
功能:标准文本过滤器
语法:col [参数]
说明:在一些Linxu文件和Unix说明文件中,都有各种转义控制字符, 若不把它们去掉,转成纯文本文件中,有时会产生乱码。col指令即可过滤掉这些乱码字符。
参数 | 说明 |
---|---|
-b | 过滤所有的控制字符,包括各种转义字符 |
-f | 过滤转义字符RLF,但保留HRLF |
-l 行数 | 定义内存中缓冲区行数,默认为128行 |
-p | 强迫不过滤未知的字符 |
-x | 以多个空格来表示tab |
实例:
1. 过滤 testfile1中的转义字符,并显示输出
# col < testfile1
tr
功能:替换或删除文件或字符流中的字符
语法:tr [参数] 字符串1 [字符串2]
参数 | 说明 |
---|---|
-c | 使用字符串1的补集作为字符串1 |
-d | 删除字符串1所包含的字符(此参数不需要字符串2) |
-s | 当字符串1连续出现时,取为一个(此参数不需要字符串2) |
-t | 若字符串1与字符串2的长度不同,指定字符串1的长度给字符串2 |
实例:
1. 将输入字符串“HELLO WORLD”中的所有大写转为小写
# echo "HELLO WORLD" | tr 'A-Z' 'a-z'
2. 将 testfile1文件中的所有“hello”字符串剔除后显示
# cat testfile1 | tr -d hello
od
功能:以八进制、十六进制或其他编码格式输出文件内容
语法:od [参数] [文件名]
说明:这是在嵌入式开发中,经常使用的命令
参数 | 说明 |
---|---|
-j 字符数 | 略过指定的字符数 |
-N 字符数 | 输出到指定的字符数为止 |
-t 编码进制 | 设置输出的编码进制,编码进制可用字符:
a:有名字符,c:ASCII,d:十进制,f:浮点数,o:八进制,u:十进制正数,x:十六进制 |
-v | 表示数据时,不省略重复的数据 |
-w 数字 | 设置每行的最大字符数 |
实例:
1. 以16进制格式显示 testfile1文件内容
# od -t x testfile1
dd
功能:转换和数据输出到文件
语法:dd [参数]
说明:这也是开发者常用到的指令
参数 | 说明 |
---|---|
-ibs=字节数 | 每次读取的字节数 |
-obs=字节数 | 每次输出的字节数 |
-bs=字节数 | 相当于同时设置-ibs和-obs |
-cbs=字节数 | 每次转换的字节数 |
-conv=参数 | 转换使用的特定参数,常用参数如下(含义详见 man文档):
ascii, ebcdic, ibm, block, unblock lcase, ucase, swab, noerror, notrunc, sync |
-count=次数 | 指定的读取的次数 |
-if=文件 | 指定输入文件 |
-of=文件 | 指定输出文件 |
-skip=区块数 | 开始读入时所跳过的区块数 |
-seek=区块数 | 开始输出时所跳过的区块数 |
实例:
1. 生成一个内容全为0的1024字节大小的文件 testfile1
# dd if=/dev/zero of=testfile1 bs=1k count=1
2. 制作启动盘镜像
# dd if=boot.img of=/dev/sd0 bs=1M count=1
tee
功能:文件内容T型输入输出
语法:tee [参数] [文件名称]
参数 | 说明 |
---|---|
-a | 将输入追加在文件的后面 |
-I | 忽略终端信号 |
实例:
1. 从终端输入文字,文字同时输出到屏幕与 testfile1文件中
# tee testfile1
2. 将 ls指令的结果同时显示在屏幕上与写入 testfile2文件
# ls | tee testfile2
awk
功能:文字数据处理的高级工具
语法:awk [参数] [输出条件] [文件名]
说明:awk是一个相当高级和强大的工具,基本可以当编程语言来用了。 运维人员可能会用的较多,开发者直接用编程语言就可以了。故这里从略,详情可参阅 man文档。
sed
功能:流编辑器
语法:sed [参数] [语法] [文件名]
说明:sed也是一个相当强大的工具,用法灵活,仅简介估计就可以写十几页。 运维人员可能会用的较多,开发者直接用编程语言就可以了。故这里从略,详情可参阅 man文档。
sum
功能:计算并显示文件的校验和
语法:sum [参数] [文件名]
参数 | 说明 |
---|---|
-r | 使用BSD算法,使用1KB的区块 |
-s | 使用System V算法,使用512B的区块 |
实例:
计算 testfile1的校验和
# 1. sum testfile1
01126 1 其中:01126是校验和,1是文件的区块数
cksum
功能:计算并显示文件的CRC校验和
语法:cksum 文件名
说明:现在多半以md5sum来检查文件的正确性,cksum的使用机率较小
实例:
1. 计算并显示 testfile1文件CRC校验和与文件大小
# cksum testfile1
1384052557 91168 testfile1 1384052557为CRC校验和,91168为文件大小
md5sum
功能:采用MD5算法计算文件的校验和
语法:md5sum [参数] [文件名]
参数 | 说明 |
---|---|
-b | 使用二进制模式读取文件 |
-c | 检验文件内MD5的正确性 |
-t | 使用文本模式读取文件 |
-w | 当校验不正确时给出警告信息 |
实例:
1. 计算 testfile1文件的MD5校验和
# md5sum testfile1
2. 检验 testfile2里的文件MD5校验和是否正确
# md5sum -c testfile2
iconv
功能:字符集的转换
语法:iconv [参数] [输入文件]
参数 | 说明 |
---|---|
-l | 列出已知的编码字符集合 |
-c | 忽略输出的非法字符 |
-o 文件名 | 指定输出文件 |
-s | 安静模式,不显示警告信息 |
-f 编码方式 | 输入文字的编码方式(编码方式列表可使用-l参数查看) |
-t 编码方式 | 输出文字的编码方式(编码方式列表可使用-l参数查看) |
实例:
1. 查看所有支持的编码方式字符集
# iconv -l
2. 将 testfile1文件由 ASCII格式转为 UTF-8格式
# iconv -f ASCII -t UTF-8 testfile1
lsattr
功能:查看ext2文件系统上的文件属性
语法:lsattr [参数] [文件名]
参数 | 说明 |
---|---|
-a | 列出目录中的所有文件,包括隐藏文件 |
-d | 只显示目录 |
-v | 显示文件的版本与系统产生的数字码 |
-R | 递归处理,列出所有子目录下的文件属性 |
-V | 显示版本信息 |
实例:
1. 列出 test1文件的属性信息
# lsattr test1
chattr
功能:修改文件属性
语法:chattr [参数] [模式] [文件名]
参数 | 说明 |
---|---|
-R | 递归处理,将目录下所有子目录及文件一并处理 |
+属性 | 开启文件或目录的该项属性 |
-属性 | 关闭文件或目录的该项属性 |
=属性 | 指定文件或目录的该项属性 |
属性 | 说明 |
---|---|
a | 使文件只能以追加方式写入,而无法直接修改 |
A | 不修改文件的各个时间标记 |
c | 将文件以压缩方式存取 |
d | 使用dump命令时,不会备份该文件 |
e | 扩展模式 |
i | 不得修改该文件,即便是该文件的拥有者也不行 |
s | 粉碎性删除文件,无法被恢复 |
S | 即时将文件写回硬盘,而不放在缓存区 |
u | 不可删除(预防意外删除) |
实例:
1. 使 testfile1文件只能用追加方式写入,而不可更改原始内容(一般用于日志文件)
# chattr +a testfile1
2. 使 testfile1文件无法被删除
# chattr =i testfile1
chmod
功能:改变文件的权限
语法1:chmod [参数] [模式] [文件名]
语法2:chmod [八进制数字] [文件名]
参数 | 说明 |
---|---|
-c | |
-f | 不显示错误信息 |
-R | 递归处理,将目录下的所有文件及子目录一并处理 |
-v | 显示指令执行过程 |
模式 | 说明 |
---|---|
账号部分 | u:文件的拥有者,g:文件的所属组,o:其他用户,a:所有用户 |
权限部分 | r:读权限,w:写权限,x:执行权限,-:没有权限,s:一般用户执行该文件会以文件拥有者执行,
t:非本文件的拥有者不得删除 |
八进制数字 | 读(r) | 写(w) | 执行(x) |
---|---|---|---|
7 | 1 | 1 | 1 |
6 | 1 | 1 | 0 |
5 | 1 | 0 | 1 |
4 | 1 | 0 | 0 |
3 | 0 | 1 | 1 |
2 | 0 | 1 | 0 |
1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 |
实例:
1. 修改 testfile1文件的权限
# chmod u=rwx, g=rx, o=x testfile1
2. 用八进制数字方式直接修改 testfile1文件的权限(效果同上)
# chmod 751 testfile1
3. 为 testfile2文件增加所有用户可执行的权限
# chmod a+x testfile2
chown
功能:改变文件的拥有者
语法:chown [参数] [拥有者] [文件名]
参数 | 说明 |
---|---|
-c | 类似-v参数效果,但仅显示变动的部分 |
-f | 不显示错误信息 |
-h | 只对符号连接文件作修改,而不修改原始文件 |
-R | 递归处理,将目录下的所有文件及子目录一并处理 |
-v | 显示指令执行过程 |
实例:
1. 将 testfiel1文件的拥有者改为 test1用户
# chown test1 testfile1
2. 将 testdir目录下的所有文件及子目录的拥有者改为 test1用户
# chown -R test1 testdir
chgrp
功能:改变文件的所属组
语法:chgrp [参数] [组名称] [文件名]
参数 | 说明 |
---|---|
-c | 类似-v参数效果,但仅显示变动的部分 |
-f | 不显示错误信息 |
-h | 只对符号连接文件作修改,而不修改原始文件 |
-R | 递归处理,将目录下的所有文件及子目录一并处理 |
-v | 显示指令执行过程 |
实例:
1. 将 testfiel1文件的所属组改为 testgrp1组
# chgrp testgrp1 testfile1
umask
功能:显示和设置新建文件的屏蔽权限
语法:umask [参数] [屏蔽权限]
说明:新建文件的原始权限是对屏蔽码的取反, 例如:当前屏蔽码为002,则新建文件的默认权限为:775。如果新建的是不可执行文件, 则系统会自动拿去x权限,变为:664
参数 | 说明 |
---|---|
-S | 以文字表示屏蔽权限 |
实例:
1. 显示当前的屏蔽码
# umask
2. 设置屏蔽码为:002
# umask u=rwx, g=rwx, o=rx
df
功能:显示文件系统的使用状况
语法:df [参数]
参数 | 说明 |
---|---|
-a | 显示全部的文件系统 |
-h | 以可读性较高的方式显示(单位用K, M, G表示) |
-H | 与-h类似,但以1000为单位,而不是1024 |
-i | 显示inode的信息 |
-l | 只显示本地文件系统 |
-k | 以KB为单位显示 |
-m | 以MB为单位显示 |
-P | 使用POSIX输出 |
-t 文件系统类型 | 仅显示指定的文件系统 |
-T | 显示文件系统类型 |
-x 文件系统类型 | 不显示指定的文件系统 |
--block-size=指定大小 | 以指定区块的大小来显示 |
--no-sync | 显示文件系统用量前,不执行 sync |
--sync | 显示文件系统用量前,执行 sync |
实例:
1. 显示本机全部文件系统
# df -aTh
findfs
功能:用卷标或是UUID查找特定文件系统
语法:findfs LABEL=卷标名称
实例:
1. 查找名为 /boot的文件系统
# findfs LABEL=/boot
fsck
功能:检查或修复文件系统
语法:fsck [参数] 设备名称
参数 | 说明 |
---|---|
-a | 自动修复文件系统,不询问任何问题 |
-A | 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统 |
-N | 不执行指令,仅列出实际执行会进行的动作 |
-P | 当搭配"-A"参数使用时,则会同时检查所有的文件系统 |
-r | 显示每个文件系统的统计信息 |
-R | 当搭配"-A"参数使用时,则会略过/目录的文件系统不予检查 |
-s | 依次执行检查作业,而非同时执行 |
-t 文件系统类型 | 指定要检查的文件系统类型 |
-T | 执行fsck指令时,不显示标题信息 |
-V | 显示指令执行过程 |
-y | 假设所有答案都是yes,避免会话模式 |
实例:
1. 检查并修复文件系统
# fsck -y /dev/hda1
fdisk
功能:显示或修改硬盘分区
语法:fdisk [参数]
参数 | 说明 |
---|---|
-b 扇区大小 | 指定磁盘扇区大小(可选值为:512,1024,2048,4096) |
-l 设备 | 列出指定硬盘的分区情况 |
-s | 显示分区大小 |
-u | 当列出分区大小时,以“扇区”或“柱面”为单位显示 |
实例:
1. 列出硬盘 /dev/hda1上的分区配置
# fdisk -l /dev/hda1
cfdisk
功能:图形界面修改硬盘分区
语法:cfdisk [参数] [设备名称]
说明:会自动以简单图形界面运行,无需输入参数
实例:
1. 进行硬盘分区
# cfdisk /dev/hda1
进入终端图形界面
mkfs
功能:格式化
语法:mkfs [参数] [分区]
参数 | 说明 |
---|---|
-c | 在格式化前,先检查该分区的正确性 |
-t 文件系统 | 以指定的文件系统类型来格式化,若没有指定,则默认为ext2 |
-v | 显示完整的执行过程 |
实例:
1. 将硬盘上 sda1分区格式化为ext2格式
# mkfs /dev/sda1
mkreiserfs
功能:格式化为reiserfs文件系统
语法:mkreiserfs [参数]
说明:可用mkfs实现同样功能,故从略,参数详见 man帮助文档
实例:
1. 格式化 /dev/sda1分区为 reiserfs文件系统
# mkreiserfs /dev/sda1
mke2fs
功能:格式化为ext2/ext3/ext4文件系统
语法:mke2fs [参数]
说明:可用mkfs实现同样功能,故从略,参数详见 man帮助文档
实例:
1. 格式化 /dev/sda1分区为 ext4文件系统
# mke2fs /dev/sda1
e2fsck
功能:检验ext2/ext3/ext4文件系统
语法:e2fsck [参数]
说明:可用fsck实现同样功能,故从略,参数详见 man帮助文档
实例:
1. 检验 /dev/sda1上的文件系统是否正常
# e2fsck /dev/sda1
e2label
功能:设置ext2/ext3/ext4文件系统卷标
语法:e2label 设备名称 [新卷标]
实例:
1. 设置 /dev/hda1上的文件系统卷标命名为 abc
# e2label /dev/hda1 abc
tune2fs
功能:调整ext2/ext3/ext4文件系统的参数
语法: [参数]
参数 | 说明 |
---|---|
-c 次数 | 挂载多少次后,执行磁盘检查 |
-e 行为 | 发现错误时的行为,可填:continue(继续),remount-ro(挂载成只读),panic(引发内核错误) |
-f | 即使发生错误,仍强制执行 |
-i 时间 | 检查的时间间隔,nd:n天,nm:n月,nw:n月 |
-j | 建立ext3日志 |
-l | 显示文件系统超级块中的相关信息 |
-L 卷标 | 修改卷标 |
-m 保留比率 | 指定对硬盘的留空比率,一般为5% |
实例:
1. 显示 /dev/hda1上文件系统的相关信息
# tune2fs -l /dev/hda1
2. 每隔2周检查一次
# tune2fs -i 2w /dev/hda1
mkswap
功能:新建SWAP分区(交换分区)
语法:mkswap [参数] 分区 [大小]
参数 | 说明 |
---|---|
-c | 新建SWAP分区前,先做错误检查 |
-f | 强制进行,即使有不合理参数 |
-p 大小 | 指定分页的大小,单位为Byte |
-v0 | 建立旧型的SWAP区块 |
-v1 | 建立新型的SWAP区块 |
实例:
1. 在 /dev/hda2上新建一个SWAP分区
# mkswap /dev/hda2
swapon
功能:开启指定的交换分区
语法:swapon [参数] [设备名称]
参数 | 说明 |
---|---|
-a | 启用所有在 /etc/fstab中的SWAP设备 |
-e | 搭配-a使用时,若该设备不存在,则忽略该设备 |
-h | 显示帮助信息 |
-s | 显示该设备的SWAP信息 |
-V | 显示版本信息 |
实例:
1. 启用 /dev/hda2上的SWAP分区
# swapon /dev/hda2
swapoff
功能:关闭指定的交换分区
语法:swapoff [参数] [设备名称]
参数 | 说明 |
---|---|
-a | 关闭所有在 /etc/fstab中的SWAP设备 |
-h | 显示帮助信息 |
-V | 显示版本信息 |
实例:
1. 关闭 /dev/hda2上的SWAP分区
# swapoff /dev/hda2
mount
功能:挂载文件系统
语法:mount [参数] [设备名称] [目录]
参数 | 说明 |
---|---|
-a | 挂载所有 /etc/fstab中的文件系统 |
-f | 模拟运行挂载,并不真正挂载 |
-h | 显示帮助信息 |
-l | 显示已挂载的文件系统列表 |
-L 卷名 | 挂载特定名称的文件系统 |
-n | 不将挂载的信息写到 /etc/mtab中 |
-o 挂载参数 | 常用挂载参数:auto(自动,最常用),ro(挂载为只读文件系统),rw(可读写),noexec(不可执行二进制文件) |
-r | 将文件系统挂载为只读模式 |
-w | 将文件系统挂载为可读写模式,这是默认模式 |
-t 文件系统类型 | 一般常用的文件系统类型:autofs, cramfs, efs, ext, ext2, ext3, ext4, hfs, hpfs, iso9660, jfs, msdos, nfs, ntfs, proc, ramfs, reiserfs, romfs, smbfs, tmpfs, uf, vfa, xfs 等 |
-v | 显示完整过程 |
-V | 显示版本信息 |
实例:
1. 挂载 serve1服务器上的 NFS文件系统到 /opt目录下
# mount -t ext3 server1://data /opt
2. 挂载局域网内的 Windows共享文件夹到当前的 testsmb目录下
# mount -t smbfs -o username=xx,password=xx,ip=192.168.1.10 //Win主机名/文件夹 ./testsmb
3. 挂载u盘到 /mnt/udisk目录下
# mount -t vfat -o iocharset=gb2312 /dev/sda1 /mnt/udisk
umount
功能:卸载文件系统
语法:umount [参数] [目录或设备名]
参数 | 说明 |
---|---|
-a | 卸载所有 /etc/fstab中的文件系统 |
-h | 显示帮助信息 |
-n | 卸载文件系统,且不记录在 /etc/mtab中 |
-r | 若卸载失败,以只读方式挂载 |
-t 文件系统类型 | 常用文件系统类型见上面的 mount指令相应参数条目 |
-v | 显示完整过程 |
-V | 显示版本信息 |
实例:
1. 卸载已经挂载的光驱
# mount /cdrom
2. 卸载所有定义在 /etc/mtab中的文件系统
# umount -a
sync
功能:将内存缓冲区中的数据写回硬盘
语法:sync
说明:这是文件系统要卸载时或系统要重启时,要考虑使用的指令
实例:
1. 将内存缓冲区中的数据写回硬盘
# sync
blockdev
功能:在命令行中调用ioxtls函数,控制block设备
语法:blockdev [参数] [控制命令] 设备
说明:这个命令会直接去操控存储设备的硬件,一般建议谨慎使用。
参数 | 说明 |
---|---|
-q | 安静模式 |
-v | 显示完整的执行过程 |
-V | 显示版本信息 |
控制命令 | 说明 |
---|---|
--flushbufs | 刷新缓存区 |
--getra | 列出读写头大小 |
--getro | 判断是否只读,1:是,0:否 |
--getss | 列出扇区大小(默认512) |
--rereadpt | 重读分区表 |
--setra N | 设置读写头为N个512B扇区大小/td> |
--setro | 设为只读 |
--setrw | 设为可读写 |
实例:
1. 查看 /dev/hda1的扇区大小
# blockdev -v --getss /dev/hda1
quota
功能:显示用户或群组的磁盘配额信息
语法:quota [参数] [用户或组名]
参数 | 说明 |
---|---|
-g | 列出群组的磁盘空间限制 |
-l | 只显示本地端的文件系统,不显示网络联机的文件系统 |
-q | 简明列表,只列出超过限制的部分 |
-s | 以K, M, G等单位表示用量限制大学 |
-u | 列出用户磁盘用量(默认值) |
-v | 显示没有实际磁盘挂载的文件系统的配额 |
实例:
1. 显示自己的磁盘用量
# quota
edquota
功能:编辑用户或群组的磁盘配额容量
语法:edquota [参数] [用户或组名]
参数 | 说明 |
---|---|
-u | 编辑用户的配额容量 |
-g | 编辑群组的配额容量 |
-q | 已经设好限制的模板账号 |
实例:
1. 修改 test1用户的配额容量
# edquota test1
quotastats
功能:显示当前用户磁盘配额的限制
语法:quotastats
实例:
1. 显示当前用户磁盘配额的限制
# quotastats
quotaoff
功能:关闭用户磁盘配额限制
语法:quotaoff [参数] [文件系统]
参数 | 说明 |
---|---|
-a | 关闭所有定义在/ect/fstab文件中文件系统的配额 |
-u | 关闭用户的磁盘空间配额限制 |
-g | 关闭群组的磁盘空间配额限制 |
-p | 仅显示出配额信息状态 |
-v | 显示指令执行过程信息 |
实例:
1. 将所有文件系统的配额限制关闭
# quotaoff -a
quotaon
功能:开启用户磁盘配额限制
语法:quotaon [参数] [文件系统]
参数 | 说明 |
---|---|
-a | 开启所有定义在/ect/fstab文件中文件系统的配额 |
-u | 开启用户的磁盘空间配额限制 |
-g | 开启群组的磁盘空间配额限制 |
-p | 仅显示出配额信息状态 |
-v | 显示指令执行过程信息 |
实例:
1. 将所有文件系统的配额限制开启
# quotaon -a
quotacheck
功能:检查用户磁盘配额限制
语法:quotacheck [参数] [文件系统]
参数 | 说明 |
---|---|
-a | 检查所有定义在/ect/fstab文件中文件系统的配额 |
-b | 在写入新数据前,强迫备份 |
-d | 打开调试模式 |
-f | 强制检查,并将容量记录文件写入 |
-i | 交互对话模式 |
-g | 只有在/etc/mtab中的组配额限制才会被检查 |
-u | 只有在/etc/mtab中的用户配额限制才会被检查 |
-v | 显示详细的执行过程 |
实例:
1. 检查 /home目录下的磁盘配额
# quotacheck -uvg /home
repquota
功能:显示某个文件系统的磁盘配额限制
语法:repquota [参数] [文件系统]
参数 | 说明 |
---|---|
-a | 列出所有定义在/ect/fstab文件中文件系统的配额 |
-g | 显示所有组的磁盘用量 |
-n | 不要将UID和GID反解为名称 |
-s | 用K,M,G等方便阅读的单位来显示 |
-u | 显示所有用户的磁盘用量 |
-v | 显示所用文件系统的磁盘配额和用量(包括不在使用中的文件系统) |
实例:
1. 显示所有文件系统磁盘配额与用量信息
# repquota -a
ar
功能:将多个文件打包成一个文件
说明:由于ar不能一次性打包一整个目录,故不如 tar命令常用
语法:ar [必选参数] [可选参数] 打包文件 [成员文件列表]
必选参数 | 说明 |
---|---|
-d | 删除打包文件中的某成员文件 |
-m | 变更打包文件中的文件顺序 |
-p | 显示打包文件中的文件内容 |
-q | 将文件存储再打包文件中,不检查是否有重复的文件 |
-r | 将文件存储再打包文件中,若有重复文件则会被覆盖 |
-t | 显示打包文件中的所有文件 |
-x | 从打包文件中取出成员文件 |
可选参数 | 说明 |
---|---|
-a 成员文件 | 将新打包入文件插入打包文件中已有的成员文件之后 |
-b 成员文件 | 将新打包入文件插入打包文件中已有的成员文件之前 |
-c | 建立打包文件 |
-f | 若文件名过长,则获取部分文件名,避免与其他系统不兼容 |
-i | 与-b相同 |
-o | 保留打包文件中文件的日期 |
-P | 使用完整的路径来记录打包文件 |
-s | 产生打包文件的符号表 |
-S | 不产生符号表 |
-u | 只将日期有变动的文件存储到打包文件之中 |
-v | 显示执行的完整信息 |
实例:
1. 将文件 file1, file2打包入arfile中
# ar -rv arfile file1 file2
2. 列出打包文件 arfile中的所有成员文件
# ar -t arfile
tar
功能:打包和解包文件
语法:tar [参数] [打包文件名] [被打包文件]
参数 | 说明 |
---|---|
-A | 新增文件到已存在的打包文件 |
-b 区块数 | 设置每个记录的区块数,每个区块大小为512 Bytes |
-c | 建立新打包文件 |
-C 目录名 | 切换到指定目录 |
-d | 对比打包文件内和实际文件系统上的文件的差异 |
-f 文件名 | 指定打包文件 |
-h | 当被打包文件为符号链接时,直接打包所指向的真实文件 |
-i | 忽略打包文件中的0 Byte区块(即EOF) |
-j | 处理bzip2格式压缩的文件 |
-k | 还原文件时,不覆盖已有的文件 |
-K 文件名 | 从指定的文件开始还原 |
-l | 新建打包文件时,必须与tar指令执行时所处的文件系统相同 |
-L | 设置存储每台的容量,以1024 Byte为单位 |
-m | 还原文件时,文件修改时间不变 |
-N 日期 | 只将比指定日期较新的文件保存到备份文件里 |
-O | 把还原的文件输出到标准输出设备 |
-p | 用原来的文件权限还原文件 |
-P | 文件名使用绝对路径,不移除文件名称前的"/"号 |
-r | 新增文件到已存在的打包文件的结尾部分 |
-s | 还原文件的顺序和打包文件内的存放顺序相同 |
-t | 列出打包文件中的内容 |
-u | 仅将比原打包文件中已有文件较新的文件置换进去 |
-v | 显示指令执行过程 |
-w | 遇到问题时,先提示询问用户 |
-W | 写入打包文件后,需确认文件是否无误 |
-x | 从打包文件中还原文件 |
-X 模式文件 | 排除符合模式文件中的模式的文件 |
-Z | 通过compress指令处理打包文件 |
-z | 通过gzip指令处理打包文件 |
--atime-preserve | 不变更文件的存取时间 |
--delete | 从打包文件中删除指定的文件 |
--exclue=模式表达式 | 排除符合模式表达式的文件 |
--ignore-failed-read | 忽略错误,不中断程序的执行 |
--remove-files | 文件加入打包文件后,就将源文件删除 |
实例:
1. 将 testdir目录下的所有文件和子目录(以gzip方式压缩)打包成一个 td.gz文件
# tar -zcvf td.gz testdir/
2. 将 td.gz文件解包还原到当前目录下
# tar -zxvf td.gz
3. 将 td.bz2文件(以bzip2方式压缩)解包还原到当前目录下
# tar -jxvf td.bz2
zip
功能:压缩文件(扩展名一般为.zip,windows兼容可用)
语法:zip [参数] [目的文件] [源文件]
参数 | 说明 |
---|---|
-a | 将文件转成ASCII模式 |
-A | 用于压缩成可执行自解压文件的调整,一般跟其他参数搭配使用 |
-b 目录 | 指定暂时存放文件的缓存目录 |
-c | 为每个被压缩的文件加上注释,每压缩一个文件会提示用户输入注释 |
-d | 指定删除压缩文件内的某个文件 |
-D | 压缩文件内不建立目录名称 |
-f | 与-u参数类似,且若指定文件不在压缩文件内会将其加入 |
-F | 尝试修复已损坏的压缩文件 |
-g | 将文件压缩后附加在已有的压缩文件之后,而不另行建立新的压缩文件 |
-h | 显示帮助信息 |
-i 模式表达式 | 只压缩与模式表达式匹配的文件 |
-j | 只保存文件名称及其内容,而不存放任何目录名称 |
-J | 删除压缩文件前面不必要的数据 |
-k | 使用MS-DOS兼容格式的文件名称 |
-l | 压缩文件时,把LF字符置换成LF+CR字符 |
-ll | 压缩文件时,把LF+cp字符置换成LF字符 |
-L | 显示版权信息 |
-m | 将文件压缩并加入压缩文件后,删除原始文件 |
-n 字尾字符串 | 不压缩具有特定字尾字符串的文件/td> |
-o | 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同 |
-q | 不显示指令执行过程 |
-r | 递归处理,将指定目录下的所有文件和子目录一起压缩打包 |
-S | 包含系统文件和隐藏文件 |
-t 日期时间 | 把压缩文件的日期设成指定的日期 |
-T | 检查备份文件内的每个文件是否正确无误 |
-u | 更换较新的文件到压缩文件内 |
-v | 显示指令执行过程或显示版本信息 |
-x 模式表达式 | 压缩时排除匹配模式表达式的文件 |
-X | 不保存额外的文件属性 |
-y | 直接保存符号链接文件,而非该连接所指向的真实文件 |
-z | 为压缩文件加上一个整体注释,交互输入 |
-压缩率 | 压缩率为(1~9),数值越大压缩率越大,默认为6 |
实例:
1. 将 testdir目录压缩打包成 td.zip文件
# zip -r td.zip testdir/
2. 删除压缩文件 td.zip中的 testfile1文件
# zip -d td.zip testdir/testfile1
unzip
功能:解压文件(扩展名一般为.zip)
语法:unzip [参数] [文件名]
参数 | 说明 |
---|---|
-c | 将解压缩的结果显示到屏幕上,并对字符做适当的转换 |
-f | 更新已存在的文件,不存在的不会更新,已文件的时间标记为准 |
-l | 显示压缩文件内所包含的文件 |
-n | 解压缩时不要覆盖原有的文件 |
-o | 不询问用户,unzip执行后直接覆盖原有文件 |
-q | 执行时不显示任何信息 |
-t | 检查压缩文件的正确性 |
-v | 显示详细的执行过程 |
-z | 仅显示压缩文件的注释文字 |
实例:
1. 解压 td.zip文件
# unzip -l td.zip
zipinfo
功能:显示zip压缩文件的信息
语法:zipinfo [参数] [文件名]
参数 | 说明 |
---|---|
-1 | 只列出文件名称,会取消所有参数的功能 |
-2 | 与"-1"参数类似,但可搭配"-h","-t"和"-z"参数使用 |
-h | 只列出压缩文件的文件名称 |
-l | 与"-m"参数类似,会列出每个原始文件的大小,而非压缩率 |
-m | 与"-s"参数类似,会列出每个文件的压缩率 |
-s | 用类似执行"ls -l"指令的效果列出压缩文件内容 |
-M | 若信息内容超过一个画面,则采用类似more指令的方式列出信息 |
-t | 只列出压缩文件内所包含的文件数目,压缩前后的文件大小及压缩率 |
-T | 将压缩文件内每个文件的修改日期依照顺序列出。 |
-v | 详细显示压缩文件内每一个文件的信息 |
-z | 如果压缩文件内含有注释,就将注释显示出来。 |
实例:
1. 显示 td.zip压缩文件内的信息
# zipinfo td.zip
gzip
功能:压缩文件(扩展名一般为.gz)
语法:gzip [参数] [文件名]
说明:一般可使用tar的-cz参数来代替gzip指令,故说明从略
gunzip
功能:解压文件(扩展名一般为.gz)
语法:gunzip [参数] [文件名]
说明:一般可使用tar的-xz参数来代替gunzip指令,故说明从略
gzexe
功能:将某个可执行文件进行压缩,运行时自动解压
语法: [参数] [文件名]
说明:一般用于磁盘空间极小情况,不常用
参数 | 说明 |
---|---|
-d | 解开压缩文件 |
实例:
1. 将 ls命令压缩
# gzexe ls
zcat
功能:查看被gzip压缩的文件中的内容
语法:zcat [参数] [文件名]
参数 | 说明 |
---|---|
-q | 不显示任何警告信息 |
-h | 显示帮助信息 |
-L | 显示版权信息 |
-V | 显示版本信息 |
实例:
1. 显示 a.gz压缩文件中每个文件中的内容信息
# zcat a.gz
bzip2
功能:以bzip2格式压缩文件(扩展名一般为.bzip2)
语法:bzip2 [参数] [文件名]
说明:一般可使用tar的-cj参数来代替bzip2指令,故说明从略
bunzip2
功能:解压bzip2格式文件(扩展名一般为.bzip2)
语法:bunzip2 [参数] [文件名]
说明:一般可使用tar的-xj参数来代替bunzip2指令,故说明从略
compress
功能:很古老的unix压缩文件指令(扩展名一般为.Z)
语法:compress [参数] [文件名]
说明:一般可使用tar的-cZ参数来代替compress指令,故说明从略
uncompress
功能:很古老的unix解压文件指令(扩展名一般为.Z)
语法:bunzip2 [参数] [文件名]
说明:一般可使用tar的-xZ参数来代替uncompress指令,故说明从略
logname
功能:显示当前登录用户的账号
语法:logname
实例:
1. 显示当前用户账号
# logname
whoami
功能:显示当前登录用户的账号
语法:whoami
实例:
1. 显示当前用户账号和ID号
# whoami
useradd
功能:新建用户帐号
语法:useradd [参数] [用户帐号]
参数 | 说明 |
---|---|
-c 备注 | 加上备注文字,备注文字会保存在passwd的备注栏位中 |
-d 目录名 | 指定用户登录时的初始目录(用户需对此目录有权限) |
-D | 修改建立帐号的默认值
-b:根目录,-e:有效期限,-f:缓冲天数,-g:主群组,-G:次群组,-s:shell |
-e 有效期限 | 指定帐号的有效期限,格式为:YYYY-MM-DD |
-f 缓冲天数 | 指定一个天数,密码过期后这个天数后即关闭该帐号 |
-g 群组 | 指定用户所属的群组 |
-G 群组 | 指定用户所属的附加群组 |
-m | 自动建立用户的登录目录,并将/etc/skel中的文件复制到用户根目录下 |
-M | 不要自动建立用户的登录目录 |
-p 密码 | 输入该帐号的密码 |
-r | 建立系统帐号 |
-s shell | 指定用户登录后所使用的shell |
-u uid | 指定用户ID号 |
实例:
1. 建立一个test1用户
# useradd test1
userdel
功能:删除用户帐号
语法:userdel [参数] [用户帐号]
参数 | 说明 |
---|---|
-r | 删除该用户登录目录以及目录中所有文件 |
实例:
1. 删除用户test1
# userdel test1
usermod
功能:修改用户帐号
语法:usermod [参数] [用户帐号]
参数 | 说明 |
---|---|
-c 备注 | 加上备注文字,备注文字会保存在passwd的备注栏位中 |
-d 目录名 | 指定用户登录时的初始目录(用户需对此目录有权限) |
-e 有效期限 | 指定帐号的有效期限,格式为:YYYY-MM-DD |
-f 缓冲天数 | 指定一个天数,密码过期后这个天数后即关闭该帐号 |
-g 群组 | 指定用户所属的群组 |
-G 群组 | 指定用户所属的附加群组 |
-l 帐号名称 | 修改用户帐号名称 |
-L | 锁定用户密码,使密码无效 |
-p 密码 | 输入该帐号的密码 |
-s shell | 指定用户登录后所使用的shell |
-u uid | 指定用户ID号 |
-U | 解除密码锁定 |
实例:
1. 将test1用户的登录目录改为/home/app1
# usermod -d /home/app1 test1
2. 改变 test1用户的 uid为1001
# usermod -u 1001 test1
passwd
功能:修改用户密码
语法:passwd [参数] [用户帐号]
参数 | 说明 |
---|---|
-d | 删除密码 |
-f | 强制执行 |
-i 天数 | 密码过期指定天数后停用该帐号 |
-k | 设置只有在密码过期失效后,才能更新 |
-l | 停用该帐号 |
-n 天数 | 密码在指定天内不得修改 |
-S | 显示用户帐号的密码相关信息(非密码原文) |
-u | 重新启用该帐号 |
-w 天数 | 密码即将过期前n天通知该帐号 |
-x | 设置密码的有效期 |
实例:
1. 修改自己密码(不加任何参数表示修改自己密码)
# passwd
2. 修改 test1用户的密码(系统会提示输入新密码与确认新密码)
# passwd test1
3. 停用 test1帐号
# passwd -l test1
chsh
功能:改变用户登录时所使用的shell
语法:chsh [参数] [用户名]
参数 | 说明 |
---|---|
-l | 列出可使用的shell |
-s shell名 | 更改指定用户的默认shell |
实例:
1. 列出本机可使用shell
# chsh -l
2. 更改 test1用户的默认shell为/bin/sh
# chsh -s /bin/sh test1
groups
功能:显示当前登录用户所属群组
语法:groups
实例:
1. 显示当前登录用户所属群组
# groups
groupadd
功能:新建群组
语法:groupadd [参数] [群组名]
参数 | 说明 |
---|---|
-f | 强制建立已存在的组 |
-g gid | 设置新的组ID号 |
-o | 允许重复使用和已有组相同的组ID号 |
-r | 建立系统工作组 |
实例:
1. 建立新组 testgrp1
# groupadd testgrp1
groupdel
功能:删除组
语法:groupdel [群组名]
实例:
1. 删除组 testgrp1
# groupdel testgrp1
groupmod
功能:修改组账号
语法:groupmod [参数] [群组名]
参数 | 说明 |
---|---|
-g gid | 设置组ID号 |
-o | 允许重复使用重复的组ID号 |
-n 新组名 | 改变组名 |
实例:
1. 将 testgrp1组改名为 testgrp2
# groupmod -n testgrp2 testgrp1
gpasswd
功能:组管理命令
语法:gpasswd [参数] [用户名] [组名]
参数 | 说明 |
---|---|
-a | 添加用户到组 |
-d | 从组删除用户 |
-r | 删除组密码 |
-A | 设置组管理员 |
-M | 设置组成员列表 |
-R | 限制用户加入某组 |
实例:
1. 增加一个用户 test2到 testgrp1组
# gpasswd -a test2 testgrp1
2. 将 test1用户设为 testrp1组的管理员
# gpasswd -A test1 testgrp1
id
功能:显示用户与组的id信息
语法:id [参数] [用户名]
参数 | 说明 |
---|---|
-g | 显示用户所属群组的ID号 |
-G | 显示用户所属附加群组的ID号 |
-n | 当配合使用-u或-g或-G参数时,显示名称,而不是ID号 |
-r | 当配合使用-u或-g或-G参数时,显示ID号(默认选项) |
-u | 显示用户ID号 |
实例:
1. 显示用户 test1的ID号
# id test1
2. 显示用户 test1所属群组的名称
# id -ng test1
su
功能:切换用户身份
语法:su [-] [用户账号]
实例:
1. 当前用户为 test1,要切换到 root用户
# su
2. 当前用户为 root,要切换到 test1用户
# su - test1
sudo
功能:使用指定的用户权限执行程序
语法:sudo [参数] 命令
参数 | 说明 |
---|---|
-b | 在后台执行sudo所指定的指令 |
-h | 显示帮助信息 |
-H | 将HOME环境变量设为新身份的HOME环境变量 |
-l | 列出目前用户可执行与无法执行的指令 |
-p | 改变询问密码的提示符号 |
-s shell | 执行指定的shell |
-u 用户名 | 以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份 |
-v | 延长密码有效期限5分钟 |
-V | 显示版本信息 |
实例:
1. 当前用户为 test1,需要临时切换到 root用户查看 /root目录下文件
$ sudo ls /root
users
功能:显示当前本机已登录用户列表
语法:users
实例:
1. 显示当前本机已登录用户列表
# users
who
功能:显示当前本机已登录的用户列表及相关信息
语法:who [参数]
参数 | 说明 |
---|---|
-a | 显示所有信息 |
-b | 显示系统最近一次启动时间 |
-d | 显示已失效的程序 |
-H | 在显示已登录用户列表时,加上表格每列的抬头 |
-l | 显示系统的 login进程 |
-m | 只列出自己登录的相关信息 |
-q | 只显示登录系统的帐号名称和总人数 |
-r | 显示当前的执行等级 |
-t | 显示最后一次修改时钟的时间 |
-u | 显示用户已闲置的时间 |
实例:
1. 显示本机已登录用户的信息(包括终端号、IP地址等)
# who
w
功能:显示当前本机已登录的用户列表及其正在执行的操作
语法:w [参数]
参数 | 说明 |
---|---|
-h | 不显示列表每列的抬头 |
-s | 使用短输出格式 |
-V | 显示版本信息 |
实例:
1. 显示当前本机已登录的用户列表及其正在执行的操作
# w
last
功能:显示最近登录的用户信息
语法:last [参数]
参数 | 说明 |
---|---|
-a | 将用户的登录时的主机名或IP地址,显示在最右一栏 |
-d | 显示用户主机名称,I而不是P地址 |
-f 文件名 | 指定记录文件 |
-i | 显示用户IP地址,而不是主机名称 |
-n 数字 | 指定显示的行数(一般用于仅显示最近登录用户) |
-R | 不显示用户的主机名称或IP地址 |
-x | <显示系统关机,重新开机,以及执行等级的改变等信息/td> |
实例:
1. 显示最近10条用户登录信息
# last -n 10
lastb
功能:显示最近登录的用户信息
语法:lastb [参数]
参数 | 说明 |
---|---|
-a | 将用户的登录时的主机名或IP地址,显示在最右一栏 |
-d | 显示用户主机名称,I而不是P地址 |
-f 文件名 | 指定记录文件 |
-i | 显示用户IP地址,而不是主机名称 |
-n 数字 | 指定显示的行数(一般用于仅显示最近登录失败的用户) |
-R | 不显示用户的主机名称或IP地址 |
-x | <显示系统关机,重新开机,以及执行等级的改变等信息/td> |
实例:
1. 显示最近10条登录失的用户信息
# lastb -n 10
pwck
功能:检查密码文件的正确性
语法:pwck [参数]
参数 | 说明 |
---|---|
-s | 使用用户UID排序文件/etc/passwd和/etc/shadow |
-r | 以只读方式运行指令 |
实例:
1. 检查 /etc/passwd文件的内容是否正确
# pwck /etc/passwd
wall
功能:向所有用户广播信息
语法:wall [信息]
实例:
1. 将字符串“abc”广播给所有用户
# wall abc
write
功能:传送信息给其他用户
语法:write [用户名] [终端号]
实例:
1. 传送信息“abcdef”给 test1用户
# write test1
abcdef
输入完毕后按Ctrl-D送出信息
clear
功能:清除屏幕
语法:clear
实例:
1. 清除屏幕
# clear
echo
功能:显示文字
语法:echo [参数] [字符串]
参数 | 说明 |
---|---|
-e | 若字符串中出现以下字符,则以特殊方式处理
\a:发出beep声,\b:删除前一个字符,\c:一行最后不加换行符,\n:换行,\t:tab |
-E | 不判断特殊字符,一律以普通文字处理 |
-n | 不要在一行最后自动换行 |
实例:
1. 显示 “test”文字
# echo "test"
2. 显示环境变量 $PATH中的内容
# echo $PATH
yes
功能:重复输出相同的字符串
语法:yes
实例:
1. 在屏幕上重复显示 abcde字符串,直到按下Ctrl-C中断为止
# yes abcde
dircolors
功能:设置使用ls时文件或目录的显示颜色
语法:dircolors [参数] [文件]
参数 | 说明 |
---|---|
-b | 显示 Bourne shell(即sh)中的 $LS_COLORS的环境变量 |
-c | 显示 C shell中的 $LS_COLORS的环境变量 |
-p | 显示默认值 |
实例:
1. 显示 dircolors的默认值
# dircolors -p
watch
功能:将指令的输出结果以全屏显示
语法:watch [参数] [指令]
参数 | 说明 |
---|---|
-d | 高亮显示与之前显示差异的部分 |
-h | 显示帮助信息 |
-n 秒数 | 每个固定秒数就执行一次指令 |
-t | 不显示全屏第一行的标题 |
-v | 显示版本信息 |
实例:
1. 每个2秒执行一次w指令
# watch -n 2 w
alias
功能:定义命令及参数的别名
语法:alias [参数] [别名] [=指令]
参数 | 说明 |
---|---|
-p或不加 | 列出当所有的别名设置 |
别名 | 列出指定的别名 |
别名=指令 | 设置该指令的别名 |
实例:
1. 列出现有的所有别名设置
# alias
2. 将 ps -ef的别名设为pf
# alias pf="ps -ef"
unalias
功能:删除别名设置
语法:unalias [参数] [别名]
参数 | 说明 |
---|---|
-a | 删除所有已定义的别名 |
实例:
1. 删除别名 ll
# unalias ll
hash
功能:显示与清除 hash table(哈希表)
语法:hash [参数] [指令名称]
参数 | 说明 |
---|---|
-d 名称 | 清除某条名称的 hash记录 |
-l | 显示存储在 hash table中的指令 |
-p 完整路径 | 将完整路径的命令加入 hash table |
-r | 清除存储在 hash table中的指令 |
-t 指令名称 | 列出指令的完整路径 |
实例:
1. 显示存储在 hash table中的指令
# hash -l
enable
功能:临时关闭或启用shell内部命令
语法:enable [参数] [指令]
参数 | 说明 |
---|---|
-a | 显示shell内所有启用的指令 |
-n 指令 | 关闭shell内置的特定指令 |
实例:
1. 显示shell内所有启用的指令
# enable -a
2. 关闭 shell内置的 cd指令
# enable -n cd
3. 重新启用 cd指令
# enable cd
history
功能:显示使用过的指令
语法:history [指令个数] [参数]
说明:历史记录一般记录在 $/.bash_history文件中
参数 | 说明 |
---|---|
-c | 清除之前的history记录 |
-d 编号 | 删除history记录中指定编号的那一项 |
-r 历史文件 | 将指定“历史文件”中的命令读入当前命令缓冲区 |
-w 历史文件 | 将当前命令缓冲区中内容写入指定“历史文件” |
实例:
1. 显示最近使用的5条指令
# history 5
fc
功能:修改或执行已使用过的指令
语法:fc [参数]
参数 | 说明 |
---|---|
-e | 指定使用的文字编辑器,一般默认为vim |
-l | 显示所有历史指令 |
-n | 不显示编号 |
-r | 反序显示,由最后到最前 |
实例:
1. 显示执行过的指令
# fc -l
vlock
功能:锁定终端的使用权
语法:vlock [参数]
参数 | 说明 |
---|---|
-a | 锁定所有的终端窗口 |
-c | 锁定当前的终端窗口 |
-h | 显示帮助信息 |
-v | 显示版本信息 |
实例:
1. 锁定当前终端窗口(需要再次输密码才能进入)
# vlock
sleep
功能:暂停终端指定的秒数
语法:sleep [秒数]
实例:
1. 暂停终端5秒
# sleep 5
suspend
功能:暂停当前所使用的shell
语法:suspend [参数]
参数 | 说明 |
---|---|
-f | 强制停止当前所使用的shell |
实例:
1. 强制停止当前shell
# suspend -f
exit
功能:退出当前shell
语法:exit
实例:
1. 退出当前shell
# exit
mesg
功能:控制当前终端的消息写入权限
语法:mesg [参数]
参数 | 说明 |
---|---|
y | 允许其他用户对当前终端发送消息 |
n | 不允许其他用户对当前终端发送消息 |
实例:
1. 显示当前终端的消息写入权限
# mesg
is y
2. 关闭其他用户对当前终端发送消息的权限
# mesg n
bc
功能:数字计算器
语法:bc [参数]
参数 | 说明 |
---|---|
-h | 列出帮助信息 |
-i | 使用交互会话模式 |
-l | 指定标准的数学函数库 |
-v | 显示版本信息 |
实例:
1. 使用 bc做数学运算
# bc
1+1
2
logsave
功能:将指定程序或指令的输出存储到记录文件中
语法:logsave [参数] 记录文件 程序名
参数 | 说明 |
---|---|
-a | 将新的数据追加加在记录文件之后,而不会覆盖原有内容 |
-v | 显示完整的执行过程信息 |
实例:
1. 将 ps -ef指令的输出记录到 ps.txt文件
# logsave ps.txt ps -ef
set
功能:C shell下设置变量(相当于bash下的export)
语法:set [变量名称] [值]
实例:
1. 设置变量 VAR1为 abcd
# set VAR1 "abcd"
declare
功能:声明shell变量
语法:declare [参数] [变量名] [=值]
参数 | 说明 |
---|---|
-i | 先算出计算式,再将结果传给变量 |
-p | 声明的变量为 shell变量 |
-r | 声明的变量为只读 |
-x | 声明的变量为环境变量,可供shell以外的程序使用 |
实例:
1. 显示当前 shell变量
# declare
2. 计算变量值,使变量 a的值为3
# declare -i a=1+2
3. 设置声明变量 VAR2为环境变量
# declare -x VAR2=abc
export
功能:声明环境变量
语法:export [参数] [变量名] = [值]
参数 | 说明 |
---|---|
-f | 设置变量名为函数的名称 |
-n | 删除指定的变量 |
-p或不加 | 列出shell上的环境变量 |
实例:
1. 设置变量 VAR1为 abcd
# export VAR1=abcd
2. 列出当前的环境变量
# export
unset
功能:删除变量设置
语法:unset [参数] [变量]
参数 | 说明 |
---|---|
-f | 仅删除函数 |
-v | 仅删除变量 |
实例:
1. 删除变量 VAR1
# unset VAR1
cal
功能:显示日历
语法1:cal [参数]
语法2:cal [月份] [年份]
参数 | 说明 |
---|---|
-l | 显示单月输出(默认值) |
-3 | 显示近三个月(上月、本月、下月)的日历 |
-y 年份 | 显示一年的日历,若不输入年份,则默认为本年 |
-s | 使用星期日作为一周的第一天 |
-m | 使用星期一作为一周的第一天 |
-j | 使用凯撒历(即显示当前为本年的第几天) |
实例:
1. 显示近3个月的日历
# cal -3
2. 显示1900年1月的日历
# cal 1 1900
date
功能:显示与修改日期时间
语法:date [参数] [+格式]
参数 | 说明 |
---|---|
-d 字符串 | 显示字符串中所表示的时间 (非系统时间) |
-s 字符串 | 将系统时间设为字符串中表示的时间 |
-u | 显示格林威治标准时间 |
格式 | 说明 |
---|---|
时间方面 | |
%H | 小时(01~23) |
%k | 小时(0~23) |
%I | 小时(01~12) |
%l | 小时(1~12) |
%M | 分钟(00~59) |
%S | 秒(00~59) |
%p | 显示本地 AM 或 PM |
%s | 从1970年1月1日00:00:00 UTC到目前为止的秒数 |
%T | 相当于 %H:%M:%S(例如:10:01:02) |
%r | 相当于 %H:%M:%S %p(例如:10:01:02 AM) |
%X | 以本地时间格式显示,效果同%T |
%Z | 显示时区 |
日期方面 | |
%Y | 完整年份(0000~9999) |
%y | 年份后两位数字(00~99) |
%m | 月份(01~12) |
%b | 月份简写(Jan, ..., Dec) |
%h | 同 %b |
%B | 月份完整(January, ..., December) |
%d | 日(01~31) |
%w | 一周中的第几天(0~6),0表示周日 |
%a | 星期几(Sun, ..., Sat) |
%A | 星期几(Sunday, ..., Saturday) |
%j | 一年中的第几天(001~366) |
%U | 一年中的第几周(00~53),以Sunday为一周的第一天的情形 |
%x | 直接显示日期,效果同:%d/%m/%Y |
%c | 直接显示完整格式日期与时间 |
其他符号 | |
%t | 显示tab(一般为空4格) |
%n | 显示换行 |
%% | 显示百分号 |
实例:
1. 显示当前日期时间
# date +%x%t%r
2. 以“年-月-日”格式显示日期
# date +%Y-%m-%d
hwclock
功能:显示与设定硬件时钟
语法:hwclock [参数]
说明:只有超级用户权限才能使用 hwclock命令
参数 | 说明 |
---|---|
-a | 根据先前的记录来估算硬件时钟的偏差,并校正目前的硬件时钟 |
-D | 显示详细信息 |
-r | 显示硬件时间与日期 |
-s | 调整系统时间,使其与硬件时间一致 |
-u | 显示格林威治时间 |
-v | 显示版本信息 |
-w | 调整硬件时间,使其与系统时间一致 |
--debug | 显示hwclock执行时详细的信息 |
--set --date="日期与时间" | 设置硬件时钟,格式为“月/日/年 时:分:秒” |
--test | 测试程序,而不会实际更改硬件时钟 |
实例:
1. 显示当前硬件时间
# hwclock -r
2. 设置硬件时钟为1970年1月1日 0点0分
# hwclock --set --date="1/1/1970 00:00:00"
uptime
功能:显示系统已经运行的时间
语法:uptime
说明:依次显示: 系统当前时间,主机已运行时间,用户连接数,系统平均负载
实例:
1. 显示系统已经运行的时间
# uptime
at
功能:在指定时间执行命令
语法:at [参数] [时间]
说明:执行at后,以交互方式逐条输入指令,最后按Ctrl-D结束输入 时间格式为:HH:MM。每执行一次at,系统会自动分配给这次输入的指令集一个任务编号。
参数 | 说明 |
---|---|
-c 任务编号 | 显示已设置的at任务的内容 |
-d 任务编号 | 删除指定任务编号的指令任务 |
-f 文件 | 指定包含待执行指令的我那屋文件 |
-l | 显示待执行任务的列表 |
-m | 任务执行完成后向用户发送E-mail |
-q 队列 | 指定使用的队列(以英文字母为排序优先级) |
-V | 显示版本信息 |
实例:
1. 在8:00运行 touch testfile1指令
# at 8:00
at> touch testfile1
at> <EOT> 按下Ctrl-D结束输入
2. 显示已设置的at任务的内容(假设任务编号为2)
# at -c 2
atq
功能:查询待执行的任务
语法:atq
实例:
1. 查询待执行的任务
# atq
atrm
功能:删除待执行的任务
语法:atrm [任务编号]
实例:
1. 删除任务编号3的at任务
# atrm 3
batch
功能:执行批处理任务
语法:batch [参数]
说明:功能与运行方式都类似于at,但没有时间指定。
参数 | 说明 |
---|---|
-f 文件 | 从文件中执行 |
-m | 任务执行完成后向用户发送E-mail |
-q 队列 | 指定使用的队列 |
-V | 显示版本信息 |
实例:
1. 执行批处理任务:touch testfile1, touch testfile2指令
# batch
at> touch testfile1
at> touch testfile2
at> <EOT> 按下Ctrl-D结束输入
crontab
功能:设置计划任务
语法:crontab [参数]
任务格式:分 时 日 月 年 星期 指令
“*”表示所有可能的值,“,”表示值的枚举,“-”表示值的整数范围,“/”表示频率(可以和其他符号组合使用)
参数 | 说明 |
---|---|
-e | 编辑该用户的计划设置 |
-l | 列出该用户的计划设置 |
-r | 删除该用户的计划设置 |
-u 用户名 | 指定用户,不指定则默认当前用户 |
实例:
1. 指定每天 8:00 运行 touch testfile1
# crontab -e
进入编辑模式(一般会自动调用系统默认编辑器,如vim)
0 8 * * * touch testfile1
保存退出
2. 查看当前的计划设置
# crontab -l
logrotate
功能:定期或定量将日志文件压缩备份、轮转、删除
语法:logrotate [参数] [文件]
参数 | 说明 |
---|---|
-d | 打开调试模式 |
-f | 强制将日志文件循环备份处理 |
-v | 显示完整过程 |
实例:
1. 执行logrotate并使用/etc/logrotate.conf中的设置
# logrotate /etc/logrotate.conf
ps
功能:显示进程信息
语法:ps [参数]
筛选参数 | 说明 |
---|---|
-a | 显示所有终端下当前运行的进程(无终端的不显示) |
-A | 显示所有进程,同-e参数 |
-C 进程名称 | 显示指定进程名称的所有进程 |
-d | 显示所有的进程,除了session中的leader进程(一般可理解为一个tty即为其下所有进程的leader) |
-e | 显示所有的进程,同-A参数 |
-p pid | 显示指定pid的进程 |
-t tty列表 | 显示指定tty下的进程 |
-T | 显示当前终端下的所有进程 |
-U 用户列表 | 显示指定用户的进程,用户列表使用uid或用户名表示都可以 |
格式参数 | 说明 |
---|---|
-c | 显示CLS和PRI栏 |
-f | 显示全部完整信息 |
-F | 显示特别完整的信息 |
-l | 显示长列表 |
-j | 显示简短信息 |
实例:
1. 显示所有进程详细信息
# ps -ef
2. 显示当前由 python运行的所有进程
# ps -ef | grep python
pstree
功能:以树状表示进程信息
语法:pstree [参数]
参数 | 说明 |
---|---|
-a | 显示命令行参数 |
-c | 停用子树的唯一性处理 |
-h | 特别标明现在正在执行的程序 |
-l | 显示长列表 |
-n | 显示短列表 |
-p | 只显示PID和名称 |
-u | 只显示用户uid |
-V | 显示版本信息 |
实例:
1. 显示当前进程树
# pstree -a
pidof
功能:查找正在执行进程的pid
语法:pidof [参数] [进程名称]
参数 | 说明 |
---|---|
-o pid | 不显示指定pid的进程 |
-s | 仅显示1个进程号 |
-x | 显示由脚本开启的进程 |
实例:
1. 显示当前正在运行的python程序
# pidof python
pgrep
功能:按进程名称查找进程PID
语法:pgrep [参数] [模式表达式]
参数 | 说明 |
---|---|
-f | 使用进程完整的进程名称去匹配模式表达式 |
-g 进程组 | 显示符合所属进程组的进程 |
-l | 列出程序名称与PID |
-n | 列出符合条件的进程中最新的进程 |
-o | 列出符合条件的进程中最旧的进程 |
-P ppid | 列出父进程为指定pid的进程 |
-t 终端号 | 列出终端号为指定终端号的进程 |
-u uid | 列出所属用户为指定uid的进程 |
-v | 列出不符合条件进程 |
-x | 列出与模式表达式完全匹配的进程 |
实例:
1. 列出正在运行的 python进程
# pgrep python
top
功能:实时显示当前的所有进程状态
语法: [参数]
参数 | 说明 |
---|---|
-b | 以批处理方式执行(每秒刷新执行一次),可以将输出信息重定向到文件中。 |
-c | 列出每个进程的完整指令 |
-d 秒数 | 设置屏幕刷新的间隔时间 |
-l | 忽略已失效的进程 |
-n | 设置刷新显示的次数,次数到后自动退出top |
-u 用户名 | 只显示指定用户的进程 |
-p pid | 只显示指定pid的进程 |
-s | 使用保密模式 |
-v | 显示版本信息 |
实例:
1. 实时显示用户 test1的所有进程
# top -u test1
2. 将进程信息重定向到 test.log日志文件进行记录(每秒都会追加本次刷新信息到test.log文件)
# top -b > test.log
pmap
功能:显示进程的内存映射关系
语法:pmap [参数] [PID]
参数 | 说明 |
---|---|
-x | 显示扩展格式 |
-d | 显示设备格式 |
-q | 不显示头尾行 |
-V | 显示版本信息 |
实例:
1. 显示进程号为 12345的进程的所有内存映射信息
# pmap 12345
jobs
功能:显示正在后台执行的任务
语法:jobs [参数]
参数 | 说明 |
---|---|
-l | 列出一般信息与该任务的pid |
-n | 仅列出状态变化过的任务 |
-p | 仅显示后台任务的进程号 |
-r | 仅显示运行状态(running)的任务 |
-s | 仅显示停止状态(stopped)的任务 |
实例:
1. 显示当前正在后台运行的任务
# jobs -l
fg
功能:将后台任务放到前台
语法:fg [任务编号]
实例:
1. 将后台任务cat放到前台执行
# jobs
[1] Stopped vi
[2] Stopped cat
# fg 2
bg
功能:将程序放到后台执行
语法:bg [任务编号]
说明:一般可在指令结尾使用“&”符号,将指令直接放到后台运行。例如:cat &
实例:
1. 先运行cat,然后按Ctrl-z暂时停止程序,再执行 bg 1将其放到后台
# cat
按下Ctrl-z暂时停止程序
# bg 1
nohup
功能:终端退出后,仍继续运行某指令
语法:nohup [参数] [指令]
语法:一般当某个终端退出登录后,会向其下的所有进程发出关闭指令。 使用nohup可以使某个指令在终端退出后,仍继续在后台执行。
实例:
1. 在执行某个 python程序,且当终端退出后,仍继续运行
# nohup python runserver &
kill
功能:向进程发信号(常用于关闭进程)
语法1:kill [参数]
语法2:kill [-信号] [pid]
说明:一般常用的信号为:1(SIGHUP,终端挂起),9(SIGKILL,强行终止)
参数 | 说明 |
---|---|
-l | 列出所有的信号名称及其代码 |
实例:
1. 列出所有信号名称及编号
# kill -l
2. 强行终止 pid为12345的进程
# kill -9 12345
killall
功能:根据进程名称终止进程
语法:killall [参数] [进程名称]
参数 | 说明 |
---|---|
-e | 需要与名称完全一致 |
-g | 终止进程组 |
-i | 交互对话模式,在终止进程前会先询问提示 |
-l | 显示所有已知信号列表 |
-q | 如果终止进程时出现错误或其他警告信息,不予显示 |
-r | 使用正则表达式匹配要杀死的进程名称 |
-s | 用指定的进程号代替默认信号“SIGTERM” |
-u | 终止指定用户的进程 |
实例:
1. 终止所有名为 cat的进程
# killall cat
pkill
功能:向进程发信号(功能类似kill,但使用进程名称,而不是pid)
语法:pkill [-信号] [参数] [进程名称]
参数 | 说明 |
---|---|
-f | 使用进程完整的进程名称去匹配模式表达式 |
-g 进程组 | 向指定进程组的进程发信号 |
-n | 仅向符合条件的进程中最新的进程发信号 |
-o | 仅向符合条件的进程中最旧的进程发信号 |
-P ppid | 向父进程为指定ppid的进程发信号 |
-t 终端号 | 向终端号为指定终端号的进程发信号 |
-u uid | 向所属用户为指定uid的进程发信号 |
-v | 向不符合条件进程发信号 |
-x | 向与模式表达式完全匹配的进程发信号 |
实例:
1. 终止所有名为 cat的进程
# pkill -9 cat
wait
功能:等待进程的返回值
语法:wait [进程pid或名称]
说明:若进程不存在,则返回127
实例:
1. 等待 pid为12345的进程的返回值
# wait 12345
nice
功能:以指定优先级运行指令
语法:nice [参数] [指令]
参数 | 说明 |
---|---|
-n 整数 | 设置该进程的优先级为指定整数,范围(-20~19),数值越小,优先级越高,预设为10 |
实例:
1. 调整当前 bash的优先级为10(预设优先级)
# nice
2. 以最高优先级运行 tar指令
# nice -n -19 tar zcf testdir/
renice
功能:调整正在运行进程的优先级
语法:renice [参数]
参数 | 说明 |
---|---|
-g 组名 | 改变此进程组所有进程的优先级 |
-n 整数 | 设置该进程的优先级为指定整数,范围(-20~19),数值越小,优先级越高,预设为10 |
-p pid | 指定进程的pid |
-u uid | 改变属于此用户的进程的优先级 |
实例:
1. 改变 pid为12345的进程的优先级为2
# renice -n 2 12345
ipcs
功能:显示IPC(进程间通信)状态
语法:ipcs [参数]
参数 | 说明 |
---|---|
-a | 显示全部信息 |
-q | 显示活动的消息队列信息 |
-m | 显示活动的共享内存信息 |
-s | 显示活动的信号量信息。 |
实例:
1. 显示本机的全部IPC信息
# ipcs -a
ipcrm
功能:删除IPC(进程间通信)渠道
语法:ipcrm [参数]
参数 | 说明 |
---|---|
-m id | 删除指定id的共享内存 |
-M key | 删除指定key的共享内存 |
-q id | 删除指定id的消息队列 |
-Q key | 删除指定key的消息队列 |
-s id | 删除指定id的信号量 |
-S key | 删除指定key的信号量 |
实例:
1. 删除 id号为 18000的共享内存
# ipcrm -m 18000
arch
功能:显示CPU架构
语法:arch
实例:
1. 显示CPU架构
# arch
uname
功能:显示系统信息
语法:uname [参数]
参数 | 说明 |
---|---|
-a | 显示所有信息 |
-i | 显示硬件平台 |
-m | 显示CPU架构 |
-n | 显示主机名称 |
-o | 显示操作系统 |
-p | 显示处理器类型 |
-r | 显示操作系统内核版本 |
-s | 显示操作系统名称 |
-v | 显示系统时间 |
实例:
1. 显示所有信息
# uname -a
dmesg
功能:显示或修改内核ring buffeer信息
语法:dmesg [参数]
说明:Linux启动后,会将开机信息存储在 ring buffer中, 可用 dmesg来查看,开机信息保存在 /var/log/dmesg文件中
参数 | 说明 |
---|---|
-c | 显示信息后,清除 ring buffer中内容 |
-n 级别 | 设置信息记录的级别,详情可用 dmesg --help查询 |
-s 缓冲大小 | 缓冲区大小预设为16392字节 |
实例:
1. 显示开机信息
# dmesg | less
2. 清除 ring buffer的内容
# dmesg -C
halt
功能:关闭系统
语法:halt [参数]
说明:halt 会先检测系统的 runlevel,若不为0和6,则关闭系统
参数 | 说明 |
---|---|
-d | 不在wtmp中记录 |
-f | 强制关闭,不理会 init系统的 runlevel |
-i | 在重启前,先关闭所有网络接口 |
-p | 在执行halt之后,执行poweroff切断电源 |
-w | 只在wtmp中记录,但不实际关闭系统 |
实例:
1. 关闭系统并关闭电源
# halt -p
reboot
功能:重启系统
语法:reboot [参数]
参数 | 说明 |
---|---|
-d | 不在wtmp中记录 |
-f | 强制重启,不理会 init系统的 runlevel |
-i | 在重启前,先关闭所有网络接口 |
-n | 在重启前,先将每个进程在内存中的缓存数据存回硬盘 |
-w | 只在wtmp中记录,但不实际重启系统 |
实例:
1. 重启系统
# reboot
shutdown
功能:定时关机或重启指令
语法:shutdown [参数] 时间 [警告信息]
参数 | 说明 |
---|---|
-a | 若不是系统管理员,则需要被定义在 /etc/shutdown.allow才能关机 |
-c | 取消正在执行的关机操作 |
-f | 重启时不执行 fsck(磁盘检查) |
-F | 重启时强制执行 fsck(磁盘检查) |
-h | 关机后仅关闭电源 |
-k | 仅在各个终端显示关机警告信息,并不真正关机 |
-r | 重新启动 |
-t 秒数 | 显示警告信息后,延迟多少秒再关机 |
时间 | 指定多少时间后关机,单位为分钟 |
警告信息 | 在关机时在终端上显示的警告信息文字 |
实例:
1. 立即关机
# shutdown 0 -h
2. 3分钟后关机,并在每个用户终端上显示“Save your files. The System will shutdown after 3 minutes.”
# shutdown 3 "Save your files. The System will shutdown after 3 minutes."
ctrlaltdel
功能:设置Ctrl+Alt+Del热键动作
语法:ctrlaltdel [参数]
参数 | 说明 |
---|---|
hard | 立刻重启,而不执行 sync将数据存回硬盘 |
soft | 会将数据存回,停止服务,卸载文件系统后重启 |
实例:
1. 设置本机在按下Ctrl+Alt+Del时,不执行 sync而立即重启
# ctrlaltdel hard
init
功能:起始过程控制
语法:init [参数] [数字]
说明:init进程是所有Linux进程的父进程, 它的进程号(PID)是1
参数 | 说明 |
---|---|
-b | 不执行相关脚本而直接进入单用户模式 |
-s | 切换到单用户模式 |
数字 | 0:关机,1:单用户模式,2:多用户模式,3:完全多用户模式,6:重新启动 |
实例:
1. 关机
# init 0
2. 重启
# init 6
runlevel
功能:显示当前与之前的执行等级
语法:runlevel
实例:
1. 显示当前与之前的执行等级
# runlevel
vmstat
功能:显示虚拟内存的状态
语法:vmstat [参数]
参数 | 说明 |
---|---|
-a | 显示使用与非使用中的虚拟内存状态 |
-d | 显示磁盘信息 |
-f | 显示开机后 fork的用量 |
-s | 显示较完整的数据与统计 |
-S 单位 | 设置显示单位,K:1024,M:1024*1024,k:1000,m:1000000 |
-V | 显示版本信息 |
实例:
1. 显示虚拟内存的状态
# vmstat
2. 显示磁盘信息
# vmstat -d
free
功能:显示内存使用状态
语法:free [参数]
参数 | 说明 |
---|---|
-b | 以Byte为单位显示内存的使用情况 |
-k | 以KB为单位显示内存的使用情况 |
-m | 以MB为单位显示内存的使用情况 |
-o | 不显示缓冲区的状态 |
-s 秒数 | 持续观察内存的使用状态,以延迟秒数为周期持续观察 |
-t | 显示内存(物理内存与虚拟内存)的总和 |
-V | 显示版本信息 |
实例:
1. 查看当前内存使用状况
# free
sysctl
功能:显示和设置内核参数
语法:sysctl [参数]
参数 | 说明 |
---|---|
-a | 显示当前所有可用的内核参数变量和值 |
-A | 以表格形式显示上面-a的内容 |
-e | 忽略未知关键字的错误 |
-n | 不显示变量名关键字,仅显示值 |
-N | 不显示值,仅显示变量名关键字 |
-p 文件 | 从配置文件加载内核参数设置,默认为 /etc/sysctl.conf |
-w 变量=值 | 指定变量等于给定的值 |
实例:
1. 显示正在使用的内核参数
# sysctl -a
ulimit
功能:限制用户对系统资源的使用
语法:ulimit [参数]
参数 | 说明 |
---|---|
-a | 显示当前的系统资源使用限制 |
-c core上限 | 设定core文件的最大值,单位为区块 |
-d 区块大小 | 程序数据节区的最大值,单位为KB |
-f 文件大小 | shell所能建立的最大文件,单位为区块 |
-H | 设置硬性限制 |
-m 内存大小 | 指定可使用内存的上限,单位为KB |
-n 文件数目 | 指定同一时间最多可打开的文件数 |
-p 缓冲区大小 | 指定管道缓冲区的大小,单位512字节 |
-s 堆栈大小 | 指定堆栈的上限,单位为KB |
-S | 设置软性限制 |
-t CPU时间 | 指定CPU使用时间的上限,单位为秒 |
-u 程序数目 | 用户最多可执行的程序数目 |
-v 虚拟内存 | 指定可使用的虚拟内存上限,单位为KB |
实例:
1. 显示当前的系统使用资源限制
# ulimit -a
2. 设置每个用户最多能执行的程序数目为500个
# ulimit -u 500
lsmod
功能:显示已经加载到内核中的模块的信息
语法:lsmod
实例:
1. 显示已经加载到内核中的模块的信息
# lsmod
modinfo
功能:显示模块的信息
语法:modinfo [参数] [模块名称]
参数 | 说明 |
---|---|
-a | 显示作者 |
-d | 显示描述 |
-l | 显示版权 |
-0 | 使用ASCII值为0的字符来分割不同栏 |
-p | 显示此模块的可用参数 |
-V | 显示版本信息 |
实例:
1. 显示蓝牙模块的信息
# modinfo bluetooth
insmod
功能:加载模块
语法:insmod [模块文件名称]
说明:insmod常用于加载某驱动程序
实例:
1. 加载蓝牙模块驱动
# insmod bluetooth
rmmod
功能:卸载模块
语法:rmmod [模块名称]
参数 | 说明 |
---|---|
-f | 强制执行卸载(不建议使用) |
-s | 将错误信息传送到 syslog,而不输出到屏幕上 |
-v | 显示完整的执行过程 |
-w | 等待到模块停止使用时再进行卸载 |
实例:
1. 卸载蓝牙模块
# rmmod -w bluetooth
modprobe
功能:智能加载模块到内核或卸载模块
语法:modprobe [参数] [模块名称]
说明:modprobe可根据depmod所产生的以来关系,智能决定要加载哪些模块
参数 | 说明 |
---|---|
-a | 加载所有根输入名称有关的模块 |
-c | 显示当前的设置 |
-f | 强制执行 |
-C 设置文件 | 指定设置文件位置,默认为 /etc/modprobe.conf |
-i | 忽略设置文件中模块加载或卸载的信息 |
-o | 尝试改变加载到内核的模块的名称 |
-q | 安静模式,发生错误时不显示任何信息 |
-r | 删除指定名称的模块 |
-s | 通过syslog存储错苏信息 |
-v | 显示详细的执行过程 |
--show-depends | 显示模块的依赖性 |
实例:
1. 智能加载 bluetooth模块
# modprobe bluetooth
2. 智能卸载 bluetooth模块
# modprobe -r bluetooth
3. 显示 ext3模块的依赖性
# modprobe --show-depends ext3
depmod
功能:分析可加载模块的关联性
语法:depmod [参数]
参数 | 说明 |
---|---|
-a | 分析所有可用的模块 |
-b | 指定模块所在的位置,默认在 /lib/modules/<版本> |
-F 文件 | 指定系统映像文件 |
-n | 将结果输出到屏幕,而不是写到 modules.dep文件 |
-v | 显示完整的执行过程 |
实例:
1. 检测并显示所有模块的关联性
# depmod -an
ifconfig
功能:设置或显示网络信息
语法:ifconfig [接口名称] [参数] [IP地址]
参数 | 说明 |
---|---|
up | 开启某个网络接口 |
down | 关闭某个网络接口 |
netmask 掩码 | 设置子网掩码 |
broadcast 地址 | 设置广播地址 |
mtu 字节数 | 设置mtu(最大传输字节)的字节数 |
实例:
1. 查看本机所有的网络接口及IP地址信息
# ifconfig
2. 设置本机的ip地址为192.168.1.10
# ifconfig 192.168.1.10
3. 关闭网卡1
# ifconfig eth0 down
ping
功能:传送ICMP echo包,测试主机之间网络的连通性
语法:ping [参数] 地址
参数 | 说明 |
---|---|
-b | 对广播地址发送ICMP echo包 |
-c 次数 | 只传送指定次数的包,传完停止 |
-f | 大量传送包 |
-i 秒数 | 每隔多少秒传送一次包 |
-I 接口 | 指定发包的网络接口(如:eth0) |
-n | 只通过数字地址传送,而不会做主机名反查 |
-r | 直接传送包,而不通过网关 |
-s 包大小 | 指定传送的包大小,默认为56B |
-v | 显示详细的执行过程 |
-V | 显示版本信息 |
实例:
1. 向192.168.1.11地址的主机送出5个包
# ping -c 5 192.168.1.11
netstat
功能:查询网络的当前状态
语法:netstat [参数]
参数 | 说明 |
---|---|
-a | 显示所有信息 |
-c | 将网络状态持续列出 |
-e | 显示其他相关信息 |
-i 接口 | 指定网络接口 |
-l | 显示正在 listen状态的 socket |
-M | 显示隐藏的联机 |
-n | 直接显示IP地址,禁用反向域名解析 |
-p | 显示与soceket相关的程序名称及PID |
-r | 显示内核路由表 |
-t | 仅显示TCP通讯协议的联机状态 |
-u | 仅显示UDP通讯协议的联机状态 |
-v | 显示完整的执行过程 |
实例:
1. 查看当前正在 listen的端口及对应进程
# netstat -nlp
2. 显示内核路由表
# netstat -r
ssh
功能:远程加密客户端连接工具
语法:ssh [参数] 主机名或IP地址
参数 | 说明 |
---|---|
-1 | 强制使用ssh协议版本1 |
-2 | 强制使用ssh协议版本2 |
-4 | 强制使用ssh协议版本4 |
-6 | 强制使用ssh协议版本6 |
-b 地址 | 当本机有多个IP地址时,使用指定的地址与远程主机连接 |
-F 文件 | 指定ssh的设置文件,默认为本账号根目录下的 .ssh/config文件 |
-i 文件 | 指定身份文件 |
-l 账号 | 指定远程连接的登录账号 |
-N | 不执行远程指令,仅作包定位 |
-p 端口 | 指定远程主机的端口号 |
-q | 安静模式,不显示任何信息 |
-v | 显示完整的执行过程 |
-V | 显示版本信息 |
实例:
1. 通过ssh远程连接到192.168.1.11主机
# ssh 192.168.1.11
slogin
功能:远程加密客户端连接工具(完全同ssh)
语法:slogin [参数] 主机名或IP地址
telnet
功能:远程联机工具(早期)
语法: [参数] [主机地址] [端口号]
说明:telnet因为采用明文传送报文,安全性不好,现在多半以ssh来取代telnet。 但是在嵌入式开发中还是比较常用的,一般在PC端用telnet通过串口登录嵌入式linux开发板。
参数 | 说明 |
---|---|
-8 | 使用8位字符 |
-d | 启动调试模式 |
-l 账号 | 指定登录账号 |
-n 文件 | 指定记录的文件位置 |
实例:
1. 连接到 192.168.1.9主机的25号端口
# telnet 192.168.1.9 25
tcpdump
功能:显示网络上TCP的联机状态
语法:tcpdump [参数]
。
说明:tcpdump是一款sniffer工具,它可以显示所有经过网络接口的数据包的头信息
参数 | 说明 |
---|---|
-A | 使用ASCII列出每个信息包 |
-c 包数 | 收到指定包数后退出 |
-d | 将包编码以易读方式显示后退出 |
-i 接口 | 指定要监听的网络接口(如:eth0) |
-n | 不将IP地址转换成主机名或域名 |
-q | 快速输出,仅列出少数的传输协议信息 |
-r 文件 | 从文件中读取包信息 |
-t | 不显示时间信息 |
-v | 显示完整的执行过程 |
-x | 将输出信息以十六进制显示 |
-X | 以十六进制且ASCII格式显示 |
实例:
1. 监听本机 eth0收到的所有包
# tcpdump -i eth0
wget
功能:从指定URL网址下载网页或文件
语法:wget [参数] URL
参数 | 说明 |
---|---|
-a 文件 | 将所有的执行过程记录到指定文件内 |
-b | 使用后台操作下载文件 |
-c | 继续上次未完成的下载 |
-d | 调试模式 |
-e 指令 | 激活 wget后就执行该指令 |
-F | 将读入的文件视为HTML格式 |
-h | 显示帮助信息 |
-i | 从指定的文件读取 URL |
-nc | 不覆盖旧有的文件 |
-nv | 下载时只显示更新和出错信息,不显示指令的详细执行过程 |
-O 文件 | 指定输出文件 |
-q | 安静模式,不显示任何信息 |
-t 次数 | 设置最大尝试次数,若为0则为无限制 |
-v | 显示完整的执行过程 |
-V | 显示版本信息 |
实例:
1. 使用 wget下载文件
# wget http://xxxxxxxxxxx/testfie1.gz
help
功能:shell内置指令说明
语法:help [shell内置指令]
实例:
1. 显示 exit指令内容
# help exit
info
功能:显示帮助说明信息(有时比man更详细)
语法:info [参数] [指令]
参数 | 说明 |
---|---|
-d 目录 | 指定info附加搜索的目录 |
-f | 指定Info文件 |
-n | 指定info浏览时的第1个节点 |
-o 文件名 | 将info显示内容输出到指定文件 |
实例:
1. 显示 ls指令的 info信息
# info ls
man
功能:显示各种指令的帮助信息
语法:man [参数] [指令名称]
参数 | 说明 |
---|---|
-a | 一般默认只显示一个章节的帮助信息,此参数会列出该指令所有章节的帮助信息 |
-C | 指定设置文件,默认为~/.manpath |
-d | 显示调试信息 |
-f | 显示给定指令的简短描述信息 |
-K | 显示所有跟指令名称有关的帮助文件 |
-M 目录 | 指定man搜索的目录 |
-P | 指定显示时使用的分页程序,默认为 /usr/bin/less -is |
-w | 仅显示帮助文件的位置 |
实例:
1. 显示 ps指令的帮助文档
# man ps
whatis
功能:查询一个命令执行什么功能,效果类似 man -f
语法:whatis [指令名称]
实例:
1. 查询 cp指令的功能
# whatis cp
Linux常用命令速查的更多相关文章
- Linux常用命令速查备忘
Linux常用命令速查备忘 PS:备忘而已,详细的命令参数说明自己man 一. 启动,关机,登入,登出相关命令 [login] 登录 [logout] 登出 [exit] 登出 [shutdown ...
- Linux常用命令速查-汇总篇
Linux常用命令速查-用户管理 Linux常用命令速查-文件管理 Linux常用命令速查-系统监控 Linux常用命令速查-网络管理 Linux常用命令速查-定时任务 Linux常用命令速查-Vim
- Linux常用命令速查-用户管理
◆ 用户组 ◆ 查看当前用户所属的用户组 1 groups 查看所有用户组 123456789 [root@node2 ~]# cat /etc/group root:x:0:bin:x:1:daem ...
- Linux 常用命令速查
0x001 .在指定文件夹下递归查询包含一个字符串的文件(列出的文件内容片段) grep -r “要查找的串” 文件路径 如 : grep -r "helloworld&q ...
- 转收藏:Git常用命令速查表
一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...
- Git 常用命令速查表(图文+表格)
一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...
- git 常用命令速查
git 常用命令速查 命令速查表 一.克隆项目 把远程仓库上的项目克隆到本地.一般来说项目是有1个或2个分支,主要是做开发和线上的区别.既然所属分支不一样,那命令也会有一点区别.这里假设是有2个分支, ...
- Git 常用命令速查表(图文+表格)【转】
转自:http://www.jb51.net/article/55442.htm 一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git comm ...
- Docker常用命令速查手册(华贵铂金版)
原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 Docker常用命令速查手册 搜索仓库镜像 docker search nginx 获取 ...
随机推荐
- 【Codeforces 91B】Queue
[链接] 我是链接,点我呀:) [题意] [题解] 对于每个i,用二分的方法求出来y所在的位置j. 可以这样求. 假设现在二分到了位置mid. 那么随便用个rmq求出来mid..n这一段的最小值tem ...
- HDU - 1723 - Distribute Message
先上题目: Distribute Message Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java ...
- 楼控-西门子-insight使用-软件重新授权
在insight的使用中,可能会碰到insight的软件授权失败,此时需要重新将原授权删除,再重新将软件授权. 先看一下软件授权失效会出现什么: 再看看如何删除原来的密钥,再注册新的密钥.
- [bzoj3932][CQOI2015]任务查询系统_主席树
任务查询系统 bzoj-3932 CQOI-2015 题目大意:最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的任务用三元组(Si,Ei,Pi)描述 ...
- mysql 易错误理解
MySQL作为数据库的一大主力军,到处存在于我们各种系统中,相信大家都不陌生!但是,你知道你能用不代表你知道细节,那我们就来盘点盘点其中一些我们平时不太注意的地方,一来为了有趣,二来为了不让自己踩坑. ...
- http400错误基本都是http请求参数与服务器接收参数不匹配
http400错误基本都是http请求参数与服务器接收参数不匹配造成的, 如:1)post请求,你发了个get请求 2)content-type指定不匹配致使参数无法读出来
- 【Android界面实现】SlidingMenu最新版本号使用具体解释
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 在非常久之前的一篇文章中,简单的介绍了一下开源项目SlidingMenu控件的使用,这一篇文章,将比較具体的 ...
- C语言学习笔记:15_c语言中的进制操作.c
/* * 15_c语言中的进制操作.c * * Created on: 2015年7月5日 * Author: zhong */ #include <stdio.h> #include & ...
- Android SQLite服务--创建、增删改查
<pre name="code" class="java">import android.content.Context; import andro ...
- 监控sql运行时剩余时间
--监控sql执行时剩余时间 你知道正在执行的sql大概须要多长时间么? 你知道正在执行的sql大概完毕了百分之几么? 你知道正在执行的sql大概还要多长时间完毕么? V$SESSION_LONGOP ...