uniq
显示或忽略重复的行。
概要
uniq [OPTION]... [INPUT [OUTPUT]]
主要用途
- 将输入文件(或标准输入)中邻近的重复行写入到输出文件(或标准输出)中。
- 当没有选项时,邻近的重复行将合并为一个。
选项
-c, --count 在每行开头增加重复次数。
-d, --repeated 所有邻近的重复行只被打印一次。
-D 所有邻近的重复行将全部打印。
--all-repeated[=METHOD] 类似于 -D,但允许每组之间以空行分割。METHOD取值范围{none(默认),prepend,separate}。
-f, --skip-fields=N 跳过对前N个列的比较。
--group[=METHOD] 显示所有行,允许每组之间以空行分割。METHOD取值范围:{separate(默认),prepend,append,both}。
-i, --ignore-case 忽略大小写的差异。
-s, --skip-chars=N 跳过对前N个字符的比较。
-u, --unique 只打印非邻近的重复行。
-z, --zero-terminated 设置行终止符为NUL(空),而不是换行符。
-w, --check-chars=N 只对每行前N个字符进行比较。
--help 显示帮助信息并退出。
--version 显示版本信息并退出。
参数
INPUT(可选):输入文件,不提供时为标准输入。
OUTPUT(可选):输出文件,不提供时为标准输出。
返回值
返回0表示成功,返回非0值表示失败。
例子
注意:命令2和命令3结果一样,命令1仅作了相邻行的去重。
uniq file.txt
sort file.txt | uniq
sort -u file.txt
只显示单一行,区别在于是否执行排序:
uniq -u file.txt
sort file.txt | uniq -u
统计各行在文件中出现的次数:
unlink
系统调用函数unlink去删除指定的文件
补充说明
unlink命令 用于系统调用函数unlink去删除指定的文件。和rm命令作用一样,都是删除文件。
语法
unlink(选项)(参数)
选项
--help:显示帮助;
--version:显示版本号。
参数
文件:指定要删除的文件。
unprotoize
删除C语言源代码文件中的函数原型
补充说明
unprotoize命令 属于gcc套件,用于删除C语言源代码文件中的函数原型。
语法
unprotoize(选项)(参数)
选项
-d:设置需要转换代码的目录;
-x:转换代码时排除的文件。
参数
文件:需要转换代码的C语言源文件。
unrar
解压rar文件命令,从 rar 压缩包中提取文件
语法
unrar [选项][switch 命令] [文件名...][路径]
unrar <command> [-<switch 1> -<switch N>] archive [files...] [path...]
安装
在 Linux 中输入以下命令下载安装包
wget https://www.rarlab.com/rar/rarlinux-6.0.2.tar.gz
cd ~/Downloads/
tar -zxvf rarlinux-6.0.2.tar.gz
选项
e # 解压压缩文件到当前目录
l[t,b] # 列出压缩文件[技术信息,简洁]
p # 将文件打印到标准输出。
t # 测试压缩文件
v[t,b] # 详细列出压缩文件[技术信息,简洁]
x # 用绝对路径解压文件
SWITCHES 开关设置
注意:每个开关必须用空格分隔。你不能把它们放在一起。
-av- # 禁用,真实性验证检查。
-c- # 禁用,评论显示
-f # 刷新文件
-kb # 保留破碎的提取文件
-ierr # 将所有消息发送给stderr。
-inul # 禁用,所有消息。
-o+ # 覆盖现有文件。
-o- # 不要覆盖现有文件
-p<password>
# 设置密码。
-p- # 不查询密码
-r # 递归子目录。
-u # 更新文件。
-v # 列出所有卷。
-x<file>
# 排除指定的文件。
-x@<list>
# 排除指定列表文件中的文件。
-x@ # 读取要从 stdin 中排除的文件名。
-y # 对所有查询都假设为是。
参数
目录:指定要显示列表的目录,也可以是具体的文件。
unset
删除指定的shell变量或函数。
概要
unset [-f] [-v] [-n] [name ...]
主要用途
- 删除一到多个shell变量(不包括只读变量)。
- 删除一到多个shell函数。
- 删除一到多个具有引用属性的变量(如果-n选项存在)。
选项
-f:仅删除函数。
-v:仅删除变量(不包括只读变量)。
-n:删除具有引用属性的变量名(如果该选项存在)。
参数
name(可选):要删除的变量或函数。
返回值
返回成功除非选项错误或要删除的变量或函数有只读属性。
例子
# 删除变量。
declare paper_size='B5'
unset -v paper_size
# 删除函数。
function show_result(){ echo 'Last Command Return: $?'; }
unset -f show_result
# 当不指定选项时,优先删除变量,如果失败则删除函数。
declare -i aa=100
function aa(){ echo 'aa'; }
unset aa
# 变量'aa'已被删除。
declare -p aa
# 函数'aa'存在。
declare -F|grep aa
# 演示unset使用-n选项,name指定了引用变量时的情况。
declare a=3
# 定义引用变量
declare -n b=a
# 查看属性,显示declare -n b="a"
declare -p b
# 显示3
echo ${b}
# 显示a
echo ${!b}
# 指定-n选项时
unset -n b
# 引用变量b已被删除
declare -p b
# 被引用的变量a未被删除
declare -p a
# 演示unset不使用-n选项,name指定了引用变量时的情况。
declare a=3
# 定义引用变量
declare -n b=a
# 查看属性,显示declare -n b="a"
declare -p b
# 显示3
echo ${b}
# 显示a
echo ${!b}
# 不指定-n选项时
unset b
# 引用变量b未被删除,显示declare -n b="a"
declare -p b
# 被引用的变量a被删除
declare -p a
注意
- 该命令是bash内建命令,相关的帮助信息请查看
help命令。
unzip
用于解压缩由zip命令压缩的压缩包
补充说明
unzip命令 用于解压缩由zip命令压缩的“.zip”压缩包。
语法
unzip(选项)(参数)
选项
-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换;
-f:更新现有的文件;
-l:显示压缩文件内所包含的文件;
-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换;
-t:检查压缩文件是否正确;
-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中;
-v:执行时显示详细的信息;
-z:仅显示压缩文件的备注文字;
-a:对文本文件进行必要的字符转换;
-b:不要对文本文件进行字符转换;
-C:压缩文件中的文件名称区分大小写;
-j:不处理压缩文件中原有的目录路径;
-L:将压缩文件中的全部文件名改为小写;
-M:将输出结果送到more程序处理;
-n:解压缩时不要覆盖原有的文件;
-o:不必先询问用户,unzip执行后覆盖原有的文件;
-P<密码>:使用zip的密码选项;
-q:执行时不显示任何信息;
-s:将文件名中的空白字符转换为底线字符;
-V:保留VMS的文件版本信息;
-X:解压缩时同时回存文件原来的UID/GID;
-d<目录>:指定文件解压缩后所要存储的目录;
-x<文件>:指定不要处理.zip压缩文件中的哪些文件;
-Z:unzip-Z等于执行zipinfo指令。
参数
压缩包:指定要解压的“.zip”压缩包。
实例
将压缩文件text.zip在当前目录下解压缩。
unzip test.zip
将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
unzip -n test.zip -d /tmp
查看压缩文件目录,但不解压。
unzip -v test.zip
将压缩文件test.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件。
unzip -o test.zip -d tmp/
解压指定文件,* 用作通配符。
unzip test.zip "*.jpg"
updatedb
创建或更新slocate命令所必需的数据库文件
补充说明
updatedb命令 用来创建或更新slocate命令所必需的数据库文件。updatedb命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入slocate数据库文件中。
补充说明:slocate本身具有一个数据库,里面存放了系统中文件与目录的相关信息。
语法
updatedb(选项)
选项
-o<文件>:忽略默认的数据库文件,使用指定的slocate数据库文件;
-U<目录>:更新指定目录的slocate数据库;
-v:显示执行的详细过程。
实例
实用updatedb命令的-U选项可以指定要更新slocate数据库的目录。
updatedb -U /usr/local/ 更新指定命令的slocate数据库
uptime
查看Linux系统负载信息
补充说明
uptime命令 能够打印系统总共运行了多长时间和系统的平均负载。uptime命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
语法
uptime(选项)
选项
-V:显示指令的版本信息。
实例
使用uptime命令查看系统负载:
[root@LinServ-1 ~]# uptime -V #显示uptime命令版本信息
procps version 3.2.7
[root@LinServ-1 ~]# uptime
15:31:30 up 127 days, 3:00, 1 user, load average: 0.00, 0.00, 0.00
显示内容说明:
15:31:30 # 系统当前时间
up 127 days, 3:00 # 主机已运行时间,时间越大,说明你的机器越稳定。
1 user # 用户连接数,是总连接数而不是用户数
load average: 0.00, 0.00, 0.00 # 系统平均负载,统计最近1,5,15分钟的系统平均负载
那么什么是系统平均负载呢? 系统平均负载是指在特定时间间隔内运行队列中的平均进程数。
如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能是良好的。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。
如果你的linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了。
useradd
创建的新的系统用户
补充说明
useradd命令 用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
在Slackware中,adduser指令是个script程序,利用交谈的方式取得输入的用户帐号资料,然后再交由真正建立帐号的useradd命令建立新用户,如此可方便管理员建立用户帐号。在Red Hat Linux中, adduser命令 则是useradd命令的符号连接,两者实际上是同一个指令。
语法
useradd(选项)(参数)
选项
-b, --base-dir BASE_DIR # 如果未指定 -d HOME_DIR,则系统的默认基本目录。如果未指定此选项,useradd 将使用 /etc/default/useradd 中的 HOME 变量指定的基本目录,或默认使用 /home。
-c, --comment COMMENT # 加上备注文字。任何文本字符串。它通常是对登录名的简短描述,目前用作用户全名的字段。
-d, --home HOME_DIR # 将使用 HOME_DIR 作为用户登录目录的值来创建新用户。
-D, --defaults # 变更预设值。
-e, --expiredate EXPIRE_DATE # 用户帐户将被禁用的日期。 日期以 YYYY-MM-DD 格式指定。
-f, --inactive INACTIVE # 密码过期后到帐户被永久禁用的天数。
-g, --gid GROUP # 用户初始登录组的组名或编号。组名必须存在。组号必须引用已经存在的组。
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]] # 用户也是其成员的补充组列表。每个组用逗号隔开,中间没有空格。
-h, --help # 显示帮助信息并退出。
-k, --skel SKEL_DIR # 骨架目录,其中包含要在用户的主目录中复制的文件和目录,当主目录由 useradd 创建时。
-K, --key KEY=VALUE # 覆盖 /etc/login.defs 默认值(UID_MIN、UID_MAX、UMASK、PASS_MAX_DAYS 等)。
-l, --no-log-init # 不要将用户添加到 lastlog 和 faillog 数据库。
-m, --create-home # 如果用户的主目录不存在,则创建它。
-M # 不要创建用户的主目录,即使 /etc/login.defs (CREATE_HOME) 中的系统范围设置设置为 yes。
-N, --no-user-group # 不要创建与用户同名的组,而是将用户添加到由 -g 选项或 /etc/default/useradd 中的 GROUP 变量指定的组中。
-o, --non-unique # 允许创建具有重复(非唯一)UID 的用户帐户。 此选项仅在与 -o 选项结合使用时有效。
-p, --password PASSWORD # crypt(3) 返回的加密密码。 默认是禁用密码。
-r, --system # 创建一个系统帐户。
-s, --shell SHELL # 用户登录 shell 的名称。
-u, --uid UID # 用户 ID 的数值。
-U, --user-group # 创建一个与用户同名的组,并将用户添加到该组。
-Z, --selinux-user SEUSER # 用户登录的 SELinux 用户。 默认情况下将此字段留空,这会导致系统选择默认的 SELinux 用户。
# 更改默认值
# 当仅使用 -D 选项调用时,useradd 将显示当前默认值。 当使用 -D 和其他选项调用时,useradd 将更新指定选项的默认值。 有效的默认更改选项是:
参数
用户名:要创建的用户名。
userdel
用于删除给定的用户以及与用户相关的文件
补充说明
userdel命令 用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。
语法
userdel(选项)(参数)
选项
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件。
参数
用户名:要删除的用户名。
实例
userdel命令很简单,比如我们现在有个用户linuxde,其家目录位于/var目录中,现在我们来删除这个用户:
userdel linuxde # 删除用户linuxde,但不删除其家目录及文件;
userdel -r linuxde # 删除用户linuxde,其家目录及文件一并删除;
请不要轻易用-r选项;他会删除用户的同时删除用户所有的文件和目录,切记如果用户目录下有重要的文件,在删除前请备份。
其实也有最简单的办法,但这种办法有点不安全,也就是直接在/etc/passwd中删除您想要删除用户的记录;但最好不要这样做,/etc/passwd是极为重要的文件,可能您一不小心会操作失误。