Linux常用命令-1000

  

1:文件管理(310) 2:文档编(46)
3:系统管(267) 4:磁盘管(88)
5:文件传(20) 6:网络通(98)
7:设备管(46) 8:备份压(17)
9:其他命(120)  

 

1:文件管理

 

7za命令 文件压缩命令

 

7za一种文件压缩命令,7z格式具有高压缩比率,它采用了多种压缩算法进行数据压缩。因此,与其它压缩格式相比,得到的压缩文档较小。大多数源代码都基于 GNU LGPL 许可协议下发布,可任意使用。

语法格式:7za [参数] [文件]

常用参数:

代表添加文件/文件夹到压缩包
-t 指定压缩类型,7za默认压缩类型就是7z
-r 递归所有的子文件夹

参考实例

压缩.bashrc 文件:

[root@linuxcool ~]# 7za a -r bashrc_bk .bashrc

指定压缩格式为7z压缩文件夹:

[root@linuxcool ~]# 7za a -t7z -r Mytest.7z /opt/test/*

解压缩bashrc _bk文件:

[root@linuxcool ~]# 7za x -r bashrc_bk -o/root/test

 

 


alias命令 设置命令别名

alias命令用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进行简化。使用alias时,用户必须使用单引号 ‘ ‘ 将原来的命令引起来,防止特殊字符导致错误。

alias命令的作用只局限于该次登入的操作。若要每次登入都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件 /etc/bashrc中。

语法格式:alias [参数]

常用参数:

-p 打印已经设置的命令别名

参考实例

查看系统已经设置的别名:

[root@linuxcool ~]# alias -p
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde

给命令设置别名 :

[root@linuxcool ~]# alias lx=ls
[root@linuxcool ~]# lx
anaconda-ks.cfg Desktop install.log install.log.syslog qte


apk命令 下载包管理工具

Android应用程序包(APK)是android操作系统使用的应用程序包文件格式,用于分发和安装移动应用及中间件。 一个Android应用程序的代码想要在Android设备上运行,必须先进行编译,然后被打包成一个android系统所能识别的文件才可以运行。

语法格式:apk [参数]

常用参数:

install 安装应用程序包
upgrade 更新最新本地镜像源
search 搜索

参考实例

安装应用程序包:

[root@linuxcool ~]# apk install xxx

升级系统已安装的所以软件包(一般包括内核):

[root@linuxcool ~]# apk upgrade 

查找所以可用软件包及其描述内容:

[root@linuxcool ~]# apk search -v

显示软件包的信息:

[root@linuxcool ~]# apk info 

卸载并删除包:

[root@linuxcool ~]# apk del openssh openntp vim 


apmd命令 进阶电源管理服务程序

apmd命令用于进阶电源管理服务程序。apmd负责BIOS进阶电源管理(APM)相关的记录,警告与管理工作。

语法格式:apmd [参数]

常用参数:

-p 记录事件百分比变化量的预设值为5,若设置值超过100,则关闭此功能
-u 将BIOS时钟设为UTC
-v 记录所有的APM事件
-V 显示版本信息
-w 当电池不在充电状态时,且电池电量低于设置的百分比值,则在syslog(2)的ALERT层记录警告信息。百分比值的预设置为10,若设置为0,则关闭此功能
-W 发出警告信息给所有人

参考实例

记录所有的电源管理事件:

[root@linuxcool ~]# apmd -v

设置BIOS时钟:

[root@linuxcool ~]# apmd -utc 


apropos命令 在whatis数据库中查找字符串

apropos命令在一些特定的包含系统命令的简短描述的数据库文件里查找关键字,然后把结果送到标准输出。

如果你不知道完成某个特定任务所需要命令的名称,可以使用一个关键字通过Linux apropos实用程序来搜索它。该实用程序可以搜索关键字并且显示所有包含匹配项的man页面的简短描述。另外,使用man实用程序和-k(关键字)选项,可以得到和用Linux apropos实用程序相同的结果(实际上是相同的命令)。

语法格式:apropos [参数] [关键字]

常用参数:

-d 输出调试信息
-l 不根据终端宽度缩减输出
-w 将每个keyword作为shell样式的通配符解释

参考实例

查找手册页名字和描述中包含emacs和vi的手册页:

[root@linuxcool ~]# apropos -a emacs vi

打印版本信息并退出:

[root@linuxcool ~]# apropos -V

打印帮助信息并退出 :

[root@linuxcool ~]# apropos -h

查找包含who的关键字:

[root@linuxcool ~]# apropos who

不根据终端宽度缩减输出:

[root@linuxcool ~]# apropos -l who


aptitude命令 包管理工具

aptitude命令与apt-get命令一样,都是Debian Linux及其衍生系统中功能极其强大的包管理工具。

与apt-get不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude 在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。它通过文本操作菜单和命令两种方式管理软件包。

相对来说,更加推荐使用aptitude命令来代替apt-get,特别是在下载或者删除依赖包的时候,aptitude都要比apt-get更好。

语法格式:aptitude [参数]

常用参数:

-d 仅下载软件包,不执行安装操作
-p 每一步操作都要求确认
-y 所有问题都回答“yes”
-v 显示附加信息
-u 启动时下载新的软件包列表
-h 显示帮助信息

参考实例

更新可用的包列表:

[root@linuxcool ~]# aptitude update 

执行一次安全的升级:

[root@linuxcool ~]# aptitude safe-upgrade

安装包:

[root@linuxcool ~]# aptitude install pkgname 

删除包及其配置文件:

[root@linuxcool ~]# aptitude purge pkgname

删除下载的包文件:

[root@linuxcool ~]# aptitude clean 

搜索包:

[root@linuxcool ~]# aptitude search pkgname  


apt-key命令 管理APT软件包的密钥

apt-key命令用于管理Debian Linux系统中的软件包密钥。每个发布的Debian软件包都是通过密钥认证的,apt-key命令用来管理Debian软件包密钥。

语法格式: apt-key [参数]

常用参数:

add filename 从文件中加载新的密钥到被信任的密钥中
del kid 从被信任的密钥中删除指定密钥
export keyed 将指定的密钥输出到标准输出设备
exportall 将所有密钥输出到标准输出设备
list 显示被信任密钥
finger 显示被信任密钥的指纹
adv 向pgp传递高级特性
update 通过key包来更新key

参考实例

列出已保存在系统中key:

[root@linuxcool ~]# apt-key list

把下载的key添加到本地trusted数据库中:

[root@linuxcool ~]# apt-key add keyname

从本地trusted数据库删除key:

[root@linuxcool ~]# apt-key del keyname

更新本地trusted数据库,删除过期没用的key:

[root@linuxcool ~]# apt-key update


apt-sortpkgs命令 排序软件包索引文件

apt-sortpkgs命令是Debian linux下对软件包索引文件进行排序的简单工具。

该命令会获取索引文件(源索引或包索引)并对记录进行排序,它还将根据内部排序规则对每个记录的内部字段进行排序。

语法格式: apt-sortpkgs [参数] [文件]

常用参数:

-c 指定要使用的配置文件
-s 使用源索引字段排序
-o 设置配置选项
-h 显示帮助信息

参考实例

排序软件包(Packages)索引文件:

[root@linuxcool ~]# apt-sortpkgs Packages

使用指定的配置文件进行操作:

[root@linuxcool ~]# apt-sortpkgs -c Packages

使用源索引字段进行排序:

[root@linuxcool ~]# apt-sortpkgs -s Packages


arj命令 创建和管理.arj压缩包

arj命令是“.arj”格式的压缩文件的管理器,用于创建和管理“.arj”压缩包。

当创建arj压缩包时,可省略“.arj”的后缀,由arj命令自动添加,对现有的arj压缩包操作时,必须同时指明文件名和后缀。

语法格式: arj [参数]

常用参数:

ac 将章节加入章节压缩包
cc 将压缩包转换为章节压缩包
dc 从压缩包中删除最近的章节
a 将指定文件加入压缩包
b 执行批处理操作或者dos命令
c 为压缩包文件添加注释信息
d 从压缩包中删除指定文件
e 从压缩包中解压指定文件
f 刷新压缩包中的文件
i 检查arj程序的完整性
j 将多个arj压缩包合并到一个压缩包中
k 删除过时的备份文件
l 显示压缩包中的文件列表
m 将文件移动到压缩包中
n 重命名压缩包中的指定文件
o 排序压缩包中的文件
p 打印压缩包中的文件内容到标注输出
q 修复被破坏的arj压缩文件
r 将文件名中的路径信息删除
s 将文件内容显示到屏幕上并暂停
t 测试压缩包的完整性
u 更新指定文件到压缩包中
v 输出压缩包中文件的更详细信息
w 在压缩包中的文件内搜索指定的字符串
x 解压文件时包括文件的全部路径
y 用新选项复制压缩包

参考实例

创建压缩包,并将指定文件添加到包内:

[root@linuxcool ~]# arj a linuxcool /var/log/secure

显示压缩包中的文件列表:

[root@linuxcool ~]# arj l linuxcool.arj

显示压缩包中的详细文件列表:

[root@linuxcool ~]# arj v linuxcool.arj 

压缩整个目录,忽略文件路径:

[root@linuxcool ~]# arj a -e linuxcool *


arptables-save命令 保存ARP表

使用arptables-save命令可以转储ARP表中的内容,已便于以解析的格式输出到标准输出中。

语法格式:arptables-save [参数]

常用参数:

-c 在输出中包含的所有数据包和字节计数器的当前值
-t 限制输出只有一个表,如果没有指定,输出包括所有的可用表

参考实例

保存ARP表:

[root@linuxcool ~]# arptables-save

保存ARP表到/root/arp文件中:

[root@linuxcool ~]# arptables-save >/root/arp

追加ARP表到/root/arp中:

[root@linuxcool ~]# arptables-save >>/root/arp


as命令 GUN汇编器

as命令是二进制工具集GNU Binutils的一员,是GNU推出的一款汇编语言编译器集,用于将汇编代码编译为二进制代码,它支持多种不同类型的处理器。

语法格式:as [参数] [文件]

常用参数:

-ac 忽略失败条件
-ad 忽略调试指令
-ah 包括高级源
-al 包括装配
-am 包括宏扩展
-an 忽略形式处理
-as 包括符号
=file 设置列出文件的名字
--alternate 以交互宏模式开始
-f 跳过空白和注释预处理
-g 产生调试信息
-J 对于有符号溢出不显示警告信息
-L 在符号表中保留本地符号
-o 指定要生成的目标文件
--statistics 打印汇编所用的最大空间和总时间

在linux下进行开发时,很少单独使用as命令进行汇编操作,通常都是由gcc命令自动完成汇编和链接操作。

参考实例

假设有汇编文件linuxcool.s,将其会变成二进制.o文件:

[root@linuxcool ~]# as linuxcool.s -o linuxcool.o

忽略失败条件汇编文件linuxcool.s:

[root@linuxcool ~]# as -ac linuxcool.s -o linuxcool.o

生成调试信息进行汇编:

[root@linuxcool ~]# as -g linuxcool.s -o linuxcool.o


auditctl命令 控制内核的审计系统

使用auditctl命令可以对内核中的审计系统进行控制,可以用来获取audit状态和添加/删除audit规则。

语法格式:auditctl [参数]

常用参数:

-s 报告内核的审计子系统状态
-l 列出所有的规则

参考实例

查看audit运行状态:

[root@linuxcool ~]# auditctl -s 

查看现有的audit规则:

[root@linuxcool ~]# auditctl -l


audit-viewer命令 查看和总结审计事件的图形工具

使用audit-viewer命令可以查看和总结审计事件。

语法格式:audit-viewer

参考实例

打开审计查看器:

[root@linuxcool ~]# audit-viewer


aureport命令 生成审计信息报表

使用aureport命令可以生成审计信息的报表,必须以root用户执行。如果执行aureport命令时没有使用任何选项,那么会显示汇总报表。

语法格式: aureport [参数]

常用参数:

-t 日志时间范围报表
-r 关于异常事件响应的报表
-x 关于可执行文件的报表

参考实例

显示日志时间的范围报表:

[root@linuxcool ~]# aureport -t


ausearch命令 搜索审计记录

使用ausearch命令可以搜索审计记录,必须以root用户身份执行ausearch命令。

语法格式:ausearch [参数]

常用参数:

-f 基于文件名的搜索
-c 基于命令行的搜索
-ui 基于计算机名称的搜索
-p 基于进程id的搜索

参考实例

基于root搜索审计记录:

[root@linuxcool ~]# ausearch -ui 0

基于终端tty1搜索审计记录:

[root@linuxcool ~]# ausearch -tm tty1

基于进程号1799搜索审计记录:

[root@linuxcool ~]# ausearch -tm tty1


autoconf命令 自动生成配置脚本

使用autoconf命令可以从模板文件中生成一个配置脚本

语法格式:autoconf [参数] [模板文件]

常用参数:

-v 详细报告处理
-d 不删除临时文件
-f 认为所有的文件都是过时的
-o 在指定文件中保存输出

参考实例

从模板文件/root/in生成一个配置脚本:

[root@linuxcool ~]# autoconf /root/in


autoheader命令 创建C定义的模板文件

使用autoheader命令可以为使用configure创建C定义的模板文件。在结尾处扫描模板文件,或configure.ac文件,或configure.ina文件

语法格式:autoheader [参数] [模板文件]

常用参数:

-v 详细报告处理过程
-d 不删除临时文件
-f 考虑所有文件过时

参考实例

创建C定义时的模板文件:

[root@linuxcool ~]# autoheader


autoreconf命令 更新已经生成的配置文件

使用autoreconf命令可以重复编译指定目录下的系统文件或configure-ac指定的目录树。默认情况下,它只编译比以前编译文件更新的文件。

语法格式:autoreconf [参数] [目录]

常用参数:

-v 详细报告处理
-d 不删除临时文件
-f 认为所有的问价都是过期的文件,强制执行
-i 复制辅助文件

参考实例

更新已经生成的配置文件:

[root@linuxcool ~]# autoreconf


autoscan命令 生成一个初步的configure.in

语法格式:autoscan [参数] [源目录]

常用参数:

-v 冗长的报告处理
-d 不删除临时文件

参考实例

生成一个初步的configure.in:

[root@linuxcool ~]# autoscan /root


autoupdate命令 更新configure.in到较新的Autoconf

使用autoupdate命令可以更新configure.ac或configure.in到较新的Autoconf

语法格式:autoupdate [参数] [模板文件]

常用参数:

-v 冗长的报告处理
-d 不删除临时文件

参考实例

以模板文件/root/in来更新configure.in到较新的Autoconf:

[root@linuxcool ~]# autoupdate /root/in


autrace命令 跟踪指定进程

使用autrace命令可以跟踪指定进程,并将跟踪的结果写入日志文件之中。

语法格式:autrace [参数] [程序]

常用参数:

-r 限制收集到分析资源使用情况所需的系统调用

参考实例

跟踪指定进程,并将跟踪的结果写入到日志文件中:

[root@linuxcool ~]# autrace -r /bin/ls /root


awk命令 文本和数据进行处理的编程语言

awk命令是一种编程语言,用于在linux/unix下对文本和数据进行处理。

而且它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。

语法格式:awk [参数] [文件]

常用参数:

-F 指定输入时用到的字段分隔符
-v 自定义变量
-f 从脚本中读取awk命令
-m 对val值设置内在限制

参考实例

打印每一行的第二和第三个字段:

[root@linuxcool ~]# awk '{ print $2,$3 }' file 

修改输出分隔符号,特殊字符需转义:

[root@linuxcool ~]# awk -v OFS="~"'{print $1,$NF}' demo.txt Welcome~blog. This~file.  

以特定格式输出passwd字符:

[root@linuxcool ~]# awk -F: '{printf "%-15s->%10s ->%20s\n",$1,$(NF-3),$NF}' /etc/passwd|head -2  

打印系统上uid大于等于500且以m开头的行的首字段:

[root@linuxcool ~]# awk -F: '$3>=500 && $1 ~ /^m/{print $1}' /etc/passwd 

第三个字段有0的打印,和仅为0的,模糊匹配和精确匹配:

[root@linuxcool ~]# awk -F: '$3~0{print}' /etc/passwd 


basename命令 显示文件路径名的基本文件名

basename命令主要用于显示文件路径名剔除目录部分后的显示文件名。如何指定了后缀参数suffix,同时也删除文件的扩展名。其中,name是文件的路径名,suffix是文件名的后缀。

语法格式:basename [参数]

常用参数:

--help 显示命令的简单说明与用法等帮助信息,然后退出
--version 显示命令的版本与作者等信息,然后退出

参考实例

显示文件路径名/usr/bin/sort的基本文件名sort:

[root@linuxcool ~]# basename /usr/bin/sort


batch命令 指定时间执行任务

batch命令用于在指定时间,当系统不繁忙时执行任务,用法与at相似。

batch命令是在当系统负载水平允许时执行命令;换句话说,当负载平均值低于0.8或ATD调用中指定的值时。

语法格式:batch [参数]

常用参数

-f 指定包含具体指令的任务文件
-q 指定新任务的队列名称
-m 任务执行完后向用户发送E-mail

参考实例

指定任务执行的日期时间:

[root@linuxcool ~]# batch 
 at> echo 1234
 at> <EOT>
job 5 at Sun Apr 28 08:49:00 2013


beadm命令 管理 ZFS 引导环境

beadm命令是管理ZFS启动环境(BEs)的用户界面。此实用程序供希望在一个系统上管理多个 Oracle Solaris 实例的系统管理员使用。用户通过使用BeFmris确定要管理的BE。

语法格式:beadm [参数]

常用参数:

create 创建新的引导环境
destroy 销毁引导环境
list 列出引导环境信息
mount 挂载引导环境
unmount 卸载引导环境
rename 修改引导环境名称

参考实例

创建新的引导环境:

[root@linuxcool ~]# beadm create linuxcool

销毁上面创建的引导环境:

[root@linuxcool ~]# beadm destroy linuxcool

列出所有引导环境信息:

[root@linuxcool ~]# beadm list

挂载引导环境:

[root@linuxcool ~]# beadm mount linuxcool


blkid命令 显示关于可用块设备的信息

blkid命令对查询设备上所采用文件系统类型进行查询。主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询。

语法格式: blkid [参数]

常用参数:

-s 显示指定信息
-v 显示版本信息
-g 收集blkid缓存
-i 收集有关i/o限制的信息
-p 低级超级块探测(旁路缓存)

参考实例

显示指定设备 UUID:

[root@linuxcool ~]# blkid -s UUID /dev/sda5 

显示所有设备 LABEL:

[root@linuxcool ~]# blkid -s LABEL 

以列表方式查看详细信息:

[root@linuxcool ~]# blkid -o list 

显示所有设备:

[root@linuxcool ~]# blkid -o device 

显示所有设备文件系统:

[root@linuxcool ~]# blkid -s TYPE 


bsdtar命令 读取和写入磁带存档文件

bsdtar创建和操作流式档案文件, 这个实现可以从tar、pax、cpio、zip、jar、ar、xar、rpm、7-zip和ISO 9660 cdrom镜像中提取,并且可以创建tar、pax、cpio、ar、zip、7-zip和shar存档。

语法格式:bsdtar [参数]

常用参数:

-c 创建一个档案
-f archive-filename 档案文件的名称
-t 列出档案的内容
-x 提取档案的内容

参考实例

列出档案的文件名称和内容:

[root@linuxcool ~]# bsdtar -tf archive-filename

提取档案的内容:

[root@linuxcool ~]# bsdtar -xf archive-filename

创建一个档案:

[root@linuxcool ~]# bsdtar -cf archive-filename


bunzip2命令 bz2文件的解压缩程序

bunzip2可解压缩.bz2格式的压缩文件。bunzip2实际上是bzip2的符号连接,执行bunzip2与bzip2 -d的效果相同。

语法格式:bunzip2 [参数]

常用参数

-f 解压缩时,若输出的文件与现有文件名时,预设不会覆盖现有的文件。若要覆盖,请使用此参数
-k 在解压缩后,预设会删除原来的压缩文件。若要保留压缩文件,请使用此参数
-s 降低程序执行时,内存的使用量
-v 解压缩文件时,显示详细的信息
-L 显示版本信息

参考实例

解压.bz2文件:

[root@linuxcool ~]# bunzip2 -v temp.bz2  

 


bzcmp命令 比较.bz2压缩包中的文件

bzcmp命令主要功能是在不真正解压缩.bz2压缩包的情况下,比较两个压缩包中的文件,省去了解压缩后在调用cmp命令的过程。

bzcmp命令本身自己没有任何选项,但是可以使用cmp命令的相关参数,所有的参数将直接传递给cmp命令。在使用bzcmp命令时,会在临时目录/tmp下生成解压后的文件以供cmp命令使用。完毕后删除此临时文件。

语法格式:bzcmp [参数] [文件1] [文件2]

常用参数:

--help 显示帮助
-v 显示版本信息
-s 不显示错误信息
-l 标示出所有不一样的地方
-i 指定一个数目
-c 除了标明差异处的十进制字码之外,一并显示该字符所对应字符

参考实例

比较两个压缩包中的文件的不同:

[root@linuxcool ~]# bzcmp linuxcool.bz2 linuxprobe.bz2    

比较两个压缩包中的文件的不同并且不显示错误信息:

[root@linuxcool ~]# bzcmp -s linuxcool.bz2 linuxprobe.bz2

比较两个压缩包中的文件的不同,且显示不同之处:

[root@linuxcool ~]# bzcmp -l linuxcool.bz2 linuxprobe.bz2


bzdiff命令 比较两个.bz2压缩包中文件的不同

bzdiff命令用于直接比较两个“.bz2”压缩包中文件的不同,省去了解压缩后再调用diff命令的过程。

bzdiff命令本身没有任何的参数选项,但是可以使用diff命令的相关参数,所有的参数将直接传递给diff命令。

语法格式:  bzdiff [参数] [文件1] [文件2]

常用参数:

-<行数> 指定要显示多少行的文本。此参数必须与-c或-u参数一并使用
-a diff预设只会逐行比较文本文件
-b 不检查空格字符的不同
-c 显示全部内容,并标出不同之处
-W 指定输出的列宽,默认130
-x 不比较选项中所指定的文件或目录
-X 您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件
-y 以并列的方式显示文件的异同之处
--help 查看帮助信息
--left-column 在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容
--suppress-common-lines 在使用-y参数时,仅显示不同之处

参考实例

比较两个.bz2压缩包中文件的不同:

[root@linuxcool ~]# bzdiff linuxcool.bz2 linuxprobe.bz2

显示全部内容,并标出不同之处:

[root@linuxcool ~]# bzdiff -c linuxcool.bz2 linuxprobe.bz2

以并列的方式显示异同之处:

[root@linuxcool ~]# bzdiff -y linuxcool.bz2 linuxprobe.bz2


bzgrep命令 搜索.bz2压缩包中文件内容

bzgrep命令使用正则表达式搜索“.bz2”压缩包中文件,将匹配的行显示到标注输出。

bzgrep命令本身没有任何选项,但它支持grep命令的所有选项。在命令行中的选项将直接传递给grep命令。

bzgrep命令和bzegrep命令,bzfgrep命令的功能相同。

语法格式: bzgrep [参数] [文件]

常用参数:

-i 搜索时,忽略大小写
-c 只输出匹配行的数量
-l 只列出符合匹配的文件名,不列出具体的匹配行
-n 列出所有的匹配行,显示行号
-h 查询多文件时不显示文件名
-s 不显示不存在、没有匹配文本的错误信息
-v 显示不包含匹配文本的所有行
-w 匹配整词
-x 匹配整行
-r 递归搜索
-q 禁止输出任何结果,已退出状态表示搜索是否成功
-b 打印匹配行距文件头部的偏移量,以字节为单位
-o 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位

参考实例

忽略大小写搜索:

[root@linuxcool ~]# bzgrep -i Linuxcool linuxcool.bz2

只输出含有“linuxcool”的搜索结果:

[root@linuxcool ~]# bzgrep -c linuxcool linuxcool.bz2

匹配整词搜索“linuxcool”:

[root@linuxcool ~]# bzgrep -w linuxcool linuxcool.bz2


bzless命令 查看bzip2压缩过的文本文件的内容

bzless命令是增强 .bz2 压缩包查看器,bzless比bzmore命令功能更加强大。

语法格式:bzless [参数]

参考实例

查看backup.tar.bz2压缩文件的内容:

[root@linuxcool ~]# bzless backup.tar.bz2 


bzmore命令 查看bzip2压缩过的文本文件的内容

bzmore命令用于查看bzip2压缩过的文本文件的内容,当下一屏显示不下时可以实现分屏显示。

语法格式:bzmore [参数]

参考实例

分屏显示backup.tar.bz2压缩文件的内容:

[root@linuxcool ~]# bzmore backup.tar.bz2


cdplay命令 CD播放工具

cdplay命令用于CD播放工具。

cdplay命令实际上就是一款cd播放软件,比如CD PLAYER,就是我们在日常生活中常说的CD播放器。

语法格式:cdplay [参数]

常用参数:

–s 随机播放
–b 后台运行模式
–d 显示当前正在播放的CD的所有相关信息
-tn 第几首歌曲,n代表数字

参考实例

随机播放一首CD上的歌曲:

[root@linuxcool ~]# cdplay –s

以后台运行模式播放CD上的第8首歌曲:

[root@linuxcool ~]# cdplay –b –t8

显示当前正在播放的CD的所有相关信息:

[root@linuxcool ~]# cdplay –d


cdp命令 播放CD音乐

cdp命令用于播放CD音乐。

声卡设置好了,可以在光驱中插入一张CD,用装载命令mount将光盘载入,然后输入cdp命令就可以播放了。在屏幕上可以看到CD的音轨清单,小键盘的9是播放,7是停止,6进到下一音轨,4退到前一音轨,0退出播放程序,2弹出CD,8是暂停。

如果是在X-Window中,可以用xplaycd播放CD,这是一个有图形界面的播放器,按钮及功能一目了然。

语法格式:cdp [参数]

常用参数:

0 退出播放程序
2 弹出CD
4 退到前一音轨
6 进到下一音轨
7 停止
8 暂停
9 播放

参考实例

装载CD音乐:

[root@linuxcool ~]# mount /dev/cdrom

播放CD音乐:

[root@linuxcool ~]# cdp

cd命令 切换目录

cd命令是”change directory”中单词的首字母缩写,其英文释义是改变目录,所以该命令的功能是从当前目录切换到指定目录。

其中目录的路径可分为绝对路径和相对路径。若目录名称省略,则切换至使用者的用户目录(也就是刚登录时所在的目录)。

另外,“~”也表示为用户目录的意思,“.”则是表示目前所在的目录,“..”则表示当前目录位置的上一级目录。

语法格式:cd [参数] [目录名]

常用参数:

-P 如果切换的目标目录是一个符号链接,则直接切换到符号链接指向的目标目录
-L 如果切换的目标目录是一个符号链接,则直接切换到符号链接名所在的目录
-- 仅使用”-“选项时,当前目录将被切换到环境变量”OLDPWD”对应值的目录
~ 切换至当前用户目录
.. 切换至当前目录位置的上一级目录

参考实例

将当前工作目录切换到dir目录,并使用pwd命令查看当前目录:

[root@linuxcool ~]# cd dir
[root@linuxcool dir]# pwd
/root/dir

使用“cd ~ ”和“cd .. ”命令进行目录的切换操作,并使用pwd命令查看当前目录:

注意:使用“cd ~ ”命令可以直接切换到当前用户目录,而“cd .. ”是切换到上一级目录。

[root@linuxcool dir]# pwd
/root/dir
[root@linuxcool dir]# cd ~
[root@linuxcool ~]# pwd
/root
[root@linuxcool dir]# pwd
/root/dir
[root@linuxcool dir]# cd ..
[root@linuxcool dir]# pwd
/root

使用“cd ../..”命令返回上两级目录:

[root@linuxcool dir_2]# pwd
/root/dir/dir_1/dir_2
[root@linuxcool dir_2]# cd ../..
[root@linuxcool dir]# pwd
/root/dir

使用“cd”命令返回当前用户目录。“cd -- ” 命令返回上一次所在目录:

[root@linuxcool dir_2]# pwd
/root/dir/dir_1/dir_2
[root@linuxcool dir_2]# cd
[root@linuxcool ~]# pwd
/root
[root@linuxcool ~]# cd -
/root/dir/dir_1/dir_2
[root@linuxcool dir_2]# pwd
/root/dir/dir_1/dir_2

chacl命令 更改文件或目录的ACL

chacl命令的作用是用来更改文件或目录的访问控制列表。chacl命令和chmod有异曲同工之妙。但是chacl命令比chmod更为强大,更为精细。

语法格式:chacl [参数] [文件或目录]

常用参数:

-b 表示改变两个ACL,第一个是文件访问ACL,第二个是目录的默认ACL
-d 只设置目录的ACL
-R 只清除文件的ACL
-D 只清除目录的默认ACL
-l 列出访问ACL和可能与指定的文件或目录关联的默认ACL  
-B 清除所有的ACL
-r 递归设置访问ACL

参考实例

查询文件linuxcool_file1的权限配置:

[root@linuxcool ~]# chacl -l linuxcool_file1

将文件linuxcool_file1的权限设置为:拥有者可读可写可运行,同组者可读可运行,其他人仅可运行:

[root@linuxcool ~]# chacl u:rwx,g:r-x,o:--x linuxcool_file1

清除/opt/ta文件的ACL设置:

[root@linuxcool ~]# chacl -B /opt/ta

chattr命令 更改文件属性

chattr指令可改变linux文件系统的文件属性,通用格式为:+-=[aAcCdDeijsStTu]
“ aAcCdDeijsStTu ” 表示可以赋予文件的新属性,这些属性共有以下几种模式 。

  • a:让文件或目录仅供附加用途;
  • A:当一个具有“A”属性的文件被访问时,它的atime记录不会被修改;
  • c:将文件或目录压缩后存放;
  • d:将文件或目录排除在倾倒操作之外;
  • i:不得任意更动文件或目录;
  • j:如果文件系统安装有“data=order”或“data=writeback”选项,则具有“j”属性的文件在写入文件本身之前将其所有数据写入ext 3日志;
  • s:当删除具有“s”属性集的文件时,其块将被归零并写回磁盘;
  • S:当修改具有“S”属性集的文件时,更改将同步写入磁盘;这相当于应用于文件子集的“同步”挂载选项;
  • u:当删除具有‘u’属性集的文件时,它的内容将被保存。

语法格式:chattr [参数] [文件]

实用参数:

-R 递归处理目录下的所有文件
-v 设置文件或目录版本
-V 显示指令执行过程
+ 开启文件或目录的该项属性
-- 关闭文件或目录的该项属性
= 指定文件或目录的该项属性

参考实例

用chattr命令防止系统中某个关键文件被修改(加锁):

[root@linuxcool ~]# chattr +i /etc/resolv.conf

解锁:

[root@linuxcool ~]# chattr -i /home/omd/h.txt    

让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:

 

[root@linuxcool ~]# chattr +a /var/log/messages

 

chfn命令 系统管理

 

chfn命令的英文全称是“change finger”,即用来改变finger命令显示的信息。这些信息都存放在/etc目录里的passwd文件里。若不指定任何选项,则chfn命令会进入问答式界面。

语法格式: chfn [参数]

常用参数

-f 设置真实姓名
-h 设置家中的电话号码
-u 在线帮助
-v 显示版本信息

参考实例

改变finger信息 :

[root@linuxcool ~]# chfn 
Changing finger information for root.
Name [root]: linuxcool
Office []: cool
Office Phone []: 888888
Home Phone []: 999999
Finger information changed.

改变账号真实姓名:

[root@linuxcool ~]# chfn -f 
hnunix Changing finger information for root.
Finger information changed.

 

chmod命令 改变文件或目录权限

 

chmod命令的英文原意是“change the permissions mode of a file”,我们简称为“change mode”,意为用来改变文件或目录权限的命令,但是只有文件的属主和超级用户root才能执行这个命令。有两种模式,一种是采用权限字母和操作符表达式;另一种是采用数字。

语法格式: chmod [参数] [文件]

常用参数:

-c 若该文件权限确实已经更改,才显示其更改动作
-f 若该文件权限无法被更改也不显示错误讯息
-v 显示权限变更的详细资料
-R 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

参考实例

将档案 file1.txt 设为所有人皆可读取:

[root@linuxcool ~]# chmod a+r file.txt  

将目前目录下的所有文件与子目录皆设为任何人可读取 :

[root@linuxcool ~]# chmod -R a+r *   

将 file.txt 设定为只有该文件拥有者可以执行:

[root@linuxcool ~]# chmod u+x file.txt

 

chown命令 改变文件或目录用户和用户组

 

Linux/Unix 属于多用户多任务操作系统,所有的文件皆有拥有者。利用 chown 命令可以将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID,组可以是组名或者组ID,文件是以空格分开的要改变权限的文件列表,支持通配符。 一般来说,这个指令仅限系统管理者(root)所使用,普通用户没有权限改变文件所属者及所属组。

语法格式:chown [参数]

常用参数:

-R 对目前目录下的所有文件与子目录进行相同的拥有者变更
-c 若该文件拥有者确实已经更改,才显示其更改动作
-f 若该文件拥有者无法被更改也不要显示错误讯息
-h 只对于连结(link)进行变更,而非该 link 真正指向的文件
-v 显示拥有者变更的详细资料
--help 显示辅助说明
--version 显示版本

参考实例

将test.txt文件用户组与用户都改为bin:

[root@linuxcool ~]# ll test.txt.bz2 
-rw-r--r-- 1 root root 56 Jul 22 20:17 test.txt.bz2
[root@linuxcool ~]# chown bin:bin test.txt.bz2    
[root@linuxcool ~]# ll test.txt.bz2
-rw-r--r-- 1 bin bin 56 Jul 22 20:17 test.txt.bz2

显示改动动作:

[root@linuxcool ~]# ll test.txt 
-rw-r--r-- 1 root root 45 Jul 22 21:11 test.txt
[root@linuxcool ~]# chown -c bin:bin test.txt 
changed ownership of `test.txt' to bin:bin

将当前目录下所有文件的拥有者都改为 linuxcool,用户组改为 linuxcoolgroup:

[root@linuxcool ~]# chown -R linuxcool:linuxcoolgroup *  

 

chroot命令 改变根目录

 

chroot命令用于改变根目录。chroot(change root)命令把根目录换成指定的目的目录。

语法格式:chroot [参数]

常用参数:

--help  在线帮助
--version 显示版本信息

参考实例

改变根目录:

[root@linuxcool ~]# chroot /mnt/ls 

 

cksum命令 校验文件

 

cksum命令用于检查文件的CRC是否正确, 确保文件从一个系统传输到另一个系统的过程中的正确性 。循环冗余校验法 ( CRC )是一种排错检查方式,该校验法的标准由CCITT所指定,至少可检测到99.998%的已知错误。

这种方法要求校验和在源系统和目的系统中分别被计算出来,之后进行比较,如果校验和相等,则认为该文件传输正确。若不指定任何文件名称或是所给予的文件名为”-“,则指令”cksum”会从标准输入设备中读取数据。

语法格式:cksum [参数] [文件]

常用参数:

--help 在线帮助
--version 显示版本信息

参考实例

计算文件“tempfile”的完整性:

[root@linuxcool ~]# cksum tempfile
4294967295 0 tempfile

注:“4294967295”表示校验码,“0”表示字节数。

 

cmp命令 比较两个文件是否有差异

 

cmp命令有用于比较两个任意类型的文件,若两个文件相同则默认不输出任何信息,若两个文件不同,则会输出第一个不同之处的字符和列数编号,结果输出到标准输出。

若不指定任何文件名称或是所给予的文件名为”-“,则cmp命令会从标准输入设备读取数据。

语法格式:cmp [参数] [文件] [文件]

常用参数:

--help 显示帮助
-v/--version 显示版本信息
-s/--quit/--silent 不显示错误信息
-l/--verbose 标示出所有不一样的地方
-i/--ignore-initial 指定一个数目
-c/--print-chars 除了标明差异处的十进制字码之外,一并显示该字符所对应字符

参考实例

比较文件“tempfile”和“tempfile1”(两文件相同时,不显示任何信息,两文件不同时):

[root@linuxcool ~]# cmp tempfile tempfile1 
tempfile tempfile1 differ:byte 1, line 1

比较文件“tempfile”和“tempfile1” ,不显示错误信息:

[root@linuxcool ~]# cmp -s tempfile tempfile1

比较文件“tempfile”和“tempfile1”,标示出所有不一样的地方:

[root@linuxcool ~]# cmp -l tempfile tempfile1 
1 12 151
2 151 167
8 167 12
cmp: EOF on tempfole1 after byte8

比较文件“tempfile”和“tempfile1” ,指定一个数目:

[root@linuxcool ~]# cmp -i 2 tempfile tempfile1
tempfile tempfile1 differ:byte 6, line 1

比较文件“tempfile”和“tempfile1” , 除了标明差异处的十进制字码之外,一并显示该字符所对应字符:

[root@linuxcool ~]# cmp -c tempfile tempfile1 
tempfile tempfile1 differ:byte 1, line 1 is 12 'J 151 i

 

cpio命令 复制文件到归档包

 

cpio命令主要是用来建立或者还原备份档的工具程序,cpio命令可以复制文件到归档包中,或者从归档包中复制文件。

 

语法格式: cpio [参数]

 

常用参数:

 

-0 接受新增列控制字符,通常配合find指令的“-print0”参数使用
-a 重新设置文件的存取时间
-A 附加到已存在的备份文档中,且这个备份文档必须存放在磁盘上,而不能放置于磁带机里
-B 将输入/输出的区块大小改成5210Bytes
-c 使用旧ASCII备份格式

 

参考实例

 

将/etc下的所有普通文件都备份到/opt/etc.cpio:

 

[root@linuxcool ~]# find /etc –type f | cpio –ocvB >/opt/etc.cpio

 

将系统上所有资料备份到磁带机内:

 

[root@linuxcool ~]# find / -print | cpio -covB > /dev/st0

 

将系统上所有资料备份到磁带机内:

 

[root@linuxcool ~]# cpio  -icdvt < /dev/st0 > /tmp/st_content 

 

 

cpupower命令 调整CPU主频

 

cpupower 是一组为辅助 CPU 调频而设计的用户空间工具。linux内核支持调节CPU主频,降低功耗,已到达节能的效果。对于移动设备和笔记本来说,在没有接通电源的时候,续航是很重要的。

 

通过选择系统空闲状态不同的电源管理策略,可以实现不同程度降低服务器功耗。但是,更低的功耗策略意味着 CPU 唤醒更慢对性能影响更大。对于对时延和性能要求高的应用。

 

对于服务器,一般都是接着电源的,而且要求性能比较高,因此,建议关闭 CPU 的动态调节功能,禁止 CPU 休眠,并把 CPU 频率固定到最高。

 

一般在服务器 BIOS 中修改电源管理为 Performance,如果发现 CPU 模式为 conservative 或者 powersave,可以使用 cpupower 设置 CPU Performance 模式,效果也是相当显著的。

 

语法格式:cpupower [参数]

 

常用参数:

 

frequency-info 频率信息
frequency-set 后跟设置模式

 

参考实例

 

查看当前生效的策略:

 

[root@linuxcool ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
powersave

 

查看当前CPU频率:

 

[root@linuxcool ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
900022

 

查看当前所有CPU的信息:

 

[root@linuxcool ~]# cpupower -c all frequency-info

 

设置所有CPU为性能模式:

 

[root@linuxcool ~]# cpupower -c all frequency-set -g performance

 

设置所有CPU为节能模式:

 

[root@linuxcool ~]# cpupower -c all frequency-set -g powersave

 

查看频率信息:

 

[root@linuxcool ~]# cpupower frequency-info

 

cpupower设置performance:

 

[root@linuxcool ~]# cpupower frequency-set -g performance

 

 

cp命令 复制文件或目录

 

cp命令可以理解为英文单词copy的缩写,其功能为复制文件或目录。

 

cp命令可以将多个文件复制到一个具体的文件名或一个已经存在的目录下,也可以同时复制多个文件到一个指定的目录中。

 

语法格式:cp [参数] [文件]

 

常用参数:

 

-f 若目标文件已存在,则会直接覆盖原文件
-i 若目标文件已存在,则会询问是否覆盖
-p 保留源文件或目录的所有属性
-r 递归复制文件和目录
-d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-l 对源文件建立硬连接,而非复制文件
-s 对源文件建立符号连接,而非复制文件
-b 覆盖已存在的文件目标前将目标文件备份
-v 详细显示cp命令执行的操作过程
-a 等价于“dpr”选项

 

参考实例

 

复制目录:

 

[root@linuxcool ~]# cp -R dir1 dir2/

 

将文件test1改名为test2:

 

[root@linuxcool ~]# cp -f test1 test2

 

复制多个文件:

 

[root@linuxcool ~]# cp -r file1 file2 file3 dir

 

交互式地将目录 /usr/linuxcool 中的所有.c文件复制到目录 dir 中:

 

[root@linuxcool ~]# cp -r /usr/linuxcool/*.c dir

 

 

createdb命令 创建PostgreSQL数据库

 

createdb命令的作用是可以创建一个PostgreSQL数据库。

 

PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS)。 PostgreSQL数据库支持灵活的权限管理,可以控制一个角色(组、用户)对某张表的读、写、更新、删除等操作权限、执行某个函数的权限以及操作(使用、更新等)视图、序列的权限。

 

通常,执行这个命令的数据库用户成为新数据库的所有者。 不过,如果执行用户拥有合适的权限,那么他可以通过 -O指定合适的用户。createdb是一个SQL命令 CREATE DATABASE的封装。

 

语法格式:createdb [参数] [数据库] [描述]

 

常用参数:

 

-D<表空间> 数据库默认表空间
-e 显示发送到服务端的命令
-O<所有者> 新数据库的所属用户
-E<编码> 指定数据库编码
-h<主机名> 数据库服务器的主机名
-p<端口> 数据库服务器端口号
-U<用户> 连接的用户名
-w 永远不提示输入口令
-W 强制提示输入口令
-T<模版数据库> 指定要复制的数据库模版

 

参考实例

 

创建数据库linuxcool:

 

[root@linuxcool ~]# su -postgres
$ createdb  linuxcool

 

主机192.168.60.163上的服务器创建数据库linuxcool,端口是5888:

 

[root@linuxcool ~]# createdb -p 5888 -h 192.168.60.163 linuxcool

 

以数据库linuxcool为模版复制创建数据库db1:

 

[root@linuxcool ~]# su -postgres
$ createdb db1 -T linuxcool

 

 

crlutil命令 列出、生成、修改或删除NSS安全数据库文件中的CRL

 

crlutil命令列出、生成、修改或删除NSS安全数据库文件中的CRL,并列出、创建、修改或删除特定CRL中的证书项。

 

语法格式:crlutil [参数]

 

常用参数:

 

-D 从证书数据库中删除证书吊销列表
-E 从证书数据库中删除指定类型的所有CRL
-G 创建新证书吊销列表(CRL)
-I 导入到CRL到证书数据库
-L 列出位于证书数据库文件中的现有CRL

 

参考实例

 

使用crlutil命令生成证书:

 

[root@linuxcool ~]# certutil -R -k rsa -g 1024 -s "CN=John Smith,O=Example Corp,L=Mountain View,ST=California,C=US" 
-d sql:$HOME/nssdb -p 650-555-0123 -a -o cert.cer

 

创建一个新的CRL并将其导入到指定目录中的数据库中:

 

[root@linuxcool ~]# crlutil -G -d certdir -n cert-nickname -c crl-script-file

 

在数据库中列出CRL:

 

[root@linuxcool ~]# crlutil -L -d certdir

 

 

cupsaccept命令 接受作业发送到目的地

 

使用cupsaccept命令可以指示打印系统接受打印作业到指定的目的地。

 

语法格式:cupsaccept [参数] [目的地]

 

常用参数:

 

-E 当连接到服务器时强加密
-U 设置连接到服务器的用户名

 

参考实例

 

接受作业发送到目的地:

 

[root@linuxcool ~]# cupsaccept

 

 

cupsreject命令 拒绝作业发送到目的地

 

使用cupsreject命令可以指示打印系统拒绝打印作业发送到指定的目的地。

 

语法格式:cupsreject [参数] [目的地]

 

常用参数:

 

-E 当连接到服务器时强制加密
-U 当连接到服务器时发送的用户名

 

参考实例

 

拒绝作业发送到目的地:

 

[root@linuxcool ~]# cupsreject

 

 

cut命令 连接文件并打印到标准输出设备上

 

cut命令有两个主要的功能,第一是显示文件内容,第二是连接多个或多个文件。

 

若不指定file参数,该命令将读取标准输入。 必须指定 -b、-c 或 -f 标志之一。

 

语法格式:cut [参数] [文件]

 

常用参数:

 

-b 以字节为单位进行分割 ,仅显示行中指定直接范围的内容
-c 以字符为单位进行分割 , 仅显示行中指定范围的字符
-d 自定义分隔符,默认为制表符”TAB”
-f 显示指定字段的内容 , 与-d一起使用
-n 取消分割多字节字符
--complement 补足被选择的字节、字符或字段
--out-delimiter 指定输出内容是的字段分割符

 

参考实例

 

假设有一个学生报表信息,包含 No、Name、Mark、Percent:

 

[root@linuxcool ~]# cat student.txt 
No Name Mark Percent
01 tom 69 91
02 jack 71 87
03 alex 68 98

 

使用 -f 选项提取指定字段(这里的 f 参数可以简单记忆为 --fields的缩写):

 

[root@linuxcool ~]# cut -f 2 student.txt 
Name
tom
jack
alex

 

--complement 选项提取指定字段之外的列(打印除了第二列之外的列):

 

[root@linuxcool ~]# cut -f2 --complement student.txt 
No Mark Percent
01 69 91
02 71 87
03 68 98

 

使用 -d 选项指定字段分隔符:

 

[root@linuxcool ~]# cat student2.txt 
No;Name;Mark;Percent
01;tom;69;91
02;jack;71;87
03;alex;68;98

 

[root@linuxcool ~]# cut -f2 -d";" student2.txt 
Name
tom
jack
alex

 

[root@linuxcool ~]# cat test.txt 
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz

 

打印第 1 个到第 3 个字符:

 

[root@linuxcool ~]# cut -c1-3 test.txt 
abc
abc
abc
abc
abc

 

注意:-b 表示字节;-c 表示字符;-f 表示定义字段。

 

N- :从第 N 个字节、字符、字段到结尾; N-M :从第 N 个字节、字符、字段到第 M 个(包括 M 在内)字节、字符、段; -M :从第 1 个字节、字符、字段到第 M 个(包括 M 在内)字节、字符、字段。

 

打印前 2 个字符:

 

[root@linuxcool ~]# cut -c-2 test.txt 
ab
ab
ab
ab
ab

 

打印从第 5 个字符开始到结尾:

 

[root@linuxcool ~]# cut -c5- test.txt 
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz

 

 

dd命令 拷贝文件及转换

 

dd命令用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

 

注意:指定数字的地方若以下列字符结尾则乘以相应的数字:b=512;c=1;k=1024;w=2

 

语法格式:dd [参数]

 

常用参数:

 

-v 显示版本信息
-h 显示帮助信息

 

参考实例

 

将本地的/dev/hdb整盘备份到/dev/hdd:

 

[root@linuxcool ~]# dd if=/dev/hdb of=/dev/hdd  

 

将压缩的备份文件恢复到指定盘:

 

[root@linuxcool ~]# gzip -dc /root/image.gz | dd of=/dev/hdb 

 

由标准输入设备读入字符串,并将字符串转换成大写后,再输出到标准输出设备:

 

[root@linuxcool ~]# dd conv=ucase 

 

将testfile文件中的所有英文字母转换为大写,然后转成为testfile_1文件:

 

[root@linuxcool ~]# dd if=testfile_2 of=testfile_1 conv=ucase 

 

修复硬盘:

 

[root@linuxcool ~]# dd if=/dev/sda of=/dev/sda  

 

 

diff3命令 比较3个文件的不同之处

 

diff3命令用于比较3个文件,将3个文件的不同的地方显示到标准输出。

 

语法格式:diff3 [参数]

 

常用参数:

 

-A 全部显示,有冲突内容用括号括起来
-a 将所有文件视为文本
-T 使制表符对齐

 

参考实例

 

比较3个文件的不同之处:

 

[root@linuxcool ~]# diff3 file1 file2 file3

 

全部显示,有冲突内容用括号括起来:

 

[root@linuxcool ~]# diff3 -A file1 file2 file3

 

将所有文件视为文本:

 

[root@linuxcool ~]# diff3 -a file1 file2 file3

 

使制表符对齐:

 

[root@linuxcool ~]# diff3 -T file1 file2 file3

 

 

diffstat命令 显示统计数字

 

diffstat命令用于读取diff的输出结果,然后统计各文件的插入,删除,修改等差异计量 。

 

语法格式:diffstat [参数]

 

常用参数:

 

-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名
-p 与-n参数相同,但此处的<文件名长度>包括了文件的路径
-w 指定输出时栏位的宽度
-V  显示版本信息

 

参考实例

 

将目录”test1″和”test2″下的同名文件”testf.txt”使用diff指令进行比较。然后使用diffstat指令对结果进行统计显示:

 

[root@linuxcool ~]# diff test1 test2 | diffstat

 

 

diff命令 比较文件的差异

 

diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录 。

 

语法格式:diff [参数] [目录]

 

常用参数:

 

-a diff预设只会逐行比较文本文件
-b 不检查空格字符的不同
-W 在使用-y参数时,指定栏宽
-x 不比较选项中所指定的文件或目录
-X 您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件
-y 以并列的方式显示文件的异同之处
--help 查看帮助信息
--left-column 在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容
--suppress-common-lines 在使用-y参数时,仅显示不同之处

 

参考实例

 

比较两个文件:

 

[root@linuxcool ~]# diff log2014.log log2013.log 

 

并排格式输出:

 

[root@linuxcool ~]# diff log2014.log log2013.log  -y -W 50
2013-01                 2013-01
2013-02                 2013-02
2014-03               | 2013-03
2013-04                 2013-04
2013-05                 2013-05
2013-06                 2013-06
2013-07                 2013-07
2013-07               | 2013-08
2013-09                 2013-09
2013-10                 2013-10
2013-11               <
2013-12               <
[root@localhost test3]# diff log2013.log log2014.log  -y -W 50
2013-01                 2013-01
2013-02                 2013-02
2013-03               | 2014-03
2013-04                 2013-04
2013-05                 2013-05
2013-06                 2013-06
2013-07                 2013-07
2013-08               | 2013-07
2013-09                 2013-09
2013-10                 2013-10
                      > 2013-11
                      > 2013-12

 

注意:”|”表示前后2个文件内容有不同,”<“表示后面文件比前面文件少了1行内容,”>”表示后面文件比前面文件多了1行内容。

 

 

dirname命令 去除文件名中的非目录部分

 

dirname命令去除文件名中的非目录部分,仅显示与目录有关的内容。dirname命令读取指定路径名保留最后一个/及其后面的字符,删除其他部分,并写结果到标准输出。如果最后一个/后无字符,dirname 命令使用倒数第二个/,并忽略其后的所有字符。dirname 和 basename 通常在 shell 内部命令替换使用,以指定一个与指定输入文件名略有差异的输出文件名。

 

语法格式:dirname [参数]

 

常用参数:

 

--help 显示帮助
--version 显示版本号

 

参考实例

 

去除 // 的非目录部分结果为 / :

 

[root@linuxcool ~]# dirname //
/

 

去除 /a/b/ 的非目录部分结果为 /a :

 

[root@linuxcool ~]# dirname /a/b/
/a 

 

去除 a 的非目录部分结果为 . :

 

[root@linuxcool ~]# dirname a
.

 

去除 a/b 的非目录部分结果为路径名 a :

 

[root@linuxcool ~]# dirname a/b
a

 

 

dnsdomainname命令 打印DNS的域名

 

dnsdomainname命令用于定义DNS系统中FQDN名称中的域名。

 

dnsdomainname命令仅打印FQDN中的域名部分,例如,主机FQDN为“www.linuxcool.com”则使用dnsdomainname命令将打印出“linuxcool.com”

 

语法格式:  dnsdomainname [参数]

 

常用参数:

 

-v 详细信息模式,输出命令执行的详细信息

 

参考实例

 

打印DNS域名:

 

[root@linuxcool ~]# dnsdomainname -v 
gethostname()='www.linuxcool.com' 
Resolving'www.linuxcool.com' ... 
Result: h_name='www.linuxcool.com' 
Result: h_addr_list=`192.168.10.10' 

 

 

docker命令 应用容器引擎

 

docker命令可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。

 

语法格式:docker[参数]

 

常用参数:

 

ps 显示状态为运行(Up)的容器
cp 从容器里向外拷贝文件或目录
kill 发送信号给容器,默认SIGKILL

 

参考实例

 

杀掉所有正在运行的容器:

 

[root@linuxcool ~]#docker kill $(docker ps -q) 

 

删掉已经停止的容器:

 

[root@linuxcool ~]#docker rm `docker ps -a -q` 

 

登陆到con03中:

 

[root@linuxcool ~]#docker exec -it con03 /bin/bash 

 

停止con03:

 

[root@linuxcool ~]#docker stop con03 

 

开启con03:

 

[root@linuxcool ~]#docker start con03 

 

 

dos2unix命令 将DOS格式的文本文件转换成UNIX格式

 

dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是0A。

 

DOS格式的文本文件在Linux下,用较低版本的vi打开时行尾会显示^M,而且很多命令都无法很好的处理这种格式的文件。如果是个shell脚本,而Unix格式的文本文件在Windows下用Notepad打开时会拼在一起显示。因此产生了两种格式文件相互转换的需求,对应的将UNIX格式文本文件转成成DOS格式的是unix2dos命令。

 

语法格式:dos2unix [参数] [文件]

 

常用参数:

 

-k 保持输出文件的日期不变
-q 安静模式,不提示任何警告信息
-V 查看版本
-c 转换模式:ASCII 7bit ISO Mac
-o 写入到源文件
-n 写入到新文件

 

参考实例

 

最简单的用法就是dos2unix直接跟上文件名:

 

[root@linuxcool ~]# dos2unix file

 

如果一次转换多个文件,把这些文件名直接跟在dos2unix之后。(注:也可以加上-o参数,也可以不加,效果一样)

 

[root@linuxcool ~]# dos2unix file1 file2 file3
[root@linuxcool ~]# dos2unix -o file1 file2 file3

 

上面在转换时,都会直接在原来的文件上修改,如果想把转换的结果保存在别的文件,而源文件不变,则可以使用-n参数。

 

[root@linuxcool ~]# dos2unix -n oldfile newfile

 

如果要保持文件时间戳不变,加上-k参数。所以上面几条命令都是可以加上-k参数来保持文件时间戳的。

 

[root@linuxcool ~]# dos2unix -k file
[root@linuxcool ~]# dos2unix -k file1 file2 file3
[root@linuxcool ~]# dos2unix -k -o file1 file2 file3
[root@linuxcool ~]# dos2unix -k -n oldfile newfile

 

 

dpkg-deb命令 Debian包管理器

 

dpkg-deb命令是Debian linux下的软件包管理工具,它可以对软件包执行打包和解包操作以及提供软件包信息。

 

可以通过dpkg命令调用dpkg-deb命令的功能,dpkg命令的任何选项将被传递给dpkg-deb命令去执行。

 

语法格式:  dpkg-deb [参数] [文件]

 

常用参数:

 

-c 显示软件包中的文件列表
-e 将主控信息解压
-f 把字段内容打印到标准输出
-x 将软件包中的文件释放到指定目录下
-X 将软件包中的文件释放到指定目录下,并显示释放文件的详细过程
-w 显示软件包的信息
-l 显示软件包的详细信息
-R 提取控制信息和存档的清单文件
-b 创建Debian软件包

 

参考实例

 

解压程序文件:

 

[root@linuxcool ~]# dpkg-deb -x linuxcool.deb drcom

 

解压控制文件:

 

[root@linuxcool ~]# dpkg-deb -e linuxcool.deb drcom/DEBIAN

 

打包生成deb文件:

 

[root@linuxcool ~]# dpkg-deb -b linuxcool.deb

 

查询deb包中的文件内容:

 

[root@linuxcool ~]# dpkg-deb -c linuxcool.deb

 

 

dpkg-divert命令 将文件安装到转移目录

 

dpkg-divert命令是用于将引起冲突的文件安装到转移目录而非默认目录。

 

语法格式: dpkg-divert [参数] [文件]

 

常用参数:

 

-- -add 添加一个转移文件
-- -remove 删除一个转移文件
-- -list 列出匹配的转移
-- -truename 对应转移文件真实文件名
-- -quidet 安静模式

 

参考实例

 

指定软件包wibble安装时,写入/usr/bin/linuxcool.foo,而不是/usr/bin/ linuxcool:

 

[root@linuxcool ~]# dpkg-divert --package wibble --divert /usr/bin/linuxcool.foo --rename /usr/bin/linuxcool

 

指定软件包wibble安装时,删除对/usr/bin/linuxcool的转移修改:

 

[root@linuxcool ~]# dpkg-divert --package wibble --rename --remove /usr/bin/linuxcool

 

删除对/usr/bin/linuxcool的转移修改:

 

[root@linuxcool ~]# dpkg-divert --rename --remove /usr/bin/linuxcool

 

添加一个软件包安装时,写入/usr/bin/linuxcool.foo,而不是/usr/bin/ linuxcool的修改:

 

[root@linuxcool ~]# dpkg-divert --divert /usr/bin/linuxcool.foo --rename /usr/bin/linuxcool

 

 

dpkg-preconfigure命令 软件包安装之前询问问题

 

dpkg-preconfigure命令用于在Debian linux中软件包安装之前询问问题。如果软件包不需要进行配置,则不会询问任何问题。

 

在非交互式环境下安装支持debconf的软件时,用户无法在线提供软件的配置项。因此用户需要通过dpkg-preconfigure命令预先指定软件配置。

 

语法格式: dpkg-preconfigure [参数] [软件包]

 

常用参数:

 

-f 选择使用的前端
-p 感兴趣的最低的优先级问题
-- -apt 在apt模式下运行

 

参考实例

 

导入debconf模板:

 

[root@linuxcool ~]# dpkg-preconfigure /var/cache/apt/archives/mysql-server-5.5*.deb

 

安装前询问问题:

 

[root@linuxcool ~]# dpkg-preconfigure mysql-server-5.5*.deb

 

在apt模式下运行:

 

[root@linuxcool ~]# dpkg-preconfigure - -apt

 

 

dpkg-query命令 在dpkg数据库中查询软件包

 

dpkg-query命令是Debian linux中软件包的查询工具,它从dpkg软件包数据库中查询并显示软件包的信息。

 

查询软件包时,软件包的名称支持通配符,如“gcc*”将查询所有以“gcc”开头的软件包。

 

语法格式:  dpkg-query [参数] [软件包]

 

常用参数:

 

-l 列出符合匹配模式的软件包
-s 查询软件包的状态信息
-L 显示软件包所安装的文件列表
-S 从安装的软件包中查询文件
-w 显示软件包信息
-c 显示软件包的控制文件路径
-p 显示软件包的细节

 

参考实例

 

查找文件linuxcool_1在哪个包里安装:

 

[root@linuxcool ~]# dpkg-query -S linuxcool_1

 

查看软件包详细信息:

 

[root@linuxcool ~]# dpkg-query -s gimp

 

查看软件包安装时安装到系统的文件列表:

 

[root@linuxcool ~]# dpkg-query -L gimp

 

列出所有安装的包:

 

[root@linuxcool ~]# dpkg-query -l

 

 

dpkg-reconfigure命令 重新配置已安装的软件包

 

dpkg-reconfigure命令是Debian linux中重新配置已经安装过的软件包,可以将一个或者多个已安装的软件包传递给此指令,它将询问软件初次安装后的配置问题。

 

当用户需要再次对软件包配置的时候,可以使用dpkg-reconfigure命令来对指定的软件包进行配置。

 

语法格式:  dpkg-reconfigure [参数] [软件包]

 

常用参数:

 

-a 重新配置所有的软件包
-u 仅显示未提过的问题
-- -default-priority 使用默认优先级
-- -force 强制执行操作
-- -no-reload 不要轻易的重装模板
-f 指定 debconf 前端界面
-p 指定要显示的问题的最优先级
-- -terse 开启简要模式

 

参考实例

 

查询配置“bash”软件包:

 

[root@linuxcool ~]# dpkg-reconfigure bash

 

重配置所有软件包:

 

[root@linuxcool ~]# dpkg-reconfigure -a

 

 

dpkg-split命令 分割软件包

 

dpkg-split命令用来将Debian linux中的大软件包分割成小软件包,它还能够将已分割的文件进行合并。

 

dpkg-split命令只能在Debian系统上使用,因为他需要调用dpkg-deb命令分析软件包的组成。

 

语法格式: dpkg-split [参数] [软件包]

 

常用参数:

 

-S 设置分割后的每个小文件最大尺寸(以字节为单位)
-s 分割软件包
-j<分块文件><分块文件> 把各个分块合并到一起
-I<分块文件> 显示分块文件的相关信息
-l 列出不匹配的部分
-dscard<文件名> 忽略不匹配的部分

 

参考实例

 

分割软件包:

 

[root@linuxcool ~]# dpkg-split -s gcc-4.5.deb

 

以2MB为单位分割文件:

 

[root@linuxcool ~]# dpkg-split -S 2048 -s gcc-4.5.deb

 

合并GCC软件包:

 

[root@linuxcool ~]# dpkg-split -j gcc-4.5.*

 

 

dpkg-statoverride命令 改写所有权和模式

 

dpkg-statoverride命令是Debian linux下改写软件包状态的实用工具,dpkg-statoverride命令有3个基本功能即添加、删除、和显示改写列表。

 

使用dpkg-statoverride命令删除改写后,如果希望恢复旧的权限,需要手工设置权限或重新安装包含该文件的软件包。

 

语法格式: dpkg-statoverride [参数]

 

常用参数:

 

-add 为文件添加一个改写
-- -remove 为文件删除一个改写
-- -list 显示所有改写列表
-- -update 如果文件存在,则立刻执行改写操作

 

参考实例

 

显示当前所有改写列表:

 

[root@linuxcool ~]# dpkg-statoverride --list

 

修改文件夹的权限属性:

 

[root@linuxcool ~]# dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3

 

强制修改文件夹的权限属性:

 

[root@linuxcool ~]# dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd

 

将文件从数据库中删除:

 

[root@linuxcool ~]# dpkg-statoverride --remove /usr/bin/wall

 

 

dpkg-trigger命令 软件包触发器

 

dpkg-trigger命令是Debian linux下的软件包触发器。 dpkg-trigger命令只能应用在维护者脚本中,或者必须使用“- -- by-package”参数。

 

语法格式 : dpkg-trigger [参数] [触发器]

 

常用参数:

 

-- -check-supported 检查运行的dpkg是否支持触发器,返回值为0,则支持触发器
-- -help 显示帮助信息
-- -admindir=<目录> 设置dpkg数据库所在的目录
-- -no-act 仅用于测试,不执行任何操作
-- -by-package=<软件包> 覆盖触发器等待者

 

由于 dpkg-trigger 只能运行在维护者脚本程序中,直接在命令行运行会给出报错信息。如下参考实例。

 

参考实例

 

在命令行中运行dpkg-trigger:

 

[root@linuxcool ~]# dpkg-trigger nowait
dpkg-trigger: 错误: 必须从维护者脚本中调用(或者通过 --by-package 选项)

 

 

dris命令 显示和清空目录堆栈中的内容

 

dris命令用于显示和清空目录堆栈中的内容。

 

语法格式:dris [参数]

 

常用参数:

 

+n 显示从左边算起第n笔的目录
-n 显示从右边算起第n笔的目录
-l 显示目录完整的记录

 

参考实例

 

显示从左边算起第6笔的目录:

 

[root@linuxcool ~]# dris +6

 

显示从右边算起第7笔的目录:

 

[root@linuxcool ~]# dris -6 

 

显示目录完整的记录:

 

[root@linuxcool ~]# dris -l 

 

 

dumpe2fs命令 打印快组信息

 

dumpe2fs命令用于打印“ext2/ext3”文件系统的超级块和快组信息。

 

语法格式: dumpe2fs [参数]

 

常用参数:

 

-b 打印文件系统中预留的块信息
-ob<超级块> 指定检查文件系统时使用的超级块
-OB<块大小> 检查文件系统时使用的指定的块大小
-h 仅显示超级块信息
-i 从指定的文件系统映像文件中读取文件系统信息
-x 以16进制格式打印信息块成员

 

参考实例

 

打印/dev/hda1文件系统的超级块和快组信息:

 

[root@linuxcool ~]# dumpe2fs /dev/hda1 

 

打印/dev/hda1文件系统的超级块信息:

 

[root@linuxcool ~]# dumpe2fs -h /dev/hda1 

 

 

e2image命令 保存ext2/ext3文件元数据

 

e2image命令可以将处于危险状态的“ext2”或者“ext3”文件系统保存到文件中。生成的文件可以被dumpe2fs命令和debugfs命令通过“-i”参数使用。有经验的管理员可以用它来做文件系统的灾难恢复。

 

为了节省磁盘空间,e2Image将image文件创建为稀疏文件,或以QCOW2格式创建。因此,如果需要将稀疏image文件复制到另一个位置,则应该首先对其进行压缩,或者使用GNU版本的cp ” sparse=always”选项。这不适用于QCOW2映像,它并不稀疏。

 

语法格式:e2image [参数] [文件/文件系统]

 

常用参数:

 

-I 将文件中的元数据恢复到分区
-r 创建raw格式的image
-Q 创建QCOW2格式的image

 

参考实例

 

生成制定分区元数据映像文件:

 

[root@linuxcool ~]# e2image /dev/sda1 sda1
e2image 1.44.3 (10-July-2018)

 

查看文件的系统类型:

 

[root@linuxcool ~]#file sda1
sda1:Linux rev 1.0 ext2 filesystem data

 

生成一个QCOW2图像文件:

 

[root@linuxcool ~]# e2image -Q /dev/hda1 hda1.qcow2 

 

生成一个原始image文件:

 

[root@linuxcool ~]# e2image -r /dev/hda1 | bzip2> hda1.e2i.bz2

 

 

e2label命令 设置文件系统的卷标

 

e2label命令用来设置第二扩展文件系统的卷标。

 

语法格式:e2label [参数]

 

常用参数:

 

文件系统 指定文件系统所对应的设备文件名
新卷标 为文件系统指定新卷标

 

参考实例

 

指定新卷标:

 

[root@linuxcool ~]# mkdir /new
[root@linuxcool ~]# e2label /dev/hdax /new
[root@linuxcool ~]# vim /etc/fstab
label=/new  /new  ext4  defaults  1 1

 

 

ebtables命令 网络数据包过滤的配置工具

 

ebtables和iptables类似,都是Linux系统下网络数据包过滤的配置工具。既然称之为配置工具,就是说过滤功能是由内核底层提供支持的,这两个工具只是负责制定过滤的rules.

 

语法格式:ebtables [参数]

 

常用参数:

 

-F 对所有的规则表的规则链清空

-L
指明规则表。可加参数,--Lc,--Ln

-p
指明使用的协议类型,ipv4,arp等可选(使用时必选)详情见/etc/ethertypes
--ip-proto IP包的类型,1为ICMP包,6为TCP包,17为UDP包,在/etc/protocols下有详细说明
-t table 一般为FORWARD链
--ip-src IP包的源地址

 

参考实例

 

设置转发表默认动作为接受:

 

[root@linuxcool ~]# ebtables -P FORWARD ACCEPT

 

查看现有防火墙规则:

 

[root@linuxcool ~]# ebtables -L

 

添加eth1入方向原端口为80的丢弃规则:

 

[root@linuxcool ~]# ebtables -A FORWARD -i eth1 -p ipv4 –p-proto tcp –p-sport 80 -j DROP

 

清空规则表:

 

[root@linuxcool ~]# ebtables -F

 

 

egrep命令 在文件内查找指定的字符串

 

egrep命令作用是在文件内查找指定的字符串。

 

egrep执行效果与grep -E相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。

 

egrep命令为 grep 的扩充版本, 改良了许多传统 grep 不能或不便的操作. 比方说:
grep之下不支持 ? 与 + 这两种modifier, 但egrep可以。
grep不支持 a|b 或 (abc|xyz) 这类”或一”比对, 但egrep可以。
grep在处理 {n,m} 时, 需用 \{ 与 \} 处理, 但egrep则不需要。

 

语法格式:egrep [参数] [文件]

 

常用参数:

 

-i 搜索时,忽略大小写
-c 只输出匹配行的数量
-l 只列出符合匹配的文件名,不列出具体的匹配行
-n 列出所有的匹配行,显示行号
-h 查询多文件时不显示文件名
-s 不显示不存在、没有匹配文本的错误信息
-v 显示不包含匹配文本的所有行
-w 匹配整词
-x 匹配整行
-r 递归搜索
-q 禁止输出任何结果,已退出状态表示搜索是否成功
-b 打印匹配行距文件头部的偏移量,以字节为单位
-o 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位

 

参考实例

 

在文件里筛选包含“a”一个或一个以上的字符:

 

[root@linuxcool ~]# egrep 'a+'  linuxcool.txt

 

筛选字符串包含abc或123的字符:

 

[root@linuxcool ~]# egrep 'abc|123' linuxcool.txt

 

筛选包含abc整体的字符:

 

[root@linuxcool ~]# egrep '(abc)'  linuxcool.txt

 

筛选包含abc整体的一个或多个字符:

 

[root@linuxcool ~]# egrep '(abc)+'  linuxcool.txt

 

 

emacs命令 功能强大的文本编辑器

 

emacs命令是由GNU组织的创始人Richard Stallman开发的一个功能强大的全屏文本编辑器,它支持多种编程语言,具有很多优良的特性。有众多的系统管理员和软件开发者使用emacs。

 

语法格式: emacs [参数]

 

常用参数:

 

-q 启动emacs编辑器,而不加载初始化文件
-u 启动emacs编辑器时,加载指定用户的初始化文件
-l 加载指定的lisp代码文件
-batch 以批处理模式运行emacs编辑器

 

参考实例

 

退出Emacs:

 

[root@linuxcool ~]# C-x C-c 

 

关闭当前buffer:

 

[root@linuxcool ~]# C-x k 

 

切换到前一个编辑的buffer:

 

[root@linuxcool ~]# C-x b

 

关闭当前窗:

 

[root@linuxcool ~]# C-x 0

 

向前搜索(增量式搜索);连续C-s,跳到下一个搜索到的目标:

 

[root@linuxcool ~]# C-s

 

 

esxcfg-firewall命令 防火墙设置

 

esxcfg命令集分为网络管理类、存储管理类、系统管理类等几种类型,ESX Server防火墙使用内置的iptables,很常用的Linux防火墙。然而使用其他esxcfg工具创建规则,它就是esxcfg-firewall。esxcfg-firewall负责配置ESX主机上的网络防火墙,属于网络管理类。

 

语法格式:esxcfg-firewall [参数]

 

常用参数:

 

-h 查看帮助文档
-l 显示当前的网络配置

 

参考实例

 

显示当前的网络配置:

 

[root@linuxcool ~]# esxcfg-firewall -l

 

列出当前节点所有的网络服务:

 

[root@linuxcool ~]# esxcfg-firewall -s

 

阻塞特定的服务:

 

[root@linuxcool ~]# esxcfg-firewall -d

 

重置服务:

 

[root@linuxcool ~]# esxcfg-firewall -r

 

查看帮助文档:

 

[root@linuxcool ~]# esxcfg-firewall -help

 

 

ethtool命令 查询与设置网卡参数

 

ethtool命令用于查询ethX网口基本设置、及设置网卡的参数。

 

语法格式:ethtool [参数]

 

常用参数:

 

-i 显示网卡驱动的信息
-E 修改网卡只读存储器字节
-K 修改网卡 Offload 的状态
ethx 查询ethx网口基本设置,其中 x 是对应网卡的编号,如eth0、eth1等
-s 修改网卡的部分配置
-t 让网卡执行自我检测

 

参考实例

 

查询网口基本设置:

 

[root@linuxcool ~]# ethtool eth0

 

查询网口的驱动相关信息:

 

[root@linuxcool ~]# ethtool -i eth0                                                                                        driver: e1000
version: 7.3.21-k8-NAPI
firmware-version: 

 

设置网口工作方式:

 

[root@linuxcool ~]# ethtool -s eth0 autoneg off speed 100 duplex full 
[root@linuxcool ~]# ethtool eth0        

 

查看网卡,在接收/发送数据时,有没有出错 :

 

[root@linuxcool ~]# ethtool -S eth0      

 

停止网卡的发送模块TX:

 

[root@linuxcool ~]# ethtool -A tx off eth0       

 

 

expand命令 转换为空白字符

 

expand命令用于将文件的制表符(TAB)转换为空白字符(space),将结果显示到标准输出设备。

 

语法格式: expand [参数]

 

常用参数:

 

-t 指定制表符所代表的空白字符的个数,而不使用默认的8。
-i 不转换非空白符后的制表符
--help 显示帮助信息
--version 显示版本信息

 

参考实例

 

将文件中每行第一个Tab符替换为6个空格符,非空白符后的制表符不作转换:

 

[root@linuxcool ~]# expand -i -t 6 file

 

 

export命令 系统设置

 

export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。

 

一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执 行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。

 

语法格式: export [参数]

 

常用参数:

 

-f 代表[变量名称]中为函数名称
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中
-p 列出所有的shell赋予程序的环境变量

 

参考实例

 

列出当前所有的环境变量:

 

[root@linuxcool ~]# export -p

 

定义环境变量:

 

[root@linuxcool ~]# export MYENV 

 

定义环境变量赋值:

 

[root@linuxcool ~]# export MYENV=7

 

 

extundelete命令 文件恢复工具

 

extundelete是一个文件恢复工具,它支持ext3/ext4双格式分区恢复。在使用前,要将要恢复的分区卸载或挂载为只读,防止数据被覆盖使用。extundelete还是有很大的不完整性,基于整个磁盘的恢复功能较为强大,基于目录和文件的恢复还不够强大。

 

语法格式:extundelete [参数] [文件或目录]

 

常用参数:

 

-superblock  印指定分区的超级块信息。如不加任何的参数,此选项是默认的
--journal 显示块的日志信息
--after           后接时间,只恢复指定时间(时间戳)之后,被删除的数据

 

参考实例

 

恢复此时间后删除的所有文件:

 

[root@linuxcool ~]# extundelete /dev/sdb2 --after 123456789 --restore-all

 

恢复指定文件:

 

[root@linuxcool ~]# extundelete /dev/sda1 --restore-file initramfs-2.6.32-358.el6.x86_64.img

 

恢复/test文件夹:

 

[root@linuxcool ~]# extundelete /dev/sdb2 --restore-directory /test

 

 

fgrep命令 为文件搜索文字字符串

 

fgrep命令的作用是用来搜索file参数指定的输入文件(缺省为标准输入)中的匹配模式的行。fgrep 命令特别搜索Pattern参数,它们是固定的字符串。如果在File 参数中指定一个以上的文件fgrep命令将显示包含匹配行的文件。

 

fgrep命令 作用与grep和egrep命令不同,因为它搜索字符串而不是搜索匹配表达式的模式。fgrep命令使用快速的压缩算法。$, *, [, |, (, )和\等字符串被fgrep命令按字面意思解释。这些字符并不解释为正则表达式。

 

如果没有指定文件,fgrep命令假定标准输入。一般,找到的每行都复制到标准输出中去。如果不止一个输入文件,则在找到的每行前打印文件名。

 

fgrep有以下相关属性:

 

  • fgrep 命令和带 -F 标志的 grep命令是一样的但出错和用法消息不同-s 标志功能也不同。
  • 每行限制在 2048 个字节。
  • 段落(-p 标志下)目前限制在5000个字符的长度。
  • 不要在特定的文件中运行 grep 命令,因为会产生不可预料的结果。
  • 输入行不能包含空字符。
  • 输入文件应该以换行字符结尾。
  • 虽然可以同时指定很多标志,但某些标志会覆盖其余的标志。例如,如果同时指定 -l 和 -n ,只有文件名写入到标准输出中去。

 

语法格式: fgrep [参数]

 

常用参数:

 

-b 在找到的每行之前添加行所在的块编号
-c 仅显示匹配行的计数
-e 指定模式
-f 指定包含字符串的文件
-h 当多个文件被处理时隐藏文件名
-i 当进行比较时忽略字母的大小写
-l 只列出包含匹配行的文件名(一次)
n 将文件中每行的相对行号置于行前
-pSeparator 显示包含匹配行的整个段落
-q 禁止所有写入到标准输出的操作,不管是否为匹配行
-s 仅显示出错消息
-v 显示除了匹配特定模式的行以外的所有行
-w 执行单词搜索
-x 显示匹配模式的行,要求无额外的字符
-y 当进行比较时忽略字符的大小写

 

参考实例

 

当前目录下所有以 .c字符串结尾的文件中搜索字符串strcpy:

 

[root@linuxcool ~]# fgrep strcpy *.c

 

搜索当前目录下以 .c 结尾的文件,然后显示包含 strcpy 字符串的文件名:

 

[root@linuxcool ~]# fgrep -l strcpy *.c

 

匹配含有a的行:

 

[root@linuxcool ~]# cat linuxcool.sh |fgrep a

 

 

file命令 识别文件类型

 

file命令用来识别文件类型,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的。

 

语法格式:file [参数] [文件]

 

常用参数:

 

-b 列出辨识结果时,不显示文件名称 (简要模式)
-c 详细显示指令执行过程,便于排错或分析程序执行的情形
常与 -m 一起使用,用来在安装幻数文件之前调试它
-f 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称
-L 直接显示符号连接所指向的文件类别
-m 指定魔法数字文件
-v 显示版本信息
-z 尝试去解读压缩文件的内容
-i 显示MIME类别

 

参考实例:

 

显示文件类型:

 

[root@linuxcool ~]#  file install.log 
install.log: UTF-8 Unicode text

 

显示文件类型,不显示文件名称:

 

[root@linuxcool ~]# file -b install.log 
UTF-8 Unicode text

 

显示文件类型, 显示MIME类别,不显示文件名称:

 

[root@linuxcool ~]# file -b -i install.log 
text/plain; charset=utf-8

 

显示符号链接的文件类型:

 

[root@linuxcool ~]#  ls -l /var/mail 
lrwxrwxrwx 1 root root 10 08-13 00:11 /var/mail -> spool/mail
[root@linuxcool ~]# file /var/mail
/var/mail: symbolic link to `spool/mail'

 

显示符号连接所指向的文件类别:

 

[root@linuxcool ~]# file -L /var/mail 
/var/mail: directory

 

 

 

 

 

find2perl命令 转换找到的命令行为perl代码

 

使用find2perl命令可以找到命令行并转换为等效的Perl代码。

 

语法格式:find2perl [参数]

 

常用参数:

 

-size N 如果文件的大小为N则为真
-ls 可模拟”-exec ls -dir {};”
-follow 安装符号链接的取值

 

参考实例

 

在/etc目录下找到命令行并转换为等效的Perl代码:

 

[root@linuxcool ~]# find2perl /etc -name crontab

 

 

fixfiles命令 修复安全上下文

 

fixfiles命令的作用是可以修改RPM数据包里的文件的安全上下文。RPM包安装的会根据rpm包内记录来生成安全上下文。

 

关于安全上下文的解释:所有的操作系统访问控制都是主体和客体的相关访问控制属性来实现,在SELinux中访问控制属性称为安全上下文。

 

安全上下文是一个简单的、一致的访问控制属性,所有客体(文件,进程间通信,通信管道,套接字,网络主机等)和主体(进程)有一个和客体和他们相关的单一安全上下文,一个进程的类型通常称为域,域和域类型都一样,即都是安全上下文的’TYPE’,一个安全上下文是由角色,用户和类型标识符组成。

 

语法格式:fixfiles [参数] [概要]

 

常用参数:

 

-l<日志文件> 将输出保存到指定的日志文件
-F 强制重置上下文为匹配file_context的自定义文件
-f 清除/tmp目录
-R<RPM软件包名称> 使用rpm数据库,以发现指定数据包中的所有文件和恢复文件的上下文
check 显示任何不正确的文件上下文标签,显示新老上下文,但不改变它们
restore 更改任何不正确的文件上下文标签
relabel 提示去除/tmp目录中的内容,然后更改任何不正确的文件上下文
verify 列出不正确的文件上下文标签,但不改变它们
[dir/file] 检查文件上下文中的文件或目录树列表

 

参考实例

 

检查指定软件包中文件的安全上下文:

 

[root@linuxcool ~]# fixfiles -R crontabs check

 

修改crontabs软件包中文件的安全上下文:

 

[root@linuxcool ~]# fixfiles -R crontabs restore

 

列出不正确的文件上下文标签:

 

[root@linuxcool ~]# fixfiles -R crontabs verify

 

 

fstrim命令 回收已挂载的文件系统未使用的块

 

fstrim 用于回收(又称为”trim”)一个已挂载的文件系统上所有未使用的块;这对于固态硬盘(SSD)和精简配置(thinly-provisioned)的存储设备比较有意义。默认情况下,fstrim 将会回收文件系统上所有未使用的块。但是可以通过选项限定回收的范围和大小。

 

语法格式:fstrim [参数]

 

常用参数:

 

-a 回收所有已挂载文件系统上的未使用空间(包含所有支持”trim”的设备)
-o 设置文件系统上搜索空闲块的起点,也就是仅搜索该点之后的空间
-l 设置搜索长度,也就是从起点开始,在多大范围内搜索空闲块
-v 输出回收过程中的详细信息

 

参考实例

 

回收所有已挂载文件系统上的未使用空间(包含所有支持”trim”的设备):

 

[root@linuxcool ~]# fstrim -a

 

设置文件系统上搜索空闲块的起点,也就是仅搜索该点之后的空间:

 

[root@linuxcool ~]# fstrim -o 512

 

设置搜索长度,也就是从起点开始,在多大范围内搜索空闲块:

 

[root@linuxcool ~]# fstrim -l 512

 

啰嗦模式,输出回收过程中的详细信息:

 

[root@linuxcool ~]# fstrim -v

 

 

fsview命令 文件系统浏览器

 

使用fsview命令可以进行文件系统浏览。

 

语法格式:fsview [参数] [目录]

 

常用参数:

 

--display 使用X-server显示displayname
--session 恢复给定sessionId的应用程序
-sync 切换到同步模式以便调试
--bg 设置默认的背景颜色
--noxim 禁用XIM

 

参考实例

 

浏览/root目录:

 

[root@linuxcool ~]# fsview /root

 

 

gcc命令 GUN C/C++编译器

 

gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。

 

现在很多程序员都应用gcc,目前gcc可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。

 

语法格式:gcc [参数] [源文件]

 

常用参数:

 

-o 指定生成的输出文件
-E 仅执行编译预处理
-S 将C代码转换为汇编代码
-wall 显示警告信息
-c 仅执行编译操作,不进行连接操作

 

参考实例

 

无选项编译文件:

 

[root@linuxcool ~]# gcc linuxcool.c

 

将linuxcool.c预处理、汇编、编译并链接形成可执行文件linuxcool:

 

[root@linuxcool ~]# gcc linuxcool.c -o linuxcool

 

将linuxcool.c预处理输出linuxcool.i文件:

 

[root@linuxcool ~]# gcc -E linuxcool.c -o linuxcool.i

 

将linuxcool.c和linuxcool_1.c分别编译后链接成linuxcool_2可执行文件:

 

[root@linuxcool ~]# gcc linuxcool.c linuxcool_1.c -o linuxcool_2

 

将linuxcool.c预处理输出linuxcool.i文件:

 

[root@linuxcool ~]# gcc -E linuxcool.c -o linuxcool.i

 

 

gcov命令 测试代码覆盖率

 

gcov命令是一款测试程序的代码覆盖率的工具。

 

gcov可以统计每一行代码的执行频率,实际上哪些代码确实被执行了,每一段代码的执行时间。 gcov只在使用GCC编译的代码上工作。它与任何其他概要或测试覆盖机制不兼容。

 

gcov命令在测试代码覆盖率时,必须使用gcc命令的“-fprofile-arcs”选项和“-ftest-coverage”选项编译C语言文件。

 

语法格式:gcov [参数] [文件]

 

常用参数:

 

-a 显示每个基本的信息
-b 输出包含分支概率
-c 给出跳转的分支数,而不是百分比
-n 不创建输出文件
-l 为包含进来的源文件使用长输出文件名
-f 输出每个函数的小结信息
-p 保留所有路径名

 

参考实例

 

显示/root/linuxcool.c文件的代码覆盖信息:

 

[root@linuxcool ~]# gcov /root/linuxcool.c

 

 

gdbserver 调试远程服务器

 

使用gdbserver命令可以允许在不同的主机上运行GDB来进行程序调试。

 

语法格式:gdbserver [参数]

 

常用参数:

 

--debug 启用一般的调试输出
--attach 指定进程号

 

参考实例

 

使用串行端口进行程序调试:

 

[root@linuxcool ~]# gdbserver /dev/coml emacs gdb.txt

 

使用TCP连接进行程序调试:

 

[root@linuxcool ~]# gdbserver host:2345 emacs gdb.txt

 

 

gdb命令 GUN调试器

 

gdb命令包含在GNU的gcc开发套件中,是功能强大的程序调试器。

 

gdb中的命令很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。

 

语法格式:gdb [参数] [文件]

 

常用参数:

 

-cd 设置工作目录
-q 安静模式,不打印介绍信息和版本信息
-d 添加文件查找路径
-x 从指定文件中执行GDB指令
-s 设置读取的符号表文件

 

常用命令:

 

file <文件名> 加载被调试的可执行程序文件
run 重新开始运行文件
start 单步执行,运行程序,停在第一执行语句
list 查看原代码,简写l
set 设置变量的值
next 单步调试(逐过程,函数直接执行),简写n
step 单步调试(逐语句:跳入自定义函数内部执行),简写s
backtrace 查看函数的调用的栈帧和层级关系,简写bt
frame 切换函数的栈帧,简写f
info 查看函数内部局部变量的数值,简写i
finish 结束当前函数,返回到函数调用点
continue 继续运行,简写c
print 打印值及地址,简写p
quit 退出gdb,简写q

 

gdb命令拥有较多内部命令。在gdb命令提示符“(gdb)”下输入“help”可以查看所有内部命令及使用说明。要使用gdb调试程序,在使用gcc编译源代码时必须加上“-g”参数。

 

参考实例

 

启动gdb调试器:

 

[root@linuxcool ~]# gdb
(gdb)

 

加载二进制可执行程序:

 

(gdb)file linuxcool.out

 

运行并跟踪程序:

 

(gdb)start

 

 

getent命令 查看记录

 

Linux getent命令用来查看系统的数据库中的相关记录。

 

即使这些数据库不是在本地,比如ldap或者nis中的数据库, 也可以使用getent察看。长选项的强制或可选参数对对应的短选项也是强制或可选的。

 

支持的数据库: ahosts,ahostsv4 ,ahostsv6, aliases ,ethers ,group, gshadow, hosts, netgroup, networks, passwd, protocols, rpc ,services, shadow,例如:getent protocols , getent services, getent rpc等。

 

语法格式:getent [参数]

 

常用参数:

 

-s 要使用的服务配置
-help 给出该系统求助列表
-usage 给出简要的用法信息
-V 打印程序版本号

 

参考实例

 

从hosts库中得到linux.com的IP信息:

 

[root@linuxcool ~]# getent hosts linuxcool.com
182.149.160.47  linux.com
200.181.57.217  linux.com
123.125.15.144  linux.com

 

从passwd库中得到账号tank信息:

 

[root@linuxcool ~]# getent passwd tank
tank:x:502:502::/home/tank:/bin/bash

 

输出getent命令简要用法列表:

 

[root@linuxcool ~]# getent -help

 

 

getfacl命令 显示文件或目录的ACL

 

getfacl命令的作用是查看文件的ACL信息。

 

对于要查看的每一个文件和目录,getfacl命令可以显示出文件的名称,用户所有者、组群所有者和访问控制列表(ACL)。

 

语法格式:getfacl [参数] [目录或文件]

 

常用参数:

 

-a 显示文件的ACL
-d 显示默认的ACL
-c 不显示注释标题
-e 显示所有的有效权限
-E 显示没有的有效权限
-s 跳过文件,只具有基本条目
-R 递归到子目录
-t 使用表格输出格式
-n 显示用户的UID和组群的GID

 

参考实例

 

查看指定文件的ACL:

 

[root@linuxcool ~]# getfacl linuxcool.txt
# file: test
# owner: root
# group: root
user::rw-
group::r--
other::r--

 

查看指定文件的ACL不显示注释信息:

 

[root@linuxcool ~]# getfacl -c linuxcool.txt
user::rw-
group::r--
other::r--

 

使用表格形式查看指定文件的ACL:

 

[root@linuxcool ~]# getfacl -t linuxcool.txt
file: linuxcool.txt
USER root rw-
GROUP root r--
other r--

 

 

getfattr命令 获取文件系统对象的扩展属性

 

getfattr命令的作用是可以获得文件系统对象的扩展属性。

 

对于每个文件,getfattr命令会显示该文件相关联的文件名和该组的扩展属性的名称(和任选的值)。

 

这里的文件系统扩展属性,不是我们常说的lsattr命令和chattr命令中文件操作的属性。这里的扩展属性是完全自定义的。扩展属性的支持,不同文件系统对其支持程度不同。某些系统对于文件关联的扩展属性的数量和大小还有更为严格的限制。

 

语法格式:getfattr [参数][路径]

 

常用参数:

 

-n<name> 得到命名扩展属性值
-d 获得所有扩展属性值
-e<编码> 编码值(为文本、十六进制或base64编码)
-h 不引用符号链接
-R 递归到子目录
-m<模式> 包括名称匹配正则表达式模式的属性

 

参考实例

 

查看/root/linuxcool.cfg文件的扩展属性值:

 

[root@linuxcool ~]# getfattr -d -m /root/linuxcool.cfg

 

查看文件指定的扩展属性:

 

[root@linuxcool ~]# getfattr -n ‘trusted.gfid’ -d -e hex --absolute-names $(vs_quick_lookup.sh vm-disk-1.qcow2 | grep $(hostname) | awk -F “:” ‘{print $2}’ )

 

统计cephfs目录下存放的数据量以及来获取文件系统给出的扩展属性:

 

[root@linuxcool ~]# getfattr -d -m ceph.dir.* /mnt/cephfs

 

 

get_module命令 获取模块信息

 

get_module命令用于获取Linux内核模块的详细信息。

 

使用get_module命令获取模块详细信息时,必须确定该模块已经加载到内核,否则会提示“模块找不到”的错误。

 

语法格式: get_module [模块名]

 

参考实例

 

获取指定模块信息:

 

[root@linuxcool ~]# get_module ipv6

 

查看内核模块sr_mod的详细信息:

 

[root@linuxcool ~]# get_module sr_mod

 

 

getopt命令 解析命令行选项

 

getopt命令用于解析命令行选项,检测给定的选项是否合法。在此命令中,选项部分主要用于影响getopt命令解析选项,其中optstring是需要解析的合法选项的字符串,paramenters通常是一组变量,用于存储从命令行获取的每个选项及参数。

 

语法格式: getopt [参数]

 

常用参数:

 

-a 允许长选项以单个字符”-“开始
-n 指定一个程序,供getopt(3)函数输出错误信息时使用
-o 识别单字符的短选项
-q 禁止输出错误信息

 

参考实例

 

检查提供的参数列表(-a -b test1 -cd test2 test3),并基于提供的optstring进行解析 :

 

[root@linuxcool ~]# getopt ab:cd -a -b test1 -cd test2 test3

 

 

gitps命令 报告程序状况

 

gitps(gnu interactive tools process status)是用来报告并管理程序执行的指令,基本上它就是通过ps指令来报告,管理程序,也能通过gitps指令随时中断,删除不必要的程序。因为gitps指令会去执行ps指令,所以其参数和ps指令相当类似。

 

语法格式:gitps [参数]

 

常用参数:

 

a 显示现行终端机下的所有程序,包括其他用户的程序
n 以数字来表示USER和WCHAN栏位
T 显示现行终端机下的所有程序
u 以用户为主的格式来显示程序状况
w 采用宽阔的格式来显示程序状况

 

参考实例

 

显示指定用户信息:

 

[root@linuxcool ~]# gitps hnlinux

 

显示现行终端机下的所有程序:

 

[root@linuxcool ~]# gitps a

 

采用旧试的Linux i386登陆格式显示程序状况:

 

[root@linuxcool ~]# gitps X

 

列出程序时,包括已中断的子程序信息:

 

[root@linuxcool ~]# gitps S

 

采用纤细的格式来显示程序状况:

 

[root@linuxcool ~]# gitps l

 

 

gitview命令 查看文件内容

 

gitview的命令全称为“gnu interactie tools viewer”。该命令用于查看文件内容。 当使用gitview命令查看文件内容时,会同时显示十六进制和ASCII格式的字符。

 

语法格式:gitview [参数]

 

常用参数:

 

-b 单色模式,不使用ANSI控制码显示彩色
-c 彩色模式,使用ANSI控制码显示色彩
-i 显示存放gitview程序的所在位置
-l 不使用先前的显示字符
-h 显示帮助信息

 

参考实例

 

以彩色模式观看指定文件中的内容:

 

[root@linuxcool ~]# gitview -c /home/linuxcool/file.txt

 

以单色模式观看指定文件中的内容:

 

[root@linuxcool ~]# gitview -b /home/linuxcool/file.txt

 

显示存放gitview程序的所在位置:

 

[root@linuxcool ~]# gitview -i

 

 

git命令 版本控制系统

 

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

 

Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件;Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

 

语法格式:git [参数]

 

常用参数:

 

add 将文件内容添加到索引
init 创建一个空的Git存储库或重新初始化一个现有的存储库
rm 从工作树和索引中删除文件
clone 将存储库克隆到新目录中
commit 记录对存储库的更改
pull 从另一个存储库或本地分支获取并与之合并
push 更新远程引用以及关联的对象
status 显示工作树状态

 

参考实例

 

创建空的存储库并初始化存储库:

 

[root@linuxcool ~]# git init

 

将存储库克隆到新目录中:

 

[root@linuxcool ~]# git clone [url]

 

显示工作树状态:

 

[root@linuxcool ~]# git status

 

从工作树和索引中删除文件:

 

[root@linuxcool ~]# git rm test.md

 

 

groff命令 编写手册页面

 

 

groupmems命令 管理用户主要组群的成员

 

使用groupmems命令可以管理用户主要组群的成员。

 

语法格式:groupmems [参数]

 

常用参数:

 

-a 添加用户为组成员
-d 从组成员中删除用户
-l 列出组群的成员
-p 从组群中清除所有成员

 

参考实例

 

设置用户zhangsan的主要组群为root:

 

[root@linuxcool ~]# groupmems -g root -a zhangsan

 

列出主要组群的成员:

 

[root@linuxcool ~]# groupmems -l

 

 

grub-install命令 在设备上安装GRUB

 

grub即 GRand Unified Bootloader(大一统启动加载器),是一个多重启动加载器,承自PUPA项目。该项目致力于开发一个新的启动加载器来取代如今叫做GRUB Legacy的启动加载器。后者已经难以维护,而 GRUB 从头重写了代码,实现了模块化和增强了移植性。使用grub-install命令可以将GRUB安装到指定硬盘或分区上。

 

语法格式:grub-install [参数] [设备]

 

常用参数:

 

--root-directory 在指定目录安装GRUB镜像
--grub-shell 使用指定文件作为GRUB Shell
--no-floppy 不探测任何软盘驱动器

 

参考实例

 

安装GRUB到/dev/sda1分区的第一个扇区中:

 

[root@linuxcool ~]# grub-install /dev/sda1

 

安装GRUB到主引导扇区中:

 

[root@linuxcool ~]# grub-install --no-floppy /dev/sda

 

安装GRUB并指定目录为/tmp/boot:

 

[root@linuxcool ~]# grub-install --root-directory=/tmp/boot --no-floppy /dev/sdb

 

 

grub-md5-crypt命令 对GRUB 的密码进行加密

 

MD5,一种被广泛使用的密码散列函数,可以产生出一个128位的散列值(hash value),用于确保信息传输完整一致。MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

 

使用grub-md5-crypt命令可以以MD5格式对GRUB 的密码进行添加加密口令。

 

语法格式:grub-md5-crypt [参数]

 

常用参数:

 

--grub-shell=<文件> 使用指定文件作为GRUB

 

参考实例

 

生成MD5加密口令:

 

[root@linuxcool ~]# grub-md5-crypt

 

编辑grub配置文件:

 

[root@linuxcool ~]# vi /etc/grub.conf
password  --md5  $1$xdRKQ/$43ZXGkk1yziGE12Vlqgg71

 

 

gzexe命令 压缩执行文件

 

gzexe命令用来压缩可执行文件,压缩后的文件仍然为可执行文件,在执行时进行自动解压缩。当您去执行被压缩过的执行文件时,该文件会自动解压然后继续执行,和使用一般的执行文件相同。这个命令也可以看成是gunzip命令的一个扩展。

 

语法格式:gzexe [参数] [文件]

 

常用参数:

 

-d 解开压缩文件

 

参考实例

 

压缩可执行文件:

 

[root@linuxcool ~]# gzexe abc

 

解压可执行文件:

 

[root@linuxcool ~]# gzexe -d test.sh

 

 

hexdump 显示文件十六进制格式

 

hexdump是linux下的一个二进制文件查看工具,它可以将二进制文件转换为ASCII、八进制、十进制、十六进制格式进行查看。

 

语法格式: hexdump [参数] [文件]

 

常用参数:

 

-n length 只格式化输入文件的前length个字节
-C 输出规范的十六进制和ASCII码
-b 单字节八进制显示
-c 单字节字符显示
-d 双字节十进制显示
-o 双字节八进制显示
-x 双字节十六进制显示
-s 从偏移量开始输出
-e 指定格式字符串,格式字符串包含在一对单引号中
-v 显示所有输入数据

 

参考实例

 

查看测试文件内容:

 

[root@linuxcool ~]# hexdump testfile

 

以字节方式查看:

 

[root@linuxcool ~]# hexdump -C testfile -s skip -n number

 

以字节方式查看所有文件内容:

 

[root@linuxcool ~]# hexdump -Cv testfile

 

 

hping3命令 测试网络及主机的安全

 

hping3命令是用于生成和解析TCPIP协议数据包的开源工具,也是安全审计、防火墙测试等工作的标配工具 。

 

目前最新版是hping3,支持使用tcl脚本自动化地调用其API。优势在于能够定制数据包的各个部分,因此用户可以灵活对目标机进行细致地探测。

 

语法格式:hping3 [参数]

 

常用参数:

 

-c 发送数据包的次数
-m 设置TCP序列数
-v 版本信息
-I 网卡接口

 

参考实例

 

对目标端口扫描:

 

[root@linuxcool ~]# hping3 -I eth0 -S 192.168.10.1 -p 80  

 

测试目标防火墙:

 

[root@linuxcool ~]# hping3 -S  -c 1000000 -a 10.10.10.10 -p 21 10.10.10.10 

 

在发送端使用签名打包的ICMP包发送文件:

 

[root@linuxcool ~]#hping3 192.168.1.108 --icmp -d 100 --sign signature --file /etc/passwd 

 

很直观的看到TTL的变化:

 

[root@linuxcool ~]# hping3 -z 192.168.0.107   

 

使用随机地址伪装自己的地址:

 

[root@linuxcool ~]# hping3 --rand-source 192.168.0.107  

 

 

htdigest命令 管理用户摘要认证文件

 

htdigest命令是Apache的Web服务器内置工具,用于创建和更新存储用户名、域和用于摘要认证的密码文件。

 

使用htdigest命令和“.htaccess”文件可以在apache的Web服务器中实现,访问目录时输入密码认证的效果。

 

语法格式: htdigest [参数] [密码文件、域、用户名]

 

常用参数:

 

-c 创建密码文件

 

参考实例

 

生成用户的摘要认证文件:

 

[root@linuxcool ~]# htdigest -c /var/www/html/.htdigest test- realmtest
Adding password for realmtest in realm test-.
New password: 
Re-type new password: 

 

 

hwclock命令 系统设置

 

hwclock命令是一个硬件时钟访问工具,它可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可设置系统时间为硬件时钟的时间。

 

在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。

 

语法格式:hwclock [参数]

 

常用参数:

 

--debug  显示hwclock执行时详细的信息。
--directisa hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟。
--hctosys  将系统时钟调整为与目前的硬件时钟一致。
--set --date=<日期与时间>  设定硬件时钟。
--show 显示硬件时钟的时间与日期。
--systohc 将硬件时钟调整为与目前的系统时钟一致。
--test  仅测试程序,而不会实际更改硬件时钟。
--utc 若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。
--version 显示版本信息。

 

参考实例

 

设置硬件时间要依赖于操作系统时间,具体方法如下:

 

[root@linuxcool ~]# hwclock --systohc 
[root@linuxcool ~]# hwclock --systohc –-utc

 


在其他一些版本的Linux(如RebHat)中可以这样查看:

 

[root@linuxcool ~]# cat /etc/sysconfig/clock

 

查看版本信息 :

 

[root@linuxcool ~]# hwclock -v 

 

 

indent命令 调整代码文件格式

 

indent命令用于调整C原始代码文件的格式。indent可辨识C的原始代码文件,并加以格式化,以方便程序设计师阅读。

 

indent命令按照随命令输入的标志所指定的格式重新格式化一个 C 程序。

 

语法格式:indent [参数]

 

常用参数:

 

-bad 在声明区段或加上空白行
-bap 在程序或加上空白行
-i 设置缩排的格数
-v 执行时显示详细的信息

 

参考实例

 

执行时显示详细的信息:

 

[root@linuxcool ~]# indent -v

 

执行时不显示详细的信息:

 

[root@linuxcool ~]# indent -nv

 

将结果显示在标准输出设备:

 

[root@linuxcool ~]# indent -st

 

 

info命令 阅读info格式的文件

 

info命令可以阅读info格式的文件,用来查看帮助信息。info文档可以支持链接跳转功能。info文档都存放在/usr/share/info目录中,该目录提供了整个软件包的帮助文档。

 

语法格式:info [参数] [菜单项目]

 

常用参数:

 

-w 显示info文档的物理位置
-f 指定要访问的info文件
-n 在首个浏览过info文件中指定节点
-O 跳转至命令行选项节点

 

参考实例

 

查看ls命令的info文档:

 

[root@linuxcool ~]# info ls

 

显示ls命令info文档的物理位置:

 

[root@linuxcool ~]# info -w ls

 

 

initdb命令 初始化PostgreSQL数据库

 

使用initdb命令可以在安装完PostgreSQL服务器所需软件包之后,初始化一个PostgreSQL数据库簇。

 

语法格式: initdb [参数] [目录]

 

常用参数:

 

-U 指定数据库超级用户名
-W 对于新的超级用户提示输入口令
-A 本地连接的默认认证方法
-D 当前数据库簇的位置

 

参考实例

 

创建一个新的PostgreSQL数据库簇并显示内部设置:

 

[root@linuxcool ~]# initdb PostgreSQL

 

初始化PostgreSQL数据库:

 

[root@linuxcool ~]# su - postgres

 

输出initdb命令的版本信息:

 

[root@linuxcool ~]# initdb -v

 

 

inncheck命令 检查语法

 

inncheck会检查inn配置文件的语法是否正确,但不会实际修改这些配置文件。

 

INN文件是一个微焦点COBOL覆盖文件。Micro Focus COBOL是一种用于Windows、.NET、UNIX和Linux。

 

INN文件支持的操作系统有 Windows Server 2003/2008/2012/2016, Windows 7, Windows 8, Windows 10, Linux, FreeBSD, NetBSD, OpenBSD, Mac OS X, iOS, Android。

 

语法格式:inncheck [参数]

 

常用参数:

 

-a 不管是否出现[文件]参数,仍然检查全部的配置文件
-f 若发现配置文件有误,则列出可修正错误的指令
-v 执行时显示详细的信息
-pedantic 以较为严格的方式来检查
-perm 检查文件权限是否有误
--noperm 不检查文件的权限设置

 

参考实例

 

检查全部的配置文件:

 

[root@linuxcool ~]# inncheck -a

 

检查user.ini文件时显示详细的信息:

 

[root@linuxcool ~]# inncheck -v user.ini

 

检查user.ini文件并输出可修正错误:

 

[root@linuxcool ~]# inncheck -f user.ini

 

 

inotifywait命令 异步文件系统监控

 

inotifywait命令作用是用来收集有关文件访问信息。

 

linux发行版一般没有包括这个命令,需要安装inotify-tools,这个命令还需要将inotify支持编译入linux内核,目前大多数linux发行版都在内核中启用了inotify。

 

语法格式:inotifywait [参数]

 

常用参数:

 

-m 持续监视变化
-r 使用递归形式监视目录
-q 减少冗余信息,只打印出需要的信息
-e<事件> 指定要监视的事件列表
-- -timefmt 指定时间的输出格式
-- -format 指定文件变化的详细信息

 

参考实例

 

持续监听/linuxcool目录的变化:

 

[root@linuxcool ~]# inotifywait -m /linuxcool

 

监听/linuxcool目录下左右子目录的变化:

 

[root@linuxcool ~]# inotifywait -mr /linuxcool

 

监听/linuxcool目录发生的指定事件:

 

[root@linuxcool ~]# inotifywait -e move /linuxcool

 

 

inotifywatch命令 收集关于被监视的文件系统的统计数据

 

 

insmod命令 载入模块

 

insmod命令用于将给定的模块加载到内核中。

 

Linux有许多功能是通过模块的方式,在需要时才载入kernel。如此可使kernel较为精简,进而提高效率,以及保有较大的弹性。这类可载入的模块,通常是设备驱动程序。

 

语法格式:insmod [参数]

 

常用参数:

 

-f 不检查目前kernel版本与模块编译时的kernel版本是否一致,强制将模块载入
-k 将模块设置为自动卸除
-m 输出模块的载入信息
-o 指定模块的名称,可使用模块文件的文件名
-p 测试模块是否能正确地载入kernel
-s 将所有信息记录在系统记录文件中
-v 执行时显示详细的信息
-x 不要汇出模块的外部符号
-X 汇出模块所有的外部符号,此为预设置

 

参考实例

 

加载RAID1阵列级别模块,如下所示:

 

[root@linuxcool ~]# insmod /lib/modules/2.6.   

 

 

install命令 复制文件和设置属性

 

使用install命令可以复制文件和设置属性。将源文件复制到目标文件或将目标文件或将多个源文件复制到一个已存在的目录中,同时设置其所有权和权限模式。

 

语法格式: install [参数] [源文件] [目标文件]

 

常用参数:

 

-c 比较每组文件和目标文件,在一些情况下不修改目标文件
-d 将所有的参数视为目标名称,为指定的目录创建所有组件
-g 自行设置所属组,而不是进程目前所属组

 

参考实例

 

创建/root/www文件夹:

 

[root@linuxcool ~]# install -d /root/www

 

 

ipcs命令 多进程间通信常用的工具

 

ipcs命令是用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息 。

 

语法格式:ipcs [参数]

 

常用参数:

 

-a 默认的输出信息
-m 打印出使用共享内存进行进程间通信的信息
-q 打印出使用消息队列进行进程间通信的信息
-s 打印出使用信号进行进程间通信的信息

 

参考实例

 

输出信息的详细变化时间:

 

[root@linuxcool ~]# ipcs -t 

 

输出ipc方式的进程ID:

 

[root@linuxcool ~]# ipcs -p 

 

输出ipc方式的创建者/拥有者:

 

[root@linuxcool ~]# ipcs -c 

 

输出当前系统下ipc各种方式的状态信息:

 

[root@linuxcool ~]# ipcs -u 

 

查看各个资源的系统限制信息 :

 

[root@linuxcool ~]# ipcs -l 

 

 

iperf命令 网络性能测试

 

iperf命令可以用来测试一些网络设备如路由器,防火墙,交换机等的性能。

 

语法格式:iperf [参数]

 

常用参数:

 

-l 设置读写缓冲区的长度
-p 设置端口,与服务器端的监听端口一致
-o 重定向输出到指定文件
-t 设置传输的总时间
-v 显示版本信息和编译信息并退出

 

参考实例

 

客户端同时向服务器端发起30个连接线程,以5Mbps为数据发送速率:

 

[root@linuxcool ~]#iperf -u -c 192.168.1.1 -b 100M -d -t 60 

 

在tcp模式下,客户端到服务器192.168.1.1上传带宽测试,测试时间为60秒:

 

[root@linuxcool ~]#iperf -c 192.168.1.1  -P 30 -t 60 

 

将 Iperf 启动为 server 模式:

 

[root@linuxcool ~]#iperf -s 

 

使用服务端和客户端的默认设置进行测试:

 

[root@linuxcool ~]# iperf -s -w 300K  

 

测试双向的传输 :

 

[root@linuxcool ~]#  iperf -c 59.128.103.56 -f K -i 2 -w 300K –u  

 

 

isosize命令 输出iso9660文件系统的长度

 

使用isosize命令可以输出包含指定文件的iso9660文件系统的长度。该文件可以是正常的文件或块设备(比如/dev/hdd或/dev/sr0)。

 

文件可以是普通文件,也可以是块设备,如/dev/sr0或者/dev/sda。如果没有相关参数的规定,默认以字节的方式显示大小。该命令支持大于4G的文件系统。

 

语法格式:isosize [参数] [iso9660镜像文件]

 

常用参数:

 

-x 以可读的形式输出块的总数和块大小
-d <num> 显示的结果是实际大小(字节表示)除了已指定的num。所以如果num表示“块”大小,则输出的结果将是块大小
iso9660_image_file   指定的iso9660文件系统

 

参考实例

 

查看/dev/cdrom文件的长度:

 

[root@linuxcool ~]# isosize /dev/cdrom

 

显示扇区数和扇区大小:

 

[root@linuxcool ~]# isosize -x /dev/cdrom

 

/以一块为“1024”个字节显示设备大小:

 

[root@linuxcool ~]# isosize -d 1024 /dev/cdrom  

 

 

iwconfig命令 配置无线网络接口

 

使用iwconfig命令可以为无线接口显示或设置网络接口的参数,它可以用来配置无线网络接口是非常好用的。

 

语法格式:iwconfig [参数]

 

常用参数:

 

nwid 设置网络ID
nick 设置昵称或站点名称

 

常用实例

 

设置发送数据包的分片大小:

 

[root@linuxcool ~]# iwconfig ath0 frag 256

 

指定最长重试时间为300毫秒:

 

[root@linuxcool ~]# iwconfig ath0 retrylifetime 300m

 

通过MAC 设置AP:

 

[root@linuxcool ~]# iwconfig ath1 ap 00:0A:EB:CA:79:B0

 

 

joe命令 纯文本编辑器

 

joe命令用于编辑文本文件。joe是一个功能强大的全屏幕文本编辑程序。操作的复杂度要比Pico高一点,但是功能较为齐全。joe一次可开启多个文件,每个文件各放在一个编辑区内,并可在文件之间执行剪贴的动作。

 

语法格式:joe [参数]

 

常用参数:

 

-columns 设置栏数
-help 执行程序时一并显示帮助
-lines 设置行数
-marking 在选取区块时,反白区块会随着光标移动
-nosta 程序执行时,不显示状态列
-pg 按”PageUp”或”PageDown”换页时,所要保留前一页的行数
-linums 在每行前面加上行号

 

参考实例

 

利用joe编辑C 语言源代码txt.c:

 

[root@linuxcool ~]# joe txt.c

 

设置栏数:

 

[root@linuxcool ~]# joe columns 20

 

 

kbdconfig命令 设置键盘类型

 

kbdconfig(Red Hat Linux才有的指令)是一个用来设置键盘的程序,提供图形化的操作界面。kbdconfig实际上是修改/etc/sysconfig/keyboard的键盘配置文件。

 

语法格式:kbdconfig [参数]

 

常用参数:

 

--back 执行时将预设的Cancel按钮更改为Back按钮
--test  仅作测试,不会实际更改设置

 

参考实例

 

键盘设置:

 

[root@linuxcool ~]# kdbconfig

 

 

keytool命令 密钥和证书管理工具

 

keytool命令是进行密钥和证书管理的工具。

 

证书也叫CA证书,比较标准全称为“公开密钥认证”;密钥就是用来加解密用的文件或者字符串。密钥的格式有很多种,我们在使用的时候需要注意,不同的程序可能需要不同格式的密钥,不同格式的密钥是可以转换。

 

语法格式:keytool [命令]

 

常用参数:

 

-certreq 生成证书请求
-changealias 更改条目的别名
-delete 删除条目
-exportcert 导出证书
-genkeypait 生成密钥对
-genseckey 生成密钥
-gencert 根据证书请求生成证书
-importcert 导入证书或证书链
-importkeystore 从其他密钥库导入一个或所有条目
-keypasswd 更改条目的密钥口令
-list 列出密钥库中的条目
-printcert 打印证书内容
-printcertreq 打印证书请求的内容
-printcrl 打印CRL文件的内容
-storepasswd 更改密钥库的存储口令

 

参考实例

 

生成服务器证书文件,并设定相应有效期:

 

[root@linuxcool ~]# keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/tomcat.keystore -validity 36500

 

导入一个证书:

 

[root@linuxcool ~]# keytool -import -keystore cacerts -storepass 666666 -keypass 888888 -alias linuxcoolcert -file C:\linuxcool\cert\test.cer

 

要删除证书库里面的指定证书:

 

[root@linuxcool ~]# keytool -delete -alias linuxcoolcert -keystore cacerts -storepass 666666

 

 

last命令 显示用户或终端的登录情况

 

last命令的作用是显示近期用户或终端的登录情况,通过查看系统记录的日志文件内容,进而使管理员可以获知谁曾经或者企图连接系统。

 

执行last命令时,它会读取/var/log目录下名称为wtmp的文件,并把该文件记录的登录系统或终端的用户名单全部显示出来。默认显示wtmp的记录,btmp能显示的更详细,可以显示远程登录,例如ssh登录。

 

语法格式:last [选项]

 

常用参数:

 

-R 省略hostname的栏位
usename 展示username的登入讯息
tty 限制登入讯息包含的终端代号

 

参考实例

 

显示近期用户或终端的登录情况:

 

[root@linuxcool ~]# last

 

简略显示,并指定显示的个数:

 

[root@linuxcool ~]# last -n 5 -R

 

显示最后一列显示主机IP地址:

 

[root@linuxcool ~]# last -n 5 -a -i

 

 

la命令 显示当前目录下的所有文件

 

la命令用于显示当前目录下的所有文件,包括隐藏文件。

 

语法格式:la

 

参考实例

 

显示当前路径下面的所有文件:

 

[root@linuxcool ~]# la

 

 

ldd命令 打印程序依赖的共享库

 

ldd命令用于打印程序或者库文件所依赖的共享库列表。

 

语法格式: ldd [参数] [文件]

 

常用参数:

 

-v 详细信息模式,打印所有相关信息
-u 打印未使用的直接依赖
-d 执行重定位和报告任何丢失的对象
-r 执行数据对象和函数的重定位,并且报告任何丢失的对象和函数
-- -help 显示帮助信息

 

参考实例

 

显示命令依赖的共享库:

 

[root@linuxcool ~]# ldd /bin/vim
linux-vdso.so.1 =>  (0x00007ffe3dbc1000)
libm.so.6 => /lib64/libm.so.6 (0x00007f17a5b55000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f17a592e000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f17a5704000)

 

 

ld命令 GUN连接器

 

ld命令是GNU的连接器,将目标文件连接为可执行程序。

 

很少单独使用ld命令对目标进行连接操作,通常都是使用gcc命令在编译后自动进行连接。

 

语法格式: ld [参数]

 

常用参数:

 

-o 指定输出文件名
-e 指定程序的入口符号

 

参考实例

 

将文件“/lib/linuxcool_1.o”与“ linuxcool_2 .o”和库“linuxcool_3.a”链接起来,生成一个名为 linuxcool_4的文件,该文件将来自标准搜索目录:

 

[root@linuxcool ~]# ld -o linuxcool_4 /lib/linuxcool_1.o linuxcool_2 .o -lc

 

 

less命令 分页显示工具

 

浏览文字档案的内容,用less命令显示文件时,PageUp键向上翻页,PageDown键向下翻页,要退出less程序,应按Q键。

 

less的作用与more十分相似,不同点为less命令允许用户向前或向后浏览文件,而more命令只能向前浏览 。

 

语法格式:less [参数] [文件]

 

常用参数:

 

-b 置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 在单行显示较长的内容,而不换行显示
-x 将TAB字符显示为指定个数的空格字符

 

命令内部操作:

 

  • b 向后翻一页
  • d 向后翻半页
  • h 显示帮助界面
  • Q 退出less 命令
  • u 向前滚动半页
  • y 向前滚动一行
  • 空格键 滚动一页
  • 回车键 滚动一行

 

参考实例

 

查看文件 :

 

[root@linuxcool ~]# less test.php

 

ps查看进程信息并通过less分页显示:

 

[root@linuxcool ~]# ps -ef |less 

 

查看命令历史使用记录并通过less分页显示:

 

[root@linuxcool ~]# history | less 
22 scp -r tomcat6.0.32 root@192.168.120.203:/opt/soft 23 cd ..
24 scp -r web root@192.168.120.203:/opt/
25 cd soft
……省略……

 

浏览多个文件 :

 

[root@linuxcool ~]# less log2018.log log2019.log 

 

当正在浏览一个文件时,也可以使用 :e命令 打开另一个文件:

 

[root@linuxcool ~]# less file1
:e file2

 

 

lftpget命令 下载指定的文件

 

lftp是linux中一款ftp服务器,相比windows中的ftp显得要复杂不少了,下面我来总结一下lftp文件上传,文件下载,及文件查找等等相关命令吧。

 

语法格式: lftpget [参数] [文件]

 

常用参数:

 

-c 继续先前的下载
-d 输出调试信息

 

参考实例

 

lftp上传单个文件命令:

 

[root@linuxcool ~]# lftp webmaster@linuxprobe.com:/> put test.txt

 

lftp上传多个文件命令:

 

[root@linuxcool ~]# lftp webmaster@linuxprobe.com:/> mput *.txt

 

选择某个目录下某种扩展名的下载:

 

[root@linuxcool ~]# lftp webmaster@linuxprobe.com:/usr/local> mget *.php

 

断点续传功能:

 

[root@linuxcool ~]# lftp webmaster@linuxprobe.com:/> mget -c ./usr/local /*.*

 

下载整个目录:

 

[root@linuxcool ~]# lftp webmaster@linuxprobe.com:/> mirror  /usr/local /

 

 

ll命令 列出当前文件或目录的详细信息

 

ll命令可以列出当前文件或目录的详细信息,含有时间、读写权限、大小、时间等信息 ,像Windows显示的详细信息。ll是“ls -l”的别名。相当于Windows里的快捷方式。可以理解为 ll 和 ls -l 的功能是相同的, ll 是 ls -l 的别名。

 

语法格式:ll [参数] [文件]

 

常用参数:

 

-a  列出目录下的所有文件,包括以 . 开头的隐含文件
-A  显示除 “.”和“..”外的所有文件
-k  以 k 字节的形式表示文件的大小
-s  在每个文件名后输出该文件的大小
-N 不限制文件长度
-t  以时间排序
-u  以文件上次被访问的时间排序

 

参考实例

 

按时间倒序排列文件:

 

[root@linuxcool ~]# ll -t

 

按时间倒序,分页排列文件:

 

[root@linuxcool ~]# ll -t | more

 

显示文件大小:

 

[root@linuxcool ~]# ll -h

 

 

lnewusers命令 创建用户账号

 

使用lnewusers命令可以通过从标准输入中读取数据来创建用户账号。输入的数据每行有7个冒号分隔的字段,需要输入用户名、用户明文密码、用户ID、群组ID、真实姓名、主目录和登录Shell。

 

语法格式:lnewusers [参数]

 

常用参数:

 

-M 不创建用户主目录
-n 不创建用户邮件队列文件

 

参考实例

 

创建用户zhangsan22:

 

[root@linuxcool ~]# lnewusers
 zhangsan22:123456:1000:1000:zhangsan:/home/hh:/bin/bash

 

 

ln命令 为文件创建链接

 

ln命令是linux系统中一个非常重要命令,英文全称是“link”,即链接的意思,它的功能是为某一个文件在另外一个位置建立一个同步的链接。 一种是hard link,又称为硬链接;另一种是symbolic link,又称为符号链接。

 

通俗一点理解,可以把硬链接当成源文件的副本,他和源文件一样的大小,但是事实上却不占任何空间。符号链接可以理解为类似windows一样的快捷方式。

 

符号链接 :

 

  • 1. 符号链接以路径的形式存在,类似于Windows操作系统中的快捷方式。
  • 2. 符号链接可以跨文件系统 ,硬链接不可以。
  • 3. 符号链接可以对一个不存在的文件名进行链接,硬链接不可以。
  • 4. 符号链接可以对目录进行链接,硬链接不可以。

 

硬链接:

 

  • 1.硬链接以文件副本的形式存在,但不占用实际空间。
  • 2. 硬链接不允许给目录创建硬链接。
  • 3.硬链接只有在同一个文件系统中才能创建。

 

语法格式: ln [参数] [源文件或目录] [目标文件或目录]

 

常用参数:

 

-b 为每个已存在的目标文件创建备份文件
-d 此选项允许“root”用户建立目录的硬链接
-f 强制创建链接,即使目标文件已经存在
-n 把指向目录的符号链接视为一个普通文件
-i 交互模式,若目标文件已经存在,则提示用户确认进行覆盖
-s 对源文件建立符号链接,而非硬链接
-v 详细信息模式,输出指令的详细执行过程

 

参考实例

 

为源文件file.txt创建硬链接file_1:

 

[root@linuxcool ~ ]# ln /root/dir/file.txt ./file_1

 

使用ln命令的“-s”参数来创建目录的符号链接,并使用ls命令来查看链接文件的详细信息:

 

[root@linuxcool ~]# ln -s dir file
[root@linuxcool ~]# ls -l
总用量 4
-rw-------. 1 root root 1138 3月 11 14:48 anaconda-ks.cfg
drwxr-xr-x. 2 root root 36 4月 3 08:47 test
lrwxrwxrwx. 1 root root 4 4月 3 08:54 file -> dir

 

使用ln命令的“-v”参数来输出命令的详细执行过程:

 

[root@linuxcool ~]# ln -v /root/dir/file.txt ./file_1
'./file_1' => '/root/dir/file.txt'

 

使用ln命令的“-b”命令来创建目标文件的备份文件,并使用ls命令来查看:

 

[root@linuxcool ~]# ln -b /root/dir/file.txt ./file_1
[root@linuxcool ~]# ls
anaconda-ks.cfg file_1 file_1~ dir

 

 

locate命令 快速查找文件或目录

 

locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,值得注意的是:版本不同,会有所不同。有的版本位置是 /var/lib/mlocate/mlocatedb ,还有的是/var/lib/slocate/slocate.db ,这个数据库中含有本地所有文件信息。

 

Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

 

语法格式:locate [参数] [文件]

 

常用参数:

 

-d<目录>或--database=<目录> 指定数据库所在的目录
--help 显示帮助
--version 显示版本信息

 

参考实例

 

搜索/etc目录下所有以sh开头的文件:

 

[root@linuxcool ~]# locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells

 

搜索/etc目录下以k开头的文件:

 

[root@linuxcool ~]# locate /etc/k
/etc/kdump.conf
/etc/kernel
/etc/krb5.conf
/etc/krb5.conf.d
/etc/ksmtuned.conf
/etc/kernel/postinst.d
/etc/kernel/postinst.d/51-dracut-rescue-postinst.sh

 

查找和pwd相关的所有文件:

 

[root@linuxcool ~]# locate pwd
/boot/extlinux/pwd.c32
/etc/.pwd.lock
/usr/bin/pwd
/usr/bin/pwdx
/usr/include/pwd.h

 

 

lpstat命令 显示cpus状态信息

 

使用lpstat命令可以显示有关当前类、作业和打印机的状态信息。当不带参数运行时,将列出当前用户的作业队列。

 

语法格式: lpstat [参数]

 

常用参数:

 

-U 指定备用用户名
-v 显示打印机和什么设备联系在一起的
-d 显示当前默认的目的地

 

参考实例

 

显示cpus的状态信息:

 

[root@linuxcool ~]# lpstat

 

 

lsattr命令 显示文件隐藏属性

 

lsattr命令的英文全称即“list attribute”,用于查看特定设备或特定文件在Linux第二扩展文件系统上的特有属性信息 。该命令常与chattr一起使用,chattr命令用于改变文件或目录的隐藏属性,而lsattr命令则用于查看其属性 。

 

语法格式:lsattr [参数] [文件]

 

常用参数:

 

-a  列出目录中的所有文件,包括隐藏文件
-d  只显示目录名称
-R 递归地处理指定目录下的所有文件及子目录
-v  显示文件或目录版本
-V 显示版本信息
-D 显示属性的名称、默认值
-E 显示从用户设备数据库中获得属性的当前值

 

参考实例:

 

使用 lsattr 命令来显示文件属性:

 

[root@linuxcool ~]# lsattr /etc/resolv.conf 

 

显示设备en0当前有效值:

 

[root@linuxcool ~]# lsattr -E -H -l en0  

 

显示eno的arp属性的值:

 

[root@linuxcool ~]# lsattr -R -l en0 -a arp

 

要显示 rmt0 磁带设备的当前属性值:

 

[root@linuxcool ~]# lsattr -l rmt0 -E 

 

要显示 rmt0 磁带设备的缺省属性值 :

 

[root@linuxcool ~]# lsattr -l rmt0 -D 

 

 

ls命令 显示指定工作目录下的内容及属性信息

 

ls 命令是Linux下最常用的指令之一。ls命令为英文单词 list 的缩写,正如英文单词 list 的意思,其功能是列出指定目录下的内容及其相关属性信息。

 

默认状态下,ls命令会列出当前目录的内容。而带上参数后,我们可以用ls做更多的事情。作为最基础同时又是使用频率很高的命令,我们很有必要搞清楚ls命令的用法,那么接下来一起看看吧!

 

语法格式: ls [选项] [文件]

 

常用参数:

 

-a 显示所有文件及目录 (包括以“.”开头的隐藏文件)
-l 使用长格式列出文件及目录信息
-r 将文件以相反次序显示(默认依英文字母次序)
-t 根据最后的修改时间排序
-A 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录)
-S 根据文件大小排序
-R 递归列出所有子目录

 

参考实例

 

列出所有文件(包括隐藏文件):

 

[root@linuxcool ~]# ls -a

 

列出文件的详细信息:

 

[root@linuxcool ~]# ls -l

 

列出根目录(/)下的所有目录:

 

[root@linuxcool ~]# ls / 

 

列出当前工作目录下所有名称是 “s” 开头的文件 :

 

[root@linuxcool ~]# ls -ltr s*

 

列出 /bin 目录下的所有目录及文件的详细信息 :

 

[root@linuxcool ~]# ls -lR /bin

 

列出当前工作目录下所有文件及目录并以文件的大小进行排序 :

 

[root@linuxcool ~]# ls -AS

 

 

ltrace命令 跟踪进程调用库函数的情况

 

ltrace命令是用来跟踪进程调用库函数的情况,ltrace其实也是基于ptrace。我们知道,ptrace能够主要是用来跟踪系统调用,那么它是如何跟踪库函数呢? 首先ltrace打开elf文件,对其进行分析。在elf文件中,出于动态连接的需要,需要在elf文件中保存函数的符号,供连接器使用。

 

语法格式:ltrace [参数]

 

常用参数:

 

-a 对齐具体某个列的返回值
-c 计算时间和调用,并在程序退出时打印摘要
-d 打印调试信息
-f 跟踪子进程
-l 只打印某个库中的调用

 

参考实例

 

最基本应用,不带任何参数:

 

[root@linuxcool ~]# ltrace ./a.out 

 

输出调用时间开销:

 

[root@linuxcool ~]# ltrace -T ./a.out 

 

显示系统调用:

 

[root@linuxcool ~]# ltrace -S ./a.out 

 

计算时间和调用,并在程序退出时打印摘要:

 

[root@linuxcool ~]# ltrace -c ./a.out 

 

打印调试信息:

 

[root@linuxcool ~]# ltrace -d ./a.out  

 

 

lynx命令 终端上的纯文本浏览器

 

lynx命令是终端上的纯文本模式的网页浏览器,没有JS引擎,不支持CSS排版、图形、音视频等多媒体信息。只能作为一个很有趣的小玩具。

 

语法格式:lynx [参数]

 

常用参数:

 

-case 搜索字符串时区分大小写
-ftp 关闭ftp功能
--color 激活彩色模式
--reload 更新首页代理服务器的缓存
--help 显示帮助

 

参考实例

 

访问www.linuxcool.com:

 

[root@linuxcool ~]# lynx www.linuxcool.com

 

 

mailx命令 发送和接受邮件

 

使用mailx命令可以使用发送和接受邮件,名字是收件人的姓名,此命令比mail更容易查看邮件。

 

语法格式:mailx [参数] [用户]

 

常用参数:

 

-v 显示详细信息
-f 从指定文件中读取消息
-u 读取指定用户的邮箱
-H 只显示标题摘要

 

参考实例

 

将消息发送到本地系统的用户zhangsan:

 

[root@linuxcool ~]# mailx zhangsan

 

发送邮件给zhangsan@qq.com:

 

[root@linuxcool ~]# mailx zhangsan@qq.com

 

将文件当做电子邮件的内容送出:

 

[root@linuxcool ~]# mailx -s "send with content that is a file" root@localhost < ftp2.txt

 

 

manpath命令 查看man手册页的查询路径

 

使用manpath命令可以查看和设置man手册页的查询路径。

 

语法格式:manpath [参数] [名称]

 

常用参数:

 

-a 找到所有匹配的条目
-c 不使用cat文件
-d 显示调试信息的采空区
-w 类似于-w选项,但是只显示文件名

 

参考实例

 

查看man手册页的查询路径:

 

[root@linuxcool ~]# manpath 

 

设置man手册页的查询路径为/home目录:

 

[root@linuxcool ~]# manpath -M /home

 

 

man命令 查看命令帮助信息

 

man命令是Linux下最核心的命令之一。而man命令也并不是英文单词“man”的意思,它是单词manual的缩写,即使用手册的意思。

 

man命令会列出一份完整的说明。 其内容包括命令语法、各选项的意义及相关命令 。更为强大的是,不仅可以查看Linux中命令的使用帮助,还可以查看软件服务配置文件、系统调用、库函数等帮助信息。

 

man手册页文件存放在/usr/share/man目录下。

 

语法格式:man [命令]

 

常用参数:

 

-a 在所有的man帮助手册中搜索
-d 主要用于检查,如果用户加入了一个新的文件,就可以用这个参数检查是否出错
-f 显示给定关键字的简短描述信息
-p 指定内容时使用分页程序
-M 指定man手册搜索的路径
-w 显示文件所在位置

 

man命令内容组成的介绍:

 

  1. 用户命令的使用方法,可以使用的参数等
  2. 系统调用,只有系统才能执行的函数
  3. 库调用,大多是libc函数,如qsort(3)
  4. 设备和特殊文件
  5. 文件格式和约定
  6. 游戏
  7. 宏命令包和约定
  8. 系统管理命令,多数只有root可以执行
  9. 内核程序
  10. Tcl或Tk指令

 

快捷键:

 

q 退出
Enter 按行下翻
Space 按页下翻
b 上翻一页
/字符串 在手册页中查找字符串

 

参考实例

 

查看cp命令的帮助信息:

 

[root@linuxcool ~]# man cp

 

查看/etc/passwd文件的信息:

 

[root@linuxcool ~]# man /etc/passwd

 

查看passwd命令所在位置:

 

[root@linuxcool ~]# man -w passwd
/usr/share/man/man1/passwd.1.gz

 

查看/etc/passwd文件手册页所在位置:

 

[root@linuxcool ~]# man -w 5 passwd
/usr/share/man/man5/passwd.5.gz

 

 

matchpathcon命令 查看文件默认安全上下文

 

matchpathcon命令的作用是可以得到指定文件默认SELinux安全上下文。

 

相同的路径可以具有不同的安全性上下文,具体取决于文件类型。matchpathcon命令还将在确定默认安全上下文时的文件类型(如果文件存在)。如果文件不存在,则不会发生文件类型匹配。

 

如果系统提示没有安装matchpathcon命令,则需要先安装selinux-utils工具包。

 

语法格式:matchpathcon [参数] [选项]

 

常用参数:

 

-p 使用前缀的速度解答
-N 不使用解答
-n 不显示路径
-V 在磁盘匹配默认上验证文件上下文
-f<file_context_file文件> 使用备用file_context文件

 

参考实例

 

查看指定文件的默认安全上下文:

 

[root@linuxcool ~]# matchpathcon /root/anaconda-ks.cfg

 

查看指定文件的默认安全上下,不显示文件路径:

 

[root@linuxcool ~]# matchpathcon -n /root/anaconda-ks.cfg

 

在磁盘上匹配默认上验证文件上下文:

 

[root@linuxcool ~]# matchpathcon -V /root/anaconda-ks.cfg

 

 

mattrib命令 更改或显示MS-DOS文件的属性

 

mattrib命令用于变更或显示MS-DOS文件的属性,MS-DOS文件是指记录在存储介质(如磁盘、光盘)上的一组相关信息的集合。

 

mattrib为mtools工具指令,模拟MS-DOS的attrib指令,可变更MS-DOS文件的属性 。

 

语法格式:mattrib [参数] [文件]

 

常用参数:

 

-a/+a 除去/设定备份属性
-h/+h  除去/设定隐藏属性
-r/+r 除去/设定只读属性
-s/+s 除去/设定系统属性
-/ 递归的处理包含所有子目录的文件
-X 以较短的格式输出结果

 

参考实例

 

列出 A 槽 MSDOS 格式磁片上所有文件的属性:

 

[root@linuxcool ~]# mattrib a: 

 

除去 A 槽磁片上 msdos.sys 档案的隐藏属性 :

 

[root@linuxcool ~]# mattrib -h a:msdos.sys 

 

增加 A 槽磁片上 msdos.sys 档案的只读属性 :

 

[root@linuxcool ~]# mattrib +r a:msdos.sys

 

除去 A 槽磁片上 msdos.sys 档案的备份、系统属性 :

 

[root@linuxcool ~]# mattrib -a -s a:msdos.sys

 

除去 A 槽磁片上包含子目录下所有档案的只读属性:

 

[root@linuxcool ~]# mattrib -r -/ a:*.* 

 

 

mcopy命令 复制 MSDOS 格式文件到Linux中

 

mcopy命令用来复制 MSDOS 格式文件到 Linux 中,或是由 Linux 中复制 MSDOS 文件到磁片上。

 

mcopy 可复制单一的文件到所指定的文件名称,或是复制数个文件到所指定的目录之中。来源与目的文件可为 MSDOS 或是 Linux 文件。

 

mcopy指令是一种mtools工具指令,可以在DOS系统中复制文件或者在DOS与Linux操作系统之间进行文件复制。

 

语法格式:mcopy [参数] [源文件]

 

常用参数:

 

-b  批处理模式
-n 覆盖其他文件时,不需要进行确认而直接覆盖
-m 将源文件修改时间设置为目标文件的修改时间
-p 将源文件的属性设置为目标文件的属性
-Q 当复制多个文件产生错误时,尽快结束程序
-t 转换为文本文件
-o 在覆盖 MSDOS 文件时不出现警示讯息

 

参考实例

 

将 A 盘根目录中的 autoexec.bat 复制到目前工作目录之下:

 

[root@linuxcool ~]# mcopy a:autoexec.bat

 

当复制的内容包括子目录和文件时,必须使用参数”-/”递归操作:

 

[root@linuxcool ~]# mcopy -/ A:\* 

 

 

mc命令 菜单式文件管理程序

 

mc命令用于提供一个菜单式的文件管理程序,执行mc之后,将会看到菜单式的文件管理程序,共分成4个部分。

 

语法格式:mc [参数] [文件]

 

常用参数:

 

-a   当mc程序画线时不用绘图字符画线
-b   使用单色模式显示
-c   使用彩色模式显示
-d   不使用鼠标
-f   显示mc函数库所在的目录

 

参考实例

 

使用单色模式管理test文件:

 

[root@linuxcool ~]# mc -b test

 

使用彩色模式管理test文件:

 

[root@linuxcool ~]# mc -c test

 

 

md5sum命令 校验文件

 

md5sum命令用于生成和校验文件的md5值。它会逐位对文件的内容进行校验。是文件的内容,与文件名无关,也就是文件内容相同,其md5值相同。

 

md5值是一个128位的二进制数据,转换成16进制则是32(128/4)位的进制值。

 

语法格式:md5sum [参数] [文件]

 

常用参数:

 

-b 以二进制模式读取文件
-t 以文本模式读入文件内容
-c 根据已生成的md5值,对现存文件进行校验
-w 检查输入的md5信息有没有非法行,若有则输出相应信息
--status 校验完成后,不生成错误或正确的提示信息,可以通过命令的返回值来判断

 

参考实例

 

生成文件md5值:

 

[root@linuxcool ~]# md5sum file  

 

文件内容校验:

 

[root@linuxcool ~]# md5sum -c d.md5 

 

校验文件后给出信息提示:

 

[root@linuxcool ~]# md5sum file --status

 

 

mdeltree命令 删除 MSDOS 格式文档及目录

 

mdeltree命令会将所指定的目录与目录之下的所有档案与目录都删除掉。如果所指定的档案或目录不存在,则会传回错误讯息。

 

语法格式: mdeltree [参数]

 

常用参数:

 

-v 显示更多的信息

 

参考实例

 

删除A磁盘根目录中的 msdosdir 目录及其文件:

 

[root@linuxcool ~]# mdeltree a:msdosdir 

 

在删除过程中显示删除信息:

 

[root@linuxcool ~]# mdeltree -v a:msdosdir

 

 

mdel命令 删除 MSDOS 格式的档案

 

mdel为mtools工具命令,模拟MS-DOS的deltree命令,可删除MS-D0S文件系统中的目录及目录下所有子目录与文件,在删除只读之前会有提示信息产生。

 

语法格式:mdel [参数]

 

常用参数:

 

-v  显示更多的信息

 

参考实例

 

将 A 槽磁片根目录中的autoexec.bat删除:

 

[root@linuxcool ~]# mdel a:autoexec.bat

 

将 B 槽磁片根目录中的demo.bat删除:

 

[root@linuxcool ~]# mdel b:demo.bat

 

 

mdir命令 显示MS-DOS目录

 

mdir为mtools工具指令,模拟MS-DOS的dir指令,可显示MS-DOS文件系统中的目录内容。

 

语法格式:mdir [参数] [目录]

 

常用参数:

 

-/ 显示目录下所有子目录与文件
-a  显示隐藏文件
-f  不显示磁盘所剩余的可用空间
-w  仅显示目录或文件名称,并以横排方式呈现,以便一次能显示较多的目录或文件
-X  仅显示目录下所有子目录与文件的完整路径,不显示其他信息

 

参考实例

 

显示a盘中的内容:

 

[root@linuxcool ~]# mdir -/ a:\*   

 

显示d盘中的隐藏文件:

 

[root@linuxcool ~]# mdir -a d:\* 

 

显示d盘目录,并以横排方式呈现:

 

[root@linuxcool ~]# mdir -W d:\* 

 

 

minfo命令 显示MS-DOS文件系统的各项参数

 

minfo命令用于显示MS-DOS文件系统的各项参数。

 

minfo为mtools工具指令,可显示MS-DOS系统磁盘的各项参数,包括磁区数,磁头数…等。

 

语法格式:minfo [参数]

 

常用参数:

 

-v  除了一般信息外,并显示可开机磁区的内容

 

参考实例

 

显示DOS系统参数:

 

[root@linuxcool ~]# minfo -v C: 

 

 

mkdir命令 创建目录

 

mkdir命令是“make directories”的缩写,用来创建目录。

 

注意:默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。 所以在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 mkdir命令还可以同时创建多个目录,是不是很强大呢?

 

语法格式 : mkdir [参数] [目录]

 

常用参数:

 

-p 递归创建多级目录
-m 建立目录的同时设置目录的权限
-z 设置安全上下文
-v 显示目录的创建过程

 

参考实例

 

在工作目录下,建立一个名为 dir 的子目录:

 

[root@linuxcool ~]# mkdir dir

 

在目录/usr/linuxcool下建立子目录dir,并且设置文件属主有读、写和执行权限,其他人无权访问

 

[root@linuxcool ~]# mkdir -m 700 /usr/linuxcool/dir

 

同时创建子目录dir1,dir2,dir3:

 

[root@linuxcool ~]# mkdir dir1 dir2 dir3

 

递归创建目录:

 

[root@linuxcool ~]# mkdir -p linuxcool/dir

 

 

mke2fs命令 -创建文件系统

 

mke2fs命令被用于创建磁盘分区上的“etc2/etc3”文件系统。

 

语法格式: mke2fs [参数]

 

常用参数:

 

-b 指定区块大小,单位为字节
-c 检查是否有损坏的区块
-F 不管指定的设备为何,强制执行mke2fs
-M 记录最后一次挂入的目录
-q 执行时不显示任何信息
-r 指定要建立的ext2文件系统版本
-v 执行时显示详细信息
-V 显示版本信息

 

参考实例

 

创建指定的ext2文件系统:

 

[root@linuxcool ~]# mke2fs -q /dev/hda1

 

检查是否有损坏的区块:

 

[root@linuxcool ~]# mke2fs -c 

 

 

mkfifo命令 创建FIFO文件

 

使用mkfifo命令可以使用指定的名称创建先进先出文件(FIFO)

 

语法格式:mkfifo [参数] [名称]

 

常用参数:

 

-m <模式> 设置权限模式,类似chmod
-Z <CTX> 将每个创建的目录SELinux安全环境设置为CTX

 

参考实例

 

创建FIFO文件 /root/fifo:

 

[root@linuxcool ~]# mkfifo /root/fifo

 

 

mkfs.ext2命令 建立ext2文件系统

 

mkfs.ext2命令与mke2fs命令功能相同。都是用来建立ext2文件系统。

 

Ext2文件系统使用以inode为基础的文件系统。

 

Ext2文件系统一开始将inode与block规划好了,除非重新格式化,否则inode与block固定后就不再变动,但是当inode与block数量过多时,就不易于管理。因此Ext2在格式化的时候基本上是区分为多个块组(block group),每个块组都有独立的/inode/block/superblock系统。

 

语法格式:mkfs.ext2 [参数]

 

常用参数:

 

-b 指定区块大小,单位为字节
-c 检查是否有损坏的区块
-F 不管指定的设备为何,强制执行mkfs.ext2
-M 记录最后一次挂入的目录
-q 执行时不显示任何信息

 

参考实例

 

创建指定的ext2文件系统:

 

[root@linuxcool ~]# mkfs.ext2 -q /dev/hda1

 

检查是否有损坏的区块:

 

[root@linuxcool ~]# mkfs.ext2 -c

 

强行执行mkfs.ext2:

 

[root@linuxcool ~]# mkfs.ext2 -F

 

 

mkfs.minix命令 建立Minix文件系统

 

mkfs.minix命令用来建立Minix文件系统。

 

Minix文件系统(英语:MINIX file system),一种文件系统,是Minix操作系统中的原生文件系统。

 

语法格式:mkfs.minix [参数]

 

常用参数:

 

-c 检查是否有损坏的区块
-i<inode> 指定文件系统的inode总数
-l<文件> 从指定的文件中,读取文件系统中损坏区块的信息
-n<文件名长度> 指定文件名称长度的上限
-v 建立第2版的Minix文件系统

 

参考实例

 

检查/目录下是否有损坏的区块:

 

[root@linuxcool ~]# mkfs.minix -c /

 

指定文件系统的inode总数为5:

 

[root@linuxcool ~]# mkfs.minix -i 5

 

读取test文件损坏信息:

 

[root@linuxcool ~]# mkfs.minix -l test

 

 

mkfs.msdos命令 建立DOS文件系统

 

mkfs.msdos命令用于建立DOS文件系统。与mkdosfs命令功能相同。

 

DOS时代中就有了“目录”一术语,而目录是树型结构的,打开一个“文件夹”,里面可能继续会有次文件夹,再打开次文件夹,以后可能还会有文件夹,所以DOS文件系统其实就是一种树型结构。

 

语法格式:mkfs.msdos [参数]

 

常用参数:

 

-c 建立档案系统之前先检查是否有坏轨
-l 从得定的档案中读取坏轨记录
-f 指定档案配置表的数量
-F 指定 FAT 表的大小,通常是 12 或是 16 个位元组
-n 指定 Volume Name,即磁碟标签

 

参考实例

 

将 A 槽里的磁碟片格式化为 DOS 格式,并将标签设为 Tester:

 

[root@linuxcool ~]# mkfs.msdos -n Tester /dev/fd0

 

检查是否有坏轨:

 

[root@linuxcool ~]# mkfs.msdos -c

 

从test目录中读取坏轨记录:

 

[root@linuxcool ~]# mkfs.msdos -l test

 

 

mkntfs命令 创建 NTFS 文件系统

 

mkntfs用于在设备上(通常是磁盘分区或文件)创建 NTFS 文件系统。device操作数是对应于设备的特殊文件,例如 /dev/dsk/c0d0p0。number-of-sectors操作数是设备上的块的数目。如果省略,则 mkntfs 将自动计算文件系统大小。

 

语法格式:mkntfs [参数]

 

常用参数:

 

–C 在卷上启用压缩
–f、–-fast或 –q、–-quick 执行快速格式化,此选项会跳过卷的零位调整和坏扇区检查
–L、–-label 设置文件系统的卷标签
–n、–-no-action mkntfs不实际创建文件系统,但显示它创建文件系统时将执行的工作
-c 以字节为单位指定簇的大小
–p、–-partition 指定分区开始扇区
-f/--force 强制执行mkntfs
–v 详细模式执行

 

参考实例

 

启用压缩:

 

[root@linuxcool ~]# mkntfs -C

 

在压缩时候输出详细信息:

 

[root@linuxcool ~]# mkntfs -v

 

设置文件系统的卷标签为string:

 

[root@linuxcool ~]# mkntfs -L string

 

 

mktemp命令 建立暂存文件

 

mktemp用来建立暂存文件,其创建的临时文件是唯一的 ,供shell 使用 。

 

默认情况下,mktemp会在本地当前目录创建一个临时文件,创建临时文件时只需要创建模板文件,模板可以包含任意的文件名,文件末尾可以根据需要添加n个x。

 

语法格式:mktemp [参数] [文件]

 

常用参数:

 

-q  执行时若发生错误,不会显示任何信息
-u 暂存文件会在mktemp结束前先行删除

 

参考实例:

 

生成临时文件,文件名参数应当以”文件名.XXXX”的形式给出 :

 

[root@linuxcool ~]# mktemp tmp.xxxx 

 

生成临时目录:

 

[root@linuxcool ~]# mktemp -d

 

在指定目录下生成临时文件:

 

[root@linuxcool ~]# mktemp -d --tmpdir=/home abc.XXX 

 

自定义文件模板,并且生成在系统目录下:

 

[root@linuxcool ~]# mktemp -t abc.XXXXXX 

 

自定义文件模板,并且生成在系统目录下, 执行时若发生错误,不会显示任何信息 :

 

[root@linuxcool ~]# mktemp -t -q abc.XXXXXX

 

 

mmove命令 移动文件或目录

 

Linux mmove命令用于在MS-DOS文件系统中,移动文件或目录,或更改名称。

 

mmove为mtools工具命令,模拟MS-DOS的move命令,可在MS-DOS文件系统中移动现有的文件或目录,或是更改现有文件或目录的名称。

 

语法格式: mmove [源文件或目录] [目标文件或目录]

 

常用参数:

 

源文件或目录 执行操作的源文件或目录路径
目标文件或目录 执行操作后的目标文件或目录路径

 

参考实例

 

使用指令mmove将文件a.txt移动到目录dir中:

 

[root@linuxcool ~]# mmove a.txt dir

 

使用指令mmove将文件”autorun.bat”移动到目录”test”中 :

 

[root@linuxcool ~]# mmove autorun.bat test 

 

以上命令执行以后,指令mmove会将文件”autorun.bat”移动到指定目录”test”中。

 

使用指令mmove将文件test移动到目录”autorun.bat”中 :

 

[root@linuxcool ~]# mmove test autorun.bat 

 

注意:用户可以使用mdir指令查看移动后的文件或目录信息。

 

使用该命令前先查看原来的目录,得到如下结果:

 

[root@linuxcool ~]# mdir -/ a:\* 
Volume in drive A has no label #加载信息  
Volume Serial Number is 13D2~055C  
Directory for A:/ #以下为目录信息  
#文件名目录大小 修改时间  
./TEST <DIR> 2009-09-23 16:59  
AUTORUN.INF 265 2009-09-23 16:53  
AUTORUN.BAT 43 2009-09-23 16:56  
3 files 308 bytes #统计总大小  
724 325 bytes free #剩余空间

 

使用mmove命令,并再次查看,结果如下:

 

[root@linuxcool ~]# mmove autorun.bat test
[root@linuxcool ~]# mdir -/ a:\*
Volume in drive A has no label #加载信息  
Volume Serial Number is 13D2~055C  
Directory for A:/ #以下为目录信息  
#文件名目录大小 修改时间  
./TEST <DIR> 2009-09-23 16:59  
AUTORUN.INF 265 2009-09-23 16:53  
2 files 265 bytes #统计总大小  
724 683 bytes free #剩余空间  
cmd@cmd-desktop:~$ mdir -/ a:\test\* #再次查看test目录中文件  
AUTORUN.BAT 43 2009-09-23 16:56  
1 files 43 bytes #统计总大小  

 

 

more命令 显示文本文件内容

 

more命令用于将内容较长的文本文件内容(不能在一屏显示完)进行分屏显示,并且支持在显示时定位关键字。而对于内容较少的文本文件内容则推荐使用cat命令查看。

 

语法格式:more [参数] [文件]

 

常用参数:

 

-num 指定每屏显示的行数
-l more在通常情况下把 ^L 当作特殊字符, 遇到这个字符就会暂停,-l选项可以阻止这种特性
-f  计算实际的行数,而非自动换行的行数
-p 先清除屏幕再显示文本文件的剩余内容
-c 与-p相似,不滚屏,先显示内容再清除旧内容
-s 多个空行压缩成一行显示
-u 禁止下划线
+/pattern 在每个文档显示前搜寻该字(pattern),然后从该字串之后开始显示
+num  从第 num 行开始显示

 

命令内部操作:

 

  • Space键:显示文本的下一屏内容
  • Enter键:向下n行,需要定义,默认为1行
  • 斜线符\:接着输入一个模式,可以在文本中寻找下一个相匹配的模式
  • H键:显示帮助屏
  • B键:显示上一屏内容
  • Q键:退出more命令
  • Ctrl+F、空格键:向下滚动一屏
  • Ctrl+B:返回上一屏
  • =: 输出当前的行号
  • :f:输出文件名和当前的行号
  • V:调用vi编辑器
  • !:调用Shell,并执行命令

 

参考实例

 

显示文件file的内容,显示之前先清屏,附已显示的百分比:

 

[root@linuxcool ~]# more -dc file 

 

显示文件file的内容,每10行显示一次,而且在显示之前先清屏:

 

[root@linuxcool ~]# more -c -10 file 

 

显示文件file的内容,每5行显示一次,而且在显示之后再清屏:

 

[root@linuxcool ~]# more -p -5 file 

 

逐页显示 file 文档内容,如有连续两行以上空白行则以一行空白行显示 :

 

[root@linuxcool ~]# more -s file 

 

从第 20 行开始显示 file 之文档内容 :

 

[root@linuxcool ~]# more +20 file 

 

 

mount.nfs4命令 挂载NFSv4文件系统

 

NFS,是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS。而 使用mount.nfs4命令可以挂载NFSv4文件系统

 

语法格式:mount.nfs4 [远程挂载点] [本地目录] [参数]

 

常用参数:

 

-r 挂载文件系统为只读
-v 显示详细信息
-w 挂载文件系统为读写

 

参考实例

 

挂载NFS服务器192.168.0.2的共享目录/it到本地主机的目录/mnt/it上:

 

[root@linuxcool ~]# mount.nfs4 192.168.0.2:/it /mnt/it

 

挂载此文件系统为只读方式:

 

[root@linuxcool ~]# mount.nfs4 -r 192.168.0.2:/it /mnt/it

 

挂载此文件系统时并显示详细信息:

 

[root@linuxcool ~]# mount.nfs4 -v 192.168.0.2:/it /mnt/it

 

 

mount.nfs命令 挂载NFS文件系统

 

使用mount.nfs命令可以挂载NFS共享,只能挂载NFS文件系统版本3或版本2,而挂载nfs4版本需要专门参数。

 

语法格式:mount.nfs [远程目标] [目录] [参数]

 

常用参数:

 

-n 不更新/etc/mtab文件
-r 以只读方式挂载文件系统
-v 显示详细信息

 

参考实例

 

挂载NFS服务器192.168.0.2的共享目录/it(该目录当前被挂载在本地的/mnt/it目录下):

 

[root@linuxcool ~]# mount.nfs4 192.168.0.2:/mnt/it

 

以只读方式挂载此文件系统:

 

[root@linuxcool ~]# mount.nfs4 -r 192.168.0.2:/mnt/it

 

挂载此文件系统时,并显示详细信息:

 

[root@linuxcool ~]# mount.nfs4 -v 192.168.0.2:/mnt/it

 

 

mread命令 mtools工具

 

mread命令用于将MS-DOS文件复制到Linux/Unix的目录中。

 

mread为mtools工具命令,可将MS-DOS文件复制到Linux的文件系统中。这个命令目前已经不常用,一般都使用mcopy命令来代替。

 

语法格式:mread [参数]

 

常用参数:

 

[MS-DOS文件…] 执行操作的DOS源文件或目录路径
[Linux文件或目录] 执行操作后的Linux目标文件或目录路径

 

参考实例

 

将盘”a:\”中的所有内容复制到当前工作目录下:

 

[root@linuxcool ~]# mread a:\* ./

 

 

mren命令 更改文件或目录

 

mren命令用于更改MS-DOS文件或目录的名称,或是移动文件或目录。

 

mren为MS-DOS工具指令,与DOS下的ren指令相似,可以实现更改MS-DOS文件或目录名称。 源文件必须是磁盘上已经存在的文件,若忽略盘符及路径,则表示当前盘及当前目录的文件。 新文件名是所要更换的文件名称。新文件名称前不可以加与源文件不同的盘符及路径,因为该命令只能更改同一盘上的文件名称。

 

语法格式:mren [参数]

 

常用参数:

 

[源文件或目录…] 执行操作的源文件名或者源文件路径
[目标文件或目录] 执行操作的目标文件名或者目标文件路径

 

参考实例

 

将a盘下的文件”test.txt”的文件名修改为”test1.txt”:

 

[root@linuxcool ~]# mren a:\test.txt test1.txt

 

 

mshowfat 命令 显示在FAT中的记录

 

mshowfat命令用于显示MS-DOS文件在FAT中的记录。

 

mshowfat为mtools工具指令,可显示MS-DOS文件在FAT中的记录编号。

 

语法格式:mshowfat [参数]

 

常用参数:

 

[文件…] 执行操作的文件相对路径或者绝对路径

 

参考实例

 

查看文件”test.txt”的FAT信息:

 

[root@linuxcool ~]# $ mshowfat test.txt

 

 

mtoolstest命令 测试并显示mtools的相关设置

 

mtoolstest为mtools工具指令,可读取与分析mtools的配置文件,并在屏幕上显示结果 。

 

语法格式:mtoolstest

 

参考实例

 

在命令行中直接输入mtoolstest,即可显示mtools软件包当前的配置信息,结果如下:

 

[root@linuxcool ~]# mtoolstest 

 

 

mtools命令 显示mtools支持的指令

 

mtools为MS-DOS文件系统的工具程序,可模拟许多MS-DOS的指令。这些指令都是mtools的符号连接,因此会有一些共同的特性 。

 

语法格式:mtools [参数]

 

常用参数:

 

-a  长文件名重复时自动更改目标文件的长文件名
-A  短文件名重复但长文件名不同时自动更改目标文件的短文件名
-o  长文件名重复时,将目标文件覆盖现有的文件
-O 短文件名重复但长文件名不同时,将目标文件覆盖现有的文件
-r  长文件名重复时,要求用户更改目标文件的长文件名
-R 短文件名重复但长文件名不同时,要求用户更改目标文件的短文件名
-s  长文件名重复时,则不处理该目标文件
-S 短文件名重复但长文件名不同时,则不处理该目标文件
-v  执行时显示详细的说明
-V  显示版本信息

 

参考实例

 

在命令提示符中直接输入mtools,可显示其所支持的MS-DOS命令,如下所示:

 

[root@linuxcool ~]# mtools   
Supported commands: 
mattrib, mbadblocks, mcat, mcd, mclasserase, mcopy, mdel, mdeltree  
mdir, mdoctorfat, mdu, mformat, minfo, mlabel, mmd, mmount  
mpartition, mrd, mread, mmove, mren, mshowfat, mtoolstest, mtype  
mwrite, mzip 

 

 

mv命令 移动或改名文件

 

mv命令是“move”单词的缩写,其功能大致和英文含义一样,可以移动文件或对其改名。

 

这是一个使用频率超高的文件管理命令,我们需要特别留意它与复制的区别:mv与cp的结果不同。mv命令好像文件“搬家”,文件名称发生改变,但个数并未增加。而cp命令是对文件进行复制操作,文件个数是有增加的。

 

语法格式:mv [参数]

 

常用参数:

 

-i 若存在同名文件,则向用户询问是否覆盖
-f 覆盖已有文件时,不进行任何提示
-b 当文件存在时,覆盖前为其创建一个备份
-u 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作

 

参考实例

 

将文件file_1重命名为file_2:

 

[root@linuxcool ~]# mv file_1 file_2

 

将文件file移动到目录dir中 :

 

[root@linuxcool ~]# mv file /dir

 

将目录dir1移动目录dir2中(前提是目录dir2已存在,若不存在则改名):

 

[root@linuxcool ~]# mv /dir1 /dir2

 

将目录dir1下的文件移动到当前目录下:

 

[root@linuxcool ~]# mv /dir1/* .

 

 

myisamchk命令 检查和修复MyISAM表

 

使用myisamchk命令可以检查和修复MyISAM表。使用不带选项的命令,所有表将被检查是否有错误。

 

语法格式:myisamchk [参数] [表]

 

常用参数:

 

-p 与-r和-n的用法相同,但使用不同的线程并行创建所有键
-c 检查表的错误
-w 如果表被锁住就等待

 

参考实例

 

检查和修复MyISAM表:

 

[root@linuxcool ~]# myisamchk /var/lib/mysql/mysql/db.MYI

 

检查和恢复t1表:

 

[root@linuxcool ~]# myisamchk -iBfqr /var/lib/mysql/backup/t1

 

为myisamchk设置更多的内存,来使其运行的更快:

 

[root@linuxcool ~]# myisamchk --sort_buffer_size=16M --key_buffer_size=16M --read_buffer_size=1M --write_buffer_size=1M

 

 

mysqladmin命令 MySQL服务器客户端管理工具

 

mysqladmin命令是MySQL服务器管理任务的客户端工具,它可以检查MySQL服务器的配置和当前工作状态,创建和删除数据库,创建用户和修改用户密码等操作。

 

语法格式 : mysqladmin [参数] [管理命令]

 

常用参数:

 

-h MySQL服务器主机名或ip地址
-u 连接MySQL服务器的用户名
-p 连接MySQL服务器的密码
-- -help 显示帮助信息

 

mysqladmin命令支持的MySQL服务器管理命令非常丰富,可以通过“- -help”显示可用的管理命令。

 

参考实例

 

查看服务器当前状态:

 

[root@linuxcool ~]# mysqladmin  -u root -p status
Enter password: 
Uptime: 26  Threads: 1  Questions: 2  Slow queries: 0  Opens: 67  Flush tables: 1  Open tables: 60  Queries per second avg: 0.076 

 

修改root密码:

 

[root@linuxcool ~]# mysqladmin -u root -poldpassword password 'linuxcool'

 

检查mysqlserver是否可用:

 

[root@linuxcool ~]# mysqladmin -u root -p ping
mysqld is alive 

 

创建新数据库:

 

[root@linuxcool ~]# mysqladmin -u root -p create mysql_linuxcool

 

 

mysqlbinlog命令 查看二进制日志文件

 

使用mysqlbinlog命令可以查看二进制日志文件,该日志文件里面记录着所有的的DDL和DML语句。

 

语法格式:mysqlbinlog [参数] [日志文件]

 

常用参数:

 

-d 为指定数据库列出条目
--debug-info 显示一些调试信息
--protocol 进行连接要使用的协议
-D 禁用二进制日志

 

参考实例

 

查看二进制日志文件/var/lib/mysql/mysqld-bin.0001:

 

[root@linuxcool ~]# mysqlbinlog /var/lib/mysql/mysqld-bin.0001

 

查询一段时间的binlog:

 

[root@linuxcool ~]# mysqlbinlog --start-datetime="2017-01-09 17:50:00" --stop-datetime="2017-01-09 18:00:00" bin.000025

 

mysqlbinlog拆库,拆除test库的所有操作,然后进行恢复:

 

[root@linuxcool ~]# mysqlbinlog -d test mysqlbin.000002 > test.sql

 

 

mysqlcheck命令 检查和修复MyISAM表

 

使用mysqlcheck命令可以检查和修复MyISAM表。它可以优化和分析表。mysqlcheck的功能类似myisamchk,但其工作不同。主要差别是当mysql服务器在运行时必须使用mysqlcheck,而myisamchk应用于服务器没有运行时。使用mysqlcheck的好处是不需要停止服务器来检查或修复表。

 

语法格式:mysqlcheck [参数] [数据库] [表]

 

常用参数:

 

-B 处理数据库中命名的所有表
-a 分析表
-A 检查所有数据库
-c 检查表的错误

 

参考实例

 

检查和修复数据库www中的所有表:

 

[root@linuxcool ~]# mysqlcheck www

 

检查和修复数据库www中的table1表:

 

[root@linuxcool ~]# mysqlcheck www table1

 

对mysql库进行mysqlcheck操作:

 

mysqlcheck mysql -uroot -p

 

 

mysqld_safe命令 MySQL服务器启动脚本

 

使用mysqld_safe命令可以启动MySQL服务器。mysqld_safe增加了一些安全功能,比如发生错误时重新启动服务器,并记录运行信息到错误日志文件。

 

语法格式: mysqld_safe [参数]

 

常用参数:

 

--port 监听TCP/IP连接时,服务器应该使用的端口号。
--user 运行mysqld服务器的系统登录用户
--log-error 写入错误日志到指定文件
--pid-file 进程ID文件的路径名

 

参考实例

 

启动MySQL服务器:

 

[root@linuxcool ~]# mysqld_safe

 

启动MySQL服务器使用3306:

 

[root@linuxcool ~]# mysqld_safe --port 3306

 

指定启动mysql服务器使用的系统登录用户是zx:

 

[root@linuxcool ~]# mysqld_safe --user zx

 

 

mysqldumpslow命令 显示慢查询日志文件摘要

 

使用mysqldumpslow命令可以解析慢查询日志文件,并显示其内容摘要。慢查询日志包含有关需要很长的时间来执行查询的信息。

 

语法格式:mysqldumpslow [参数] [慢查询日志文件]

 

常用参数:

 

-I 从总时间中不减去锁定时间
-i 指定服务器实例的名称
-t 查询时间
-v 显示详细信息
-s 是表示按照何种方式排序
-r 返回记录
-d 启用调试模式

 

参考实例

 

显示慢查询日志文件 /var/lib/mysql/slowquery.log摘要:

 

[root@linuxcool ~]# mysqldumpslow /var/lib/mysql/slowquery.log

 

得到返回记录集最多的10个SQL:

 

[root@linuxcool ~]# mysqldumpslow -s r -t 10 /database/mysql/mysql06_slow.log

 

得到访问次数最多的10个SQL:

 

[root@linuxcool ~]# mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log

 

 

mysqldump命令 MySQL数据库备份

 

mysqldump命令是MySQL数据库中备份工具,用于将MySQL服务器中的数据库以标准的sql语言的方式导出,并保存到文件中。

 

语法格式: mysqldump [参数]

 

常用参数:

 

-- -add-drop-table 在每个创建数据库表语句前添加删除数据库表的语句
-- -add-locks 备份数据库表时锁定数据库表
-- -all-databases 备份MySQL服务器上的所有数据库
-- -comments 添加注释信息
-- -compact 压缩模式,产生更少的输出
-- -complete-insert 输出完成的插入语句
-- -databases 指定要备份的数据库
-- -default-character-set 指定默认字符集
-- -force 当出现错误时仍然继续备份操作
-- -host 指定要备份数据库的服务器
-- -lock-tables 备份前,锁定所有数据库表
-- -no-create-db 禁止生成创建数据库语句
-- -no-create-info 禁止生成创建数据库库表语句
-- -password 连接MySQL服务器的密码
-- -port MySQL服务器的端口号
-- -user 连接MySQL服务器的用户名

 

参考实例

 

导出整个数据库:

 

[root@linuxcool ~]# mysqldump -u linuxcool -p smgp_apps_linuxcool > linuxcool.sql

 

导出数据库中的一个表:

 

[root@linuxcool ~]# mysqldump -u linuxcool -p smgp_apps_linuxcool users > linuxcool_users.sql

 

导出一个数据库结构:

 

[root@linuxcool ~]# mysqldump -u linuxcool -p -d --add-drop-table smgp_apps_linuxcool > linuxcool_db.sql

 

 

mysqlhotcopy命令 备份数据库

 

使用mysqlhotcopy命令可以进行Mysql数据库备份,它使用FLUSH TABLES、LOCK TABLES和cp或scp来进行数据库备份,这是一种快速备份数据库或表的方法,仅用于备份MyISAM和ARCHIVE表。

 

语法格式:mysqlhotcopy [参数] 数据库名[./匹配表的正则表达式/] [新数据库名|目录]

 

常用参数:

 

-u 指定数据库登录的用户
-p 连接到服务器时使用的密码
-h 以TCP/IP连接到本地服务器的主机名

 

参考实例

 

备份数据库www到/root目录下:

 

[root@linuxcool ~]# mysqlhotcopy www /root

 

备份数据库www为数据库abc:

 

[root@linuxcool ~]# mysqlhotcopy www abc

 

备份主机名zx密码为p的主机的数据库data1到/www目录下

 

[root@linuxcool ~]# mysqlhotcopy -u zx -p 123 data1 /www

 

 

mysqlimport命令 MySQL服务器数据导入

 

mysqlimport命令为MySQL数据库服务器提供了一种命令行方式导入数据工具,它从特定格式的文本文件中读取数据插入MySQL数据库表中。

 

语法格式 : mysqlimport [参数]

 

常用参数:

 

-D 导入数据前清空表
-f 出现错误时继续处理剩余的操作
-h MySQL服务器的ip地址或主机名
-u 连接MySQL服务器的用户名
-p 连接MySQL服务器的密码

 

使用mysqlimport命令像MySQL服务器导入数据时需要注意文件的编码格式,否则可能导致导入的数据出现乱码。

 

参考实例

 

导入数据库:

 

[root@linuxcool ~]# mysqlimport -u root --local linuxcool.sql --fields-terminated-by="|"

 

导入本文到数据库:

 

[root@linuxcool ~]# [root@linuxcool ~]# mysqlimport -v -u root -p linuxcool_db linuxcool.txt

 

 

mysql_install_db命令 初始化MySQL数据目录

 

使用mysql_install_db命令可以初始化MySQL数据目录,并创建系统表。

 

语法格式:mysql_install_db [参数]

 

常用参数:

 

--srcdir MySQL源码目录的路径
--rpm 供内部使用
--basedir MySQL安装目录的路径

 

参考实例

 

初始化Mysql数据目录:

 

[root@linuxcool ~]# mysql_install_db

 

指定mysql源码目录的路劲是/data/source/mysql:

 

[root@linuxcool ~]# mysql_install_db --srcdir=/data/source/mysql

 

指定mysql安装目录是/opt/mysql:

 

[root@linuxcool ~]# mysql_install_db --basedir=/opt/mysql

 

 

mysqlshow命令 显示MySQL数据库结构[审]

 

mysqlshow命令用于显示MySQL服务器中的数据库、表和列信息。

 

语法格式: mysqlshow [参数] [数据库]

 

常用参数:

 

-h MySQL服务器的IP地址或主机名
-u 连接MySQL服务器的用户名
-p 连接MySQL服务器的密码
--count 显示每个数据表中数据的行数
-k 显示数据库表的索引
-t 显示数据表的类型
-i 显示数据表的额外信息

 

参考实例

 

查看“newdb”数据库的信息:

 

[root@linuxcool ~]# mysqlshow -h localhost -u root -p  -t newdb

 

显示数据表的额外信息:

 

[root@linuxcool ~]# mysqlshow -h localhost -i -t newdb

 

显示每个数据表中数据的行数:

 

[root@linuxcool ~]# mysqlshow -h localhost --count -t newdb

 

 

mysql命令 MySQL服务器的客户端工具

 

mysql命令是MySQL数据库服务器的客户端工具,它工作在命令行终端中,完成对远程MySQL数据库服务器的操作。

 

语法格式:  mysql [参数] [数据库]

 

常用参数:

 

-h MySQL服务器的ip地址或主机名
-u 连接MySQL服务器的用户名
-e 执行MySQL内部命令
-p 连接MySQL服务器的密码

 

参考实例

 

连接本地MySQL服务器,并打开数据库:

 

[root@linuxcool ~]# mysql -h localhost -u root -p linuxcool

 

连接远程MySQL服务器:

 

[root@linuxcool ~]# mysql -h 192.168.60.60 -u root -p  linuxcool 

 

 

named-checkconf命令 named配置文件语法检查

 

使用named-checkconf命令可以对named配置文件进行语法检查。需要指定要检查的配置文件的名称,如果没有指定则默认为/etc/named.conf文件。

 

语法格式: named-checkconf [参数] [配置文件]

 

常用参数:

 

-b 显示情况摘要并退出
-z 执行named.conf配置文件中找到的所有主要区域的测试负载
-t 将现有目录切换至指定目录以便处理配置文件中的已包括伪命令

 

参考实例

 

对/etc/named.conf配置文件进行语法检测:

 

[root@linuxcool ~]# named-checkconf /etc/named.conf

 

 

namei命令 列出一个路径中所有的成分

 

namei命令通常可以用在出现权限问题时,它可以用于任何 UNIX 文件,如符号链接、文件、目录等。使用namei可以列出路径中所有成分的信息,包含符号链接。通过参数可以显示出包括权限、所有者和所属组等信息。

 

语法格式:namei [参数]

 

常用参数:

 

-m, --modes         显示每个文件的模式位
-o, --owners     显示文件的用户和用户组

 

参考实例

 

连级查看文件权限:

 

[root@linuxcool ~]# namei -m /usr/local/sbin/

 

查看文件所属组:

 

[root@linuxcool ~]# namei -o /etc/hosts

 

以长列表格式显示:

 

[root@linuxcool ~]# namei -l /etc/hosts

 

 

newusers命令 更新和批量创建新用户

 

使用newusers命令读取用户名和明文密码对的文件,并使用此信息来更新一组现有用户或创建新用户。

 

语法格式:newusers [参数]

 

常用参数:

 

-c 指定加密方法,可以指定为NONE、DES、MD5、SHA256、SHA5121
-r 创建系统账户
-s 为SHA*加密算法进行四舍五入

 

参考实例

 

使用命令之前需要创建包含新用户的文件,假如是/root/newusefile,文件内容如下:

 

linuxcool0:x:520:520::/home/zhangsan0:/bin/bash
linuxcool1:x:521:521::/home/zhangsan1:/bin/bash
linuxcool2:x:521:521::/home/zhangsan2:/bin/bash

 

使用此文件批量创建用户:

 

[root@linuxcool ~]# newusers /root/newusefile 

 

 

ngrep命令 数据包匹配和显示工具

 

ngrep命令是grep命令的网络版,他力求更多的grep特征,用于搜寻指定的数据包。正由于安装ngrep需用到libpcap库, 所以支持大量的操作系统和网络协议。能识别TCP、UDP和ICMP包,理解bpf的过滤机制。

 

语法格式:ngrep [参数]

 

常用参数:

 

-i 忽略大小写
-o 将匹配的数据保存到文件
-c 强制显示列的宽度
-L 查询网卡接口

 

参考实例

 

捕捉amazon:80端口的request和response。-d eth0是用来监听对外的网卡:

 

[root@linuxcool ~]# ngrep -W byline -d eth0 port 80

 

捕捉所有的包:

 

[root@linuxcool ~]# ngrep '[a-zA-Z]' -t -W byline -d any tcp port 18080

 

 

nl命令-添加行号

 

nl命令是一个很好用的编号过滤工具。该命令可以读取 File 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出。

 

语法格式:nl [参数] [文件]

 

常用参数:

 

-b 指定行号指定的方式
-n 列出行号表示的方式
-w 行号栏位的占用的位数
-p 在逻辑定界符处不重新开始计算。

 

参考实例

 

用 nl 列出 log2.log 的内容:

 

[root@linuxcool ~]# nl log2.log 

 

用 nl 列出 log2.log 的内容,空本行也加上行号:

 

[root@linuxcool ~]# nl -b a log2.log  

 

让行号前面自动补上0,统一输出格式:

 

[root@linuxcool ~]# nl -b a -n rz log2.log   

 

空行不显示行号:

 

[root@linuxcool ~]# nl -b t log2.log 

 

添加的行号在右:

 

[root@linuxcool~]# nl -n rn log2.log 

 

 

nmcli命令 网络管理命令行工具

 

nmcli命令是可以完成网卡上的所有配置,并可以写入配置文件中。

 

语法格式:nmcli [参数]

 

常用参数:

 

d 监控和管理网络设备的接口
c 监控和管理网络设备的连接

 

参考实例

 

显示所有连接的列表:

 

[root@linuxcool ~]# nmcli con show  

 

查看接口信息:

 

[root@linuxcool ~]# nmcli device show 

 

定义一个名字为default的新连接,它将使用DHCP通过eth0设备的以太网自动连接 :

 

[root@linuxcool ~]# nmcli con add con-name "default" type ethernet ifname  eth0  

 

关闭自动连接:

 

[root@linuxcool ~]# nmcli connection modify "static" connection.autoconnect  no  

 

添加DNS:

 

[root@linuxcool ~]# nmcli connection modify team0 ipv4.dns 8.8.8.8 

 

 

nm命令 显示二进制目标文件的符号表

 

nm是names的缩写, nm命令主要是用来列出某些文件中的符号(说白了就是一些函数和全局变量等)。 一般来说, 搞linux开发的人, 才会用到nm命令, 非开发的人, 应该用不到。

 

语法格式: nm [参数]

 

常用选项:

 

-A 每个符号前显示文件名
-D 显示动态符号
-g 仅显示外部符号
-r 反序显示符号表

 

参考实例

 

显示hello.o 中的未定义符号,需要和其他对象文件进行链接:

 

[root@linuxcool ~]# nm -u hello.o 

 

在/usr/lib/ 目录下找出哪个库文件定义了memset函数:

 

[root@linuxcool ~]# nm -A /usr/lib/* 2>/dev/null | grep "T memset" 

 

显示nm的版本号:

 

[root@linuxcool ~]# nm -v

 

显示调试符号:

 

[root@linuxcool ~]# nm -a hello.o 

 

 

nntptest命令 交互式NNTP测试程序

 

使用nntptest命令可以进行交互式NNTP测试。它允许验证到一个NNTP服务器和交互式发出命令给它。一旦通过验证可以通过简单地键入而发出任何NNTP命令。

 

语法格式:nntpstest [参数] [主机名]

 

常用参数:

 

-p 指定连接的端口
-t 启用TLS。
-u 指定用来认标识使用许可的用户

 

参考实例

 

进行交互式NNTP测试:

 

[root@linuxcool ~]# nntptest 10.0.0.21

 

启用TLS进行交互式NNTP测试:

 

[root@linuxcool ~]# nntptest -t 10.0.0.21

 

指定54321端口进行交互式NNTP测试:

 

[root@linuxcool ~]# nntptest -p 54321 10.0.0.21

 

 

nologin命令 限制用户登录

 

使用nologin命令可以限制某些用户通过Shell登录系统。如果/etc/nologin.txt存在,显示其内容给用户,而不是默认消息。

 

语法格式:nologin

 

参考实例

 

限制用户登录:

 

[root@linuxcool ~]# nologin

 

 

ntpq命令 ntpq查询时间服务器

 

ntpq指令使用NTP模式6数据包与NTP服务器通信,能够在允许的网络上查询的兼容的服务器。它以交互模式运行,或者通过命令行参数运行。

 

此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora。

 

语法格式:ntpq [参数]

 

常用参数:

 

-4 使用ipv4解析
-6 使用ipv6解析
-c [command] 添加执行的命令到指定主机的命令列表
-d 打开调试模式
-i 使用交互模式
-n 以十进制格式显示主机地址
-p 显示服务器同级设备的列表

 

参考实例

 

查看服务器同级设备列表:

 

[root@linuxcool ~]# ntpq -p

 

添加执行的命令显示内核信息:

 

[root@linuxcool ~]# ntpq -c kerninfo

 

提示输入密码,该密码不回传,用于验证配置请求,密码必须与NTP服务器配置的密钥一致:

 

[root@linuxcool ~]# ntpq -c passwd

 

以十进制格式显示主机地址:

 

[root@linuxcool ~]# ntpq -pn

 

 

objdump命令 查看目标文件构成的gcc工具

 

objdump命令是用查看目标文件或者可执行的目标文件的构成的gcc工具。

 

objdump有点像快速查看之类的工具,就是以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息。

 

语法格式: objdump [参数] [文件]

 

常用参数:

 

-a 显示档案库的成员信息,类似ls -l将lib*.a的信息列出
-g 显示调试信息
-d 从objfile中反汇编那些特定指令机器码的section
-D 与 -d 类似,但反汇编所有section
-f 显示objfile中每个文件的整体头部摘要信息
-H 简短的帮助信息
-s 显示指定section的完整内容。默认所有的非空section都会被显示

 

参考实例

 

查看档案库文件中的信息:

 

[root@linuxcool ~]# objdump -a libmy2.a 

 

显示mytest.o文件中的text段的内容:

 

[root@linuxcool ~]# objdump --section=.text -s mytest.o

 

 

od命令 输出文件内容

 

od命令会读取所给予的文件的内容,并将其内容以八进制字码呈现出来。

 

语法格式:od [参数]

 

常用参数:

 

-a  此参数的效果和同时指定”-ta”参数相同
-A 选择要以何种基数计算字码
-b 此参数的效果和同时指定”-toC”参数相同
-c  此参数的效果和同时指定”-tC”参数相同
-d 此参数的效果和同时指定”-tu2″参数相同
-f  此参数的效果和同时指定”-tfF”参数相同
-h 此参数的效果和同时指定”-tx2″参数相同
-i 此参数的效果和同时指定”-td2″参数相同
-j<字符数目> 略过设置的字符数目
-l  此参数的效果和同时指定”-td4″参数相同
-N<字符数目> 到设置的字符数目为止
-o 此参数的效果和同时指定”-to2″参数相同
-s<字符串字符数> 只显示符合指定的字符数目的字符串
-t<输出格式> 设置输出格式
-v 输出时不省略重复的数据
-w<每列字符数> 设置每列的最大字符数
-x  此参数的效果和同时指定”-h”参数相同
--help 查看帮助信息
--version 显示版本信息

 

参考实例

 

创建 tmp 文件:

 

[root@linuxcool ~]# echo abcdef g > tmp
[root@linuxcool ~]# cat tmp  

 

使用 od 命令:

 

[root@linuxcool ~]# od -b tmp 

 

使用单字节八进制解释进行输出,注意左侧的默认地址格式为八字节:

 

[root@linuxcool ~]# od -c tmp

 

使用ASCII码进行输出,注意其中包括转义字符:

 

[root@linuxcool ~]# od -t d1 tmp

 

使用单字节十进制进行解释:

 

[root@linuxcool ~]# od -A d -c tmp

 

 

patch命令 修补文件

 

patch命令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一 。

 

语法格式:patch [参数]

 

常用参数:

 

-b 备份每一个原始文件
-B  设置文件备份时,附加在文件名称前面的字首字符串,该字符串可以是路径名称
-c 把修补数据解译成关联性的差异
-d 设置工作目录
-D 用指定的符号把改变的地方标示出来
-e 把修补数据解译成ed指令可用的叙述文件
-E 若修补过后输出的文件其内容是一片空白,则移除该文件
-f 此参数的效果和指定”-t”参数类似,但会假设修补数据的版本为新版本
-F 设置监别列数的最大值
-g 设置以RSC或SCCS控制修补作业
-i 读取指定的修补文件
-l 忽略修补数据与输入数据的跳格,空格字符
-n 把修补数据解译成一般性的差异
-N 忽略修补的数据较原始文件的版本更旧,或该版本的修补数据已使 用过
-o 设置输出文件的名称,修补过的文件会以该名称存放
-p 设置欲剥离几层路径名称
-f 设置保存拒绝修补相关信息的文件名称,预设的文件名称为.rej
-R 假设修补数据是由新旧文件交换位置而产生
-s 不显示指令执行过程,除非发生错误
-t 自动略过错误,不询问任何问题
-T 此参数的效果和指定”-Z”参数类似,但以本地时间为主
-u 把修补数据解译成一致化的差异
-v 显示版本信息
-V 用”-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用”-z”参数变更,当使用”-V”参数指定不同备份方式时,也会产生不同字尾的备份字符串
-Y 设置文件备份时,附加在文件基本名称开头的字首字符串
-z 此参数的效果和指定”-B”参数类似,差别在于修补作业使用的路径与文件名若为src/linux/fs/super.c,加上”backup/”字符串后,文件super.c会备份于/src/linux/fs/backup目录里
-Z 把修补过的文件更改,存取时间设为UTC
--backup-if-mismatch 在修补数据不完全吻合,且没有刻意指定要备份文件时,才备份文件
--binary 以二进制模式读写数据,而不通过标准输出设备
--help  查看帮助信息
--nobackup-if-mismatch  在修补数据不完全吻合,且没有刻意指定要备份文件时,不要备份文件
--verbose 详细显示指令的执行过程

 

参考实例

 

使用patch指令将文件”file1″升级,其升级补丁文件为”file.patch”:

 

[root@linuxcool ~]# patch -p0 file1 file.patch 

 

使用patch来应用补丁:

 

[root@linuxcool ~]# patch -p0 < foo.patch 

 

 

perl命令 实用报表提取语言

 

使用perl命令可以扫描任意文本文件,从这些文本文件中提取信息优化的语言,根据这些信息打印报告。

 

语法格式: perl [参数] [程序文件]

 

常用参数:

 

-c 只进行语法检查
-e 可以让Perl程序在命令行上运行
-l 启用行结束处理,指定行结束

 

参考实例

 

只对/root/program.pl文件进行语法检查:

 

[root@linuxcool ~]# perl -c /root/program.pl

 

让Perl程序在命令行上运行:

 

[root@linuxcool ~]# perl -e 'print "Hello World\n"' Hello World

 

让Perl程序在命令行上运行,启用行结束处理:

 

[root@linuxcool ~]# perl -le 'print "Hello Linux"'

 

 

pfctl命令 防火墙配置

 

pfctl命令是PF防火墙的配置命令,PF防火墙( 全称:Packet Filter )是UNIX LIKE系统上进行TCP/ip流量过滤和网络地址转换的软件系统。PF同样也能提供TCP/IP流量的整形和控制,并且提供带宽控制和数据包优先集控制。

 

语法格式:pfctl [参数]

 

常用参数:

 

-f 载入文件
-nf 解析文件,但不载入
-Nf 只载入文件中的NAT规则
-Rf 只载入文件中的过滤规则

 

参考实例

 

载入 test.conf 文件:

 

[root@linuxcool ~]# pfctl -f /etc/test.conf

 

显示当前的NAT规则:

 

[root@linuxcool ~]# pfctl -sn

 

 

pg_ctl命令 控制PostgreSQL服务

 

pg_ctl是一个启动、停止、重新启动、重新加载配置文件、报告PostgreSQL服务器的状态,或者是杀掉PostgreSQL进程的工具。

 

语法格式: pg_ctl [参数]

 

常用参数:

 

-D 指定数据存储的位置
-s 只显示错误信息,没有其他信息
-W 不用等待操作完成
-w 等待直到操作完成

 

参考实例

 

启动postgresql服务

 

[root@linuxcool ~]# pg_ctl start

 

启动服务器的一个例子, 等到服务器 启动了才退出:

 

[root@linuxcool ~]# pg_ctl -w start

 

用于一个 postmaster 使用端口 5433,而且不带 fsync 运行,使用:

 

[root@linuxcool ~]# pg_ctl -o "-F -p 5433" start

 

 

pinfo命令 基于lynx类型info浏览

 

使用pinfo命令可以查看info文件,pinfo命令将搜索当前目录以及例如:/usr/share/info ,/usr/info、/usr/local/share等目录。

 

语法格式:pinfo [参数]

 

常用参数:

 

-m 使用手册页
-x 在退出时清屏
-f 相当于-r选项
-l 在manual中使用长链接名称

 

参考实例

 

查看ls命令的info文件:

 

[root@linuxcool ~]# pinfo ls

 

 

pr命令 将文本文件转换成适合打印的格式

 

pr命令用来将文本文件转换成适合打印的格式,它可以把较大的文件分割成多个页面进行打印,并为每个页面添加标题。

 

语法格式: pr [参数]

 

常用参数:

 

-h 为页指定标题

 

参考实例

 

将较大的文件分割成多个页面进行打印:

 

[root@linuxcool ~]# pr test.txt

 

为页指定标题 :

 

[root@linuxcool ~]# pr -h 'Hello World' test.txt

 

将文件内容分割成多列进行打印:

 

[root@linuxcool ~]# pr -6 test.txt

 

 

psql命令 PostgreSQL交互式客户端工具

 

psql是PostgreSQL的交互式客户端工具,通过该工具来管理和操作PostgreSQL数据库。

 

语法格式:psql [参数] [数据库名称[用户名称]]

 

常用参数:

 

-h 数据库服务器主机
-p 指定PostgreSQL数据库服务器的端口,如果不指定则默认是5432
-w 永远不提示输入口令
-e 显示发送给服务器的命令

 

参考实例

 

连接到数据库template1,并列出服务器上所有的数据库:

 

[root@linuxcool ~]# psql template1

 

进入数据库postgres:

 

psql -U postgres

 

进入数据库查看:

 

psql -U postgres 
\l

 

 

pssh命令 批量管理执行

 

pssh是一款开源的软件,使用python实现,用于批量ssh操作大批量机器;pssh是一个可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的;比起for循环的做法,我更推荐使用pssh!使用pssh的前提是:必须在本机与其他服务器上配置好密钥认证访问(即ssh信任关系)。

 

语法格式:pssh [参数] [文件]

 

常用参数:

 

-h 执行命令的远程主机列表文件 
-l 远程机器的用户名
-p 一次最大允许多少连接
-A 提示输入密码并且把密码传递给ssh(注意这个参数添加后只是提示作用,随便输入或者不输入直接回车都可以)
-O 设置ssh参数的具体配置,参照ssh_config配置文件
-x 传递多个SSH 命令,多个命令用空格分开,用引号括起来
-X 同-x 但是一次只能传递一个命令

 

参考实例

 

批量执行命令:

 

[root@linuxcool ~]# pssh -h hosts.txt -l root -i 'uptime'

 

如果添加-A参数,那么即使提前做了ssh信任关系,还是会提示输入密码:

 

[root@linuxcool ~]# pssh -h hosts.txt -l root -i -A 'uptime'

 

 

pushd命令 添加目录到目录堆栈顶部

 

pushd命令用于更改新目录并(或)压栈,或者把栈里的某个目录推到栈顶。

 

语法格式: pushd [参数]

 

常用参数:

 

+N 把正数第N个放到栈顶
-N 把倒数第N个放到栈顶
-n 不切换,只压栈
dir 要推送的目录

 

参考实例

 

添加目录到堆栈,改变了当前工作目录:

 

[root@linuxcool ~]# dirs
~
[root@linuxcool ~]# pushd ~/Desktop
~/Desktop ~ 

 

添加目录到堆栈,当前工作目录不变:

 

[root@linuxcool ~]# dirs
~
[root@linuxcool ~]# pushd -n ~/Desktop
~ ~/Desktop
[root@linuxcool ~]# pushd -n ~/Pictures
~ ~/Pictures ~/Desktop

 

调整顺序:

 

[root@linuxcool ~]# pushd +1
~/Pictures ~/Desktop ~
[root@linuxcool ~]# pushd -1
~/Desktop ~ ~/Pictures
[root@linuxcool ~]# pushd
~ ~/Desktop ~/Pictures

 

 

pwd命令 显示当前路径

 

pwd命令是“print working directory”中每个单词的首字母缩写,其功能正如所示单词一样,为打印工作目录,即显示当前工作目录的绝对路径。

 

在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路”,我们可以使用pwd命令快速查看当前我们所在的目录路径。

 

语法格式: pwd [参数]

 

常用参数:

 

-L 显示逻辑路径

 

参考实例

 

查看当前工作目录路径:

 

[root@linuxcool ~]# pwd
/home/linuxcool

 

 

rcp命令 远程文件复制

 

rcp命令的英文是“remote file copy”,即远程文件复制,可以使在两台Linux主机之间的文件复制操作更简单。通过适当的配置,在两台Linux主机之间复制文件而无需输入密码,就像本地文件复制一样简单。

 

rcp指令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。

 

rcp命令默认系统没有安装,需要安装rsh和rsh-server这2个库,通过配置实现网络文件复制。

 

语法格式:rcp [参数] [目录]

 

常用参数:

 

-p 保留源文件或目录的属性,包括拥有者,所属群组,权限与时间
-r 递归处理,将指定目录下的文件与子目录一并处理
-x 加密两台Linux主机间传送的所有信息
-D 指定远程服务器的端口号

 

参考实例

 

将当前目录下test1复制到远程系统:

 

[root@linuxcool ~]# rcp test1 192.168.10.10:/home/test1

 

复制远程主机文件到本地:

 

[root@linuxcool ~]# rcp root@192.168.10.10:./test2 test2 

 

 

readelf命令 显示elf格式文件的信息

 

readelf命令用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。这里的elf-file(s)就表示那些被检查的文件。可以支持32位,64位的elf格式文件,也支持包含elf文件的文档(这里一般指的是使用ar命令将一些elf文件打包之后生成的例如lib*.a之类的“静态库”文件)。

 

这个程序和objdump提供的功能类似,但是它显示的信息更为具体,并且它不依赖BFD库(BFD库是一个GNU项目,它的目标就是希望通过一种统一的接口来处理不同的目标文件),所以即使BFD库有什么bug存在的话也不会影响到readelf程序。

 

还需注意的是运行readelf的时候,除了-v和-H之外,其它的选项必须有一个被指定。

 

语法格式:readelf [参数] [文件名]

 

常用选项:

 

-a 显示全部信息
-h 显示elf文件开始的文件头信息
-S 显示节头信息
-g 显示节组信息
-V 显示版本段的信息

 

参考实例

 

读取可执行文件形式的elf文件头信息:

 

[root@linuxcool ~]# readelf -h main 

 

读取目标文件形式的elf文件头信息:

 

[root@linuxcool ~]# readelf -h myfile.o 

 

读取静态库文件形式的elf文件头信息:

 

[root@linuxcool ~]# readelf -h libmy.a 

 

读取动态库文件形式的elf文件头信息:

 

[root@linuxcool ~]# readelf -h libmy.so 

 

查看可执行的elf文件程序头表信息:

 

[root@linuxcool ~]# readelf -l main 

 

 

readlink命令 找出符号链接所指向的位置

 

readlink是Linux系统中一个常用工具,主要用来找出符号链接所指向的位置。

 

语法格式:readlink [参数] [文件]

 

常用参数:

 

-f 递归跟随给出文件名的所有符号链接以标准化,除最后一个外所有组件必须存在
-e 递归跟随给出文件名的所有符号链接以标准化,所有组件都必须存在
-n 不输出尾随的新行
-s 缩减大多数的错误消息
-v 报告所有错误消息

 

参考实例

 

查看软链文件真实文件:

 

[root@linuxcool ~]# ll /etc/system-release     
lrwxrwxrwx. 1 root root 14 5月  21 01:56 /etc/system-release -> centos-release

[root@linuxcool ~]# readlink -f /etc/system-release
/etc/centos-release

 

 

readonly命令 标记shell变量或函数为只读

 

readonly命令主要用于定义一到多个变量并设置只读属性, 为已定义的一到多个变量设置只读属性, 显示全部包含只读属性的变量 , 为已定义的一到多个函数设置只读属性 ,显示全部包含只读属性的函数。

 

语法格式: readonly [参数]

 

常用参数:

 

-a 指向数组
-A 指向关联数组
-p 示全部只读变量
-f 指向函数

 

参考实例

 

显示全部只读变量:

 

[root@linuxcool ~]# readonly 

 

显示全部拥有只读属性的数组:

 

[root@linuxcool ~]# readonly -a

 

显示全部拥有只读属性的关联数组:

 

[root@linuxcool ~]# readonly -A

 

显示全部拥有只读属性的函数:

 

[root@linuxcool ~]# readonly -f 

 

在它之后的选项无效:

 

[root@linuxcool ~]# readonly --  

 

 

read 读取单行数据

 

Linux read命令用于从标准输入读取数值。read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据。

 

语法格式:read [参数]

 

常用参数:

 

-a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符
-- d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志
-- p 后面跟提示信息,即在输入前打印提示信息
-- e 在输入的时候可以使用命令补全功能
-- n 后跟一个数字,定义输入文本的长度
-- r 屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了
-- s 安静模式,在输入字符时不再屏幕上显示
-- t 后面跟秒数,定义输入字符的等待时间
-- u 后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的

 

参考实例

 

简单读取:

 

#!/bin/bash             
echo "输入网站名: "                         
read file  
echo "你输入的网站名是 $file"  
exit 0                                    

 

允许在 read 命令行中直接指定一个提示:

 

#!/bin/bash
read -p "输入网站名:" file
echo "你输入的网站名是 $file" 
exit 0

 

指定 read 命令等待输入的秒数,当计时满时,read命令返回一个非零退出状态:

 

#!/bin/bash
if read -t 5 -p "输入网站名:" file
then
    echo "你输入的网站名是 $file"
else
    echo "\n抱歉,你输入超时了。"
fi
exit 0

 

设置 read 命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量:

 

#!/bin/bash
read -n1 -p "Do you want to continue [Y/N]?" answer
case $answer in
Y | y)
      echo "fine ,continue";;
N | n)
      echo "ok,good bye";;
*)
     echo "error choice";;

esac
exit 0

 

使 read 命令中输入的数据不显示在命令终端上:

 

#!/bin/bash
read  -s  -p "请输入您的密码:" pass
echo "\n您输入的密码是 $pass"
exit 0

 

 

rename命令 批量改变文件名

 

rename命令用字符串替换的方式批量改变文件名。

 

原字符串:将文件名需要替换的字符串;
目标字符串:将文件名中含有的原字符替换成目标字符串;
文件:指定要改变文件名的文件列表。

 

语法格式:rename [参数]

 

常用参数:

 

? 可替代单个字符
* 可替代多个字符

 

参考实例

 

将main1.c重命名为main.c:

 

[root@linuxcool ~]# rename main1.c main.c main1.c

 

将所有以jpg结尾的文件重命名为以png结尾的文件:

 

[root@linuxcool ~]# rename .jpg .png *.jpg

 

文件夹中有这些文件:foo1, …, foo9, foo10, …, foo163,把foo1到foo9的文件重命名为foo01到foo09:

 

[root@linuxcool ~]# rename foo foo0 foo?

 

把foo01到foo99的所有文件重命名为foo001到foo099:

 

[root@linuxcool ~]# rename foo foo0 foo??

 

把foo001到foo163的所有文件重命名为foo0001到foo0163:

 

[root@linuxcool ~]# rename foo foo0 foo*

 

把foo0100到foo0163的所有文件重命名为foo100到foo163:

 

[root@linuxcool ~]# rename foo0 foo foo0[1]*

 

 

renice命令 系统管理

 

renice命令可以修改正在运行的进程的调度优先级。

 

该命令预设是以程序识别码指定程序调整其优先权,您亦可以指定程序群组或用户名称调整优先权等级,并修改所有隶属于该程序群组或用户的程序的优先权。只有系统管理者可以改变其他用户程序的优先权,也仅有系统管理者可以设置负数等级。

 

语法格式:renice [参数]

 

常用参数:

 

-g 指定进程组id
-p 改变该程序的优先权等级,此参数为预设值
-u 指定开启进程的用户名

 

参考实例

 

将行程id为987及32的进程与进程拥有者为daemon及root的优先序号码加1:

 

[root@linuxcool ~]# renice +1 987 -u daemon root -p 32 

 

 

resize命令 设置终端机视窗的大小

 

resize命令设置终端机视窗的大小。执行resize指令可设置虚拟终端机的视窗大小。

 

语法格式:resize [参数]

 

常用参数:

 

-c  就算用户环境并非C Shell,也用C Shell指令改变视窗大小
-s 设置终端机视窗的垂直高度和水平宽度
-u  就算用户环境并非Bourne Shell,也用Bourne Shell指令改变视窗大小

 

参考实例

 

使用 C shell:

 

[root@linuxcool ~]# resize -c set noglob; 
setenv COLUMNS '99'; 
setenv LINES '34'; 
unset noglob; 

 

使用 Bourne shell :

 

[root@linuxcool ~]# resize -u COLUMNS=99; 
LINES=34; 
export COLUMNS LINES; 

 

设置指定大小 :

 

[root@linuxcool ~]# resize -s 80 160 

 

 

restore命令 还原备份

 

restore命令用来还原由dump操作所备份下来的文件或整个文件系统(一个分区)。

 

语法格式:restore [参数] [文件]

 

常用参数:

 

-b 设置区块大小,单位是Byte
-c 不检查dump操作的备份格式,仅准许读取使用旧格式的备份文件
-C 使用对比模式,将备份的文件与现行的文件相互对比
-D 允许用户指定文件系统的名称
-f <备份文件> 从指定的文件中读取备份数据,进行还原操作
-h 仅解出目录而不包括与该目录相关的所有文件
-i 使用互动模式,在进行还原操作时,restore指令将依序询问用户
-m 解开符合指定的inode编号的文件或目录而非采用文件名称指定
-r 进行还原操作
-R 全面还原文件系统时,检查应从何处开始进行
-s 当备份数据超过一卷磁带时,您可以指定备份文件的编号
-t 指定文件名称,若该文件已存在备份文件中,则列出它们的名称
-v 显示指令执行过程
-x 设置文件名称,且从指定的存储媒体里读入它们,若该文件已存在在备份文件中,则将其还原到文件系统内
-y 不询问任何问题,一律以同意回答并继续执行指令

 

参考实例

 

使用已执行的转储来执行完全重建:

 

[root@linuxcool ~]# restore -rf /dev/nst0 

 

仅从磁带备份中提取 /etc 目录:

 

[root@linuxcool ~]# restore -xf /dev/nst0 /etc 

 

交互式还原:

 

[root@linuxcool ~]# restore -if /dev/nst0

 

完全重建是一律同意执行:

 

[root@linuxcool ~]# restore -rfy /dev/nst0

 

 

return命令 从函数中退出并返回数值

 

return命令的作用是使得shell函数退出并返回数值,如果没有指定n的值,则默认为函数最后一条命令执行的返回状态。

 

返回值为你指定的参数n的值,如果你指定的参数大于255或小于0,那么会通过加或减256的方式使得返回值总是处于0到255之间。在函数外执行return语句会返回失败。

 

就bash而言, return命令只能用在函数中,不能直接用在脚本中

 

内置命令return用于从函数中返回, return命令在函数中不是必须的,函数被调用时,函数内的命令执行完成后自然会返回到调用它的地方(一般是返回到主程序)。如果某函数中有return命令,执行到return时就返回。如果return在函数中不是最后一条命令,那么return后面的其他命令不再执行。

 

语法格式: return [参数]

 

常用参数:

 

n 整数

 

参考实例

 

定义一个返回值大于255的函数:

 

[root@linuxcool ~]# example() {return 259}
// 执行函数
[root@linuxcool ~]# example
// 显示3
[root@linuxcool ~]# echo $?
3 

 

立即结束本procedure的执行:

 

Procedure checkstatus
Parameter name
if len(name) = 0 then
return
else
?name
endif
messagebox('hello')
endproc

 

在具有对象引用返回类型的方法中返回null:

 

public Button doStuff(){
return null;
}

 

 

rev命令 颠倒过来显示文件内容

 

使用rev命令可以把每一行字符的顺序颠倒过来显示文件内容

 

语法格式: rev [文件]

 

参考实例

 

把每一行字符的顺序颠倒过来显示文件内容:

 

[root@linuxcool ~]# rev /root/pu

 

 

 

 

 

rhmask命令 加密和解密文件

 

Linux rhmask命令用于对文件进行加密和解密操作。执行rhmask指令可制作加密过的文件,方便用户在公开的网络上传输该文件,而不至于被任意盗用。

 

语法格式:rhmask [参数] [加密文件] [输出文件]

 

常用参数:

 

-d 产生加密过的文件

 

参考实例

 

将加密文件”file1.txt”进行加密后,另存为输出文件”file2.txt” :

 

[root@linuxcool ~]# rhmask file1.txt file2.txt

 

 

rlogin命令 远端登入

 

rlogin命令用于远端登入。执行rlogin指令开启终端机阶段操作,并登入远端主机。

 

语法格式:rlogin [参数]

 

常用参数:

 

-E 忽略escape字符
-8  只识别8位字的字符
-L 允许rlogin会话运行在litout模式
-ec 设置escape字符为c
-c 断开连接前要求确认
-a 强制要求远程主机在发送完一个空的本地用户名之后请求一个密码
-f  向远端主机发送一个本地认证
-F 向远程主机发送一个可转寄的本地认证
-7 强制执行7为的传输
-d 打开用于远端主机通信的TCP套接口的调试
-k 要求包含远端主机的tisckets
-x  启动数据传输的DES加密
-4 只使用 kerkberos的版本4的认证

 

参考实例

 

显示rlogin服务是否开启:

 

[root@linuxcool ~]# chkconfig --list 

 

开启rlogin服务:

 

[root@linuxcool ~]# chkconfig rlogin on 

 

登陆远程主机:

 

[root@linuxcool ~]#  rlogin 192.168.1.88 Password:
  Password:
  Login incorrect
  Login:root
  Passwd: Login
  incorrect
  Login:kk
  Passwd: 

 

 

rndc-confgen命令 密钥生成工具

 

rndc-confgen命令的作用是可以为rndc生成配置文件。

 

rndc命令通过TCP连接与DNS服务器通信,发送使用数字签名认证的命令。在rndc命令和named守护进程的当前版本中,唯一支持的认证算法是HMAC-MD5,它在连接的每一端使用共享密钥。这为命令请求和DNS服务器响应提供了TSIG-style认证。所有的经通道发送的命令必须由服务器认识的key_id标记。rndc命令会读取配置文件以确定如何与DNS服务器联系必须使用何种算法。

 

语法格式:rndc-confgen [参数]

 

常用参数:

 

-t<目录> 指定一个运行chroot目录,rndc.key文件的副本将被写入到该目录中
-s<IP地址> 为来自rndc的命令通道连接指定监听的IP地址。默认值是环回地址127.0.0.1
-c<密钥文件> 指定备用位置的rndc.key密钥文件
-b<密钥大小> 指定密钥的大小,单位是位。必须介于1和512位之间,默认值是128
-p<端口> 为来自rndc的连接指定监听的命令通道端口。默认值是953
-u<用户> 设置生成的rndc.key密钥文件的所有者
-r<随机文件> 指定用于生成授权随机数据源
-k<密钥名称> 指定rndc认证密钥的密钥名称
-a 自动rndc配置,创建密钥文件/etc/rndc.key

 

参考实例

 

为rndc生成配置文件/etc/rndc.conf:

 

[root@linuxcool ~]# pwdhash -c linuxcool linux

 

自动rndc配置,创建密钥文件/etc/rndc.key:

 

[root@linuxcool ~]# rndc-confgen -a

 

更新key文件:

 

[root@linuxcool ~]# rndc-confgen

 

 

rndc命令 控制DNS服务器的操作

 

使用rndc命令可以控制DNS服务器的操作。如果运行rndc命令时没有使用任何选项或参数,那么该命令会显示受支持命令和可用选项及其参数的简短摘要。

 

语法格式: rndc [参数]

 

常用参数:

 

-s 指定rndc命令的配置文件中服务器
-V 启动详细的日志记录
-p 发送命令指定TCP端口

 

参考实例

 

重新加载配置文件和区域:

 

[root@linuxcool ~]# rndc reload

 

显示DNS服务器状态:

 

[root@linuxcool ~]# rndc status

 

 

rpm2cpio命令 文件格式转换

 

rpm2cpio命令用于将rpm软件包转换为cpio格式的文件。

 

语法格式:rpm2cpio [参数]

 

常用参数:

 

文件名 指定要转换的rpm包的文件名

 

参考实例

 

libstdc++-4.3.0-8.i386.rpm软件包转换成cpio格式:

 

[root@linuxcool ~]# rpm2cpio ../libstdc++-4.3.0-8.i386.rpm | cpio -idv

 

 

rpmbuild命令 创建软件包

 

rpmbuild命令被用于创建rpm的二进制软件包和源码软件包。

 

语法格式:rpmbuild [参数]

 

常用参数:

 

-ba 创建二进制和源代码包
-bb 创建二进制代码包
-bs 创建源代码包

 

参考实例

 

在指定路径下创建二进制和源代码包:

 

[root@linuxcool ~]# rpmbuild -ba /usr/src/redhat/RPMS/i386

 

 

rpmdb命令 初始化和重建数据库

 

rpmdb命令用于初始化和重建rpm数据库。

 

语法格式:rpmdb [参数]

 

常用参数:

 

initdb 初始化RPM数据库
rebuilddb 从已安装的包头文件,反向重建RPM数据库

 

参考实例

 

初始化RPM数据库:

 

[root@linuxcool ~]# rpmdb -initdb

 

 

rpmquery命令 查询信息

 

rpmquery命令使用多种依据从rpm数据库中查询软件包信息。

 

语法格式:rpmquery [参数]

 

常用参数:

 

-qf 查询指定的文件所属的软件包
-q 查询指定的软件包是否被安装
-qd 查询软件包中的文档文件
-qi 查询软件包的基本信息

 

参考实例

 

使用rpmquery命令查询指定文件所属的软件包:

 

[root@linuxcool ~]# rpmquery -qf /usr/bin/htpasswd
httpd-2.2.3-81.el5.centos

 

 

rpmsign命令 签名管理工具

 

rpmsign命令属于使用rpm软件包的签名管理工具。

 

语法格式:rpmsign [参数]

 

常用参数:

 

--addsign 为自动软件包添加签名
--delsign 删除软件包签名
--resign 重新签名软件包
--nosignature 不验证软件包签名

 

参考实例

 

安装rpmsign工具:

 

[root@linuxcool ~]# yum install rpm-sign

 

 

rpmverify命令 验证已安装的RPM软件包的正确性

 

rpmverify命令用来验证已安装的rpm软件包的正确性。

 

语法格式: rpmverify [参数]

 

常用参数:

 

-Va 验证所有软件包
-Vf 验证指定软件包
--nomd5 不验证软件包的md5摘要

 

参考实例

 

验证所有软件包:

 

[root@linuxcool ~]# rpmverify -Va

 

改变软件包权限:

 

[root@linuxcool ~]# rpmverify -Vf /bin/touch 
[root@linuxcool ~]# rpm -qf /bin/touch
coreutils-8.4-43.el6.x86_64  
[root@linuxcool ~]# vim /bin/touch  
[root@linuxcool ~]# ll -h /bin/touch 
-rwxr-xr-x. 1 root root 47K May 11  2016 /bin/touch  
[root@linuxcool ~]# chmod 777 /bin/touch  
[root@linuxcool ~]# ll -h /bin/touch 
-rwxrwxrwx. 1 root root 47K May 11  2016 /bin/touch
[root@linuxcool ~]# rpmverify -Vf /bin/touch
.M.......    /bin/touch    

 

如果恢复权限后:

 

[root@linuxcool ~]# chmod 755 /bin/touch 
[root@linuxcool ~]# ll -h /bin/touch
-rwxr-xr-x. 1 root root 47K May 11  2016 /bin/touch   
[root@linuxcool ~]# rpmverify -Vf /bin/touch  

 

如果编辑一个文件,并增加内容,如果修改过来,修改时间就会变化:

 

[root@linuxcool ~]# rpmverify -Vf /etc/ssh/sshd_config #增加内容
S.5....T.  c /etc/ssh/sshd_config  
[root@linuxcool ~]# vim /etc/ssh/sshd_config  #去掉增加内容
[root@linuxcool ~]# rpmverify -Vf /etc/ssh/sshd_config  
.......T.  c /etc/ssh/sshd_config 

 

不验证软件包的md5摘要:

 

[root@linuxcool ~]# rpmverify --nomd5 -Vf /bin/touch 

 

 

rtacct命令 网络统计工具

 

使用rtacct命令可以监视内核snmp计数器和网络接口统计数据,它是一种网络统计的工具。

 

语法格式:rtacct [参数]

 

常用参数:

 

-n 不显示任何内容,只更新历史
-t 时间间隔的平均速率
-r 重设历史

 

参考实例

 

网络统计:

 

[root@linuxcool ~]# rtacct

 

对网络统计内容的更新历史:

 

[root@linuxcool ~]# rtacct -n

 

对更新内容重设历史:

 

rtacct -r

 

 

rz命令 上传文件

 

rz命令是Linux提供的上传的命令,基于XMODEM/YMODEM/ZMODEM协议。在SecureCRT下就会弹出文件选择框让你选择需要上传的文件了,而且可以选择多个

 

语法格式:rz [参数]

 

常用参数:

 

-B 使用rz上传时,文件是先写入缓冲区,然后再写入硬盘的。-B后面跟着的数字就是修改这个缓冲区大小的,单位是Bytes。如:rz -B 10
-D 把所上传的数据导向/dev/null,这是用于测试的
-e 转化所有的控制字符
-E 上传之前重命名已经存在的文件,防止覆盖

 

参考实例

 

上传普通文件,如已存在则追加:

 

[root@linuxcool ~]# rz -+

 

实现覆盖上传:

 

[root@linuxcool ~]# rz -y

 

保护模式,不覆盖同名文件:

 

[root@linuxcool ~]# rz -p 

 

 

scp命令 远程拷贝文件

 

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。 scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。

 

当你服务器硬盘变为只读read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。

 

语法格式:scp [参数] [文件]

 

常用参数:

 

-1 使用ssh协议版本1-2
-2 使用ssh协议版本2
-4 使用ipv4
-6 使用ipv6
-B 以批处理模式运行
-C 使用压缩
-F 指定ssh配置文件
-l 指定宽带限制
-o 指定使用的ssh选项
-P 指定远程主机的端口号
-p 保留文件的最后修改时间,最后访问时间和权限模式
-q 不显示复制进度
-r 以递归方式复制

 

参考实例

 

从远程复制文件到本地目录:

 

[root@linuxcool ~]# scp root@192.168.10.10:/opt/soft/rhel-server-7.3-x86_64.tar.gz /opt/soft/

 

从远程复制目录到本地:

 

[root@linuxcool ~]# scp -r root@10.10.10.10:/opt/soft/mysql /opt/soft/

 

上传本地文件到远程机器指定目录:

 

[root@linuxcool ~]# scp /opt/soft/rhel-server-7.3-x86_64.tar.gz root@192.168.10.10:/opt/soft/scptest

 

上传本地目录到远程机器指定目录:

 

[root@linuxcool ~]# scp -r /opt/soft/mysql root@192.168.10.10:/opt/soft/scptest

 

保留文件的最后修改时间,最后访问时间和权限模式:

 

[root@linuxcool ~]# scp -p /root/install.log root@192.168.10.10:/tmp  

 

 

semanage命令 安全上下文查询与修改

 

semanage命令是用来查询与修改SELinux默认目录的安全上下文。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。

 

语法格式:semanage [参数]

 

常用参数:

 

-l 查询
-a 增加,你可以增加一些目录的默认安全上下文类型设置
-m 修改
-d 删除

 

参考实例

 

查询一下/var/www/html的默认安全性本文的设置:

 

[root@linuxcool ~]# semanage fcontext -l 

 

用semanage命令设置 /srv/samba 目录的默认安全性本文为public_content_t:

 

[root@linuxcool ~]# mkdir /srv/samba
ll -Zd /srv/samba 
drwxr-xr-x  root root root:object_r:var_t      /srv/samba  

 

如上所示,默认的情况应该是 var_t :

 

[root@linuxcool ~]# semanage fcontext -l | grep '/srv' 
/srv/.*                    all files   system_u:object_r:var_t:s0 /srv/([^/]*/)?ftp(/.*)?    all files system_u:ob
ject_r:public_content_t:s0 /srv/([^/]*/)?www(/.*)? all files system_u:object_r:httpd_sys_content_t:s0 /srv/([^/]*/)?rsync(/.*)? all files system_u:object_r:public_content_t:s0 /srv/gallery2(/.*)? all files system_u:object_r:httpd_sys_content_t:s0 /srv directory system_u:object_r:var_t:s0

 

上面则是默认的 /srv 底下的安全性本文资料,不过,并没有指定到 /srv/samba:

 

[root@linuxcool ~]# semanage fcontext -a -t public_content_t "/srv/samba(/.*)?" 
[root@linuxcool ~]# semanage fcontext -l | grep '/srv' 
/srv/samba(/.*)?    all files  system_u:object_r:public_content_t:s0  

 

尝试恢复默认值:

 

[root@linuxcool ~]# restorecon -Rv /srv/samba* 

 

 

setconsole命令 设置系统终端

 

setconsole命令用于设置系统终端,可用来指定系统终端。

 

语法格式:setconsole [参数]

 

常用参数:

 

serial  使用PROM终端
ttya,cua0 使用第1个串口设备作为终端
ttyb,cua1 使用第2个串口设备作为终端
video 使用主机上的现卡作为终端

 

参考实例

 

设置终端:

 

[root@linuxcool ~]# setconsole ttyS0 

 

 

setenv命令 查询或显示环境变量

 

setenv命令的英文全称为“set environment variable”。该命令为 tsch 中查询或设置环境变量的命令。可以在线程里用这个命令设置环境变量的值,实现线程之间的参数传递。

 

语法格式: setenv [参数]

 

常用参数:

 

ENVVAR 所要设置的环境变量的名
value 所要设置的环境变量的值

 

参考实例

 

显示环境变量:

 

[root@linuxcool ~] setenv

 

设置环境变量:

 

[root@linuxcool ~] setenv USER lx138

 

 

setfacl命令 设置文件ACL规则

 

setfacl的英文全称是“ set file access control list ”,即“设置文件访问控制列表”。改命令可以更精确的控制权限的分配,比如让某一个用户对某一个文件具有某种权限。

 

ACL指文件的所有者、所属组、其他人的读/写/执行之外的特殊的权限, 对于需要特殊权限的使用状况有一定帮助。 如,某一个文件,不让单一的某个用户访问。

 

语法格式:setfacl [参数] [文件]

 

常用参数:

 

-m --modify-acl 更改文件的访问控制列表
-M --modify-file=file 从文件读取访问控制列表条目更改
-x --remove=acl 根据文件中访问控制列表移除条目
-X --remove-file=file 从文件读取访问控制列表条目并删除
-b --remove-all 删除所有扩展访问控制列表条目
-k --remove-default 移除默认访问控制列表
-d --default 应用到默认访问控制列表的操作
-P --physical 依照自然逻辑,不跟随符号链接
-v --version 显示版本并退出
-R --recursive 递归操作子目录

 

参考实例

 

修改一个文件的acl权限,添加一个用户权限:

 

[root@linuxcool ~]# getfacl test
file: test
owner: root
group: root
user::rwx
user:zwx:rw-
group::r-x
mask::rwx
other::r-x
[root@linuxcool ~]# setfacl -Rm u:zwx:rw- test
[root@linuxcool ~]# getfacl test
file: test
owner: root
group: root
user::rwx
user:zwx:rw-
group::r-x
mask::rwx
other::r-x

 

清除一个目录的ACL权限:

 

[root@linuxcool ~]# setfacl -x u:zwx test
[root@linuxcool ~]# getfacl test
file: test
owner: root
group: root
user::rwx
group::r-x
other::r-x

 

 

slocate命令 查找文件或目录

 

slocate本身具有一个数据库,里面存放了系统中文件与目录的相关信息 。

 

语法格式:slocate [参数] [目录]

 

常用参数:

 

-d 指定数据库所在的目录
-u 更新slocate数据库
--help  查看帮助信息
--version  显示版本信息

 

参考实例

 

使用指令”slocate”显示文件名中含有关键字”fdisk”的文件路径信息:

 

[root@linuxcool ~]# slocate fdisk 

 

 

smbclient命令 存取SMB/CIFS服务器的用户端程序

 

SMB与CIFS为服务器通信协议,常用于Windows95/98/NT等系统。smbclient(samba client)可让Linux系统存取

Windows系统所分享的资源。

 

语法格式:smbclient [参数]

 

常用参数

 

-L 显示服务器端所分享出来的所有资源
-U 指定用户名称
-s 指定smb.conf所在的目录
-O 设置用户端TCP连接槽的选项
-N 不用询问密码

 

参考实例

 

列出某个IP地址所提供的共享文件夹:

 

[root@linuxcool ~]# smbclient -L 198.168.0.1 -U username%password

 

像ftp客户端一样使用smbclient :

 

[root@linuxcool ~]# smbclient //192.168.0.1/tmp  -U username%password 

 

执行smbclient命令成功后,进入smbclient环境,出现提示符:smb:/>

 

这里有许多命令和ftp命令相似,如cd 、lcd、get、megt、put、mput等。通过这些命令,我们可以访问远程主机的共享资源。

 

直接一次性使用smbclient命令:

 

[root@linuxcool ~]# smbclient -c "ls"  //192.168.0.1/tmp  -U username%password 

 

或者:

 

[root@linuxcool ~]# smbclient //192.168.0.1/tmp  -U username%password smb:/>ls 

 

创建一个共享文件夹:

 

[root@linuxcool ~]# smbclient -c "mkdir share1" //192.168.0.1/tmp -U username%password 

 

 

smbd命令 Samba服务器程序

 

smbd为Samba服务器程序,可分享文件与打印机等网络资源供Windows相关的用户端程序存取。

 

语法格式:smbd [参数]

 

常用参数:

 

-a  所有的连线记录都会加到记录文件中
-d 指定记录文件所记载事件的详细程度
-D  使用此参数时,smbd会以服务程序的方式在后台执行
-h 显示帮助
-i 指定NetBIOS名称的范围
-l 指定记录文件的名称
-o  每次启动时,会覆盖原有的记录文件
-O 设置连接槽选项
-p 设置连接端口编号
-P  仅用来测试smbd程序的正确性
-s 指定smbd的设置文件

 

参考实例

 

启动Samba服务器:

 

[root@linuxcool ~]# smbd -D 

 

 

smbget命令 下载samba共享资源

 

使用smbget命令可以用于通过smb下载文件,这是一个类似于wget一样的使用程序。

 

语法格式:smbget [参数]

 

常用参数:

 

-o 正在下载的文件写入到指定的文件
-O 正在下载的文件写入到标准输出

 

参考实例

 

下载samba服务器192.168.0.2共享目录/it中的文件www:

 

[root@linuxcool ~]# smbget smb://192.168.0.2/it/www

 

下载samba服务器192.168.0.2共享目录/it中的文件www,并将下载文件写入到/data/www文件中:

 

[root@linuxcool ~]# smbget smb://192.168.0.2/it/www -o /data/www

 

下载samba服务器192.168.0.2共享目录/it中的文件www,并将文件内容显示在屏幕上:

 

[root@linuxcool ~]# smbget smb://192.168.0.2/it/www -O

 

 

sort命令 排序文件并输出

 

sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。sort命令既可以从特定的文件,也可以从stdin中获取输入。

 

语法格式:sort [参数] [文件]

 

常用参数:

 

-b 忽略每行前面开始出的空格字符
-c 检查文件是否已经按照顺序排序
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符
-f 排序时,将小写字母视为大写字母
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符
-m 将几个排序号的文件进行合并
-M 将前面3个字母依照月份的缩写进行排序
-n 依照数值的大小排序
-o <输出文件> 将排序后的结果存入制定的文件
-r 以相反的顺序来排序
-t <分隔字符> 指定排序时所用的栏位分隔字符
-k 指定需要排序的栏位

 

参考实例

 

sort将文件/文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出:

 

[root@linuxcool ~]# cat sort.txt 
AA:10:1.1
CC:30:3.3
DD:40:4.4
BB:20:2.2
FF:60:6.6
FF:60:6.6
EE:50:5.5
[root@linuxcool ~]# sort sort.txt
AA:10:1.1
BB:20:2.2
CC:30:3.3
DD:40:4.4
EE:50:5.5
FF:60:6.6
FF:60:6.6

 

忽略相同行使用-u选项或者uniq:

 

[root@linuxcool ~]# cat sort.txt 
AA:10:1.1
CC:30:3.3
DD:40:4.4
BB:20:2.2
FF:60:6.6
FF:60:6.6
EE:50:5.5
[root@linuxcool ~]# sort -u sort.txt
AA:10:1.1
BB:20:2.2
CC:30:3.3
DD:40:4.4
EE:50:5.5
FF:60:6.6
[root@linuxcool ~]# uniq sort.txt
AA:10:1.1
CC:30:3.3
DD:40:4.4
BB:20:2.2
FF:60:6.6
EE:50:5.5

 

sort的-n、-r、-k、-t选项的使用:

 

[root@linuxcool ~]# cat sort.txt 
AA:BB:CC
aa:30:1.9
cc:50:3.3
dd:20:4.2
bb:10:2.4
ee:40:5.3
ee:60:5.1
[root@linuxcool ~]# sort -nk 2 -t: sort.txt
AA:BB:CC
bb:10:2.4
dd:20:4.2
aa:30:1.9
ee:40:5.3
cc:50:3.3
ee:60:5.1
[root@linuxcool ~]# sort -nrk 3 -t: sort.txt
ee:40:5.3
ee:60:5.1
dd:20:4.2
cc:50:3.3
bb:10:2.4
aa:30:1.9
AA:BB:CC

 

 

source命令 在当前Shell环境中从指定文件读取和执行命令

 

source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是个点符号,(从Bourne Shell而来)是source的另一名称。 source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。

 

source返回文件最后一个命令的返回值,如果文件不能读取则会失败。

 

语法格式:source [文件]

 

参考实例

 

读取和执行/root/.bash_profile文件:

 

[root@linuxcool ~]# source ~/.bash_profile

 

执行刚修改的初始化文件,使之立即生效:

 

[root@linuxcool ~]# source /etc/bash_profile 

 

在一些工具的执行过程中,会把环境变量设置以”export XXX=XXXXXX”或”declare XXX=XXXXXX”的形式导出到 一个文件中,然后用source加载该文件内容到执行环境中:

 

[root@linuxcool ~]# vi /etc/profile 
[root@linuxcool ~]# source /etc/profile

 

如果把这些命令做成一个文件,让它自动顺序执行,对于需要多次反复编译系统核心的用户来说会很方便,而用source命令就可以做到这一点,它的作用就是把一个文件的内容当成shell来执行,先在linux的源代码目录下(如/usr/src/linux-2.4.20)建立一个文件,如 make_command,在其中输入一下内容:

 

make mrproper &&

 

make menuconfig &&

 

make dep &&

 

make clean &&

 

make bzImage &&

 

make modules &&

 

make modules_install &&

 

cp arch/i386/boot/bzImage /boot/vmlinuz_new &&

 

cp System.map /boot &&

 

vi /etc/lilo.conf &&

 

lilo -v

 

文件建立好之后,每次编译核心的时候,只需要在/usr/src/linux-2.4.20下输入:

 

[root@linuxcool ~]# source make_command

 

 

split命令 文件分割

 

split命令可以将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件 。

 

语法格式:split [参数] [切割文件][文件名]

 

常用参数:

 

-b 指定每多少字节切成一个小文件
--help 查看帮助信息
--version 显示版本信息
-C 与参数”-b”相似,但是在切 割时将尽量维持每行的完整性

 

参考实例

 

将文件”README”每6行切割成一个文件:

 

[root@linuxcool ~]# split -6 README 

 

 

statserial命令 显示串口状态

 

statserial(status ofserial port)可显示各个接脚的状态,常用来判断串口是否正常。

 

语法格式:statserial [参数]

 

常用参数:

 

-d  以10进制数字来表示串口的状态
-n 仅显示一次串口的状态后即结束程序
-x  与-n参数类似,但是以16进制来表示

 

参考实例

 

显示串口状态:

 

[root@linuxcool ~]# statserial /dev/tty1 

 

只显示一次串口状态:

 

[root@linuxcool ~]# statserial -n /dev/tty1  

 

 

stat命令 显示文件状态信息

 

stat命令用来显示文件或文件系统的详细信息

 

语法格式:stat [参数]

 

常用参数

 

-L 支持符号链接
-f 显示文件系统的信息
-t 以简洁的方式输出
--help 显示命令帮助信息
--version 显示命令版本信息

 

参考实例

 

查看文件 anaconda-ks.cfg 的三种时间状态:Access,Modify,Change:

 

[root@linuxcool ~]# stat anaconda-ks.cfg 

 

查看文件系统信息:

 

[root@linuxcool ~]# stat -f anaconda-ks.cfg 

 

以简洁的方式输出信息:

 

[root@linuxcool ~]# stat -t anaconda-ks.cfg 
 anaconda-ks.cfg 1229 8 8180 0 0 fd00 68898764 1 0 0 1540481629 1540510390 1540510390 0 4096 system_u:object_r:admin_home_t:s0

 

命令版本信息:

 

[root@linuxcool ~]# stat --version

 

 

strings命令 在对象文件或二进制文件中查找可打印的字符串

 

strings命令在对象文件或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。 strings命令对识别随机对象文件很有用。

 

语法格式: strings [参数]

 

常用参数:

 

-a 扫描整个文件而不是只扫描目标文件初始化和装载段
-f 在显示字符串前先显示文件名
-t 输出字符的位置,基于八进制,十进制或者十六进制

 

参考实例

 

列出ls中所有的ASCII文本:

 

[root@linuxcool ~]# strings /bin/ls 

 

列出ls中所有的ASCII文本:

 

[root@linuxcool ~]# cat /bin/ls strings 

 

查找ls中包含libc的字符串,不区分大小写:

 

[root@linuxcool ~]# strings /bin/ls | grep -i libc

 

在显示字符串前先显示文件名:

 

[root@linuxcool ~]# strings -f /bin/ls | grep libc 

 

输出字符的位置:

 

[root@linuxcool ~]# strings -t /bin/ls | grep libc 

 

 

stty命令 修改终端命令行的相关设置

 

stty命令用于检查和修改当前注册的终端的通信参数。UNIX系统为键盘的输入和终端的输出提供了重要的控制手段,可以通过stty命令对特定终端或通信线路设置选项。stty还可用于控制一些具有特殊控制功能的键。比如系统可能已经使用CTRL-D作为文件结束符,但你可能喜欢使用CTRL-C。这时我们可以使用stty命令改变这些默认设置。

 

语法格式:stty [参数]

 

常用参数:

 

-a 以容易阅读的方式打印当前的所有配置
-g 以stty可读方式打印当前的所有配置

 

参考实例

 

在命令行下禁止输出大写的方法:

 

[root@linuxcool ~]# stty iuclc
stty -iuclc

 

在命令行下禁止输出小写:

 

[root@linuxcool ~]# stty olcuc
stty -olcuc

 

打印出终端的行数和列数:

 

[root@linuxcool ~]# stty size 

 

改变Ctrl+D的方法:

 

[root@linuxcool ~]# stty eof "string" 

 

屏蔽显示:

 

[root@linuxcool ~]# stty -echo
stty echo

 

测试方法:

 

[root@linuxcool ~]# stty -echo;read;stty echo;read 

 

忽略回车符:

 

[root@linuxcool ~]# stty igncr

 

 

sudoedit命令 以另外一个用户文件编辑文件

 

使用sudoedit命令可以以另外一个用户身份编辑文件。

 

语法格式:sudoedit [参数] [文件]

 

常用参数:

 

-u 以指定用户运行命令
-g 以指定主要组群运行命令
-n 防止提示用户输入密码

 

参考实例

 

以用户zhangsan来编辑/root/install.log文件:

 

[root@linuxcool ~]# sudoedit /root/install.log

 

 

sulogin命令 单用户登录

 

使用sulogin命令可以进行单用户登录,在启动时Shell将不会读取/etc/profile或$HOME/.profile文件。

 

语法格式:sulogin [参数]

 

常用参数:

 

-p 单用户Shell调用一个破折号作为参数中的第一个字符
-t 程序只会等待用户输入指定秒数

 

参考实例

 

进行单用户的登录:

 

[root@linuxcool ~]# sulogin

 

 

sum命令 计算文件的校验码和显示块数

 

sum命令用于计算并显示指定文件的校验和与文件所占用的磁盘块数

 

语法格式:sum[参数]

 

常用参数:

 

-r 使用BSD的校验和算法,块大小为1k
-s 使用system V的校验和算法,块大小为512字节

 

参考实例

 

计算文件校验码:

 

[root@linuxcool ~]# sum insert.sql 
00827    12 

 

 

su命令 切换用户

 

su命令用于切换当前用户身份到指定用户或者以指定用户的身份执行命令或程序。

 

普通用户切换到root用户,可以使用su -- 或su root,但是必须输入root密码才能完成切换。root用户切换到普通用户,可以使用su username,不需要输入任何密码即可完成切换。

 

语法格式: su [选项] [用户名]

 

常用参数:

 

-c或--command 执行完指定的指令后,即恢复原来的身份
-f或--fast 适用于csh与tsch,使shell不用去读取启动文件
-l或--login 改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname,此外,也会变更PATH变量
-m,-p或--preserve-environment 变更身份时,不要变更环境变量
-s或--shell 指定要执行的shell
--help 显示帮助信息
--version 显示版本信息

 

参考实例

 

切换到linuxcool用户,但环境变量仍然是root用户的:

 

[root@linuxcool ~]# su linuxcool

 

切换到linuxcool用户,并改变为linuxcool用户环境变量:

 

[root@linuxcool ~]# su - linuxcool  

 

变更帐号为 root 并传入 -f 参数给新执行的 shell:

 

[root@linuxcool ~]# su root -f

 

 

svn命令 subversion命令行客户端程序

 

svn命令是subversion命令行客户端程序,大都数的子命令可接受文件或目录参数,对目录进行递归处理。如果指定参数,默认对当前目录进行递归处理。

 

语法格式:svn [参数]

 

常用参数:

 

add 把文件和目录纳入版本控制,通过调度添加到版本库
copy 在工作副本或版本中复制数据,保留历史
checkout 从版本库中签出工作副本

 

常用实例

 

从版本库签出工作副本:

 

[root@linuxcool ~]# svn checkout svn://192.168.0.2 /root/subversion

 

往版本库中添加新的文件test.php:

 

[root@linuxcool ~]# svn add test.php

 

将文件checkout到本地目录:

 

[root@linuxcool ~]# svn checkout svn://192.168.1.1/pro/domain

 

 

swapoff命令 关闭系统交换区

 

swapoff实际上为swapon的符号连接,可用来关闭系统的交换区

 

语法格式:swapoff [参数]

 

常用参数:

 

-a  将/etc/fstab文件中所有设置为swap的设备关闭
-h 帮助信息
-V 版本信息

 

参考实例

 

关闭交换分区:

 

[root@linuxcool ~]# swapoff /dev/sda2

 

 

systool命令 显示系统中设备的信息

 

systool命令指令显示基于总线、类和拓扑显示系统中设备的信息。

 

语法格式:systool [参数]

 

常用参数:

 

-a 显示被请求资源的属性
-b 显示指定总线的信息
-c 显示指定类的信息
-d 仅显示设备
-h 显示指令的用法
-m 显示指定模块的信息

 

参考实例

 

显示系统中设备的信息:

 

[root@linuxcool ~]# systool

 

 

sz命令 从Linux上下载文件到本地

 

sz命令是利用ZModem协议来从Linux服务器传送文件到本地,一次可以传送一个或多个文件。

 

语法格式:sz [参数]

 

常用参数:

 

-a 以文本方式传输(ascii)
-b 以二进制方式传输(binary)
-e 对控制字符转义(escape),这可以保证文件传输正确
-i 后接命令,在接收端执行命令

 

参考实例

 

下载普通文件:

 

[root@linuxcool ~]# sz backup_file.py

 

批量下载文本文件:

 

[root@linuxcool ~]# sz -a *.c

 

下载二进制文件:

 

[root@linuxcool ~]# sz -be source.zip

 

 

tailf命令 跟踪文件输出

 

tailf命令几乎等同于tail -f,严格说来应该与tail --follow=name更相似些。当文件改名之后它也能继续跟踪,特别适合于日志文件的跟踪(follow the growth of a log file)。与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件。tailf特别适合那些便携机上跟踪日志文件,因为它能省电,因为减少了磁盘访问。

 

tailf命令不是个脚本,而是一个用C代码编译后的二进制执行文件,某些Linux安装之后没有这个命令。

 

语法格式:tailf [参数] [文件]

 

常用参数:

 

-n 输出最后数行
-NUMBER 与NUMBER相同
-V 输出版本信息并退出
-h 显示帮助并退出

 

参考实例

 

显示文件最后5行内容:

 

[root@linuxcool ~]# tailf -n 5 log2014.log

 

显示文件内容:

 

[root@linuxcool ~]# tailf log/WEB.LOG 

 

 

tar命令 打包和备份的归档工具

 

tar命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。

 

tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

 

语法格式:tar [参数] [文件或目录]

 

常用参数:

 

-A 新增文件到以存在的备份文件
-B 设置区块大小
-c 建立新的备份文件
-C <目录> 切换工作目录,先进入指定目录再执行压缩/解压缩操作,可用于仅压缩特定目录里的内容或解压缩到特定目录
-d 记录文件的差别
-x 从归档文件中提取文件
-t 列出备份文件的内容
-z 通过gzip指令压缩/解压缩文件,文件名最好为*.tar.gz
-Z 通过compress指令处理备份文件
-f<备份文件> 指定备份文件
-v 显示指令执行过程
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-j 通过bzip2指令压缩/解压缩文件,文件名最好为*.tar.bz2
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-w 确认压缩文件的正确性
-p 保留原来的文件权限与属性
-P 使用文件名的绝对路径,不移除文件名称前的“/”号
-N <日期格式> 只将较指定日期更新的文件保存到备份文件里
-- -exclude=<范本样式> 排除符合范本样式的文件
-- -remove-files 归档/压缩之后删除源文件

 

参考实例

 

将所有.jpg的文件打成一个名为all.tar的包:

 

[root@linuxcool ~]# tar -cf all.tar *.jpg

 

打包文件之后删除源文件:

 

[root@linuxcool ~]# tar -cvf linuxcool.tar linuxcool --remove-files

 

打包文件以后,以 gzip 压缩:

 

[root@linuxcool ~]# tar -zcvf log.tar.gz linuxcool.log

 

 

tee命令 读取标准输入的数据

 

tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件 。

 

语法格式:tee [参数] [文件]

 

常用参数:

 

-a 附加到既有文件的后面,而非覆盖它
-i 忽略中断信号
— help  查看帮助信息
— version 显示版本信息

 

参考实例

 

使用指令”tee”将用户输入的数据同时保存到文件”file1″和”file2″中,输入如下命令:

 

[root@linuxcool ~]# tee file1 file2 

 

 

telinit命令 更改系统的运行级别

 

使用telinit命令可以更改Linux系统的运行级别。运行级别可以是0~6之间的一个数字,其中0是关闭系统,1是进入单用户模式,2~5是多用户运行级别,6是重新启动系统。s或S表示单用户模式。

 

语法格式:telinit [参数] [运行级别]

 

常用参数:

 

-q 减少输出,只有错误信息
-v 增加输出,包括信息性消息

 

参考实例

 

更改Linux系统的运行级别为3:

 

[root@linuxcool ~]# telinit 3

 

 

tgz命令 将文件压缩为.tgz格式文件

 

使用tgz命令可以将文件压缩为.tgz格式文件。

 

语法格式:tgz [压缩文件] [文件]

 

参考实例

 

将/root/install.log文件压缩为/root/install.log.tgz

 

[root@linuxcool ~]# tgz /root/install.log.tgz /root/install.log

 

 

tmpwatch命令 删除暂存文件

 

执行tmpwatch指令可删除不必要的暂存文件,您可以设置文件超期时间,单位以小时计算 。

 

语法格式:tmpwatch [参数]

 

常用参数:

 

-a 删除任何类型的文件
-f 强制删除文件或目录,其效果类似rm指令的”-f”参数
-q 不显示指令执行过程
-v 详细显示指令执行过程
-test  仅作测试,并不真的删除文件或目录

 

参考实例

 

使用指令”tmpwatch”删除目录”/tmp”中超过一天未使用的文件,输入如下命令:

 

[root@linuxcool ~]# tmpwatch 24 /tmp/ 

 

 

touch命令 创建文件

 

touch命令有两个功能:一是创建新的空文件,二是改变已有文件的时间戳属性。

 

touch命令会根据当前的系统时间更新指定文件的访问时间和修改时间。如果文件不存在,将会创建新的空文件,除非指定了”-c”或”-h”选项。

 

注意:在修改文件的时间属性的时候,用户必须是文件的属主,或拥有写文件的访问权限。

 

语法格式:touch [参数] [文件]

 

常用参数:

 

-a 改变档案的读取时间记录
-m 改变档案的修改时间记录
-r 使用参考档的时间记录,与 --file 的效果一样
-c 不创建新文件
-d 设定时间与日期,可以使用各种不同的格式
-t 设定档案的时间记录,格式与 date 命令相同
--no-create 不创建新文件
--help 显示帮助信息
--version 列出版本讯息

 

参考实例

 

创建空文件:

 

[root@linuxcool ~]# touch file.txt  

 

批量创建文件:

 

[root@linuxcool ~]# touch file{1..5}.txt 
[root@linuxcool ~]# ls
file1.txt file2.txt file3.txt file4.txt file5.txt

 

修改文件的access(访问)时间:

 

[root@linuxcool ~]# stat file.txt
File: file.txt
Size: 0 Blocks: 0 IO Block: 512 regular empty file
Device: 2h/2d Inode: 87538717757135273 Links: 1
Access: (0666/-rw-rw-rw-) Uid: ( 1000/ root) Gid: ( 1000/ root)
Access: 2019-04-07 00:25:34.729216500 +0800
Modify: 2019-04-07 00:25:34.729216500 +0800
Change: 2019-04-07 00:25:34.729216500 +0800
Birth: -

[root@linuxcool ~]# touch -a file.txt

[root@linuxcool ~]# stat file.txt
File: file.txt
Size: 0 Blocks: 0 IO Block: 512 regular empty file
Device: 2h/2d Inode: 87538717757135273 Links: 1
Access: (0666/-rw-rw-rw-) Uid: ( 1000/ root) Gid: ( 1000/ root)
Access: 2019-04-07 00:26:13.004116000 +0800
Modify: 2019-04-07 00:25:34.729216500 +0800
Change: 2019-04-07 00:26:13.004116000 +0800
Birth: -

 

 

traceroute命令 追踪数据包在网络上的传输时的全部路径

 

traceroute命令用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节。通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。

 

traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其ip地址。

 

语法格式:traceroute [参数] [域名或者IP]

 

常用参数:

 

-d 使用Socket层级的排错功能
-f<存活数值> 设置第一个检测数据包的存活数值TTL的大小
-F 设置勿离断位
-g<网关> 设置来源路由网关,最多可设置8个
-i<网络界面> 使用指定的网络界面送出数据包
-I 使用ICMP回应取代UDP资料信息
-m<存活数值> 设置检测数据包的最大存活数值TTL的大小
-n 直接使用IP地址而非主机名称
-p<通信端口> 设置UDP传输协议的通信端口
-r 忽略普通的Routing Table,直接将数据包送到远端主机上
-s<来源地址> 设置本地主机送出数据包的IP地址
-t<服务类型> 设置检测数据包的TOS数值
-v 详细显示指令的执行过程
-w 设置等待远端主机回报的时间
-x 开启或关闭数据包的正确性检验

 

参考实例

 

追踪本地数据包到www.linuxprobe.com的传输路径:

 

[root@linuxcool ~]# traceroute www.linuxprobe.com

 

跳数设置:

 

[root@linuxcool ~]# traceroute -m 7 www.linuxprobe.com

 

显示IP地址,不查主机名 :

 

[root@linuxcool ~]# traceroute -n www.linuxprobe.com

 

把探测包的个数设置为值4:

 

[root@linuxcool ~]# traceroute -q 4 www.linuxprobe.com

 

把对外发探测包的等待响应时间设置为3秒:

 

[root@linuxcool ~]# traceroute -w 3 www.linuxprobe.com

 

 

tree命令 以树状图列出目录内容

 

tree命令的全称即是“tree”,该命令作用是用于以树状图形式列出目录的内容。 执行tree命令,它会以树状图的方式列出指定目录下的所有文件,包括目录里的文件,显示出指定目录的文件目录结构。

 

语法格式:tree [参数]

 

常用参数:

 

-a 显示所有文件和目录
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合
-C 在文件和目录清单加上色彩,便于区分这种类型
-d 显示目录名称而非内容
-D 列出文件或目录的更改时间
-f 在每个文件或目录之前,显示完整的相对路径名称
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上“*”,“/”,“=”,“@”,“|”号
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码
-i 不以阶梯状列出文件或目录名称
-I<范本样式> 不显示符合范本样式的文件或目录名称
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录
-n 不在文件和目录清单上加上色彩
-N 直接列出文件和目录名称,包括控制字符
-p 列出权限标示
-P<范本样式> 只显示符合范本像是的文件或目录名称
-q 用“?”号取代控制字符,列出文件和目录名称
-s 列出文件或目录大小
-t 用文件和目录的更改时间排序
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外
-L 层级显示

 

参考实例

 

只显示n层目录(n为数字):

 

[root@linuxcool ~]# tree -L 2

 

用文件和目录的更改时间排序:

 

 [root@linuxcool ~]# tree -t

 

以相反次序排序:

 

[root@linuxcool ~]# tree -r

 

在每个文件或目录之前,显示完整的相对路径:

 

[root@linuxcool ~]# tree -f

 

只显示目录:

 

[root@linuxcool ~]# tree -d

 

显示所有文件和目录:

 

[root@linuxcool ~]# tree -a

 

 

true命令 重定向清空文件内容

 

true命令的作用是定向清空文件内容而不删除文件。

 

在有些shell与bash下true是个内建命令,与只设置退出码为0。

 

语法格式: true [文件]

 

参考实例

 

清除指定的文件内容:

 

[root@linuxcool ~]# true > linuxcool.log

 

bush下true是命令演示:

 

[root@linuxcool ~]# type -a true
true is a shell builtin
true is /bin/true

 

输出一个返回值:

 

[root@linuxcool ~]# true; echo $?
0

 

 

udevadm info命令 查询udev数据库中的设备信息

 

使用udevadm info命令可以查询udev数据库中的设备信息。也可以从sysfs文件系统中查询到设备的属性以辅助创建udev规则。

 

语法格式:udevadm info [参数]

 

常用参数:

 

-p 查询系统设备的路径
-r 查询dev目录路径名
-q 查询指定类型的设备信息

 

参考实例

 

查询/dev/sda设备的系统设备路径:

 

[root@linuxcool ~]# udevadm info -q path -n /dev/sda 

 

查询/dev/sda设备的符号链接文件:

 

[root@linuxcool ~]# udevadm info -q sysmlink -n /dev/sda 

 

查询/dev/sda设备的所有的值:

 

[root@linuxcool ~]# udevadm info -q all -n /dev/sda

 

 

umask命令 设定权限掩码

 

umask命令可用来设定权限掩码。权限掩码是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。

 

语法格式:umask [参数] [权限掩码]

 

常用参数:

 

-S 以文字的方式来表示权限掩码
-p 输出的权限掩码可直接作为指令来执行

 

参考实例

 

使用指令”umask”查看当前权限掩码:

 

[root@linuxcool ~]# umask 

 

使组用户的写权限,其他用户的读、写和执行权限都被取消:

 

[root@linuxcool ~]# umask u=, g=w, o=rwx

 

 

umount.nfs命令 卸载NFS文件系统

 

umount.nfs命令的作用是卸载NFS文件系统。

 

NFS全称为Network File System。即网络文件系统,它允许网络中的计算机之间共享资源,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

 

语法格式:umount.nfs [本地目录] [参数]

 

-f 在无法访问NFS系统的情况下强制卸载文件系统
-n 不更新/etc/mtab文件
-v 显示详细信息
-r 在卸载失败的情况下,尝试只读挂载

 

参考实例

 

挂载NFS服务器192.168.60.102的共享目录/it:

 

[root@linuxcool ~]# umount.nfs4 /mnt/it

 

强制卸载文件系统:

 

[root@linuxcool ~]# umount.nfs4 /mnt/it -f

 

尝试只读挂载:

 

[root@linuxcool ~]# umount.nfs4 /mnt/it -r

 

 

umount命令 卸载文件系统

 

umount是“unmount”的缩写,译为“不挂在。所以它的”的作用是卸载已安装的文件系统、目录或文件。

 

使用umount命令可以卸载文件系统。利用设备名或挂载点都能umount文件系统,不过最好还是通过挂载点卸载,一面使用绑定挂在(一个设备,多个挂载点)时产生混乱。

 

语法格式:umount [参数]

 

常用参数:

 

-a 卸载/etc/mtab中记录的所有文件系统
-h 显示帮助
-n 卸载时不要将信息存入/etc/mtab文件中
-r 若无法成功卸载,则尝试以只读的方式重新挂入文件系统
-t 文件系统类型:仅卸载选项中所指定的文件系统
-v 执行时显示详细的信息
-V 显示版本信息

 

参考实例

 

通过设备名卸载:

 

[root@linuxcool ~]# umount -v  /dev/sda1
/dev/sda1 umounted

 

通过挂载点卸载:

 

[root@linuxcool ~]# umount -v /mnt/mymount/
/tem/diskboot.img umounted

 

对系统文件正忙时执行延时卸载:

 

[root@linuxcool ~]# umount -v1 /mnt/mymount/ 

 

卸载挂载在/media/E_pan目录下的文件系统:

 

[root@linuxcool ~]# umount /media/E_pan 

 

卸载文件和目录:

 

[root@linuxcool ~]# umount /home/user/test  

 

 

uncompress命令 压缩或解压缩compress文件

 

使用uncompres命令可以压缩或解压缩compress文件。其实uncompres命令是compress命令的符号链接,所以命令语法和命令选项与compress命令是一样的。

 

语法格式:uncompress [参数] [文件]

 

常用参数:

 

-b 压缩效率是一个介于9到16的数值,值越大,压缩效率就越高
-c 把压缩后的文件输出到标准输出设备,不删除原始文件
-f 强制执行压缩或者解压缩
-v 显示压缩统计信息

 

参考实例

 

解压缩/root/install.log.Z文件:

 

[root@linuxcool ~]# compress -f /root/install.log

 

 

unlink命令 删除指定文件

 

unlink命令用于系统调用函数unlink去删除指定的文件。和rm命令作用一样 ,都是删除文件。

 

语法格式:unlink [参数]

 

常用参数:

 

--help 显示帮助
--version 显示版本号

 

参考实例

 

删除test文件:

 

[root@linuxcool ~]# unlink  test.file

 

 

unprotoize命令 删除函数原型

 

unprotoize命令属于gcc套件,用于删除C语言源代码文件中的函数原型。

 

语法格式:unprotoize [参数]

 

常用参数:

 

-d 设置需要转换代码的目录
-x 转换代码时排除的文件

 

参考实例

 

删除C语言源代码文件:

 

[root@linuxcool ~]# unprotoize -x test1.c

 

 

unrar命令 解压提取文件

 

解压rar文件命令,从rar档案中提取文件。linux下使用unrar命令解压*.rar格式文件。

 

语法格式:unrar [选项] [参数]

 

常用参数:

 

-e 将文件解压缩到当前目录
-l 列出存档内容
-p 将文件打印到标准输出
-t 测试存档文件
-v 详细列出存档
-x 使用完整路径提取文件

 

参考实例

 

将压缩文件text.rar在当前目录下解压缩,并解压完整路径:

 

[root@linuxcool ~]# unrar x test.rar

 

查看rar包中的内容:

 

[root@linuxcool ~]# unrar l test.rar

 

测试rar包是否能解压成功:

 

[root@linuxcool ~]# unrar t test.rar

 

解压到当前文件夹:

 

[root@linuxcool ~]# unrar e test.rar

 

 

unset命令 删除指定的shell变量或函数

 

unset命令用于删除已定义的shell变量(包括环境变量)和shell函数。unset命令不能够删除具有只读属性的shell变量和环境变量。

 

语法格式:unset[参数]

 

常用参数:

 

-f 仅删除函数
-v 仅删除变量

 

参考实例

 

使用unset命令将前面所创建的环境变量mylove及其对应的值进行删除,输入如下命令:

 

[root@linuxcool ~]# unset -v mylove    

 

 

updatedb命令 创建或更新数据库文件

 

updatedb命令用来创建或更新 slocate/locate 命令所必需的数据库文件。

 

updatedb命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入 slocate/locate 数据库文件中。 注意:slocate 本身具有一个数据库,里面存放了系统中文件与目录的相关信息。

 

使用updatedb命令可以创建或更新locate所使用的数据库。如果数据库已经存在,它的数据是重复使用,以避免重读并没有改变的目录。updatedb通常每天由cron运行来更新默认的数据库。

 

语法格式:updatedb [参数]

 

常用参数:

 

-o 忽略默认的数据库文件,使用指定的slocate数据库文件
-U 更新指定目录的slocate数据库
-v 显示执行的详细过程

 

参考实例

 

检测一个未存在的文件file.txt:

 

[root@linuxcool ~]# locate file.txt    

 

使用 -U 参数可以指定要更新 slocate 数据库的目录:

 

[root@linuxcool ~]# updatedb -U /root/file/

 

创建或更新mlocate数据库:

 

[root@linuxcool ~]# updatedb

 

创建mlocate数据库,只扫描/etc目录,写入数据库到db_file文件:

 

[root@linuxcool ~]# updatedb -o db_file -U /etc

 

 

userdel命令 删除用户

 

userdel命令用于删除指定的用户及与该用户相关的文件,英文全称即“user delete”。其实userdel命令实际上是修改了系统的用户账号文件 /etc/passwd、/etc/shadow以及/etc/group文件。这与Linux系统”一切操作皆文件”的思想正好吻合。

 

值得注意的是,但是如果有该要删除用户相关的进程正在运行,userdel命令通常不会删除一个用户账号。如果确实必须要删除,可以先终止用户进程,然后再执行userdel命令进行删除。但是userdel命令也提供了一个面对该种情况的参数,即”-f”选项。

 

语法格式:userdel [参数] [用户名]

 

常用参数:

 

-f 强制删除用户账号
-r 删除用户主目录及其中的任何文件
-h 显示命令的帮助信息

 

参考实例

 

删除用户,但不删除其家目录及文件:

 

[root@linuxcool ~]# userdel linuxcool

 

删除用户,并将其家目录及文件一并删除:

 

[root@linuxcool ~]# userdel -r linuxcool

 

强制删除用户:

 

[root@linuxcool ~]# userdel -f linuxcool

 

 

userinfo命令 更改自己的finger信息

 

使用userinfo命令可以允许用户方便地更改自己的finger信息,这是一个图形化工具。

 

语法格式: userinfo [参数]

 

参考实例:

 

更改自己的finger信息:

 

[root@linuxcool ~]# userinfo

 

 

userpasswd命令 允许用户更改密码的图形化工具

 

使用userpasswd命令可以允许用户轻松地更改自己的密码,它是一个图形化的工具。

 

语法格式: userpasswd

 

参考实例

 

更改用户自己的密码:

 

[root@linuxcool ~]# userpasswd

 

 

uucico命令 文件传输服务程序

 

uucico命令是UUCP文件传输服务程序。uucico是用来处理uucp或uux送到队列的文件传输工具。uucico有两种工作模式:主动模式和附属模式。当在主动模式下时,uucico会调用远端主机;在附属模式下时,uucico则接受远端主机的调用。

 

语法格式: uucico [参数]

 

常用参数:

 

-c或--quiet 当不执行任何工作时,不要更改记录文件的内容及更新目前的状态
-C或--ifwork 当有工作要执行时,才调用-s或-S参数所指定主机
-r1 以主动模式启动

 

参考实例

 

使用主动模式启动uucico服务:

 

[root@linuxcool ~]# uucico -r1

 

使用附属模式启动uucico服务:

 

[root@linuxcool ~]# uucico -r0

 

指定登入的用户帐号,而不允许输入任意的登入帐号:

 

[root@linuxcool ~]# uucico -u username

 

显示版本信息,并且结束程序:

 

[root@linuxcool ~]# uucico -v

 

调用指定的主机:

 

[root@linuxcool ~]# uucico -s 主机名

 

 

uucp命令 unix系统之间传输文件

 

UUCP为Unix系统之间,通过序列线来连线的协议。uucp使用UUCP协议,主要的功能为传送文件。

 

语法格式:uucp [参数]

 

常用参数:

 

-c 不用将文件复制到缓冲区
-C 将文件复制到缓冲区
-d 在传送文件时,自动在[目的]建立必要的目录
-f 在传送文件时,若需要在[目的]建立目录,则放弃执行该作业
-I 指定uucp配置文件
-j 显示作业编号
-R 若[来源]为目录,则将整个目录包含子目录复制到[目的]

 

参考实例

 

将temp/目录下所有文件传送到远程主机localhost的uucp公共目录下的Public/目录下:

 

[root@linuxcool ~]# uucp -d -R temp localhost ~/Public/ 

 

将home/目录下所有文件传送到远程主机localhost的uucp公共目录下的Public/目录下并显示作业编号:

 

[root@linuxcool ~]# uucp -d -R -j home localhost ~/Public/ 

 

 

uuname命令 显示全部的UUCP远端主机

 

uuname命令用于显示全部的UUCP远端主机。

 

语法格式:uuname [参数]

 

常用参数:

 

-a 显示别名
-I 指定程序的配置文件
-l 显示本机名称
-v 显示版本信息
--help 显示帮助

 

参考实例

 

显示uucp主机名称:

 

[root@linuxcool ~]# uuname 

 

 

vacuumdb命令 清理并优化PostgreSQL数据库

 

vacuumdb命令的作用是可以清理并优化一个PostgreSQL数据库。

 

vacuumdb命令也将产生由PostgreSQL查询优化器所使用的内部统计信息。

 

vacuumdb命令是SQL命令VACUUM的一个包装器。在通过这个工具和其他方法访问服务器来清理和分析数据库之间没有实质性的区别。虽然在新版本的PostgreSQL中有自动的vacuum,但是如果是大批量的数据IO可能会导致自动执行很慢,需要配合手动执行以及自己的脚本来清理数据库。

 

语法格式:vacuumdb [参数] [数据库名]

 

-a 清理所有的数据库
-d<数据库名称> 清理指定的数据库
-e 显示发送到服务端的命令
-f 完全清理
-F 冻结记录的事务信息
-q 不写任何信息
-t<表名> 只清理指定的表
-U<用户名> 指定连接的用户名
-w 永远不提示输入口令
-W 强制提示输入口令
-h<主机名> 数据库服务器所在主机的主机名或套接字目录
-p<端口号> 指定数据库服务器端口号
-z 更新优化器信息
-v 输出大量的信息

 

参考实例

 

清理所有的数据库:

 

[root@linuxcool ~]# su - postgres
$ vacuumdb -a

 

为优化器清理和分析一个名为bigdb的数据库:

 

[root@linuxcool ~]# su - postgres
$ vacuumdb -z bigdb

 

清理数据库linuxcool中的table1表:

 

[root@linuxcool ~]# su - postgres
$ vacuumdb -d linuxcool -t 'table1'

 

 

vcdtools命令 制作vcd影像

 

vcdtools命令用于制作vcd光盘影像。

 

需要有支持SCSI和”generic”SCSI的Linux核心,不用担心您的CD-R或CD-RW是ATAPI/IDE接口,只要把 SCSI emulation(SCSI仿真)编译进您的Linux即可。如果您手中的Linux是一个正式发行的Distributed版本,如 蓝点(BluePoint)、红旗(Red-Flag)等,那么您就可以跳过编译核心这一步。

 

启动Linux,启动时仍然需要加入”/dev/node=ide-scsi”参数,这是ATAPI/IDE接口的CD-R或CD-RW打开SCSI仿真模 式所必须的。

 

语法格式:vcdtools [参数]

 

常用参数:

 

mkvcdfs MPEG文件合并
vcdmplex 用于音频和视频合并
cdrdao 用于刻录影像到光盘

 

参考实例

 

安装vcdtools中的cdrdao:

 

[root@linuxcool ~]# apt-get install vcdtools cdrdao

 

解压缩vcdtools打包文件:

 

[root@linuxcool ~]# tar zxvf vcdtools-0.4.tar.gz

 

在软件目录下完成编译:

 

[root@linuxcool ~]# cd /etc/home/vcdtools-0.4
[root@linuxcool vcdtools-0.4]# make

 

 

vimdiff命令 同时编辑多个文件

 

纯文本文件比较和合并工具一直是软件开发过程中比较重要的组成部分,vimdiff 能够在比较出来的多处差异之间快速定位,很容易的进行文件合并操作。在需要快速比较和合并少量文件的时候,vimdiff是很好的选择。使用vimdiff的前提是保证系统中的diff命令是可用的,vim的diff模式是依赖于diff命令的。
启动方法:1. vimdiff file1 file2 … 2. vim -d file1 file2 …

 

语法格式:vimdiff [参数]

 

常用参数:

 

w 在命令模式下,按Ctrl + w在多个文件之间跳转
u 在命令模式下,按u执行撤销操作
qa 同时退出多个文件
wqa 保存并同时退出多个文件

 

参考实例

 

同时编辑2个文件:

 

[root@linuxcool ~]# vimdiff file1 file2 
[root@linuxcool ~]# vim -d file1 file2 

 

同时编辑3个文件:

 

[root@linuxcool ~]# vimdiff file1 file2 file3
[root@linuxcool ~]# vim -d file1 file2 file3

 

 

vipw命令 编辑某些配置文件

 

使用vipw命令可以编辑/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow文件。该方式将设置适当的锁,以防止文件损坏。

 

语法格式:vipw [参数]

 

常用参数:

 

-g 编辑group数据库
-p 编辑passwd数据库
-q 安静模式
-s 编辑shadow或gshadow数据库

 

参考实例

 

编辑/etc/passwd文件:

 

[root@linuxcool ~]# vipw -p

 

编辑/etc/group文件:

 

[root@linuxcool ~]# vipw -g

 

编辑/etc/shadow文件:

 

[root@linuxcool ~]# vipw -s

 

 

visudo命令 编辑/etc/sudoers文件

 

使用visudo命令可以打开/etc/sudoers文件进行编辑设置sudo

 

语法格式:visudo [参数]

 

常用参数:

 

-c 启用check-only模式
-q 启用安静模式,此模式下不显示错误信息
-s 启用严格检查sudoers文件

 

参考实例

 

使用visudo命令编辑/etc/sudoers文件:

 

[root@linuxcool ~]# visudo

 

检查/etc/sudoers文件的语法错误、所有者和模式:

 

[root@linuxcool ~]# visudo -c

 

 

vmkfstools命令 虚拟磁盘工具

 

vmkfstools被比做虚拟磁盘中的瑞士军刀,可用于复制、转换、重命名、输入、输出和调整虚拟磁盘文件的大小。

 

语法格式:vmkfstools [参数]

 

常用参数:

 

-i 原vmdk磁盘名
-d 目标磁盘的格式

 

参考实例

 

更改虚拟磁盘(vmdk)大小:

 

[root@linuxcool ~]# vmkfstools -X 40g converter-one.vmdk

 

精简置备转换至厚置备置零:

 

[root@linuxcool ~]# vmkfstools --inflatedisk /vmfs/volumes/DatastoreName/VMName/VMName.vmdk

 

厚置备延迟置零转换至厚置备置零:

 

[root@linuxcool ~]# vmkfstools --eagerzero /vmfs/volumes/DatastoreName/VMName/VMName.vmdk

 

登陆ESXI 调整虚拟磁盘大小:

 

[root@linuxcool ~]# vmkfstools -X 40g converter-two.vmdk

 

创建虚拟磁盘文件:

 

[root@linuxcool ~]# vmkfstools -C --createfs vmfs3

 

 

vncviewer命令 连接VNC服务器

 

使用vncviewer命令可以连接到VNC服务器,输出此命令时会弹出输入密码框,输入密码即可登录。

 

语法格式:vncviewer [参数] [主机] [::端口]

 

常用参数:

 

-display 指定在其上的VNC viewer窗口应该出现X显示
-geometry 标准的X位置和尺寸规格
-Shared 当连接到VNC服务器时,所有其他现有的连接正常关闭
-listen 来自VNC服务器的反向连接,默认端口号为5500

 

参考实例

 

使用虚拟桌面号连接到VNC服务器192.168.0.2:

 

[root@linuxcool ~]# vncviewer 192.168.0.2:1

 

使用端口号5901连接到VNC服务器192.168.0.2:

 

[root@linuxcool ~]# vncviewer 192.168.0.2:5901

 

使用端口号3并且使用密码文件/opt/vncpasswdfile登录到vnc服务器192.168.210.80

 

[root@linuxcool ~]# vncviewer -passwd /opt/vncpasswdfile 192.168.210.80:3

 

 

vsish命令 vsan命令行

 

与vsish进行交互的方式有两种,您可以交互式地登录到VSI shell并执行ls,获取或设置操作,或者通过非交互模式执行相同的操作,是代替Procfs的强大命令。

 

语法格式:vsish [参数]

 

常用参数:

 

ls 显示所有的节点信息
set 设置vc配置

 

参考实例

 

获取内存映射表:

 

[root@linuxcool ~]# vsish -e ls /userworld/cartel/%pid/mem/mmaps

 

启用Procfs:

 

[root@linuxcool ~]# vsish -e set /config/User/intOpts/UserProcEnable 1

 

触发ESXi紫屏:

 

[root@linuxcool ~]#vsish -e set /reliability/crashMe/Panic

 

修改vsan 并发数据同步进程数量:

 

[root@linuxcool ~]# vsish -e set /vmkModules/vsan/dom/MaxNumResyncCopyInFlight 30

 

验证vsan 并发数据同步进程数量:

 

[root@linuxcool ~]# vsish -e get /vmkModules/vsan/dom/MaxNumResyncCopyInFlight

 

 

wc命令 统计文件的字节数、字数、行数

 

wc命令统计指定文件中的字节数、字数、行数,并将统计结果显示输出。利用wc指令我们可以计算文件的Byte数、字数或是列数,若不指定文件名称,或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据。wc同时也给出所指定文件的总统计数。

 

语法格式:wc [参数] [文件]

 

常用参数:

 

-w 统计字数,或--words:只显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串
-c 统计字节数,或--bytes或--chars:只显示Bytes数
-l 统计行数,或--lines:只显示列数
-m 统计字符数
-L 打印最长行的长度
--help 显示帮助信息
--version 显示版本信息

 

参考实例

 

统计字数:

 

[root@linuxcool ~]# cat test.txt 
hello world
hello world
hello world
hello world hello world
[root@linuxcool ~]# wc -w test.txt
10 test.txt

 

统计字节数:

 

[root@linuxcool ~]# wc -c test.txt 
60 test.txt

 

统计字符数:

 

[root@linuxcool ~]# wc -m test.txt 
60 test.txt

 

统计行数:

 

[root@linuxcool ~]# wc -l test.txt 
4 test.txt

 

打印最长行的长度:

 

[root@linuxcool ~]# wc -L test.txt 
23 test.txt

 

 

whereis命令 显示命令及相关文件的路径

 

whereis命令用来定位命令的二进制程序、源代码文件和man手册页等相关文件的路径。

 

whereis命令查找速度非常快,因为它不是在磁盘中乱找,而是在一个数据库中查询; 数据库是linux系统自动创建的,包含有本地所有文件的信息,并且每天通过自动执行updatedb命令更新一次。正因为这样,whereis命令的搜索结果有时候会不准确,比如刚添加的文件可能搜不到, 原因就是该数据库文件没有被更新。

 

语法格式:whereis [参数] [命令名]

 

常用参数:

 

-b 查找二进制程序或命令
-B 从指定目录下 查找二进制程序或命令
-m 查找man手册文件
-M 从指定目录下 查找man手册文件
-s 只查找源代码文件
-S 从指定目录下 查找源代码文件

 

参考实例

 

显示ln命令的程序和man手册页的位置:

 

[root@linuxcool ~]# whereis ln
ln: /usr/bin/ln /usr/share/man/man1/ln.1.gz /usr/share/man/man1p/ln.1p.gz

 

显示ln命令的二进制程序的路径:

 

[root@linuxcool ~]# whereis -b ln
ln: /usr/bin/ln

 

显示ln命令的man手册页的路径:

 

[root@linuxcool ~]# whereis -m ln
ln: /usr/share/man/man1/ln.1.gz /usr/share/man/man1p/ln.1p.gz

 

 

which命令 查找文件

 

which命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

 

运维人员在日常工作中经常使用which命令来检查某个系统命令是否存在,或者找出所执行命令所对应的具体位置。

 

语法格式:which [参数] [文件]

 

常用参数:

 

-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名
-p 与-n参数相同,但此处的<文件名长度>包括了文件的路径
-w  指定输出时栏位的宽度
-V 显示版本信息

 

参考实例

 

查找文件、显示命令路径:

 

[root@linuxcool ~]# which bash
/bin/bash
[root@linuxcool ~]# which adduser
/usr/sbin/adduser

 

说明:which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!

 

使用which去找which:

 

[root@linuxcool ~]# which which 
alias which='alias|/usr/bin/which --tty-only --read-alias --show-dot --show-tilde'/usr/bin/which

 

说明:竟然会有两个 which ,其中一个是 alias 这就是所谓的[命令别名],意思是输入 which 会等于后面接的那串命令! Bash内建命令无法查找到如cd命令 :

 

[root@linuxcool ~]# which cd

 

说明:cd 这个常用的命令竟然找不到啊!为什么呢?这是因为 cd 是bash 内建的命令! 但是 which 默认是找 PATH 内所规范的目录,所以当然一定找不到的!

 

查看默认的jdk:

 

[root@linuxcool ~]# which java
/usr/bin/java

 

which查找的目录,PATH变量的值:

 

[root@linuxcool ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

 

 

xclip命令 跨窗口复制文字

 

使用fsview命令方便的管理 X selections 里面内容的工具 。

 

语法格式:xclip [参数]

 

常用参数:

 

-i 从 stdin 读入
-o 打印到标准输出

 

参考实例

 

剪切板内容输出到文件:

 

[root@linuxcool ~]# xclip -o > ~/test.txt 

 

剪切板内容输出到终端:

 

[root@linuxcool ~]# xclip -selection c -o

 

 

xfs_info命令 查看xfs文件系统的具体信息

 

xfs_info命令用来查看xfs文件系统的具体信息。其中该命令的装载点参数是装载文件系统的目录的路径名。必须装入文件系统才能进行增长文件系统的现有内容不受干扰,并且添加的空间可用于其他文件存储。

 

语法格式:xfs_info [挂载点] | [设备文件名]

 

常用参数:

 

-d 指定应增长文件系统的数据部分
-e 指定实时范围大小
-l  指定尺寸
-n 指定不更改文件系统
-r 指定应增长文件系统的实时部分
-V 打印版本号
-t 指定备用装载表文件(默认值为/proc/装载(如果存在,则为/etc/mtab)

 

参考实例

 

查看device设备的实时范围大小:

 

[root@linuxcool ~]# xfs_info -e device

 

查看device设备的尺寸大小:

 

[root@linuxcool ~]# xfs_info -l device

 

打印版本号:

 

[root@linuxcool ~]# xfs_info -V

 

 

xlsfonts命令 显示X服务器字体列表

 

xlsfonts命令显示当前X服务器使用的字体列表,也能使用范本样式仅列出的符合条件的字体。

 

运行xlsfonts命令时要求启动本地X-Windows的图形界面后,在图形界面下的命令行中输入,否则将有错误提示。

 

语法格式: xlsfonts [参数]

 

常用参数:

 

-l 除字体名称外,同时列出字体的属性
-ll 此参数的效果和指定”l”参数类似,但显示更详细的信息
-lll 此参数的效果和指定”ll”参数类似,但显示更详细的信息
-m 配合参数”-l”使用时,一并列出字体大小的上下限
-n<显示栏位数> 设置每列显示的栏位数
-o 以OpenFont的形式列出字体清单
-u 列出字体清单时不依照其名称排序
-w<每列字符数> 设置每列的最大字符数

 

参考实例

 

显示使用的前五个字体列表:

 

[root@linuxcool ~]# xlsfonts | head -n 5

 

以OpenFont形式同时显示字体名称及属性:

 

[root@linuxcool ~]# xlsfonts -lo

 

同时显示字体名称及属性与大小上限:

 

[root@linuxcool ~]# xlsfonts -lm

 

 

xsetwacom命令 查询和修改wacom驱动程序设置

 

xsetwacom命令是用来查询或更改wacom驱动程序加载的设备上的属性,属性的修改在运行时发生,并且在X服务器重新启动时不持久。

 

语法格式:xsetwacom [参数]

 

常用参数:

 

--list 显示wacom设备驱动
-v 启用详细输出,用于调试

 

参考实例

 

使用--list列出wacom设备驱动:

 

[root@linuxcool ~]# xsetwacom --list devices

 

显示可以设置那些参数:

 

[root@linuxcool ~]# xsetwacom --list parameters

 

获取设备并添加到安装列表中:

 

[root@linuxcool ~]# xsetwacom --get 'DEVICE-NAME' all

 

 

xwininfo命令 窗口信息实用程序

 

xwininfo是一个显示windows信息的实用程序,根据选择的选项,将显示各种信息。如果未选择任何选项,则假定为-stats。

 

语法格式:xwininfo [参数]

 

常用参数:

 

-int 此选项指定所有X窗口ID都应显示为整数值,默认设置是将它们显示为十六进制值。

 

参考实例

 

使用xwininfo命令显示窗口信息实用程序:

 

[root@linuxcool ~]# xwininfo

 

 

xxd命令 以十六进制形式表示

 

xxd的作用就是将一个文件以十六进制的形式显示出来。它还可以将十六进制转储转换回其原始二进制形式。

 

语法格式:xxd [参数]

 

常用参数:

 

-a 它的作用是自动跳过空白内容,默认是关闭的
-c 它的后面加上数字表示每行显示多少字节的十六进制数,默认是16字节
-g 设定以几个字节为一块,默认为2字节
-l 显示多少字节的内容
-s 后面接【+-】和address.加号表示从地址处开始的内容,减号表示距末尾address开始的内容

 

参考实例

 

使用-a参数,自动跳过空白,从0x200开始,输入文件:

 

[root@linuxcool ~]# xxd -a -s +0x200 linuxcool.txt

 

使用-a、-c参数,自动跳过空白,每行显示12字节,从0x200开始,输入文件:

 

[root@linuxcool ~]# xxd -a -c 12 -s +0x200 linuxcool.txt

 

使用-a、-c、-g参数,自动跳过空白,每行显示12字节,一个字节一块,显示512字节内容,从0x200开始,输入文件:

 

[root@linuxcool ~]# xxd -a -c 12 -g 1 -l 512 -s +0x200 linuxcool.txt

 

 

xzcat命令 查看xz压缩文件的内容

 

xzcat命令可以查看xz压缩文件的内容。

 

语法格式:xzcat [参数] [文件]

 

常用参数:

 

-z 强制压缩
-d 强制解压缩
-t 测试压缩文件的完整性
-l 使用列表格式显示
-k 保留输入文件,不要删除
-f 强制操作

 

参考实例

 

查看压缩文件/root/tt.xz内容:

 

[root@linuxcool ~]# xzcat /root/tt.xz

 

 

xzcmp命令 比较xz压缩文件

 

使用xzcmp命令可以调用cmp程序比较xz压缩文件

 

语法格式:xzcmp [参数] [文件1] [文件2]

 

参考实例

 

比较xz压缩文件/root/a.xz和/root/b.xz:

 

[root@linuxcool ~]# xzcmp /root/a.xz /root/b.xz

 

 

xzdec命令 解压缩xz文件

 

使用xzdec命令可以进行liblzma为基础的xz文件解压缩

 

语法格式:xzdec [参数] [文件]

 

常用参数:

 

-d 忽略xz兼容性,只支持解压缩
-k 忽略xz兼容性,从不创建或删除任何文件
-q 以安静模式进行操作,不显示任何警告或通知

 

参考实例

 

查看压缩文件:

 

[root@linuxcool ~]# xzdec /root/a.xz

 

 

xzdiff命令 比较xz压缩文件

 

使用xzdiff命令可以调用diff程序比较xz压缩文件

 

语法格式:xzdiff [参数] [文件1] [文件2]

 

参考实例

 

比较xz压缩文件/root/a.xz和/root/b.xz:

 

[root@linuxcool ~]# xzdiff /root/a.xz /root/b.xz

 

 

xzgrep命令 在xz压缩文件上搜索正则表达式

 

使用xzgrep命令可以在xz、gzip或bzip2压缩文件上启动grep搜索正则表达式。

 

语法格式:xzgrep [参数] [模式] [文件]

 

参考实例

 

在压缩文件/root/a.xz中搜索字符a:

 

[root@linuxcool ~]# xzgrep a /root/a.xz

 

 

xzless命令 查看xz压缩文本文件

 

使用xzless命令可以查看xz压缩文本文件。

 

语法格式:xzless [文件]

 

参考实例

 

查看/root/a.x压缩文本文件:

 

[root@linuxcool ~]# xzless /root/a.xz

 

 

xzmore命令 查看xz压缩文本文件

 

使用xzmore命令可以查看xz压缩文本文件。

 

语法格式:xzmore [文件名]

 

参考实例

 

查看/root/a.xz压缩文本文件:

 

[root@linuxcool ~]# xzmore /root/a.xz

 

 

ytalk命令 与其他用户交谈

 

通过ytalk指令,你可以和其他用户线上交谈,如果想和其他主机的用户交谈,在用户名称后加上其主机名称或IP地址即可。

 

语法格式:ytalk [参数]

 

常用参数:

 

-h 指定交谈对象所在的远端主机
-i  用提醒声响代替显示信息
-s  在指令提示符号先开启ytalk交谈窗
-x 关闭图形界面
-Y 所有必须回应yes或no的问题,都必须用大写英文字母”Y”或”N”回答

 

参考实例

 

发送消息:

 

[root@linuxcool ~]# who
 root   :0      Apr 9 20:17
 root   pts/1    Apr 9 20:17
 w3c   pts/6    May 27 16:47 (192.168.0.1)
 root   pts/2    May 27 17:37 (192.168.0.1)
[root@linuxcool ~]# ytalk w3c
 hey

 

 

yum命令 基于RPM的软件包管理器

 

yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更新与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

 

yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

 

语法格式:yum [参数]

 

常用参数:

 

-h 显示帮助信息
-y 对所有的提问都回答“yes”
-c 指定配置文件
-q 安静模式
-v 详细模式
-t 检查外部错误
-d 设置调试等级(0-10)
-e 设置错误等级(0-10)
-R 设置yum处理一个命令的最大等待时间
-C 完全从缓存中运行,而不去下载或者更新任何头文件
install 安装rpm软件包
update 更新rpm软件包
check-update 检查是否有可用的更新rpm软件包
remove 删除指定的rpm软件包
list 显示软件包的信息
search 检查软件包的信息
info 显示指定的rpm软件包的描述信息和概要信息
clean 清理yum过期的缓存
shell 进入yum的shell提示符
resolvedep 显示rpm软件包的依赖关系
localinstall 安装本地的rpm软件包
localupdate 显示本地rpm软件包进行更新
deplist 显示rpm软件包的所有依赖关系

 

参考实例

 

自动搜索最快镜像插件:

 

[root@linuxcool ~]# yum install yum-fastestmirror

 

安装yum图形窗口插件:

 

[root@linuxcool ~]# yum install yumex

 

清除缓存目录下的软件包:

 

[root@linuxcool ~]# yum clean packages

 

卸载/删除vim-common:

 

[root@linuxcool ~]# yum remove vim-common.x86_64  

 

列出匹配到“foo*”的可用的数据包:

 

[root@linuxcool ~]# yum list available 'foo*' 

 

安装yum图形窗口插件:

 

[root@linuxcool ~]# yum install yumex  

 

查看可能批量安装的列表:

 

[root@linuxcool ~]# yum grouplist  

 

显示httpd安装包信息:

 

[root@linuxcool ~]# yum info httpd.x86_64   

 

 

zcat命令 查看压缩文件的内容

 

zcat命令用于不真正解压缩文件,就能显示压缩包中文件的内容的场合。zcat是一个命令行实用程序,用于查看压缩文件的内容,而无需对其进行解压缩。 它将压缩文件扩展为标准输出,使您可以查看其内容。 另外,zcat与运行gunzip -c命令完全相同。

 

语法格式:zcat [参数]

 

-S 当后缀不是标准压缩包后缀时使用此选项
-c 将文件内容写到标注输出
-d 执行解压缩操作
-l 显示压缩包中文件的列表
-L 显示软件许可信息
-q 禁用警告信息
-r 在目录上执行递归操作
-t 测试压缩文件的完整性
-V 显示指令的版本信息
-l 更快的压缩速度
-9 更高的压缩比

 

参考实例

 

不解压缩文件的情况下,显示压缩包中文件的内容:

 

[root@linuxcool ~]# zcat file.gz

 

查看多个压缩文件:

 

[root@linuxcool ~]# zcat file1.gz file2.gz

 

查看普通文件的内容:

 

[root@linuxcool ~]# zcat -f file

 

获取压缩文件的属性(压缩大小,未压缩大小,比率 -- 压缩率):

 

[root@linuxcool ~]# zcat -l file.gz

 

禁止所有警告:

 

[root@linuxcool ~]# zcat -q file.gz

 

 

zdump命令 时区输出器

 

使用zdump命令可以在命令行上显示指定的每个区域名称的当前时间

 

语法格式: zdump [参数] [区域名]

 

常用参数:

 

-v 在命令行上为每个区域名、输出可能的最早时间值。
-c 在指定的年份开始的前后,剪切冗余的输出

 

参考实例

 

查看中国PRC的时区规则

 

[root@linuxcool ~]# zdump -v PRC

 

 

zegrep命令 文件字符串过滤

 

zegrep命令是一个文件字符串过滤工具,可以使用zegrep在压缩文件中多次搜索相对应的文件名与内容。

 

语法格式:zegrep [参数] [文件路径]

 

常用参数:

 

-n 搜索显示行
-l 列出包含多个模式的那些压缩文件的文件名

 

参考实例

 

使用zegrep过滤linuxprobe.txt中linuxcool字符:

 

[root@linuxcool ~]# zegrep "linuxcool" linuxprobe.txt

 

使用zegrep搜索压缩文件中的多重模式:

 

[root@linuxcool ~]# zegrep 'shah|root|apache' linuxprobe.gz

 

使用压缩文件中的-n选项在文件中搜索多个模式以及相关的行号:

 

[root@linuxcool ~]# zegrep -n 'shah|root|apache' linuxprobe.gz

 

使用-l选项列出包含多个模式的那些压缩文件的文件名:

 

[root@linuxcool ~]# zegrep -l 'shah|root|apache' *.gz

 

 

zgrep命令 在压缩文件中按正则表达式来搜索

 

使用zgrep命令可以在压缩文件中调用grep按正则表达式来搜索

 

语法格式:zgrep [参数] [模式] [文件名]

 

常用参数:

 

-x 被排除在处理归档成员的可选列表中

 

参考实例

 

在压缩文件/a.zip中搜索字符a:

 

[root@linuxcool ~]# zgrep a /root/a.zip

 

 

zipcloak命令 压缩文件加密

 

zipcloak 命令对一个 zip 文件进行加密,提示你输入两次密码(以确保你不会“胖手指”),然后将该文件原位存储。你可以想到,文件大小与原始文件会有所不同。

 

语法格式:zipcloak [参数]

 

常用参数:

 

-d 解密加密进度条
-b 使用由路径指定的目录作为临时zip文件
-O 将输出写入新的文件中,保留原始文件不变

 

参考实例

 

使用zipcloak加密linuxcool.zip文件:

 

[root@linuxcool ~]# zipcloak linuxcool.zip

 

显示加密进度条:

 

[root@linuxcool ~]# zipcloak -d linuxcool.zip

 

将加密的存档输出到新文件:

 

[root@linuxcool ~]# zipcloak archive.zip -O crypto.zip

 

 

zipdetails命令 显示zip文件的内部结构

 

zipdetails 命令将向你显示详细信息:有关压缩文件的详细信息,可能比你想象的要多得多。即使我们正在查看一个加密的文件,zipdetails 也会显示文件名以及文件修改日期、用户和组信息、文件长度数据等。请记住,这都是“元数据”。

 

语法格式:zipdetails [参数]

 

常用参数:

 

-v 详细输出更多内容

 

参考实例

 

使用zipdetails命令来显示linuxcool.zip文件的内部结构:

 

[root@linuxcool ~]# zipdetails linuxcool.zip

 

使用-v参数详细的输出更多内容:

 

[root@linuxcool ~]# zipdetails -v securecrt_39196.zip

 

 

zipgrep命令 查找压缩文件中的特定内容

 

zipgrep 命令将使用 grep 类的功能来找到压缩文件中的特定内容。如果文件已加密,则需要为要检查的每个文件输入为加密所提供的密码。如果只想检查归档文件中单个文件的内容,请将其名称添加到 zipgrep 命令的末尾。

 

语法格式:zipgrep [参数] [文件]

 

常用参数:

 

-i 搜索时,忽略大小写
-c 只输出匹配行的数量
-l 只列出符合匹配的文件名,不列出具体的匹配行
-n 列出所有的匹配行,显示行号
-h 查询多文件时不显示文件名
-s 不显示不存在、没有匹配文本的错误信息
-v 显示不包含匹配文本的所有行
-w 匹配整词
-x 匹配整行
-r 递归搜索
-q 禁止输出任何结果,已退出状态表示搜索是否成功
-b 打印匹配行距文件头部的偏移量,以字节为单位
-o 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位

 

参考实例

 

在压缩文件/root/linuxcool.zip中搜索字符:

 

[root@linuxcool ~]# zipgrep linuxcool /root/linuxcool.zip

 

匹配要搜索的整个词字符:

 

[root@linuxcool ~]# zipgrep -w test linuxcool.zip

 

显示要搜索字符的行号:

 

[root@linuxcool ~]# zipgrep -n test linuxcool.zip

 

 

zipnote命令 显示压缩包注释内容

 

zipnote 命令可用于从 zip 归档中提取注释或添加注释。要显示注释,只需在命令前面加上归档名称即可,如果之前未添加任何注释。

 

语法格式:zipnote [参数]

 

常用参数:

 

-w 从stdin向zipfile写入注释
-b 使用临时zip文件的路径
-q 禁止显示某些信息性消息

 

参考实例

 

显示linuxcool.zip压缩文件的注释内容:

 

[root@linuxcool ~]# zipnote linuxcool.zip

 

使用zipnote更改files.zip中的注释,首先需要将zipnote的输出捕获到文件中,让我们将输出重定向到名为comments.txt的文件:

 

[root@linuxcool ~]# zipnote files.zip> comments.txt

 

使用-w参数,从stdin向zipfile写入注释:

 

[root@linuxcool ~]# zipnote -w files.zip < comments.txt

 

 

zless命令 查看zip压缩文件

 

使用zless命令可以查看zip压缩文件

 

语法格式:zless [文件名]

 

参考实例

 

查看zip压缩文件/root/a.zip:

 

[root@linuxcool ~]# zless /root/a.zip

 

 

zmore命令 查看压缩文件

 

使用zmore命令可以查看gzip、zip、compress压缩文件。

 

语法格式:zmore [文件名]

 

参考实例

 

查看压缩文件/root/a.gz:

 

[root@linuxcool ~]# zmore /root/a.gz

 

 

 


2:文档编辑

 

 

 

cat命令 在终端设备上显示文件内容

 

Linux系统中有很多个用于查看文件内容的命令,每个命令又都有自己的特点,比如这个cat命令就是用于查看内容较少的纯文本文件的。cat这个命令也很好记,因为cat在英语中是“猫”的意思,小猫咪是不是给您一种娇小、可爱的感觉呢?

注意:当文件内容较大时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C(中断)键则可以终止该命令的执行。或者对于大文件,干脆用more命令吧!

语法格式:cat [参数] [文件]

常用参数:

-n 显示行数(空行也编号)
-s 显示行数(多个空行算一个编号)
-b 显示行数(空行不编号)
-E 每行结束处显示$符号
-T 将TAB字符显示为 ^I符号
-v 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
-e 等价于”-vE”组合
-t 等价于”-vT”组合
-A 等价于 -vET组合
--help 显示帮助信息
--version 显示版本信息

参考实例

查看文件的内容:

[root@linuxcool ~]# cat filename.txt

查看文件的内容,并显示行数编号:

[root@linuxcool ~]# cat -n filename.txt

查看文件的内容,并添加行数编号后输出到另外一个文件中:

[root@linuxcool ~]# cat -n linuxcool.log > linuxprobe.log 

清空文件的内容:

[root@linuxcool ~]# cat /dev/null > /root/filename.txt

持续写入文件内容,碰到EOF符后结束并保存:

[root@linuxcool ~]# cat > filename.txt <<EOF
> Hello, World
> Linux!
> EOF

将软盘设备制作成镜像文件:

[root@linuxcool ~]# cat /dev/fd0 > fdisk.iso

 


cdparanoia命令 翻录CD文件

 

cdparanoia命令用于翻录CD文件。

cdparanoia翻录工具通常被认为是可用于翻录CD的最佳工具。它直接从CD中切割数据,没有模拟步骤,并且还很好地报告在翻录时感觉到的任何抖动,因此您知道您的CD撕裂尽可能接近原始。

语法格式:cdparanoia [参数]

常用参数:

-B 强制将每首曲目放到一个单独的文件
1- 从第一首曲目到最后一首
2- 从音乐CD上“刮写”除了第一道音轨之外的所有音轨
数字 以1~16x的速度刻录

参考实例

安装cdparanoia:

[root@linuxcool ~]# apt-get install cdparanoia

按4x的速度“刮写”所有的音轨,每个音轨存为不同的*.wav文件:

[root@linuxcool ~]# cdparanoia -S 4 -B "1-"

从音乐CD上“刮写”除了第一道音轨之外的所有音轨:

[root@linuxcool ~]# cdparanoia -B "2-"


cdrdao命令 刻录影像到光盘

 

cdrdao命令用来刻录影像到光盘。用来向您的 CD-R或CD-RW写数据。

需要有支持SCSI和”generic”SCSI的Linux核心,不用担心您的CD-R或CD-RW是ATAPI/IDE接口,只要把 SCSI emulation(SCSI仿真)编译进您的Linux即可。如果您手中的Linux是一个正式发行的Distributed版本,如 蓝点(BluePoint)、红旗(Red-Flag)等,那么您就可以跳过编译核心这一步。

启动Linux,启动时仍然需要加入”/dev/node=ide-scsi”参数,这是ATAPI/IDE接口的CD-R或CD-RW打开SCSI仿真模 式所必须的。

语法格式:cdrdao [参数]

常用参数:

–scanbus 扫描光驱挂在哪个设备上面
–write 写入
--device 光驱位置

参考实例

扫描光驱挂在哪个设备上面:

[root@linuxcool ~]# cdrdao scanbus

把bin文件写入光盘:

[root@linuxcool ~]# cdrdao write --device ATA:1,1,0 vcd.toc

将CD复制到硬盘中以data.bin文件存放:

[root@linuxcool ~]# cdrdao read -cd --device ATA:1,1,0 --buffers 64 --driver generic-mmc-raw --read-raw vcd.toc

为CD创建一个指定的内容目录表:

[root@linuxcool ~]# cdrdao read -toc --device ATA:1,1,0 --buffers 64 --driver generic-mmc-raw --read-raw vcd.toc


colrm命令 过滤指定列

 

colrm命令的英文全称是“column remove”,即意为删除列,功能是从标准输入设备读取数据,转而输出到标准输出设备,如果不加任何参数,则该指令不会过滤任何一列。

语法格式: colrm [开始列数编号<结束列数编号>]

常用参数:

开始列数编号 指定要删除的列的起始编号
结束列数编号 指定要删除的列的结束编号,有时候这个参数可以省略

参考实例

删除第4 列之后的所有内容 :

[root@linuxcool ~]# colrm 4

删除第4列到第6列的内容 :

[root@linuxcool ~]# colrm 4 6


column命令 输入格式化为多个列

 

column命令的作用是将其输入格式化为多个列。在列之前填充行。输入可以来自文件,或默认情况下来自标准输入。除非使用-e选项,否则将忽略空行。

语法格式: column [参数][文件]

-s sep 指定一组字符,用于分隔-t选项的列
-t 确定输入包含的列数并创建表
-n 禁用将多个相邻分隔符合并为单个分隔符行为
-c columns 输出格式化为显示columns列宽
-x 在填充行之前填充列
-e 不要忽略空白行

参考实例

指定列的分隔标志为数字3:

[root@linuxcool ~]# echo 12312312312312312321312321 | column -s 3 -t
12 12 12 12 12 12 21 12 21


col命令 用于过滤控制字符

 

col命令的英文全称是“colation”,其中文释义就是“过滤”。该命令是一个标准输入文本过滤器,它从标注输入设备读取文本内容,并把内容显示到标注输出设备。 在许多UNIX说明文件里,都有RLF控制字符。当我们运用shell特殊字符”>”和”>>”,把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col指令则能有效滤除这些控制字符。

语法格式:col [参数]

常用参数:

-b 过滤掉所有的控制字符,包括RLF和HRLF
-f 滤除RLF字符,但允许将HRLF字符呈现出来
-x 以多个空格字符来表示跳格字符
-l<缓冲区列数> 预设的内存缓冲区有128列,您可以自行指定缓冲区的大小

参考实例

将man命令的帮助文档保存为man_help,使用-b 参数过滤所有控制字符:

[root@linuxcool ~]# man man | col-b > man_help  

将man的说明文件转存为纯文本文件并过滤掉所有控制字符 :

[root@linuxcool ~]# man col | col -b > file

利用 cat -A 显示出所有特殊按键,最后以 col 将 转成空白:

[root@linuxcool ~]# cat -A /etc/man.config

将 col 的 man page 转存成为 /root/col.man 的纯文本档:

[root@linuxcool ~]# man col | col -b > /root/col.man


comm命令 比较两个已排过序的文件

 

comm命令会一列列地比较两个已排序文件的差异,并将其结果显示出来,如果没有指定任何参数,则会把结果分成3行显示:第1行仅是在第1个文件中出现过的列,第2行是仅在第2个文件中出现过的列,第3行则是在第1与第2个文件里都出现过的列。若给予的文件名称为”-“,则comm指令会从标准输入设备读取数据。

语法格式:[参数] [文件1][文件2]

-1  不显示只在第1个文件里出现过的列
-2 不显示只在第2个文件里出现过的列
-3 不显示只在第1和第2个文件里出现过的列
–help 在线帮助
–version 显示版本信息

参考实例

对比文件filename1.txt和filename2.txt:

[root@linuxcool ~]# comm filename1.txt filename2.txt 

打印两个文件的交集,需要删除第一列和第二列:

[root@linuxcool ~]# comm filename1.txt filename2.txt -1 -2

打印出两个文件中不相同的行,需要删除第三列:

[root@linuxcool ~]# comm filename1.txt filename2.txt -3 | sed 's/^\t//'

相较于filename2.txt,filename1.txt的差集 :

[root@linuxcool ~]# comm filename1.txt filename2.txt -2 -3

相较于filename1.txt,filename2.txt的差集 :

[root@linuxcool ~]# comm filename2.txt filename1.txt -2 -3


crudini命令 操纵ini文件

 

crudini 是 Pádraig Brady 用 Python 开发的、用来对配置文件(即ini文件)进行编辑的工具。crud是4个单词的首字母简写,即create、read、update和delete,中文译为“增删改查”。这个是数据的最常见的4类操作方法。有些软件的配置文件采用的是ini格式,如php.ini。这样的配置文件往往会成若干个段落。段落以[default]之类的格式标识。具体的配置条目则为“datadir=/var/lib/data”形式。

语法格式: crudini [参数] [文件]

常用参数:

--format=FMT 为--get 使用,选择输出格式。格式有sh,ini,lines
--inplace 锁定并写入文件, 比默认的替换有更少的限制
--list 为--set和--del,更新一个列表(集合)的值
--list-sep=STR 使用自定义的字符代替默认的逗号
--output=FILE 将输出写入文件。’-“表示标准输出”
--verbose 在错误输出上指出是否进行了更改

参考实例

config_file 代表要操作的文件名,section 表示变量所在的部分,如以下配置文件:

 [DEFAULT]
 user = admin
 passwd = admin
 port = 8088
 [URL]
 client = 127.0.0.1:8088
 admin = 127.0.0.1:8080

section 则表示了以上配置文件中的[DEFAULT] 和 [URL] ,在命令中不需要加中括号[],param 则如user ,passwd,client 等。

添加或更新一个变量:

[root@linuxcool ~]# crudini --set config_file section parameter value

更新一个已存在的变量:

[root@linuxcool ~]# crudini --set --existing config_file section parameter value

删除一个变量:

[root@linuxcool ~]# crudini --del config_file section parameter

删除一个段:

[root@linuxcool ~]# crudini --del config_file section

获取一个值:

[root@linuxcool ~]# crudini --get config_file section parameter

获取一个不在段里面的值:

[root@linuxcool ~]# crudini --get config_file '' parameter

获取一个段:

[root@linuxcool ~]# crudini --get config_file section

将linuxcool.ini配置文件合并到linuxprobe.ini中:

[root@linuxcool ~]# crudini --merge linuxprobe.ini < linuxcool.ini


csplit命令 分割文件

 

csplit命令的英文全称是“context split”,该命令用于将一个大文件分割成小的碎片,并且将分割后的每个碎片保存成一个文件。碎片文件的命名类似“xx00”,“xx01”。csplit命令是split的一个变体,split只能够根据文件大小或行数来分割,但csplit能够根据文件本身特点来分割文件。

语法参数:csplit [参数]

常用参数:

-b<输出格式>或--suffix-format=<输出格式> 预设的输出格式其文件名称为xx00,xx01等,用户可以通过改变<输出格式>来改变输出的文件名
-f<输出字首字符串>或--prefix=<输出字首字符串> 预设的输出字首字符串其文件名为xx00,xx01等,如果制定输出字首字符串为“hello”,则输出的文件名称会变成hello00,hello、01……
-k或--keep-files 保留文件,就算发生错误或中断执行,与不能删除已经输出保存的文件
-n<输出文件名位数>或--digits=<输出文件名位数> 预设的输出文件名位数其文件名称为xx00,xx01……如果用户指定输出文件名位数为“3”,则输出的文件名称会变成xx000,xx001等
-q或-s或--quiet或--silent 不显示指令执行过程
-z或--elide-empty-files 删除长度为0 Byte文件。

参考实例

将文本文件filename以第 2 行为分界点切割成两份:

[root@linuxcool ~]# csplit filename 2

将文本文件filename以120行为分界点切割成2份,并指定输出文件名的位数为3:

[root@linuxcool ~]# csplit -n 3 filename 120

将文本文件textfile以120行为分界点切割成2份,并指定输出文件名的前缘为fileName位数为3:

[root@linuxcool ~]# csplit -f fileName testfile 120 

将文件 filename 以10行为单位分割8次,并指定输出文件名的格式 :

[root@linuxcool ~]# csplit -b "myfile%o% filename 10 {8} 

将文本文件 filename 以每20行为单位分割:

[root@linuxcool ~]# csplit filename 20 {*} 

把文件以字符串”Chapter X”为分界符,分成两部分:

[root@linuxcool ~]# csplit filename /"Chapter X"/  


db_load命令 生成db数据库

 

db_load命令的作用是将用户信息文件转换为数据库并使用 hash 加密,如果需要保存虚拟帐号和密码的文本文件且不让被系统帐号直接调用,我们就需要使用db_load 命令生成db数据库。

语法格式:db_load [参数] [文件]

常用参数:

-t hash使用hash码加密
-f 指定包含用户名和密码文本文件。此文件格式要示:奇数行用户名、偶数行密码

参考实例

新建一个文件users.txt 把用户名密码放入其中:

[root@linuxcool ~]# db_load -T -t hash -f /users.txt /users.db

指定数据库类型为btree,指定数据库环境主目录:

[root@linuxcool ~]# db_load -T -t btree -h /root -f /users.txt /users.db

数据库为recno把用户名密码放入vsftpd_login.db:

[root@linuxcool ~]# db_load -T -t recno -f /etc/vsftpd/logins.txt /etc/vsftd/vsftpd_login.db


echo命令 输出字符串或提取Shell变量的值

 

echo命令用于在终端设备上输出字符串或变量提取后的值,这是在Linux系统中最常用的几个命令之一,但操作却非常简单。

人们一般使用在变量前加上$符号的方式提取出变量的值,例如:$PATH,然后再用echo命令予以输出。或者直接使用echo命令输出一段字符串到屏幕上,起到给用户提示的作用。

语法格式:echo [参数] [字符串]

常用参数:

-n 不输出结尾的换行符
-e “\a” 发出警告音
-e “\b” 删除前面的一个字符
-e “\c” 结尾不加换行符
-e “\f” 换行,光标扔停留在原来的坐标位置
-e “\n” 换行,光标移至行首
-e “\r” 光标移至行首,但不换行
-E 禁止反斜杠转移,与-e参数功能相反
—version 查看版本信息
--help 查看帮助信息

参考实例

输出一段字符串:

[root@linuxcool ~]#  echo "LinuxCool.com" 
LinuxCool.com

输出变量提取后的值:

[root@linuxcool ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

对内容进行转义,不让$符号的提取变量值功能生效:

[root@linuxcool ~]# echo \$PATH
$PATH

结合输出重定向符,将字符串信息导入文件中:

[root@linuxcool ~]# echo "It is a test" > linuxcool

使用反引号符执行命令,并输出其结果到终端:

[root@linuxcool ~]# echo `date`

输出带有换行符的内容:

[root@linuxcool ~]# echo -e "a\nb\nc"
a
b
c

输出信息中删除某个字符,注意看数字3消失了:

[root@linuxcool ~]# echo -e "123\b456" 
12456


ed命令 文本编辑

 

ed是Linux中功能最简单的文本编辑程序,一次仅能编辑一行而非全屏幕方式的操作。

ed命令并不是一个常用的命令,一般使用比较多的是vi 指令。但ed文本编辑器对于编辑大文件或对于在shell脚本程序中进行文本编辑很有用。

语法格式:ed [参数]

常用参数:

-G 提供回兼容的功能
-p 指定ed在command mode的提示字符
-s 不执行开启文件时的检查功能
--help  显示帮助信息
--version  显示版本信息

参考实例

以下是一个 Linux ed 完整实例解析:

[root@linuxcool ~]# ed  


expr命令 命令行计数器

 

expr命令的英文全称是“expression”,即是表达式的意思,作用是一个命令行的计数器,常用于在UNIX/LINUX系统中求表达式变量的值,一般用于整数值,也可用于字符串。

语法格式:expr [表达式]

常用参数:

空格 隔开每个项
\(反斜杠) 放在 shell 特定的字符前面
“”(引号) 对包含空格和其他特殊字符的字符串要用引号括起来

参考实例

计算字串长度:

[root@linuxcool ~]# expr length “this is a test”  
14

抓取字串:

[root@linuxcool ~]# expr substr “this is a test” 3 5 
is is

抓取第一个字符数字串出现的位置:

[root@linuxcool ~]# expr index "sarasara" a 
2

整数运算:

[root@linuxcool ~]# expr 14 % 9
5
[root@linuxcool ~]# expr 10 + 10
20
[root@linuxcool ~]# expr 1000 + 900
1900
[root@linuxcool ~]# expr 30 / 3 / 2
5
[root@linuxcool ~]# expr 30 * 3
expr: Syntax error
[root@linuxcool ~]# expr 30 /* 3
90

注意:使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义

使用expr进行四则运算:

[root@linuxcool ~]# expr \( 10 + 10 \) \* 2 + 100 
140


fmt命令 编排文本文件

 

fmt命令会从指定的文件里读取内容,将其依照指定格式重新编排后,输出到标准输出设备。若指定的文件名为”-“,则fmt指令会从标准输入设备读取数据。

语法格式:fmt [参数] [文件]

常用参数:

-c 每段前两列缩排
-s 只拆开字数超出每列字符数的列,但不合并字数不足每列字符数的列
-t 每列前两列缩排,但第1列和第2列的缩排格式不同
-u 每个字符之间都以一个空格字符间隔,每个句子之间则两个空格字符分隔
-w 设置每列的最大字符数

参考实例

重排指定文件。如文件file共5行文字,可以通过命令对该文件格式进行重排:

[root@linuxcool ~]# fmt file 

将文件file重新排成85 个字符一行:

[root@linuxcool ~]# fmt -w 85 file

让fmt突出显示第一行:

[root@linuxcool ~]# fmt -t file

用fmt拆分长行:

[root@linuxcool ~]# fmt -s file

在单词与单词之间,句子之间用空格分开:

[root@linuxcool ~]# fmt -u file


fold命令 限制文件列宽

 

fold命令会从指定的文件里读取内容,将超过限定列宽的列加入增列字符后,输出到标准输出设备。若不指定任何文件名称,或是所给予的文件名为”-“,则fold指令会从标准输入设备读取数据。

语法格式:fold [参数] [文件]

常用参数:

-b 以Byte为单位计算列宽,而非采用行数编号为单位
-s 以空格字符作为换列点
-w 设置每列的最大行数
--help 在线帮助
--version 显示版本信息

参考实例

将一个名为testfile 的文件的行折叠成宽度为30:

[root@linuxcool ~]# fold -w 30 file

以空格字符作为换列点:

[root@linuxcool ~]# fold -s file

以Byte为单位计算列宽,而非采用行数编号为单位:

[root@linuxcool ~]# fold -b file


gawk命令 模式扫描与处理语言

 

gawk是Unix中原始awk程序的GNU版本,强大之处在于可以写脚本来读取文本行的数据,然后处理并显示数据。

语法格式:gawk [参数]

常用参数:

-f 从文件程序文件读取AWK程序源,而不是从第一个命令行参数。可以使用多个-f(或--file)选项
-F 指定描绘一行中数据字段的文件分隔符
-v 定义gawk程序中使用的变量和默认值
-mr 指定数据文件中的最大记录大小

参考实例

命令行读取程序脚本:

[root@linuxcool ~]# gawk '{print "hello world"}'

指定描绘一行中数据字段的文件分隔符:

[root@linuxcool ~]# gawk -F: '{print $1}' /etc/passwd


gedit命令 GNOME桌面的文本编辑器

 

gedit命令是GNOME桌面环境的官方文本编辑器,尽管gedit旨在简化和易用,但它是功能强大的通用文本编辑器;它可以用来创建和编辑各种文本文件。

gedit具有灵活的插件系统,可用于向gedit本身动态添加新的高级功能。

语法格式:gedit [参数]

常用参数:

--list-encodings 显示可使用的编码选项列表
--encoding=编码 设置打开命令行中列出的文件时使用的字符编码
--new-window 在已存在的gedit实例中新建一个最上层窗口
--new-document 在已存在的 gedit 实例中新建一个文档
-w 以独占方式打开文件直到文件关闭
-s 以独立模式运行gedit

参考实例

显示可使用的编码选项列表:

[root@linuxcool ~]# gedit --list-encodings

设置打开命令行中列出的文件时使用的字符编码:

[root@linuxcool ~]# gedit --encoding=GB2312

在已存在的gedit实例中新建一个最上层窗口:

[root@linuxcool ~]# gedit --new-window

以独立模式运行gedit:

[root@linuxcool ~]# gedit -s


genisoimage命令 创建映像文件

 

genisoimage命令用于创建ISO 9660映像文件。

genisoimage可将指定的目录与文件做成ISO 9660格式的映像文件,以供刻录光盘。

语法格式:genisoimage [参数]

常用参数:

-r 使用Rock Ridge Extensions,并开放全部文件的读取权限
-J 使用Joliet格式的目录与文件名称
-o 指定映像文件的名称
-sysid  指定光盘的系统ID

参考实例

安装genisoimage:

[root@linuxcool ~]# apt-get install genisoimage

将/home/test目录下的文件转换为光盘影像文件:

[root@linuxcool ~]# genisoimage -o testfile.iso /home/test

显示帮助信息:

[root@linuxcool ~]# genisoimage -help


grep命令 强大的文本搜索工具

 

grep是“global search regular expression and print out the line”的简称,意思是全面搜索正则表达式,并将其打印出来。这个命令可以结合正则表达式使用,它也是linux使用最为广泛的命令。

grep命令的选项用于对搜索过程的补充,而其命令的模式十分灵活,可以是变量、字符串、正则表达式。需要注意的是:一当模式中包含了空格,务必要用双引号将其引起来。

linux系统支持三种形式的grep命令,大儿子就是grep,标准,模仿的代表。二儿子兴趣爱好多-egrep,简称扩展grep命令,其实和grep -E等价,支持基本和扩展的正则表达式。小儿子跑的最快-fgrep,简称快速grep命令,其实和grep -F等价,不支持正则表达式,按照字符串表面意思进行匹配。

语法格式: grep [参数]

常用参数:

-i 搜索时,忽略大小写
-c 只输出匹配行的数量
-l 只列出符合匹配的文件名,不列出具体的匹配行
-n 列出所有的匹配行,显示行号
-h 查询多文件时不显示文件名
-s 不显示不存在、没有匹配文本的错误信息
-v 显示不包含匹配文本的所有行
-w 匹配整词
-x 匹配整行
-r 递归搜索
-q 禁止输出任何结果,已退出状态表示搜索是否成功
-b 打印匹配行距文件头部的偏移量,以字节为单位
-o 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位

参考实例

支持多文件查询并支持使用通配符:

[root@linuxcool ~]# grep zwx file_* /etc/hosts
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
file_2:zwx
file_4:dkfjlzwxejfkje
file_4:zwx djfkdjf
file_4:zwxedkfgj

输出匹配字符串行的数量:

[root@linuxcool ~]$ grep -c zwx file_*
file_1:2
file_2:1
file_3:0

列出所有的匹配行,并显示行号:

[root@linuxcool ~]# grep -n zwx file_*
file_1:1:zwx
file_1:4:zwx
file_1:10:zwxddkjflkdjfdlkfjlsdkj
file_2:2:zwx
file_4:3:dkfjlzwxejfkje
file_4:4:zwx djfkdjf
file_4:5:zwxedkfgj

显示不包含模式的所有行:

[root@linuxcool ~]# grep -vc zwx file_*
file_1:7
file_2:4
file_3:5
file_4:2

不再显示文件名:

[root@linuxcool ~]# grep -h zwx file_*
zwx
zwx
zwxddkjflkdjfdlkfjlsdkj
zwx
dkfjlzwxejfkje
zwx djfkdjf
zwxedkfgj

只列出符合匹配的文件名,不列出具体匹配的行:

[root@linuxcool ~]# grep -l zwx file_*
file_1
file_2
file_4

不显示不存在或无匹配的文本信息:

[root@linuxcool ~]# grep  -s zwx file1 file_1
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
[root@linuxcool ~]# grep zwx file1 file_1
grep: file1: No such file or directory
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj

递归搜索,不仅搜索当前目录,还搜索子目录:

[root@linuxcool ~]# grep -r zwx file_2 *
file_2:zwx
anaconda-ks.cfg:user --name=zwx --gecos="zwx"
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
file_2:zwx
file_4:dkfjlzwxejfkje
file_4:zwx djfkdjf
file_4:zwxedkfgj
initial-setup-ks.cfg:user --name=zwx --gecos="zwx"

匹配整词,以字面意思去解释他,相当于精确匹配:

[root@linuxcool ~]# grep zw* file_1
zwx
zwx
zdkfjeld
zw
ze
zwxddkjflkdjfdlkfjlsdkj
[root@linuxcool ~]# grep -w zw* file_1
zw

匹配整行,文件中的整行与模式匹配时,才打印出来:

[root@linuxcool ~]# grep -x zwx file_*
file_1:zwx
file_1:zwx
file_2:zwx

不输出任何结果,已退出状态表示结果:

 [root@linuxcool ~]# grep -q zwx file_1
[root@linuxcool ~]# echo $?
0
[root@linuxcool ~]# grep -q zwx file_5
[root@linuxcool ~]# echo $?
1
[root@linuxcool ~]# grep -q zwx file5
grep: file5: No such file or directory
[root@linuxcool ~]# echo $?
2

查找一个文件中的空行和非空行:

[root@linuxcool ~]# grep -c ^$ file_1
4
[root@linuxcool ~]# grep -c ^[^$] file_1
15

匹配任意或重复字符用“.”或“*”符号来实现:

[root@linuxcool ~]# grep ^z.x file_1
zwx
zwx
zwxddkjflkdjfdlkfjlsdkj
[root@linuxcool ~]# grep ^z* file_6
zwx
dfkjd

zzdfjkd
zz dfdww
haha


head命令 显示文件开头内容

 

head命令以行为单位,取文件的内容,后面不接参数时默认打印前10行。

语法格式:head [参数] [文件]

常用参数:

-n 后面接数字,代表显示几行的意思
-c 指定显示头部内容的字符数
-v 总是显示文件名的头信息
-q 不显示文件名的头信息

参考实例

显示前3行文件内容:

[root@linuxcool ~]# head -n 3 install.log
Installing libgcc-4.4.7-23.el6.x86_64
warning: libgcc-4.4.7-23.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Installing setup-2.8.14-23.el6.noarch

显示文件名信息,并显示文件前两行:

[root@linuxcool ~]# head -v -n 2 test.txt 
==> test.txt <==
hello world
hello linuxcool

显示文件前5个字符:

[root@linuxcool ~]# head -c 5 test.txt 
hello


hexdump命令 显示文件十六进制格式

 

hexdump是linux下的一个二进制文件查看工具,它可以将二进制文件转换为ASCII、八进制、十进制、十六进制格式进行查看。

语法格式: hexdump [参数] [文件]

常用参数:

-n length 只格式化输入文件的前length个字节
-C 输出规范的十六进制和ASCII码
-b 单字节八进制显示
-c 单字节字符显示
-d 双字节十进制显示
-o 双字节八进制显示
-x 双字节十六进制显示
-s 从偏移量开始输出
-e 指定格式字符串,格式字符串包含在一对单引号中
-v 显示所有输入数据

参考实例

查看测试文件内容:

[root@linuxcool ~]# hexdump testfile

以字节方式查看:

[root@linuxcool ~]# hexdump -C testfile -s skip -n number

以字节方式查看所有文件内容:

[root@linuxcool ~]# hexdump -Cv testfile


ispell命令 用于拼写检查程序

 

ispell预设会使用/usr/lib/ispell/english.hash字典文件来检查文本文件。若在检查的文件中找到字典没有的词汇,ispell会建议使用的词汇,或是让你将新的词汇加入个人字典。

语法格式: ispell [参数]

常用参数:

-a 当其他程序输出送到ispell时,必须使用此参数
-A 读取到”&Include File&”字符串时,就去检查字符串后所指定文件的内容
-b 产生备份文件,文件名为.bak
-B 检查连字错误
-C 不检查连字错误
-d 指定字典文件
-l 从标准输入设备读取字符串,结束后显示拼错的词汇
-L 指定内文显示的行数
-m 自动考虑字尾的变化
-M 进入ispell后,在画面下方显示指令的按键
-n 检查的文件为noff或troff的格式
-N 进入ispell后,在画面下方不显示指令的按键
-p 指定个人字典文件
-P 不考虑字尾变化的情形
-S 不排序建议取代的词汇
-t 检查的文件为TeX或LaTeX的格式
-V 非ANSI标准的字符会以”M-^”的方式来显示
-w 检查时,特别挑出含有指定的字符
-W 不检查指定长度的词汇
-x 不要产生备份文件

参考实例

检查testfile文件:

[root@linuxcool ~]# ispell testfile 

文件testfile中有拼写错误,对该文件进行修改后需备份文件:

[root@linuxcool ~]# ispell -b testfile


jed命令 编辑文本文件

 

jed命令用于编辑文本文件。 jed是以Slang所写成的程序,适合用来编辑程序原始代码。

语法格式:jed [参数] [文件]

常用参数:

-2 显示上下两个编辑区
-batch 以批处理模式来执行
-g 移到缓冲区中指定的行数
-i 将指定的文件载入缓冲区
-s 查找并移到指定的字符串

参考实例

编辑源码文件,默认会以彩色高亮的方式显示程序的语法:

[root@linuxcool ~]# jed main.c

以批处理模式来执行testfile文件:

[root@linuxcool ~]# jed -batch file

将指定的文件载入缓冲区:

[root@linuxcool ~]# jed -i file

移到缓冲区中指定的行数:

[root@linuxcool ~]# jed -g 2 file

查找并移到指定的字符串:

[root@linuxcool ~]# jed -s "string" file

 


join命令 连接两个文件

 

join的连接操作简言之就是将两个具有相同域的纪录给挑选出来,再将这些纪录所有的域放到一行。

注意:join在对两个文件进行连接时,两个文件必须都是按照连接域排好序的,按其他域排序是无效的。

语法格式:join [参数] [文件1] [文件2]

常用参数:

-a1或-a2 除了显示共同域的纪录之外,-a1显示第一个文件没有共同域的纪录,-a2显示第二个文件中没有共同域的纪录
-i 忽略大小写
-o 设置结果显示的格式
-t 改变域的分隔符
-v1或-v2 不显示共同域的纪录之外,-v1显示第一个文件没有共同域的纪录,-v2显示第二个文件中没有共同域的纪录
-1或-2 -1用来设置文件1连接的域,-2用来设置文件2连接的域

参考实例

将两个文件的具有共同域的纪录连接在一起:

[root@linuxcool ~]# cat file.db 
A li:20:men:anhui
B wang:21:women:jiangsu
C zhang:22:men:anhui
D liu:23:women:Shanghai
E chen:23:women:Hefei
[root@linuxcool ~]# cat file_hobby.db
A li:Song
B wang:shopping
C zhang:pingpong
D liu:chess
E Wang:reading
[root@linuxcool ~]# join -t: file.db file_hobby.db
A li:20:men:anhui:Song
B wang:21:women:jiangsu:shopping
C zhang:22:men:anhui:pingpong
D liu:23:women:Shanghai:chess

-a1还显示第一个文件中没有共同域的纪录,-a2则显示第二个:

[root@linuxcool ~]# join -t: -a1 file.db file_hobby.db
A li:20:men:anhui:Song
B wang:21:women:jiangsu:shopping
C zhang:22:men:anhui:pingpong
D liu:23:women:Shanghai:chess
E chen:23:women:Hefei
[root@linuxcool ~]# join -t: -a2 file.db file_hobby.db
A li:20:men:anhui:Song
B wang:21:women:jiangsu:shopping
C zhang:22:men:anhui:pingpong
D liu:23:women:Shanghai:chess
E Wang:reading

设置指定格式的域来显示出来(将具有共同纪录的域按照姓名+性别+爱好的格式显示出来):

[root@linuxcool ~]# join -t: -o1.1 1.3 2.2 file.db file_hobby.db 
A li:men:Song
B wang:women:shopping
C zhang:men:pingpong
D liu:women:chess


let命令 执行一个或多个表达式

 

let命令是bash中用于计算的工具,用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量。如果表达式中包含了空格或其他特殊字符,则必须引起来。

语法格式: let [参数]

参考实例

自加操作:

[root@linuxcool ~]# let no++ 

自减操作:

[root@linuxcool ~]# let no--


look命令 查询单词

 

look指令用于英文单字的查询。您仅需给予它欲查询的字首字符串,它会显示所有开头字符串符合该条件的单字。

语法格式:look [参数] [字符串] [文件]

常用参数:

-a 使用另一个字典文件web2,该文件也位于/usr/dict目录下
-d 只对比英文字母和数字,其余一慨忽略不予比对
-f 忽略字符大小写差别。
-t <字尾字符串> 设置字尾字符串

参考示例

查询file文件中以L开头的行:

[root@linuxcool ~]# cat file 
LINUX!
Linux is a free unix-type opterating system.
This is a linux testfile!
Linux test
[root@linuxcool ~]# look L file
LINUX!
Linux is a free unix-type opterating system.


make命令 编辑内核或模块

 

make命令是GNU的工程化编译工具,用于编译众多相互关联的源代码文件,还可以编辑内核或模块,以实现工程化的管理,提高开发效率。

当make命令第一次执行时,它扫描Makefile找到目标以及其依赖。如果这些依赖自身也是目标,继续为这些依赖扫描Makefile建立其依赖关系,然后编译它们。一旦主依赖编译之后,然后就编译主目标。

语法格式:  make [参数]

常用参数:

-r 禁用内置的隐含规则
-B 始终无条件make所有目标
-b 忽略兼容性
-C<目录> 更改为指定目录
-L 在符号链接和目标之间使用最后的修改时间
-n 实际上不运行任何命令,只显示出来
-o<文件> 不编译指定的文件
-e 环境变量覆盖makefile
-d 显示打印调试信息
-i 从命中忽略错误
-w 显示当前目录
-t 创建目标,而不是改造它们
-p 显示make的内部数据库
-q 安静模式
-R 禁用内置变量设置
-s 不回显命令
-I<目录> 搜索指定目录中包含的makefile
-f<文件> 读取指定文件作为makefile文件
-k 当有些目标不能make下去时,继续执行
-- -debug=<标记> 显示调试信息的各种类型
-j<作业编号> 指定工作编号的作业一次完成
-l<负载> 不要启动多个任务,除非低于指定负载
-S 关闭-k
-- -no-print-directory 关闭-w,即使它被打开
-- -warn-undefined-variables 当一个未定义的变量被引用时发出警告
-W<文件> 指定目标文件

参考实例

读取指定文件作为makefile文件:

[root@linuxcool ~]# make -f my_linuxcool

为make命令提供不同的目录路径:

[root@linuxcool ~]# make -C /linuxcool/

打印调试信息:

[root@linuxcool ~]# make -d | more


mkvcdfs命令 制作vcd文件

 

mkvcdfs命令用来制作能刻录VCD的镜像文件。

需要有支持SCSI和”generic”SCSI的Linux核心,不用担心您的CD-R或CD-RW是ATAPI/IDE接口,只要把 SCSI emulation(SCSI仿真)编译进您的Linux即可。如果您手中的Linux是一个正式发行的Distributed版本,如 蓝点(BluePoint)、红旗(Red-Flag)等,那么您就可以跳过编译核心这一步。

启动Linux,启动时仍然需要加入”/dev/node=ide-scsi”参数,这是ATAPI/IDE接口的CD-R或CD-RW打开SCSI仿真模 式所必须的。

语法格式:mkvcdfs [参数]

常用参数:

文件名.mpg MPEG文件

参考实例

安装mkvcdfs命令工具包:

[root@linuxcool ~]# apt-get install vcdtools mkvcdfs 

将avi格式的视频文件转换成mkvcdfs命令识别的mpg文件:

[root@linuxcool ~]# ffmpeg -i 1.avi -target vcd 1.mpg 
[root@linuxcool ~]# ffmpeg -i 2.avi -target vcd 2.mpg
[root@linuxcool ~]# ffmpeg -i 3.avi -target vcd 3.mpg

把MPEG文件(video1.mpg~video3.mpg等3个文件)合并成2个文件:

[root@linuxcool ~]# mkvcdfs 1.mpg 2.mpg 3.mpg
Copying file vcd/20050208_1558_1.mpg Done with vcd/20050208_1558_1.mpg, got 4536 sectors Copying file vcd/20050208_1559_1.mpg Done wi
th vcd/20050208_1559_1.mpg, got 4530 sectors


mtype命令 mtools工具

 

mtype为mtools工具命令,模拟MS-DOS的type命令,可显示MS-DOS文件的内容。

语法格式: mtype [参数] [文件]

常用参数:

-s 去除8位字符码集的第一个位,使它兼容于7位的ASCII。
-t 将MS-DOS文本文件中的”换行+光标移至行首”字符转换成Linux的换行字符。

参考实例

打开名为dos.txt 的MS-DOS文件可使用如下命令:

[root@linuxcool ~]# mtype dos.txt 


nano命令 字符终端文本编辑器

 

nano是一个字符终端的文本编辑器,有点像DOS下的editor程序。它比vi/vim要简单得多,比较适合Linux初学者使用。某些Linux发行版的默认编辑器就是nano。

nano命令可以打开指定文件进行编辑,默认情况下它会自动断行,即在一行中输入过长的内容时自动拆分成几行,但用这种方式来处理某些文件可能会带来问题,比如Linux系统的配置文件,自动断行就会使本来只能写在一行上的内容折断成多行了,有可能造成系统不灵了。因此,如果你想避免这种情况出现,就加上-w选项吧。

语法格式: nano [参数] [文件]

常用参数:

-A 启用智能HOME键
-B 储存既有文件的备份
-D 用粗体替代颜色反转

参考实例

打开或新建文件:

[root@linuxcool ~]# nano test.txt

禁用自动换行:

[root@linuxcool ~]# nano -w /etc/fstab 

保存所做的修改:

[root@linuxcool ~]# Ctrl+O

要剪切一整行:

[root@linuxcool ~]# Ctrl+K

粘贴:

[root@linuxcool ~]# Ctrl+U


paste命令 合并两个文件

 

paste命令会把每个文件以列对列的方式,一列列地加以合并 ,他就是相当于把两个不同的文件内容粘贴在一起,形成新的文件。

注意:paste默认粘贴方式以列的方式粘贴,但是并不是不能以行的方式粘贴,加上-s选项就可以行方式粘贴。

语法格式: paste [参数] [文件1] [文件2]

常用参数:

-d 默认域的分隔符是空格或tab键,设置新的域分隔符
-s 将每个文件粘贴成一行
-- 从标准输入中读取数据

参考实例

将file_2和file_2粘贴成一个新的文件:

[root@linuxcool ~]# cat file_1
aaa
bbb
ccc
ddd
eee
[root@linuxcool ~]# cat file_2
AAA
BBB
CCC
DDD
EEE
[root@linuxcool ~]# paste file_1 file_2
aaa AAA
bbb BBB
ccc CCC
ddd DDD
eee EEE

设置域分隔符为:粘贴成新的文件:

[root@linuxcool ~]# paste -d: file_1 file_2
aaa:AAA
bbb:BBB
ccc:CCC
ddd:DDD
eee:EEE

将每个文件粘贴成一行:

[root@linuxcool ~]# cat file_1
aaa
bbb
ccc
ddd
eee
[root@linuxcool ~]# cat file_2
AAA
BBB
CCC
DDD
EEE
[root@linuxcool ~]# paste -d: -s file_1 file_2
aaa:bbb:ccc:ddd:eee
AAA:BBB:CCC:DDD:EEE

从标准输入中读取数据,每行显示5个文件名:

[root@linuxcool ~]# ls | paste -d" " - - - - - 
anaconda-ks.cfg dir_1 file1 file_1 file_1.db
file_2 file_3 file_4 file_5 file_6
file.db file_hobby_1 file_hobby.db file_hobby_sort.db file_sort.db
initial-setup-ks.cfg testfile


pico命令 编辑文字文件

 

pico是个简单易用、以显示导向为主的文字编辑程序,它伴随着处理电子邮件和新闻组的程序pine而来。

语法格式:pico [参数] [文件]

常用参数:

-k 预设pico在使用剪下命令时,会把光标所在的列的内容全部删除
-m 开启鼠标支持的功能,您可用鼠标点选命令列表
-v 启动阅读模式,用户只能观看,无法编辑文件的内容
-w 关闭自动换行,通过这个参数可以编辑内容很长的列
-z 让pico可被Ctrl+z中断,暂存在后台作业里

参考实例

使用pico命令来编辑file文件:

[root@linuxcool ~]# pico file

启动阅读模式,用户只能观看,无法编辑文件的内容 :

[root@linuxcool ~]# pico -v file 

对file文件关闭自动换行功能:

[root@linuxcool ~]# pico -w file 

对file文件开启鼠标支持的功能:

[root@linuxcool ~]# pico -m file

对file文件开启删除的功能:

[root@linuxcool ~]# pico -d file

 

red命令 指定文件编辑器

 

red命令的作用是可以通过读取指定文件进行编辑,red命令对输入文件的内容按行进行编辑,是行编辑器和文本编辑器。

red命令不仅可以在bash中使用,也可以在脚本文件中使用,red命令可以将整个文件的内容读入自己的缓冲区,对该副本执行指定的操作,并可选地将缓冲区写到磁盘。

注意,使用red命令编辑的时候是看不到文件内容的,一定要仔细检查输入的内容以保证其正确性,避免反复往返于编辑状态和命令行状态之间,那样会浪费大量的时间。

语法格式: red[参数] [文件]

常用参数:

a 在文件的末尾添加新内容
i 在文件的最后一行之前插入新内容
o 把文件输入的最后一行替换成新内容
. 退出编辑文件模式进入命令行模式(并没有退出编辑器)
w 保存文件
q 真正退出编辑器
-G 运行在兼容模式
-l 如果命令失败,使用0状态退出
-p<字符串> 使用指定字符串作为交互提示
-s 抑制诊断
-v 显示详细信息

参考实例

读取文件进行编辑:

[root@linuxcool ~]# red linuxcool.txt

创建一个新文件保存并查看内容:

[root@linuxcool ~]# red
a
Probably the best Linux command site
.
w linuxcool.txt
37
q
[root@linuxcool ~]# cat linuxcool.txt
Probably the best Linux command site

在文件的最后一行之前插入新内容:

[root@linuxcool ~]# red linuxcool.txt
37
-i
This is the inserted content text
.
w
71
q
[root@linuxcool ~]# cat linuxcool.txt
This is the inserted content text
Probably the best Linux command site


rgrep命令 查找文件里符合条件的字符串

 

rgrep命令的功能和grep命令类似,可查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设rgrep命令会把含有范本样式的那一列显示出来。

语法格式:rgrep [参数]

常用参数:

-? 显示范本样式与范例的说明
-B 忽略二进制的数据
-c 计算符合范本样式的列数
-D 排错模式,只列出命令搜寻的目录清单,而不会读取文件内容
-F 只读取该连接所指向的原始文件的内容
-h 特别将符合范本样式的字符串标示出来
-H 只列出符合范本样式的字符串,而非显示整列的内容
-i 忽略字符大小写的差别
-l  列出文件内容符合指定的范本样式的文件名称
-n 在显示符合坊本样式的那一列之前,标示出该列的列数编号
-N  不要递归处理
-r  递归处理,将指定目录下的所有文件及子目录一并处理
-R 此参数的效果和指定”-r”参数类似,但只主力符合范本样式文件名称的文件
-v 反转查找
-W 限制符合范本样式的字符串所在列,必须拥有的字符数
-x 只处理符合指定扩展名的文件名称的文件
--help 显示帮助信息
--version 显示版本信息

参考实例

在当前目录下查找句子中包含”Hello”字符串的文件:

[root@linuxcool ~]# rgrep Hello *  

显示范本样式与范例的说明:

[root@linuxcool ~]# rgrep -?  


rmdir命令 删除空目录

 

rmdir命令作用是删除空的目录,英文全称:“remove directory”。

注意:rmdir命令只能删除空目录。当要删除非空目录时,就要使用带有“-R”选项的rm命令。

rmdir命令的“-p”参数可以递归删除指定的多级目录,但是要求每个目录也必须是空目录。

语法格式 :  rmdir [参数] [目录名称]

常用参数:

-p 用递归的方式删除指定的目录路径中的所有父级目录,非空则报错
-- -- ignore-fail-on-non-empty 忽略由于删除非空目录时导致命令出错而产生的错误信息
-v 显示命令的详细执行过程
-- -- help 显示命令的帮助信息
-- -- version 显示命令的版本信息

参考实例

删除空目录:

[root@linuxcool ~]# rmdir dir

递归删除指定的目录树:

[root@linuxcool ~]# rmdir -p dir/dir_1/dir_2

显示指令详细执行过程:

[root@linuxcool ~]# rmdir -v dir
rmdir: 正在删除目录 'dir'
[root@linuxcool ~]# rmdir -p -v dir/dir_1/dir_2
rmdir: 正在删除目录 'dir/dir_1/dir_2
rmdir: 正在删除目录 'dir/dir_1'
rmdir: 正在删除目录 'dir_2'

显示命令的版本信息:

[root@linuxcool ~]# rmdir --version
rmdir (GNU coreutils) 8.30
Copyright (C) 2018 Free Software Foundation, Inc.
许可证 GPLv3+:GNU 通用公共许可证第 3 版或更新版本https://gnu.org/licenses/gpl.html。
本软件是自由软件:您可以自由修改和重新发布它。
在法律范围内没有其他保证。


rm命令 移除文件或目录

 

rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。 rm也是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。

语法格式:rm [参数] [文件]

常用参数:

-f 忽略不存在的文件,不会出现警告信息
-i 删除前会询问用户是否操作
-r/R 递归删除
-v 显示指令的详细执行过程

参考实例

删除前逐一询问确认:

[root@linuxcool ~]# rm -i test.txt.bz2 
rm: remove regular file `test.txt.bz2'? 

直接删除,不会有任何提示:

[root@linuxcool ~]# rm -f test.txt.bz2  

递归删除目录及目录下所有文件:

[root@linuxcool ~]# mkdir /data/log
[root@linuxcool ~]# rm -rf /data/log

删除当前目录下所有文件:

[root@linuxcool ~]# rm -rf *

清空系统中所有的文件(谨慎):

[root@linuxcool ~]# rm -rf /*


sdiff命令 以并排方式合并文件之间的差异

 

sdiff 是一个简单的命令行工具,sdiff 命令以并排方式合并FILE1和FILE2文件之间的差异。它很容易使用,并带有简单的使用选项,对比得出结果。

语法格式:sdiff [参数] file1 file2

常用参数:

-o file 互动式操作,并将结果写入到文件中
-i 忽略大小写的区别
-E 忽略由制表符宽度造成的差异
-b 忽略由空格数不同造成的差异
-W 忽略所有空白字符
-B 忽略任何因空行而造成的差异
-a 所有文件都以文本方式处理
-l 当有两行相同时只显示左栏的一行
-t 将输出中的 tab 转换成空格

参考实例

比较二个文件的不同:

[root@linuxcool ~]# sdiff -a file1 file2

忽略大小写的区别:

[root@linuxcool ~]# sdiff -i file1 file2

忽略任何因空行而造成的差异:

[root@linuxcool ~]# sdiff -B file1 file2


sed命令 处理编辑文本文件

 

Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处理、编辑文本文件。sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

语法格式:sed [参数]

常用参数:

-e或--expression=<script> 以选项中指定的script来处理输入的文本文件
-f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件
-h或--help 显示帮助
-n或--quiet或--silent 仅显示script处理后的结果
-V或--version 显示版本信息

参考实例

在file文件的第四行后添加一行,并将结果输出到标准输出:

[root@linuxcool ~]# sed -e 4a\newline file 
HELLO LINUX!   
Linux is a free unix-type opterating system.  
This is a linux testfile!  
Linux test  
newline 

将 /dir 的内容列出并且列印行号,同时删除第 2~5 行:

[root@linuxcool ~]# nl /dir | sed '2,5d'
1 root:x:0:0:root:/root:/bin/bash
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

在第二行后面加入两行字,例如 Drink tea or ….. 与 drink beer:

[root@linuxcool ~]# nl /dir | sed '2a Drink tea or ......\
> drink beer ?'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
Drink tea or ......
drink beer ?
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin

将第2-5行的内容取代成为No 2-5 number:

[root@linuxcool ~]# nl /dir | sed '2,5c No 2-5 number'
1 root:x:0:0:root:/root:/bin/bash
No 2-5 number
6 sync:x:5:0:sync:/sbin:/bin/sync

以行为单位的显示:

[root@linuxcool ~]# nl /dir | sed -n '5,7p'
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown


spell命令 建立拼写检查程序

 

spell可从标准输入设备读取字符串,结束后显示拼错的词汇。

语法格式: spell [字符串]

参考实例

检查testfile 拼写错误 :

[root@linuxcool ~]# spell testfile  


tac命令 反向列示文件内容

 

tac命令就是将文件反向输出,刚好和cat输出相反。

语法格式:tac [参数] [文件]

常用参数:

-b 在行前而非行尾添加分隔标志
-r 将分隔标志视作正则表达式来解析
-s 使用指定字符串代替换行作为分隔标志
--version 显示版本信息并退出
--help 显示此帮助信息并退出

参考实例

反向列出test.txt文件的内容:

[root@linuxcool ~]# cat test.txt 
hello world
hello linuxcool
hello linuxprobe
[root@linuxcool ~]# tac test.txt 
hello linuxprobe
hello linuxcool
hello world


tail命令 查看文件尾部内容

 

tail用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。

语法格式:tail [参数]

常用参数:


--retry
即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用

-c<N>或——bytes=<N>
输出文件尾部的N(N为整数)个字节内容

-f<name/descriptor>
--follow<nameldescript>:显示文件最新追加的内容

-F
与选项“-follow=name”和“--retry”连用时功能相同

-n<N>或——line=<N>
输出文件的尾部N(N位数字)行内容

--pid=<进程号>
与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令

--help
显示指令的帮助信息

--version
显示指令的版本信息

参考实例

显示文件file的最后10行:

[root@linuxcool ~ ]  tail file

显示文件file的内容,从第20行至文件末尾:

[root@linuxcool ~ ]  tail +20 file 

显示文件file的最后10个字符:

[root@linuxcool ~ ]  tail -c 10 file 

一直变化的文件总是显示后10行:

[root@linuxcool ~ ]  tail -f 10 file

显示帮助信息:

[root@linuxcool ~ ]  tail --help


tempfile命令 临时文件命名

 

有时候在写Shell脚本的时候需要一些临时存储数据的才做,最适合存储临时文件数据的位置就是/tmp,因为该目录中所有的内容在系统重启后就会被清空。

tempfile命令只有在基于Debian的发行版中才默认自带,比如Ubuntu,其他发行版没有这个命令。

语法格式:tempfile [参数]

常用参数:

$ 变量

参考实例

用一个加带了随机数的文件名作为临时文件命名:

[root@linuxcool ~]# temp_file_name="/tmp/file_$RANDOM"


tput命令 初始化和操作会话

 

tput命令将通过 terminfo 数据库对您的终端会话进行初始化和操作。通过使用 tput,您可以更改几项终端功能,如移动或更改光标、更改文本属性,以及清除终端屏幕的特定区域。

语法格式:tput [参数]

setb 用于设置背景颜色
setf 用于设置前景颜色

参考实例

移动光标并显示信息:

[root@linuxcool ~]# tput sc
[root@linuxcool ~]# tput cup 23 45
[root@linuxcool ~]# echo “Input from tput/echo at 23/45”
[root@linuxcool ~]# tput rc

将背景颜色更改为黄色,将前景颜色更改为红色:

[root@linuxcool ~]# tput setb 6 tput setf 4


tr命令 字符转换

 

tr的英文全称是“ transform ”,即转换的意思。该命令的作用是一种可将字符进行替换、压缩、删除,他可以将一组字符转换成另一组字符。tr他只能从标准输入中读取数据,因此,tr要么将输入文件重定向到标准输入,要么从管道读入数据。

注意:tr类似于sed命令,但是比sed简单,所以tr能实现的功能,sed都能实现。

语法格式:tr [参数] [字符串1] [字符串2]

常用参数:

-c 选定字符串1中字符集的补集,即反选字符串1的补集
-d 删除字符串1中出现的所有字符
-s 删除所有重复出现的字符序列,只保留一个

参考示例

实现大小字母的转换:

[root@linuxcool ~]# cat file_1
abc 012
def 345
ghi 678
jkl 909
[root@linuxcool ~]# tr "[a-z]" "[A-Z]" <file_1
ABC 012
DEF 345
GHI 678
JKL 909

删除file_1中的小写字母:

[root@linuxcool ~]# tr -d "[a-z]" <file_1
012
345
678
909

压缩重复的空白行:

[root@linuxcool ~]# cat file_2
AAA
BBB
CCC
DDD
EEE
[root@linuxcool ~]# tr -s "[\n]" <file_2
AAA
BBB
CCC
DDD
EEE


uniq命令 去除文件中的重复行

 

uniq命令全称是“unique”,中文释义是“独特的,唯一的”。该命令的作用是用来去除文本文件中连续的重复行,中间不能夹杂其他文本行。去除了重复的,保留的都是唯一的,也就是独特的,唯一的了。

我们应当注意的是,它和sort的区别,sort只要有重复行,它就去除,而uniq重复行必须要连续,也可以用它忽略文件中的重复行。

语法格式:uniq [参数] [文件]

常用参数:

-c 打印每行在文本中重复出现的次数
-d 只显示有重复的纪录,每个重复纪录只出现一次
-u 只显示没有重复的纪录

参考实例

删除连续文件中连续的重复行:

[root@linuxcool ~]# cat testfile 
test 30
test 30
test 30
Hello 95
Hello 95
Hello 95
Hello 95
Linux 85
Linux 85
[root@linuxcool ~]# uniq testfile
test 30
Hello 95
Linux 85

打印每行在文件中出现重复的次数:

[root@linuxcool ~]# uniq -c testfile 
3 test 30
4 Hello 95
2 Linux 85

只显示有重复的纪录,且每个纪录只出现一次:

[root@linuxcool ~]# uniq -d testfile 
test 30
Hello 95
Linux 85

只显示没有重复的纪录:

[root@linuxcool ~]# uniq -u testfile 
[root@linuxcool ~]#


view命令 可以调用vi的命令文本编辑器

 

view命令的作用是调用vi命令编辑文件,view命令只是一个连接到vi的文件,因此参数选项同vi命令。

view命令本质上是vim-R,同时view编辑器对vi设了只读标志。

语法格式 : view [参数]

常用参数:

-s 静默模式
— -cmd<命令> 加载任何vimrc文件之前执行指定命令
-R 只读模式
-v Vi模式
-e Ex模式
-y 简易模式
— — 之后只有文件名
-c<命令> 加载第一个文件之后执行指定命令
-s<脚本输入文件> 从指定脚本输入文件阅读普通模式命令
-w<脚本输出文件> 追加所有类型的命令写入脚本输出文件
-W<脚本输出文件> 写入所有类型的命令到指定脚本输出文件
+ 从文件末尾开始
+<行数> 从指定行开始
— -noplugin 不要加载插件脚本
-p<数量> 打开指定数量的标签页(带文件名)
-r<文件名> 恢复崩溃的会话
-L 等同于-r
-r 列出交换文件并退出
-u<vimrc> 熟用指定vimrc,而不是.vimrc
-T<终端> 设置使用指定终端
-o<数量> 打开指定数量的窗口
-n 不使用交换文件,只用内存
-Z 受限模式
-m 不允许修改(写入)
-b 二进制模式
-M 在文本中不允许修改

参考实例

编辑指定文件:

[root@linuxcool ~]# view /linuxcool.log

从第二行开始编辑指定文件:

[root@linuxcool ~]# view +2 /linuxcool.log

以只读模式打开指定文件:

[root@linuxcool ~]# view -R /linuxcool.log


vi命令 文本编辑器

 

vi命令是linux系统字符界面下的最常用的文本编辑器。

vi编辑器是所有linux的标准编辑器,用于编辑任何ASCⅡ文本,对于编辑源程序尤其有用。iv编辑器功能非常强大,可以对文本进行创建,查找,替换,删除,复制和粘贴等操作。

在linux系统shell提示符中输入vi和文件名后,就进入vi编辑界面。如果系统内还不存在该文件,就等于新建文件,如果系统内存在给文件,就意味着编辑该文件。

语法格式:vi [参数]

常用参数:

-s 静默模式
-- -cmd<命令> 加载任何vimrc文件之前执行指定命令
-R 只读模式
-v Vi模式
-e Ex模式
-y 简易模式
-- -- 之后只有文件名
-c<命令> 加载第一个文件之后执行指定命令
-s<脚本输入文件> 从指定脚本输入文件阅读普通模式命令
-w<脚本输出文件> 追加所有类型的命令写入脚本输出文件
-W<脚本输出文件> 写入所有类型的命令到指定脚本输出文件
+ 从文件末尾开始
+<行数> 从指定行开始
-- -noplugin 不要加载插件脚本
-p<数量> 打开指定数量的标签页(带文件名)
-r<文件名> 恢复崩溃的会话
-L 等同于-r
-r 列出交换文件并退出
-u<vimrc> 熟用指定vimrc,而不是.vimrc
-T<终端> 设置使用指定终端
-o<数量> 打开指定数量的窗口
-n 不使用交换文件,只用内存
-Z 受限模式
-m 不允许修改(写入)
-b 二进制模式
-M 在文本中不允许修改

参考实例

使用vi编辑器:

[root@linuxcool ~]# vi

编辑指定文件:

[root@linuxcool ~]# vi linuxcool.log

从第6行开始编辑指定文件:

[root@linuxcool ~]# vi +6 linuxcool.log

以只读模式打开指定文件:

[root@linuxcool ~]# vi -R linuxcool.log 

 

 

 

 

3:系统管理

 

 

 

adduser命令 创建用户

 

adduser命令来自英语“add user”,该命令用于新增使用者帐号或更新预设的使用者资料。adduser 与 useradd 指令为同一指令(经由符号连结 symbolic link)。

语法格式:adduser [参数]

常用参数:

-c 加上备注文件,备注文字会存储在 passwd 的备注参数中
-d 指定用户登录时的起始目录
-D 变更默认值
-e 设定此帐号的使用期限(格式为 YYYY-MM-DD),预设值为永久有效
-f <缓冲天数> 指定在密码过期后多少天即关闭该帐号
-g <群组> 指定用户所属的群组
-G <群组> 指定用户所属的附加群组
-m 自动建立用户的登入目录
-M 不要自动建立用户的登入目录
-n 取消建立以用户名称为名的群组
-r 建立系统帐号
-s <shell> 指定用户登入后所使用的shell
-u <uid> 指定用户ID

参考实例

建立名为linuxcool的用户账号:

[root@linuxcool ~]# adduser linuxcool

建立账号并指定有效期为2014年1月2日:

[root@linuxcool ~]# adduser -e 1/2/14 linuxcool

为添加的用户指定相应的用户组:

[root@linuxcool ~]# useradd -g root kk 

为新添加的用户指定/home目录:

[root@linuxcool ~]# useradd -d /home/myf kk  


anacron命令 定期运行命令

 

anacron命令可用于定期执行命令,频率以天为单位指定,与cron(8)不同的是,它不假定机器连续运行。因此,它可以用于每天不运行24小时的机器上,以控制通常由cron控制的每日、每周和每月作业。

语法格式:anacron [参数]

常用参数:

-f 强制执行作业,忽略时间戳
-u 只将作业的时间戳更新到当前日期,但不运行任何操作
-s 序列化作业的执行,在前一个作业完成之前,anacron不会启动新作业
-d 在此模式下,anacron将信息性消息输出到标准错误和syslog,作业的输出像往常一样通过邮件发送
-q 禁止将消息显示为标准错误,仅适用于-d参数结合使用

参考实例

测试anacron语法:

[root@linuxcool ~]# cat /etc/anacrontab

使用/root/myspool存储/etc/myanacron文件中定义的作业的所有时间戳信息:

[root@linuxcool ~]# anacron -S /root/myspool -t /etc/myanacron

使用-f参数,强制执行作业,忽略时间戳:

[root@linuxcool ~]# anacron -f /root/myspool

只将作业的时间戳更新到当前日期,但不运行任何操作:

[root@linuxcool ~]# anacron -d -u


apmsleep命令 进入暂停或待机模式,稍后唤醒

 

apmsleep命令是使计算机进入备用或者修复状态,一些计算机,特别是笔记本电脑,可以使用实时时钟(RTC)芯片从低功耗暂停模式唤醒到DRAM模式,Apmsleep可用于设置RTC中的警报时间,并进入暂停或待机模式。来自RTC的中断导致计算机唤醒。程序通过等待内核时间的跃迁来检测此事件,并成功终止。如果在一分钟内没有发生时间跃迁,或出现错误,则退出值将为非零。

语法格式:apmsleep [参数]

常用参数:

-s 进入休眠模式,关闭除内存以为的所有程序
-S 进入备用模式,关闭显示器、硬盘、CPU
-w 等待时间跳
-p 等待警告时间与实际时间匹配
-n 不调用APM BIOS 来休眠电脑,只是设置警告脑中,等待时间跳的到来
-d 输出正在进行任务的信息

参考实例

进入休眠2小时50分状态:

[root@linuxcool ~]# apmsleep +2:50

第二天就9:00前处于休眠状态:

[root@linuxcool ~]# apmsleep 9:00

进入备用2小时50分:

[root@linuxcool ~]# apmsleep -S +2:50

第二天就9:00前 处于备用状态:

[root@linuxcool ~]# apmsleep -S 9:00

输出正在进行任务的信息:

[root@linuxcool ~]# apmsleep -d


apt-get命令 安装软件

 

apt-get命令是Debian Linux发行版中的APT软件包管理工具。所有基于Debian的发行都使用这个包管理系统。deb包可以把一个应用的文件包在一起,大体就如同Windows上的安装文件。

语法格式:apt-get [参数]

常用参数:

-c 指定配置文件

参考实例

更新软件:

[root@linuxcool ~]# apt-get update

安装apache:

[root@linuxcool ~]# apt-get install httpd

安装nginx:

[root@linuxcool ~]# apt-get install nginx

卸载vsftpd:

[root@linuxcool ~]# apt-get remove vsftpd

卸载软件(删除配置文件):

[root@linuxcool ~]# apt-get –purge remove packagename 


arch命令 显示当前主机硬件架构类型

 

arch命令主要用于显示当前主机的硬件结构类型,arch命令输出的结果有:i386、i486、mips、alpha等。

此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

语法格式:arch [参数]

常用参数

-- -help 显示此命令的帮助信息
-- -version 显示命令的版本信息

参考实例

显示当前主机硬件架构类型:

[root@linuxcool ~]# arch
x86_64

查看当前arch命令版本:

[root@linuxcool ~]# arch --version
arch (GNU coreutils) 8.30
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later https://gnu.org/licenses/gpl.html.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by David MacKenzie and Karel Zak.


atq命令 显示用户待执行任务列表

 

atq命令的作用是显示系统中待执行的任务列表。

任务列表中的任务由at命令和batch命令创建,显示内容包括任务号,任务计划执行的日期时间,任务分类和提交任务的用户。

如果是root用户运行atq命令,则显示系统所有用户的任务列表,如果是普通用户运行,则显示当前用户的任务列表。

语法格式:atq [参数]

常用参数:

-V 显示版本号
-q 查询指定队列的任务

参考实例

显示所有用户的待执行任务列表:

[root@linuxcool ~]# atq

查询b队列中的待执行任务列表:

[root@linuxcool ~]# atq -q b


atrm命令 删除待执行的任务

 

atrm命令的作用是删除待执行任务队列中的指定任务。

通常,先使用atq命令查询待执行任务列表以显示任务号,再使用atrm指令删除具体任务,被删除的任务到指定时间后将不会被执行。可以在命令行中一次删除多个任务,多个任务之间用空格隔开。

语法格式:atrm [参数] [任务号]

常用参数:

-V 显示版本号
-d<任务编号> 将指定任务编号的待执行任务删除

参考实例

删除1、2、3号任务:

[root@linuxcool ~]# atrm 1 2 3

删除指定编号任务:

[root@linuxcool ~]# atrm -d 055


at命令 一次性定时计划任务

 

at命令允许指定运行脚本时间,at的守护进程atd会以后台模式运行,检查系统上的一个特殊目录来获取at命令的提交的作业。默认情况下,atd守护进程每60秒检查一次目录。有作业时会检查作业运行时间,如果与当前时间匹配,则运行此作业。

语法格式:at [参数]

常用参数:

atq 查看系统中的等待作业
-d 删除系统中的等待作业(等效于atrm命令)
-c 打印任务的内容
-q 使用指定的列队
-f 将指定文件提交等待作业
-t 以时间的形式提交运行作业

参考实例

查看系统中的等待作业:

[root@linuxcool ~]# atq

使用”at -d”或者”atrm”(二者同效)指定id来删除系统中的等待作业,id为”atq”命令输出的第一行顺序数字:

[root@linuxcool ~]# at -d 1
[root@linuxcool ~]# atrm 1 

假设存在 linuxcool.sh 脚本,立即运行:

[root@linuxcool ~]# at -f linuxcool.sh now

在25分钟之后运行 linuxcool.sh 脚本:

[root@linuxcool ~]# at -f linuxcool.sh now+25 min

在10:11运行 linuxcool.sh 脚本:

[root@linuxcool ~]#  at -f linuxcool.sh 10:11

在2019年7月27日运行 linuxcool.sh 脚本:

[root@linuxcool ~]#  at -f linuxcool.sh 07/27/2019


auditstat命令 -显示内核审计统计

 

auditstat 命令用来显示内核审计统计信息,统计用户级审计所处理的审计记录数、已被删除的审计记录数、用户进程生成的审计记录数、队列阻塞而等待处理审计数据的总次数等。

语法格式:auditstat [参数]

常用参数:

-c 统计总共的信息并显示
-n 显示当前系统配置的内核审计数
-i 每隔一段时间显示一次统计数据,其中interval是每次收集数据之间的睡眠秒数
-Z 显示所有活动区的统计数据

参考实例

显示当前系统配置的内核审计数:

[root@linuxcool ~]# auditstat -n

显示所有活动区的统计数据:

[root@linuxcool ~]# auditstat -Z

统计总共的信息并显示:

[root@linuxcool ~]# auditstat -c 100


aulastlog命令 打印最近登陆记录

 

aulastlog是一个程序,它打印出计算机的所有用户的最后一个登录名,并使用类似于lastlog命令的方式,将打印登录名、端口和上次登录时间。

如果用户从未登录,将显示消息“从未登录”而不是端口和时间。

语法格式:aulastlog [参数]

常用参数:

-u, --user 仅使用指定的登录名为用户打印最后日志记录
--stdin 使用 stdin 作为审核记录的来源

参考实例

打印linuxcool用户的登陆日志:

[root@linuxcool ~]# aulastlog -u linuxcool

从标准输入中获取登陆日志:

[root@linuxcool ~]# aulastlog --stdin

获取所有用户的登陆日志:

[root@linuxcool ~]# aulastlog


bash命令 shell脚本解释器

 

bash 是一个为GNU计划编写的Unix shell。它的名字是一系列缩写:Bourne-Again Shell — 这是关于Bourne shell(sh)的一个双关语(Bourne again / born again)。

bash是大多数Linux系统以及Mac OS X默认的shell,它能运行于大多数类Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现Windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。

语法格式:bash [参数] [文件]

常用参数

-n 检测脚本是否正确,并不执行脚本
-x 执行脚本,输出执行过程
-c bash从字符串中读入命令,如果字符串后还有变量就被设定为从$0开始的位置参数

参考实例

使用-n参数检查脚本语法时候正确:

[root@linuxcool ~]# bash -n linuxcool.sh

使用-x参数执行linuxcool.sh脚本并输出执行过程:

[root@linuxcool ~]# bash -x linuxcool.sh 
 ifconfig
 eth0: flags=4163  mtu 1500
     inet 192.168.3.21  netmask 255.255.255.0  broadcast 192.168.3.255
     inet6 fe80::20c:29ff:fe73:4b2f  prefixlen 64  scopeid 0x20
     ether 00:0c:29:73:4b:2f  txqueuelen 1000  (Ethernet)
     RX packets 1175439  bytes 578279763 (551.4 MiB)
     RX errors 0  dropped 1574  overruns 0  frame 0
     TX packets 165889  bytes 54096266 (51.5 MiB)
     TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 

 lo: flags=73  mtu 65536
         inet 127.0.0.1  netmask 255.0.0.0
         inet6 ::1  prefixlen 128  scopeid 0x10
         loop  txqueuelen 1  (Local Loopback)
         RX packets 538814  bytes 310506969 (296.1 MiB)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 538814  bytes 310506969 (296.1 MiB)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


bg命令 将作业放到后台运行

 

bg命令用于将作业放到后台运行,使前台可以执行其他任务。该命令的运行效果与在指令后面添加符号&的效果是相同的,都是将其放到系统后台执行。

语法格式:bg [参数]

常用参数:

作业标识 指定需要放到后台的作业标识号

参考实例

使用bg命令将任务号为1的任务放到后台继续执行:

[root@linuxcool ~]# bg 1

使用bg命令与在指令后面添加符号”&”的效果是一样的,使用&将find / -name password放到后台执行:

[root@linuxcool ~]# find / -name password &


bind命令 显示或设置键盘按键与其相关的功能

 

您可以利用bind命令了解有哪些按键组合与其功能,也可以自行指定要用哪些按键组合。

语法格式:bind [参数]

常用参数:

-d 显示按键配置的内容
-f<按键配置文件> 载入指定的按键配置文件
-l 列出所有的功能
-m<按键配置> 指定按键配置
-q<功能> 显示指定功能的按键
-v 列出目前的按键配置与其功能
--help 在线帮助
--vesion 显示版本信息

参考实例

显示按键组合的所有功能:

[root@linuxcool ~]# bind -l  

列出指定功能的按键和按键组合:

[root@linuxcool ~]# bind -q abort


bmodinfo命令 显示给定模块的详细信息

 

bmodinfo命令用于显示给定模块的详细信息。

语法格式:bmodinfo [参数] [模块名]

常用参数:

-a 显示模块作者
-d 显示模块的描述信息
-l 显示模块的许可信息

参考实例

显示sg模块的信息:

[root@linuxcool ~]# bmodinfo sg 

显示sg模块的作者:

[root@linuxcool ~]# bmodinfo -a sg

显示sg模块的描述信息:

[root@linuxcool ~]# bmodinfo -d sg

显示sg模块的许可信息:

[root@linuxcool ~]# bmodinfo -l sg

显示sg模块的参数信息:

[root@linuxcool ~]# bmodinfo -p sg


bootadm命令 管理引导配置

 

bootadm 命令管理启动存档,对于 x86 的启动环境,管理 GRUB(GRand Unified Bootloader)菜单。 对于x86来说,支持Legacy GRUB和GRUB2(但不是同时)。更新存档选项为用户提供了一种更新引导存档的方法,作为一种预防措施或作为恢复程序的一部分。

语法格式:bootadm [参数]

常用参数:

update-archive 更新引导归档文件
set-menu 设置缺省的引导项
list-menu 显示GRUB 菜单项
add-entry 添加菜单项

参考实例

更新引导归档文件:

[root@linuxcool ~]# bootadm update-archive

设置缺省的引导项:

[root@linuxcool ~]# bootadm set-menu default=5

显示GRUB 菜单项:

[root@linuxcool ~]# bootadm list-menu


brctl命令 以太网网桥管理

 

brctl命令用于设置、维护和检查linux内核中的以太网网桥配置。

以太网网桥是一种设备,通常用于将以太网的不同网络连接在一起,以便这些以太网对参与者显示为一个以太网。所连接的每个以太网对应于网桥中的一个物理接口。这些单独的以太网被聚集成一个更大的(“逻辑”)以太网,这个更大的以太网对应于网桥网络接口。

语法格式:brctl [参数] <bridge>

常用参数:

addbr 创建网桥
delbr 删除网桥
addif 将网卡接口接入网桥
delif 删除网桥接入的网卡接口
show 查询网桥信息
stp {on|off} 启用禁用 STP
showstp 查看网桥 STP 信息
setfd 设置网桥延迟
showmacs 查看 mac 信息

参考实例

使用addbr参数创建网桥:

[root@linuxcool ~]# brctl addbr br10

使用delbr参数删除网桥:

[root@linuxcool ~]# brctl delbr br10

使用show参数查询网桥信息:

[root@linuxcool ~]# brctl show

启用网桥STP:

[root@linuxcool ~]# brctl stp br10 on

关闭网桥STP:

[root@linuxcool ~]# brctl stp br10 off


cal命令 显示日历

 

cal命令的名字来自英语单词“Calendar”。改命令用来显示当前日历,或者指定日期的公历(公历是现在国际通用的历法,又称格列历,通称阳历。)如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份 。

语法格式:cal [参数] [月份] [年份]

常用参数:

-l 单月分输出日历
-3 显示最近三个月的日历
-s 将星期天作为月的第一天
-m 将星期一作为月的第一天
-j 显示在当年中的第几天(儒略日)
-y 显示当年的日历

参考实例

显示当前月份的日历:

[root@linuxcool ~]# cal
四月 2019
日 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

显示近期三个月的日历(当前月,上一个月和下一个月):

[root@linuxcool ~]# cal -3
三月 2019 四月 2019 五月 2019
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 1 2 3 4 5 6 1 2 3 4
3 4 5 6 7 8 9 7 8 9 10 11 12 13 5 6 7 8 9 10 11
10 11 12 13 14 15 16 14 15 16 17 18 19 20 12 13 14 15 16 17 18
17 18 19 20 21 22 23 21 22 23 24 25 26 27 19 20 21 22 23 24 25
24 25 26 27 28 29 30 28 29 30 26 27 28 29 30 31
31

显示指定年月的日历,如显示2020年2月的日历:

[root@linuxcool ~]# cal 2 2020
二月 2020
日 一 二 三 四 五 六
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29


chage命令 修改帐号和密码的有效期限

 

chage命令是用来修改帐号和密码的有效期限;这个信息由系统用于确定用户何时必须更改其密码。

语法格式:chage [参数]

常用参数:

-M 密码保持有效的最大天数
-W 用户密码到期前,提前收到警告信息的天数
-E 帐号到期的日期,会禁止此帐号
-d 上一次更改的日期
-l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

参考实例

使用-l参数列出用户密码过期的设置:

[root@linuxcool ~]# chage -l root

使用-M参数设置redis用户的密码最大有效期为100天:

[root@linuxcool ~]# chage -M  100 redis


chcon命令 修改文件的安全上下文

 

chcon命令是修改对象(文件)的安全上下文,比如:用户、角色、类型、安全级别。也就是将每个文件的安全环境变更至指定环境。

语法格式: chcon [参数]

常用参数:

-h 影响符号连接而非引用的文件
-R 递归处理所有的文件及子目录
-v 为处理的所有文件显示诊断信息
-u 设置指定用户的目标安全环境
-r 设置指定角色的目标安全环境
-t 设置指定类型的目标安全环境
-l 设置指定范围的目标安全环境

参考实例

把ftp共享给匿名用户:

[root@linuxcool ~]# chcon -R -t public_content_t /var/ftp 

设置的FTP目录可以上传文件的话,SELINUX需要设置:

[root@linuxcool ~]# chcon -t public_content_rw_t /var/ftp/incoming

允许用户HTTP访问其家目录,该设定限仅于用户的家目录主页:

[root@linuxcool ~]# chcon -R -t httpd_sys_content_t ~user/public_html

将samba目录共享给其他用户,需要设置:

[root@linuxcool ~]# chcon -t samba_share_t /directory 


chgrp命令 更改文件用户组

 

chgrp是英语单词“change group”的缩写,命令的作用和其中文释义一样,为用于变更文件或目录的所属群组。

语法格式: chgrp [参数] [目录]

常用参数:

-c 效果类似”-v”参数,但仅回报更改的部分
-f 不显示错误信息
-h 对符号连接的文件作修改,而不更动其他任何相关文件
-R 递归处理,将指定目录下的所有文件及子目录一并处理
-v 显示指令执行过程
--reference 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同

参考实例

改变文件的群组属性:

[root@linuxcool ~]# chgrp -v linuxcool file

根据指定文件改变文件的群组属性:

[root@linuxcool ~]# chgrp --reference=file_1 file_2

将/usr/linuxcool及其子目录下的所有文件的用户组改为cool:

[root@linuxcool ~]# chgrp -R cool /usr/linuxcool


chkconfig命令 检查与设置系统的各种服务

 

这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。

语法格式:chkconfig [参数]

常用参数:

--add 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据
--del 删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据
--level 指定读系统服务要在哪一个执行等级中开启或关毕

参考实例

列出chkconfig所知道的所有命令:

[root@linuxcool ~]# chkconfig -list 

开启服务:

[root@linuxcool ~]# chkconfig telnet on

关闭服务:

[root@linuxcool ~]# chkconfig telnet off

增加httpd服务:

[root@linuxcool ~]# chkconfig –-add httpd 

删除httpd服务:

[root@linuxcool ~]# chkconfig –-del httpd  


chmem命令 设置内存

 

chmem命令将特定大小或范围的内存设置为联机或离线。当设置内存联机时,chmem从最低内存块开始数字。当设置内存脱机时,chmem从最高内存块编号

语法格式:chmem [参数]

常用参数:

-b, --blocks 为enable和--disable选项使用blockrange参数,而不是range或size
-d, --disable 设置内存的指定范围、大小或块范围
为离线
-e, --enable 将指定的内存范围、大小或块范围设置为联机
-z, --zone 选择要在其中设置指定范围、大小和
或在线或离线的内存块范围。默认情况下,内存将设置为可移动的在线区域
-h, --help 帮助信息
-v, --verbose 输出详细信息
-V, --version 版本信息

参考实例

将1024 Mb的内存设置为联机:

[root@linuxcool ~]# chmem --enable 1024

将2 Gb内存设置为联机:

[root@linuxcool ~]# chmem -e 2g

从开始的内存范围0x00000000e40000,以0x00000000f3ffffffff结尾
设置为脱机:

[root@linuxcool ~]# chmem --disable 0x00000000e4000000-0x00000000f3ffffff

设置编号10的存储器块离线:

[root@linuxcool ~]# chmem -b -d 10


chpasswd命令 批量更新密码

 

chpasswd命令是批量更新用户口令的工具,是把一个文件内容重新定向添加到/etc/shadow中。

chpasswd命令从系统的标准输入读入用户的名称和口令,并利用这些信息来更新系统上已存在的用户的口令。

语法格式: chpasswd [参数]

常用参数

-e 输入的密码是加密后的密文
-m 当被支持的密码未被加密时,使用MD5加密代替DES加密
-h 显示帮助信息并退出

参考实例

运用chpasswd命令来批量修改密码,是linux系统管理中的捷径:

[root@linuxcool ~]# cat user.txt
linuxcool:redhat
[root@linuxcool ~]# chpasswd < user.txt


chrt命令 更改调度策略

 

chrt是用来操纵进程的实时属性,所有优先级值在0-99范围内的,都是实时进程,所以这个优先级范围也可以叫做实时进程优先级,而100-139范围内的是非实时进程。在系统中可以使用chrt命令来查看、设置一个进程的实时优先级状态。

语法格式:chrt [参数]

常用参数:

-m/--max 显示最小和最大有效优先级
-p/--pid 对现有的给定pid进行操作

-h/--help
显示此帮助
-V/--version 显示版本

参考实例

使用SCHED_IDLE解压缩内核源代码存档:

[root@linuxcool ~]# chrt -i o tar jxf linux-2.6.33.tar.bz2

指定目的进程的PID来更改调度策略:

[root@linuxcool ~]# chrt -p -r 99 1328

更改bash为实时进程,优先级为10:

[root@linuxcool ~]# chrt -f 10 bash


chsh命令 更改使用者shell设定

 

chsh用于更改登录shell;如果命令行上没有给定shell,chsh将提示输入一个shell。

chsh命令本身并不复杂,它的功能比较单一,就是负责查看(显示)和修改我们系统的登录 Shell;想修改登录 Shell,首先要知道我们的系统安装了哪些 Shell。

chsh仅用于更改本地条目;对非本地条目使用ypchsh、lchsh或任何其他实现。

语法格式:chsh [参数]

常用参数:

-l 打印/etc/shells中列出的shell列表并退出
-s 指定登录shell
-u 打印使用信息并退出

参考实例

使用-l参数 打印/etc/shells中列出的shell:

[root@linuxcool ~]# chsh -l

通过 -s 参数改变当前的shell设置:

[root@linuxcool ~]# chsh -s /bin/csh


clear命令 清除屏幕

 

clear命令用于清除屏幕。这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息。

语法格式:clear [参数]

常用参数:

--help 在线帮助
--vesion 显示版本信息

参考实例

清屏:

[root@linuxcool ~]# clear


clockdiff命令 检测两台linux主机的时间差

 

在ip报文的首部和ICMP报文的首部都可以放入时间戳数据。 clockdiff 程序正是使用时间戳来测算目的主机和本地主机的系统时间差。

语法格式:clockdiff [参数] [ip地址]

常用参数:

-o 使用IP时间戳选项来测量系统时间差。时间戳只用3个
-o1 使用IP时间戳选项来测量系统时间差。用4个时间戳。如果-o和-o1都没有设置,那么就是用ICMP时间戳来测试系统时间差

参考实例

[root@linuxcool ~]# ping -T tsandaddr www.ustc.edu.cn -c 1 
PING www.ustc.edu.cn (202.38.64.9) 56(124) bytes of data. 64 bytes from 202.38.64.9: icmp_seq=1 ttl=62 time=0.823 ms 
TS:     lixi-desktop.local (210.45.74.25)    12522473 absolute     210.45.74.1    -251     
local-gw.ustc.edu.cn (202.38.64.126)    248     
202.38.64.9    -857514 Unrecorded hops: 3 

--- www.ustc.edu.cn ping statistics 
--- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.823/0.823/0.823/0.000 ms 

首先由上面的得出在RRT不大的时候,几个ICMP时间戳的关系。本地主机和202.38.64.9之间的时间差约为:-857514+248-251=-857517。分别用-o(IP选项中时间戳)和不带选项(ICMP路由时间戳)上述路由的系统时间进行测试。得到的结果:

[root@linuxcool ~]# ./clockdiff -o 202.38.64.9 
.................................................. 
host=202.38.64.9 rtt=1(0)ms/1ms delta=-857517ms/-857517ms Wed Dec 17 11:28:30 2008
[root@linuxcool ~]# ./clockdiff 202.38.64.9 
host=202.38.64.9 rtt=750(187)ms/0ms delta=-857517ms/-857517ms Wed Dec 17 11:28:35 2008 

两种方法测试的都比较准确:

[root@linuxcool ~]# ./clockdiff gigagate1.Princeton.EDU
.................................................. host=gigagate1.Princeton.EDU rtt=307(21)ms/271ms delta=-5ms/-5ms Wed Dec 17 11:50:16 2008 

上面是测试一个RTT较大的目的主机和本地主机的系统时间差。不过在使用clockdiff的时候,需要一点运气,因为很多路由会忽略ICMP或IP时间戳。


cloud-init命令 跨平台云实例初始化工具

 

cloud-init命令是用于跨平台云实例初始化的行业标准多分布式方法,所有主要的公共云提供商、私有云基础设施的供应系统和裸机安装都支持该方法。

语法格式:cloud-init [参数]

常用参数:

init 初始化cloud-init并执行初始化模块
modules 使用给定的配置键激活模块
single 单机运行
status 报告云启动状态或等待完成
clean 删除日志和工件,以便重新运行cloud-init
collect-logs 收集并打包所有云计算调试信息
devel 运行开发工具
dhclient-hook 运行dhclient钩子记录网络信息

参考实例

初始化cloud-init并执行初始化模块:

[root@linuxcool ~]# cloud-init init

使用给定的配置键激活模块:

[root@linuxcool ~]# cloud-init modules

报告云启动状态或等待完成:

[root@linuxcool ~]# cloud-init status

删除日志和工件,以便重新运行cloud-init:

[root@linuxcool ~]# cloud-init clean


compgen命令 列出所有Linux命令

 

compgen一个很棒的命令列出所有Linux命令,compgen是bash内置命令,它将显示所有可用的命令,别名和函数。

语法格式:compgen [参数]

常用参数:

-c 列出所有可用的命令
-a 列出可用的所有bash shell别名
-b 显示所有bash内置插件
-k 显示所有bash关键字
-A 显示所有bash函数

参考实例

列出所有可用的命令:

[root@linuxcool ~]# compgen -c

列出可用的所有bash shell别名:

[root@linuxcool ~]# compgen -a

显示所有bash内置插件:

[root@linuxcool ~]# compgen -b

显示所有bash关键字:

[root@linuxcool ~]# compgen -k

显示所有bash函数:

[root@linuxcool ~]# compgen -A


complete命令 自动补全声明

 

complete命令是声明对于每一个NAME名称如何完成读取参数。如果不带选项,现有的补全声明会以可以重用为输入的格式打印出来。

语法格式:complete [参数]

常用参数:

-p 以可重用的格式打印现有的补全声明
-D 对于没有补全声明定义的命令,设定默认的补全动作
-E 对于 “empty” 命令设定补全动作,—— 对于空行的补全
-r 对于每个 NAME 名称删除补全声明,或者如果没有提供 NAME名称,删除所有的补全声明

参考实例

以可重用的格式打印现有的补全声明:

[root@linuxcool ~]# complete -p

对于没有补全声明定义的命令,设定默认的补全动作:

[root@linuxcool ~]# complete -D

对于 “empty” 命令设定补全动作,—— 对于空行的补全:

[root@linuxcool ~]# complete -E

对于每个 NAME 名称删除补全声明,或者如果没有提供 NAME名称,删除所有的补全声明:

[root@linuxcool ~]# complete -r


consoletype命令 输出已连接的终端类型

 

consoletype命令用于打印已连接的终端类型到标准输出,并能够检查已连接的终端是当前终端还是虚拟终端。

语法格式:consoletype

参考实例

输出已连接的终端类型:

[root@linuxcool ~]# consoletype


createrepo命令 创建yum源生成元数据

 

createrepo命令用以创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。

语法格式:createrepo [参数]

常用参数:

-u 指定Base URL的地址
-o 指定元数据的输出位置
-x 指定在形成元数据时需要排除的包
-q 安静模式执行操作,不输出任何信息
-p 以整洁的格式输出xml文件
-d 该选项指定使用SQLite来存储生成的元数据,默认项

参考实例

创建仓库:

[root@linuxcool ~]# createrepo /packages

初始化源目录,产生repodata:

[root@linuxcool ~]# mkdir -p /yum/centos/6/     
[root@linuxcool ~]# createrepo -p -d -o /yum/centos/6/ix86_64 /yum/centos/6/ix86_64  


crontab命令 定时执行任务

 

crontab是英文“cron table”的简写。该命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

Linux下的任务调度分为两类,系统任务调度和用户任务调度。

系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。/etc/crontab文件是系统任务调度的配置文件。用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。

语法格式:crontab [参数]

常用参数:

-e 编辑该用户的计时器设置
-l 列出该用户的计时器设置
-r 删除该用户的计时器设置
-u 指定要设定计时器的用户名称
--help 显示帮助信息

参考实例

创建、编辑计划任务:

[root@linuxcool ~]# crontab -e  

查看当前计划任务:

[root@linuxcool ~]# crontab -l 

删除某条计划任务:

[root@linuxcool ~]# crontab -r 

在正式部署计划任务前,我们了解一下使用crond服务设置任务的参数格式( 需要注意的是,如果有些字段没有设置,则需要使用星号(*)占位 ):

minute   hour   day   month   week   command     顺序:分 时 日 月 周 命令 

使用crond设置任务的参数字段说明:

minute 表示分钟,是从0到59之间的任何整数
hour 表示小时,是从0到23之间的任何整数
day 表示日期,是从1到31之间的任何整数
month 表示月份,是从1到12之间的任何整数
week 表示星期,是从0到7之间的任何整数,其中0或7代表星期日
command 要执行的命令,可以是系统命令,也可以是自己编写的脚本文件

每周一、三、五的凌晨3点25分,使用tar命令把某个网站的数据目录进行打包处理,使其作为一个备份文件。我们使用crontab -e命令来创建计划任务。为自己创建计划任务无需使用-u参数,具体的实现效果的参数如crontab -l命令结果所示:

[root@linuxcool ~]# crontab -e 
no crontab for root - using an empty one 
crontab: installing new crontab 
[root@linuxcool ~]# crontab -l 
25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot  


ctrlaltdel命令 设置Ctrl+Alt+Del组合键的功能

 

ctrlaltdel命令作用是设置按Ctrl+Alt+Del组合键的功能。

ctrlaltdel有两个支持的功能:hard和soft。hard为硬复位,立即重新启动计算机而无需调用sync。soft为软复位,它发送SIGINT(中断)信号给init进程。如果使用soft,init程序必须支持此项功能。

语法格式 : ctrlaltdel [参数]

常用参数:

hard 硬复位,立即执行重新启动操作系统
soft 软复位,向init进程发送SIGINT(interrupt)信号,由init进程执行关机
-h 显示此帮助并退出
-v 输出版本信息并退出

参考实例

设置按键Ctrl+Alt+Del组合键的功能为hard:

[root@linuxcool ~]# ctrlaltdel hard

由init进程处理关机操作:

[root@linuxcool ~]# ctrlaltdel soft

查看命令版本:

[root@linuxcool ~]# ctrlaltdel -v


date命令 显示日期与时间

 

date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记 。

若是不以加号作为开头,则表示要设定时间,而时间格式MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。

语法格式:date [选项] [+输出形式]

常用参数:

-d datestr 显示 datestr 中所设定的时间 (非系统时间)
-s datestr 将系统时间设为 datestr 中所设定的时间
-u 显示目前的格林威治时间
--help 显示帮助信息
--version 显示版本编号

参考实例

显示当前时间:

[root@linuxcool ~]# date
三 4月 12 14:08:12 CST 2019
[root@linuxcool ~]# date '+%c'
2019年04月17日 星期三 14时09分02秒

按自己的格式输出:

[root@linuxcool ~]# date '+usr_time: $1:%M %P -hey' 
usr_time: $1:16 下午 -hey

显示时间后跳行,再显示目前日期:

[root@linuxcool ~]# date '+%T%n%D' 

实显示月份与日数:

[root@linuxcool ~]# date '+%B %d' 

显示日期与设定时间(12:34:56):

[root@linuxcool ~]# date --date '12:34:56'


deluser命令 删除用户

 

deluser命令用于删除用户。将一个用户从一个组中删除(即退出用户组),大家都推荐用usermod,其实deluser才是正解。deluser的选项要比userdel丰富,功能要更强大。

语法格式:deluser [参数]

常用参数:

--remove-all-files 删除用户拥有的所有文件
--remove-home 删除用户的主目录和邮件后台处理程序
--backup-to 目标目录进行备份
--system 只有系统用户才能删除

参考实例

删除普通用户zhangsan:

[root@linuxcool ~]# deluser zhangsan

将zhangsan从lisu组中删除:

[root@linuxcool ~]# deluser zhangsan lisi

删除用户zhangsan的所有文件:

[root@linuxcool ~]# deluser --remove-all-files zhangsan


depmod命令 生成模块映射文件

 

depmod命令可产生模块依赖的映射文件,在构建嵌入式系统时,需要由这个命令来生成相应的文件,depmod命令支持内核版本为“2.5.48”以上,比此版本老的内核使用指令“depmod.old”。

语法格式:depmod [参数]

常用参数:

-a 分析所有可用的模块
-b<目录> 指定内核模块目录
-e 输出无法参照的符号
-F 提供内核编译时生成的system.map文件
-n 将各种内核映射文件打印到标准输出
-A 快速模式

参考实例

显示可用模块:

[root@linuxcool ~]# depmod -a

列出已挂载但不可用的模块:

[root@linuxcool ~]# depmod -e

列出所有模块的依赖关系,但仅仅是输出出来:

[root@linuxcool ~]# depmod -n


dircolors命令 设置 ls 指令在显示目录或文件时所用的色彩

 

dircolors可根据色彩配置文件来设置LS_COLORS环境变量或是显示设置LS_COLORS环境变量的shell指令。

语法格式:dircolors [参数]

常用参数:

--help 在线帮助
--vesion 显示版本信息
-b 显示在Boume shell中,将LS_COLORS设为目前预设置的shell指令
-c 显示在C shell中,将LS_COLORS设为目前预设置的shell指令
-p 显示预设置

参考实例

显示默认值:

[root@linuxcool ~]# dircolors -p 


disown命令 从当前的shell中移除作业

 

disown命令可以从当前shell的作业列表中移除全部作业,也可移除指定的一到多个作业;正在运行的作业也可以移除;也可以标记作业,使得它们在当前shell退出后也不会结束。

该命令需要set选项monitor处于开启状态时才能执行;查看作业控制状态:输入set -o查看 monitor行;执行set -o monitor或set -m开启该选项。disown命令该命令是bash内建命令,相关的帮助信息请查看help命令。

语法格式: disown [参数] [标识符or进程ID]

常用参数:

-h 标记每个作业标识符,这些作业将不会在shell接收到sighup信号时接收到sighup信号
-a 移除所有的作业
-r 移除运行的作业

参考实例

删除全部作业:

[root@linuxcool ~]# disown -a

删除运行状态的作业:

[root@linuxcool ~]# disown -r

根据jobId,移出指定的后台任务:

[root@linuxcool ~]# disown %2
[root@linuxcool ~]# disown -h %2 


dmesg命令 显示开机信息

 

dmesg命令被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息保存在/var/log/dmesg文件里。

语法格式:dmesg [参数]

常用参数:

-c 显示信息后,清除ring buffer中的内容
-s <缓冲区大小> 预设置为8196,刚好等于ring buffer的大小
-n 设置记录信息的层级

参考实例

搜索开机信息的关键词:

[root@linuxcool ~]# dmesg | grep sda

忽略大小写搜索关键词:

[root@linuxcool ~]# dmesg | grep -i memory 

显示开机信息的前20行:

[root@linuxcool ~]# dmesg | head -20

显示开机信息的最后20行 :

[root@linuxcool  ~]# dmesg | tail -20

清空dmesg环形缓冲区中的日志:

[root@linuxcool  ~]# dmesg -c


dnf命令 新一代的RPM软件包管理器

 

dnf是新一代的rpm软件包管理器。首次出现在 Fedora 18 这个发行版中。而最近,它取代了yum,正式成为 Fedora 22 的包管理器。

dnf包管理器克服了yum包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。dnf使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用yum的同时使用dnf 。

当然dnf也不是完美的,例如:在dnf中没有 –skip-broken 命令,并且没有替代命令供选择。 没有判断哪个包提供了指定依赖的 resolvedep 命令,没有用来列出某个软件依赖包的 deplist 命令等等。

语法格式: dnf [参数]

常用参数:

repolist 显示系统中可用的 DNF 软件库
list 列出用户系统上的所有来自软件库的可用软件包和所有已经安装在系统上的软件包
search <包名> 搜索软件库中的软件包
provides <路径> 查找某一文件的提供者
info <包名> 查看软件包详情
install <包名> 安装软件包
update <包名> 升级软件包
check-update 检查系统软件包的更新
update 升级所有系统软件包
remove 删除软件包
autoremove 删除无用孤立的软件包
clean all 删除缓存的无用软件包
help <命令名> 获取有关某条命令的使用帮助
help 查看所有的dnf命令及其用途
history 查看dnf命令的执行历史
grouplist 查看所有的软件包组
groupinstall <软件包组名称> 安装一个软件包组
groupupdate <软件包组名称> 升级一个软件包组中的软件包
groupremove <软件包组名称> 删除一个软件包组
distro-sync 更新软件包到最新的稳定发行版
reinstall <包名> 重新安装特定软件包
downgrade <包名> 回滚某个特定软件的版本
–version 查看 DNF 包管理器版本

参考实例

回滚acpid软件包到特定版本:

[root@linuxcool ~]# dnf downgrade acpid

重新安装特定软件包:

[root@linuxcool ~]# dnf reinstall nano

查看所有的软件包组:

[root@linuxcool ~]# dnf grouplist


dpkg命令 管理deb包

 

dpkg命令的英文全称是“Debian package”,故名意思是Debian Linux系统用来安装、创建和管理软件包的实用工具。

语法格式:dpkg [参数]

常用参数:

-i 安装软件包
-r 删除软件包
-l 显示已安装软件包列表
-L 显示于软件包关联的文件
-c 显示软件包内文件列表

参考实例

安装包:

[root@linuxcool ~]# dpkg -i package.deb 

删除包:

[root@linuxcool ~]# dpkg -r package.deb  

列出当前已安装的包:

[root@linuxcool ~]# dpkg -l 

列出deb包的内容:

[root@linuxcool ~]# dpkg -c package.deb 

配置:

[root@linuxcool ~]# dpkg --configure package 


dstat命令 全能系统信息统计工具

 

dstat命令是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具,是一个全能系统信息统计工具。与sysstat相比,dstat拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼容易观察;而且dstat支持即时刷新,譬如输入dstat 3即每三秒收集一次,但最新的数据都会每秒刷新显示。和sysstat相同的是,dstat也可以收集指定的性能资源,譬如dstat -c即显示CPU的使用情况。

语法格式: dstat [参数]

常用参数:

-c 显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息
-d 显示磁盘读写数据大小
-n 显示网络状态
-l 显示系统负载情况
-m 显示内存使用情况
-g 显示页面使用情况
-p 显示进程状态
-s 显示交换分区使用情况
-r I/O请求情况
-y 系统状态
--ipc 显示ipc消息队列,信号等信息
--socket 用来显示tcp udp端口状态

参考实例

分别显示cpu、disk、net、page、system信息:

[root@linuxcool ~]# dstat 

每三秒收集一次 cpu、disk、net、page、system 信息 :

[root@linuxcool ~]# dstat 3

显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息 :

[root@linuxcool ~]# dstat -c

显示磁盘读写数据大小 :

[root@linuxcool ~]# dstat -d

显示网络状态:

[root@linuxcool ~]# dstat -n


du命令 查看空间

 

du命令的英文全称是“Disk Usage”,即用于查看磁盘占用空间的意思。但是与df命令不同的是du命令是对文件和目录磁盘使用的空间的查看,而不是某个分区。

语法格式:du [参数] [文件]

常用参数:

-a 显示目录中所有文件大小
-k 以KB为单位显示文件大小
-m 以MB为单位显示文件大小
-g 以GB为单位显示文件大小
-h 以易读方式显示文件大小
-s 仅显示总计

参考实例

以易读方式显示文件夹内及子文件夹大小 :

[root@linuxcool ~]# du -h scf/  

以易读方式显示文件夹内所有文件大小 :

[root@linuxcool ~]# du -ah scf/   

输出当前目录下各个子目录所使用的空间 :

[root@linuxcool ~]# du -hc --max-depth=1 scf/ 

显示指定文件所占空间 :

[root@linuxcool ~]# du log2012.log 


enable命令 启动或关闭 shell 内建指令

 

enable命令可以用于启动或关闭 shell 的内建指令。 如要执行的文件名称与shell内建指令相同,可用enable -n来关闭shell内建指令。若不加-n参数,enable可重新启动关闭的指令。

语法格式:enable [参数] [内建指令]

常用参数:

-n   关闭指定的shell内建指令
-all   显示shell所有关闭与启动的指令

参考实例

显示shell命令:

[root@linuxcool ~]# enable

显示所有激活的内部命令:

[root@linuxcool ~]# enable -a


env命令 显示和定义环境变量

 

env命令用于显示系统中已存在的环境变量,以及在定义的环境中执行指令。该命令只使用”-“作为参数选项时,隐藏了选项”-i”的功能。若没有设置任何选项和参数时,则直接显示当前的环境变量。
如果使用env命令在新环境中执行指令时,会因为没有定义环境变量”PATH”而提示错误信息”such file or directory”。此时,用户可以重新定义一个新的”PATH”或者使用绝对路径。

语法格式:env [参数]

常用参数:

-i 开始一个新的空的环境
-u 从当前环境中删除指定的变量

参考实例

显示系统的环境变量:

[root@linuxcool ~]# env

从当前环境中删除指定的变量:

[root@linuxcool ~]# env -u LOGNAME

定义指定的环境变量:

[root@linuxcool ~]# env LOGNAME=root


esxcfg-advcfg命令 配置主机

 

esxcfg命令集分为网络管理类、存储管理类、系统管理类等几种类型,esxcfg-advcfg负责配置主机,设置kernel高级选项,属于系统管理类。

语法格式:esxcfg-advcfg [参数]

常用参数:

-h 查看帮助文档
-g 获取虚拟网卡的配置信息

参考实例

获取虚拟网卡的配置信息:

[root@linuxcool ~]# esxcfg-advcfg -g

设置虚拟网卡的信息:

[root@linuxcool ~]# esxcfg-advcfg -s

重置虚拟网卡至默认值:

[root@linuxcool ~]# esxcfg-advcfg -d

确定虚拟网卡是否设置并打印:

[root@linuxcool ~]# esxcfg-advcfg -u

查看帮助文档:

[root@linuxcool ~]# esxcfg-advcfg -help

 


esxcfg-vswitch命令 ESX虚拟交换机管理工具

 

esxcfg命令集分为网络管理类、存储管理类、系统管理类等几种类型,esxcfg-vswitch命令是负责网络管理类命令,ESX虚拟交换机管理工具。可使用 esxcfg-vswitch -l 命令获取虚拟端口 ID 和 Dvswitchname。

语法格式:esxcfg-vswitch [参数]

常用参数:

-l 显示系统信息
-a 添加系统配置

参考实例

增加一个vswitch:

[root@linuxcool ~]# esxcfg-vswitch -a

删除一个vswitch:

[root@linuxcool ~]# esxcfg-vswitch -d

显示当前vswitch的配置:

[root@linuxcool ~]# esxcfg-vswitch -l

添加一个新的portgroup:

[root@linuxcool ~]# esxcfg-vswitch -A

将一个vswitch与真实网卡绑定:

[root@linuxcool ~]# esxcfg-vswitch -L <pnic> <vSwitch_Name>


exec命令 调用并执行指定的命令

 

exec命令用于调用并执行指定的命令。exec命令通常用在shell脚本程序中,可以调用其他的命令。如果在当前终端中使用命令,则当指定的命令执行完毕后会立即退出终端。

语法格式:exec [参数]

常用参数:

-c 在空环境中执行指定的命令

参考实例

首先使用echo命令将文本“Welcome to use Linux!”进行输出:

[root@linuxcool ~]# echo Welcome to use Linux!           
Welcome to use Linux!

然后再使用exec命令调用echo命令输出同样的信息,并且对输出的信息进行对比:

[root@linuxcool ~]# exec -c echo Welcome to use Linux!          
Welcome to use Linux!

查找属于Jaking用户的文件并复制到/findfiles目录中:

[root@linuxcool ~]# find / -user Jaking -exec cp -Ra {} /findfiles \; 


exit命令 退出shell

 

exit命令用来退出当前的shell或退出终端 ,并返回给定值。

执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败。状态值参数多用于脚本中,在终端状态下,直接输入“exit” 退出终端 。

语法格式:exit [状态值]

常用参数:

0 执行成功
1 执行失败
$? 参照上一个状态值

参考实例

退出当前shell:

[root@linuxcool ~]# exit
注销

退出 ssh 登录:

[root@linuxcool ~]# exit 
logout Connection to 192.168.168.16 closed.

在脚本中,进入脚本所在目录,否则退出:

cd $(dirname $0) || exit 1


fbset命令 设置景框缓冲区

 

fbset命令为“framebuffer set”的简写,该命令可用于设置景框缓冲区的大小,还能调整画面之分辨率,位置,高低宽窄,色彩深度,并可决定是否启动先卡之各项硬件特性。

语法格式:fbset [参数] [显示模式]

常用参数:

-a 改变所有使用该设备之虚拟终端机的显示模式
-db 指定显示模式的信息文件,预设值文件名称为fb.modes,存放在/etc目录下
-fb 指定用来做为输出景框缓冲区之外围设备,预设置为”/dev/fd0″
-n 马上改变显示模式

参考实例

设置画面分辨率和桌面分辨率:

[root@linuxcool ~]# fbset -g 800 688 1024 768

启动硬件文本加速:

[root@linuxcool ~]# fbset -accel true 

启动广播功能:

[root@linuxcool ~]# fbset -bcast true

查看画面分辨率:

[root@linuxcool ~]# fbset
mode "1366x768-60"
    # D: 73.078 MHz, H: 47.639 kHz, V: 59.999 Hz
    geometry 1366 768 1408 768 16
    timings 13684 104 32 18 3 32 5
    hsync high
    vsync high
    rgba 5/11,6/5,5/0,0/0
endmode

查看帮助:

[root@linuxcool ~]# fbset --help
Linux Frame Buffer Device Configuration Version 2.1 (23/06/1999)
(C) Copyright 1995-1999 by Geert Uytterhoeven


fgconsole命令 显示活动的虚拟终端数量

 

fgconsole命令的作用是可以显示活动的虚拟终端数量。

如果活动的虚拟终端为/dev/ttyN,则在标准输出上显示N。 如果控制台是串行控制台,则打印“serial”。

如果当前进程有控制终端的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它 具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接。

语法格式:fgconsole [参数]

常用参数:

-n 将显示下一个未分配的虚拟终端。正常情况下分配6个虚拟终端,7号用于X
-h 帮助命令
-V 版本

参考实例

显示活动的虚拟终端数量:

[root@linuxcool ~]# fgconsole

显示下一个未分配的虚拟终端:

[root@linuxcool ~]# fgconsole -n

查询命令版本:

[root@linuxcool ~]# fgconsole -V


fg命令 将作业放到前台运行

 

fg命令用于将后台作业(在后台运行的或者在后台挂起的作业)放到前台终端运行。与bg命令一样,若后台任务中只有一个,则使用该命令时,可以省略任务号。

语法格式:fg [参数]

常用参数:

作业标识 指定要放到前台的作业标识号

参考实例

使用fg命令将任务号为1的任务从后台执行转换到前台执行:

[root@linuxcool ~]# fg 1 


findfs命令 依据卷标(Label)和UUID查找文件系统所对应的设备文件

 

findfs命令依据卷标(LABEL)和UUID查找文件系统所对应的设备文件。

语法格式:findfs [参数]

常用参数:

LABEL 卷标
UUID 通用唯一识别码

参考实例

通过卷标来查找文件系统所对应的设备文件:

[root@linuxcool ~]# findfs LABEL="RHEL-7.3 Server.x86_64"

通过通用唯一识别码来查找文件系统所对应的设备文件:

[root@linuxcool ~]# findfs UUID="1271a9f5-3c66-43c5-a3ff-c79750db70c2"


find命令 查找和搜索文件

 

find命令可以根据给定的路径和表达式查找的文件或目录。find参数选项很多,并且支持正则,功能强大。和管道结合使用可以实现复杂的功能,是系统管理者和普通用户必须掌握的命令。

find如不加任何参数,表示查找当前路径下的所有文件和目录,如果服务器负载比较高尽量不要在高峰期使用find命令,find命令模糊搜索还是比较消耗系统资源的。

语法格式:find [参数] [路径] [查找和搜索范围]

常用参数

-name 按名称查找
-size 按大小查找
-user 按属性查找
-type 按类型查找
-iname 忽略大小写

参考实例

使用-name参数查看/etc目录下面所有的.conf结尾的配置文件:

[root@linuxcool ~]# find /etc -name "*.conf

使用-size参数查看/etc目录下面大于1M的文件:

[root@linuxcool ~]# find /etc -size +1M

查找当前用户主目录下的所有文件:

[root@linuxcool ~]# find $HOME -print

列出当前目录及子目录下所有文件和文件夹:

[root@linuxcool ~]# find .

在/home目录下查找以.txt结尾的文件名:

[root@linuxcool ~]# find /home -name "*.txt"

在/var/log目录下忽略大小写查找以.log结尾的文件名:

[root@linuxcool ~]# find /var/log -iname "*.log"

搜索超过七天内被访问过的所有文件:

[root@linuxcool ~]# find . -type f -atime +7

搜索访问时间超过10分钟的所有文件:

[root@linuxcool ~]# find . -type f -amin +10

找出/home下不是以.txt结尾的文件:

[root@linuxcool ~]# find /home ! -name "*.txt"


finger命令 查询其他使用者的资料

 

finger命令会去寻找并显示指定账号的用户相关信息,包括本地与远程主机的用户皆可,账号名称名优大小写的差别。单独执行 finger 命令,它会显示本地主机现在所有用户的登录信息,包括账号名称,真实名称、登录终端,空闲时间、登录时间,以及地址和电话。

语法格式:finger [参数]

常用参数:

-l 列出该用户的账号名称、真实姓名、用户根目录、登录所用的 shell、登录时间、邮件地址、电子邮件状态等
-m 排除查找用户的真实姓名
-s 列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话
-p 列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容

参考实例

列出当前登录用户的相关信息 :

[root@linuxcool ~]# finger -l

显示远程用户信息:

[root@linuxcool ~]# finger -m root@192.168.1.13

查询本机管理员的资料:

[root@linuxcool ~]# finger root


firewall-cmd命令 防火墙管理器

 

firewall-cmd提供了一个动态管理的防火墙,支持网络/防火墙区域来定义网络连接或接口的信任级别。它支持IPv4、IPv6防火墙设置和以太网网桥,并将运行时和永久配置选项分开。它还支持服务或应用程序直接添加防火墙规则的接口。

使用firewalld的好处可以在运行时环境中立即进行更改,不需要重新启动服务或守护程序;使用firewalld D-Bus接口,服务,应用程序和用户都可以轻松调整防火墙设置。界面完整,用于防火墙配置工具firewall-cmd,firewall-config和firewall-applet。

语法格式:firewall-cmd [参数]

常用参数

--state 显示当前服务运行状态
--zone=public --list-ports 查看所有打开运行的端口
--reload 不重启立即加载
--list-all-zones 查看区域信息情况
--panic-on 拒绝所有包
--panic-off 取消拒绝状态
--query-panic 查看是否拒绝

参考实例

查看当前firewalld服务运行状态:

[root@linuxcool ~]# firewall-cmd --state
running

查看所有放行的端口:

[root@linuxcool ~]# firewall-cmd --zone=public --list-ports

重新加载修改的配置,不重启服务:

[root@linuxcool ~]# firewall-cmd --reload
success

查看所有规则区域配置信息:

[root@linuxcool ~]# firewall-cmd --list-all-zones


firewall-offline-cmd命令 防火墙脱机命令客户端

 

firewall-offline-cmd是firewalld守护进程的脱机命令行客户端。只有当firewalld服务没有运行时才应该使用它。例如,从system config firewall/lokkit迁移或在安装环境中使用kickstart配置防火墙设置。

语法格式:firewall-offline-cmd [参数]

常用参数:

--default-config 防火墙默认配置的路径
--system-config 防火墙系统(用户)配置的路径
--enabled 启用防火墙
--disabled 通过禁用防火墙服务来禁用防火墙
--check-config 对永久(默认和系统)配置运行检查
--get-default-zone 打印连接和接口的默认区域
--list-all-zones 列出为所有区域添加或启用的所有内容
--set-default-zone=zone 为未选择区域的连接和接口设置默认区域
--info-zone=zone 打印有关区域的信息zone

参考实例

打印连接和接口的默认区域:

[root@linuxcool ~]# firewall-offline-cmd --get-default-zone

列出为所有区域添加或启用的所有内容:

[root@linuxcool ~]# firewall-offline-cmd --list-all-zones

打印有关区域的信息zone:

[root@linuxcool ~]# firewall-offline-cmd --info-zone=zone


fsck.ext2命令 检查及修复ext2文件系统

 

当ext2文件系统发生错误时,可用fsck.ext2指令尝试加以修复。

语法格式:fsck.ext2 [参数]

常用参数:

-a 自动修复文件系统,不询问任何问题
-c 检查指定的文件系统内,是否存在有损坏的区块
-d 详细显示指令执行过程,便于排错或分析程序执行的情形
-f 强制对该文件系统进行完整检查,纵然该文件系统在慨略检查下没有问题
-F 检查文件系统之前,先清理该保存设备块区内的数据
-v 详细显示指令执行过程
-V 显示版本信息

参考实例

自动修复文件系统,不询问任何问题:

[root@linuxcool ~]# fsck.ext2 -a /dev/sdd1

检查指定的文件系统内,是否存在有损坏的区块:

[root@linuxcool ~]# fsck.ext2 -c /dev/sdd1

详细显示指令执行过程,便于排错或分析程序执行的情形:

[root@linuxcool ~]# fsck.ext2 -d /dev/sdd1

强制对该文件系统进行完整检查,纵然该文件系统在慨略检查下没有问题:

[root@linuxcool ~]# fsck.ext2 -f /dev/sdd1

-F 检查文件系统之前,先清理该保存设备块区内的数据:

[root@linuxcool ~]# fsck.ext2 -F /dev/sdd1


fuser命令 使用文件或文件结构识别进程

 

fuser命令作用是报告进程使用的文件和网络套接字。

fuser命令可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息。 它还显示使用指定文件或者文件系统的进程ID。

每个进程号后面都跟随一个字母,该字母指示进程如何使用文件。

  • c  :指示进程的工作目录。
  • e  :指示该文件为进程的可执行文件(即进程由该文件拉起)。
  • f  :指示该文件被进程打开,默认情况下f字符不显示。
  • F  :指示该文件被进程打开进行写入,默认情况下F字符不显示。
  • r  :指示该目录为进程的根目录。
  • m  :指示进程使用该文件进行内存映射,抑或该文件为共享库文件,被进程映射进内存。

语法格式: fuser [参数] [文件]

常用参数:

-a 显示命令行中指定的所有文件
-k 杀死访问指定文件的所有进程
-i 杀死进程前需要用户进行确认
-l 列出所有已知信号名
-m 指定一个被加载的文件系统或一个被加载的块设备
-n 选择不同的名称空间
-u 在每个进程后显示所属的用户名

参考实例

要列出使用/etc/passwd文件的本地进程的进程号:

[root@linuxcool ~]# fuser /etc/passwd

列出使用/etc/filesystems文件的进程的进程号和用户登录名:

[root@linuxcool ~]# fuser -u /etc/filesystems

终止使用给定文件系统的所有进程:

[root@linuxcool ~]# fuser -k -x -u -c /dev/hd1


fwhois命令 查找并显示用户信息

 

fwhois的功能有点类似finger指令,它会去查找并显示指定帐号的用户相关信息。不同之处在于fwhois指令是到Network Solutions的WHOIS数据库去查找,该帐号名称必须有在上面注册才能寻获,且名称没有大小写的差别。

语法格式:fwhois [用户]

参考实例

查找root用户的信息:

[root@linuxcool ~]# fwhois root


getenforce命令 显示SELinux的状态

 

使用getenforce命令可以显示当前SELinux的应用模式,是强制、执行还是停用。

语法格式: getenforce [参数]

参考实例

显示SELinux的状态:

[root@linuxcool ~]# getenforce 


getsebool命令 查询SElinux策略内各项规则的布尔值

 

getsebool命令是用来查询SElinux策略内各项规则的布尔值。

语法格式:getsebool [参数]

常用参数:

-a 列出目前系统上面的所有布尔值

参考实例

列出目前系统上面的所有布尔值:

[root@linuxcool ~]# getsebool -a

查询httpd_enable_homedirs布尔值的状态:

[root@linuxcool ~]# getsebool httpd_enable_homedirs


glances命令 高层次的多子系统概览

 

Linux系统自带了很多系统性能监控工具,如top,vmstat,iftop等等,还有一款监视工具glances,它能把其他几个监控的指标都集于一身。Glances是一个相对比较新的系统监控工具,用 Python 编写的,使用 psutil 库从系统获取信息。可以用它来监控 CPU、平均负载、内存、网络接口、磁盘 I/O,文件系统空间利用率、挂载的设备、所有活动进程以及消耗资源最多的进程。Glances 有很多有趣的选项。它的主要特性之一是可以在配置文件中设置阀值(careful小心、warning警告、critical致命),然后它会用不同颜色显示信息以表明系统的瓶颈。

语法格式:glances [参数]

常用参数:

-b 显示网络连接速度 Byte/ 秒
-s 设置 glances 运行模式为服务器
-B 绑定服务器端 IP 地址或者主机名称
-c 连接 glances 服务器端
-t 设置屏幕刷新的时间间隔,单位为秒,默认值为 2 秒,数值许可范围:1~32767

参考实例

192.168.10.10 主机启动 glances 服务:

[root@linuxcool ~]# glances -s -B 192.168.10.10 &

从另一台主机查看 192.168.10.10 主机的系统负载状态:

[root@linuxcool ~]# glances -c 192.168.10.10 

显示网络连接速度 Byte/ 秒:

[root@linuxcool ~]# glances -b

设置屏幕刷新的时间间隔为6秒:

[root@linuxcool ~]# glances -t 6


gpasswd命令 设置管理用户组

 

gpasswd命令是Linux下工作组文件/etc/group和/etc/gshadow的管理工具 ,系统管理员可以使用-a选项定义组管理员,使用-m选项定义成员,由组管理员用组名调用的gpasswd只提示输入组的新密码。

语法格式:gpasswd [参数]

常用参数:

-a 添加用户到组
-d 从组删除用户
-A 指定管理员
-M 指定组成员和-A的用途差不多
-r 删除密码
-R 限制用户登入组,只有组中的成员才可以用newgrp加入该组

参考实例

使用-a参数把redis用户添加到linuxcool用户组:

[root@linuxcool ~]# gpasswd -a redis linuxcool
 Adding user redis to group linuxcool

显示上面使用-a参数添加用户到组用信息:

[root@linuxcool ~]# more /etc/group|grep linuxcool
 linuxcool:x:1005:redis

使用-d参数从linuxcool组中删除redis用户:

[root@linuxcool ~]# gpasswd -d redis linuxcool
 Removing user redis from group linuxcool

显示linuxcool组用的redis用户是否删除成功:

[root@linuxcool ~]# more /etc/group|grep linuxcool
 linuxcool:x:1005:


groupadd命令 新建工作组

 

groupadd命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。

语法格式:groupadd [参数]

常用参数:

-g 指定新建工作组的id
-r 创建系统工作组,系统工作组的组ID小于500
-K 覆盖配置文件“/ect/login.defs”
-o 允许添加组ID号不唯一的工作组

参考实例

使用-g参数新建linuxcool工作组名,1005是工作组id:

[root@linuxcool ~]# groupadd -g 1005 linuxcool

使用-r创建系统工作组:

[root@linuxcool ~]# groupadd -r -g 368 linuxcool


groupdel命令 删除用户组

 

groupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。

userdel修改系统账户文件,删除与 GROUP 相关的所有项目。给出的组名必须存在。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

语法格式:groupdel [参数] [群组名称]

常用参数

-h 显示帮助信息
-R 在chroot_dir目录中应用更改并使用chroot_dir目录中的配置文件

参考实例

使用groupdel命令删除linuxcool工作组:

[root@linuxcool ~]# groupdel linuxcool

查看linuxcool组是否删除成功:

[root@linuxcool ~]# more /etc/group|grep linuxcool


groupmod命令 更改群组识别码或名称

 

groupmod命令用于更改群组的识别码或名称时。不过大家还是要注意,用户名不要随意修改,组名和 GID 也不要随意修改,因为非常容易导致管理员逻辑混乱。如果非要修改用户名或组名,则建议大家先删除旧的,再建立新的。

语法格式:groupmod [参数]

常用参数:

-g 设置欲使用的群组识别码
-o  重复使用群组识别码
-n 设置欲使用的群组名称

参考实例

更改linuxcool用户组为root:

[root@linuxcool ~]# groupmod -n root linuxcool


groups命令 输出指定用户

 

使用 groups命令在标准输入输出上输出指定用户所在组的组成员,每个用户属于/etc/passwd中指定的一个组和在/etc/group中指定的其他组。

语法格式:groups [参数]

常用参数:

-help 显示命令的帮助信息
--version 显示命令的版本信息

参考实例

显示linux用户所属的组:

[root@linuxcool ~]# groups linux 

显示root组成员:

[root@linuxcool ~]# groups root


grpck命令 验证文件的完整性

 

使用grpck命令检查数据是否正确存放,每条记录是否都包含足够的信息,是否有一个唯一的组名,是否包含正确的用户,是否正确设置了组的管理员等。grpck检查发现错误以后,在命令行提示用户是否删除错误的记录。如果用户没有明确回答删除记录,grpck终止运行。

语法格式: grpck [参数]

常用参数:

-r 只读模式
-s 排序组id

参考实例

对组账号文件进行验证:

[root@linuxcool ~]# grpck /etc/group 

对影子文件进行验证:

[root@linuxcool ~]# grpck /etc/gshadow 


grpconv命令 开启群组的投影密码

 

grpconv命令用于开启群组的投影密码。 Linux系统里的用户和群组密码,分别存放在/etc目录下的passwd和group文件中。因系统运作所需,任何人都得以读取它们,造成安全上的破绽。

投影密码将文件内的密码改存在/etc目录下的shadow和gshadow文件内,只允许系统管理者读取,同时把原密码置换为”x”字符。投影密码的功能可随时开启或关闭,您只需执行grpconv指令就能开启群组投影密码。

语法格式: grpconv

参考实例 

设置cdy组密码:

[root@linuxcool ~]# groupmod --password 123456 cdy
[root@linuxcool ~]# cat /etc/group | grep cdy
cdy:123456:1000:     

启动影子系统:

[root@linuxcool ~]# grpconv
[root@linuxcool ~]# cat /etc/group |  grep cdy
cdy:x:1000:     


grpunconv命令 关闭群组的投影密码

 

grpunconv命令关闭群组的投影密码, 执行grpunconv指令可关闭群组投影密码,它会把密码从gshadow文件内,回存到group文件里。

语法格式: grpunconv

参考实例

先查看未关闭的情况:

[root@linuxcool ~]# cat /etc/gshadow | grep cdy 
cdy:123456:1000:    

启动影子系统:

[root@linuxcool ~]# grpconv
[root@linuxcool ~]# cat /etc/group |  grep cdy 
cdy:x:1000:  

看出密码段已经被x替代。


grub命令 多重引导程序grub的命令行shell工具

 

grub命令是多重引导程序grub的命令行shell工具。

grub是一个引导程序或者是一个系统引导工具,通过grub命令可以引导种类丰富的系统,如linux、freebsd、windows等。

进入linux操作系统之后,可以输入grub命令,就进入“grub>”提示状态,然后可以进入操作若干命令。grub就是shell,bash类似。并且提供了交互模式和非交互两种模式。

语法格式:grub [参数/命令]

常用参数:

-- -batch 打开批处理模式
-- -boot-drive=<驱动器> 指定stage2的引导驱动器
-- -config-file<配置文件> 指定stage2的配置文件
-- -device-map=<文件> 指定设备的映射文件
-- -help 显示帮助信息
-- -install-partition=<分区> 指定stage2安装分区
-- -no-config-file 不使用配置文件
-- -no-pager 不使用内部分页器
-- -preset-menu 使用预设菜单
-- -probe-second-floppy 检测第二个软盘驱动器
-- -read-only 只读模式

常用命令:

color 设备菜单界面的颜色
device 指定设备文件作为驱动器
hide 隐藏分区
pager 改变内部页程序的状态
partnew 创建一个主分区
parttype 改变分区类型
password 为菜单界面设备口令
serial 设置串口设备
setkey 设置键盘映射
splashimage 设置GRUB启动的背景图形文件
terminal 选中终端类型
unhide 还原隐藏分区
clear 清屏
terminfo 定义终端的功能
blocklist 显示文件所在分区位置
boot 启动系统
cat 显示文件内容
chainloader 把启动控制权软交给其他的引导装载程序
cmp 比较两个文件
configfile 加载已经存在的GRUB配置文件
debug 开启/关闭debug模式
displayapm 显示APM BIOS信息
displaymem 显示内存配置
embed 嵌入STAGE1_5设备
find 查找包括文件的所有设备
fstest 切换文件系统测试模式
geometry 显示驱动器的物理信息
halt 关闭系统
help 显示GRUB命令帮助信息
impsprobe 查询SMP信息
initrd 加载initrd/initramfs文件
install 安装GRUB
ioprobe 查询驱动器的I/O端口
kernel 引导系统内核
lock 锁定GRUB引导菜单项,只有输入密码后才能启动
makeactive 激活主分区
map 虚拟映射驱动器
md5crypt 使用MD5算法加密口令
module 加载模块
modulenounzip 加载模块但不进行解压
pause 暂停并等待按键
quit 退出GRUB命令行界面
reboot 重启系统
read 读取内存中的内容
root 设置GRUB的root设备
rootnoverify 设置GRUB的root设备但不装载文件系统
savedefault 保存当前的启动菜单项为默认启动
setup 自动安装GRUB
testload 从文件系统中测试读取文件
testvbe 测试VESA BIOS  EXTENSION
uppermem 强制设备计算机上位内存大小
vbeprobe 查询VESA BIOS  EXTENSION信息

参考实例

grub信息损坏,使用命令启动系统:

grub>root (hd0,1)   /* 假设 /dev/hda2 是你的 /boot 所在的分区 */ 
grub>kernel /boot/vmlinuz-2.6.15-26-386 ro dev=/dev/hda3    /* 假设 /dev/hda3 是你的 / 所在的分区 */ 
grub>initrd /boot/initrd.img-2.6.15-26-386 
grub>boot 

在分区设备上安装grub:

grub>setup (hd0)

指定初始化文件:

grub> initrd /boot/initrd-2.6.11-1.1369_FC4.img 
[Linux-initrd @ 0x2e1000, 0x10e685 bytes]


halt命令 关机

 

halt命令用来关闭正在运行的Linux操作系统,如果是线上跑了业务的服务器,执行此命令需谨慎。

halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。

语法格式:halt [参数]

常用参数

-w 并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)纪录
-d 不写wtmp纪录(已包含在选项[-n]中)
-f 没有调用shutdown而强制关机或重启
-i 关机(或重启)前关掉所有的网络接口
-p 该选项为缺省选项,就是关机时调用poweroff

参考实例

使用-p参数关闭操作系统,等同于poweroff 命令,并关闭了操作系统的电源:

[root@linuxcool ~]# halt -p

使用-f参数强制关机,操作系统电源未关闭:

[root@linuxcool ~]# halt -f
Halting.


help命令 显示帮助信息

 

help命令用于显示shell内部命令的帮助信息。

help命令只能显示shell内部命令的帮助信息,而linux系统中绝大多数命令是外部命令,所以help命令的作用非常有限。而对于外部命令的帮助信息可以使man命令或者info命令查看。

语法格式:help [参数] [内部命令]

常用参数:

-d 输出每个命令的简短描述
-s 输出短格式的帮助信息
-m 以伪man手册的格式显示帮助信息

参考实例

显示cd命令的帮助信息:

[root@linuxcool ~]# help cd

以短格式显示cd命令的帮助信息:

[root@linuxcool ~]# help -s cd
cd: cd [-L|[-P [-e]] [-@]] [目录]

输出cd命令的简短描述:

[root@linuxcool ~]# help -d cd
cd - Change the shell working directory.

以伪man手册格式输出cd命令的帮助信息:

[root@linuxcool ~]# help -m cd


hostid命令 用来打印当前主机的数字化标识

 

hostid命令 用于打印当前主机的十六进制数字标识。是主机的唯一标识,是被用来限时软件的使用权限,不可改变。

语法格式:hostid [参数]

常用参数:

--help 显示帮助信息
--version 显示版本信息

参考实例

打印当前主机的数字化标识:

[root@linuxcool ~]# hostid


hostnamectl命令 修改主机名称

 

hostnamectl可用于查询和更改系统主机名和相关设置。此工具区分三种不同的主机名:高级“漂亮”主机名,其中可能包括特殊字符(例如“lennart’s laptop”),静态主机名,用于在引导时初始化内核主机名。(例如,“lennarts膝上型电脑”),以及从网络配置接收到的默认瞬时主机名。如果是静态的主机名已设置且有效(不是localhost),则不使用临时主机名。

语法格式:hostnamectl [参数]

常用参数

-H 操作远程主机
status 显示当前主机名设置
set-hostname 设置系统主机名

参考实例

显示当前主机名称的配置信息:

[root@linuxcool ~]# hostnamectl status

使用set-hostname命令来设置或修改主机名称:

[root@linuxcool ~]# hostnamectl set-hostname linuxprobe


hostname命令 显示和设置系统的主机名

 

hostname命令用于显示和设置系统的主机名称。环境变量HOSTNAME也保存了当前的主机名。

在使用hostname命令设置主机名后,系统并不会永久保存新的主机名,重新启动机器之后还是原来的主机名。如果需要永久修改主机名,需要同时修改/etc/hosts和/etc/sysconfig/network的相关内容。

语法格式:hostname [参数]

常用参数:

-a 显示主机别名
-d 显示DNS域名
-f 显示FQDN名称
-i 显示主机的ip地址
-s 显示短主机名称,在第一个点处截断
-y 显示NIS域名

参考实例

使用-a参数显示主机别名:

[root@linuxcool ~]# hostname -a

使用-i参数显示主机的ip地址:

[root@linuxcool ~]# hostname -i

使用-y参数显示NIS域名:

[root@linuxcool ~]# hostname -y


htop命令 互动的进程查看器

 

htop是linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台或者X终端中),需要ncurses。htop比较人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。

htop相比较top的优势有可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行、在启动上比top更快、杀进程时不需要输入进程号、支持鼠标选中操作、top已不再维护。

语法格式:htop [参数]

常用参数:

-C 使用单色配色方案
-d 设置更新的延迟, 单位是10微秒
-s 纵列排序
-u 只显示一个指定用户的进程
-p 只显示给用户
-h 打印此命令帮助
-v 打印版本信息

交互式命令:

space 标记一个进程
U 取消所有标记
l 显示进程打来的文件
u 显示特定用户
M 按照内存排序
P 按照CPU排序
T 按在线时长排序
直接输入数字 查找对应的PID进程

参考实例

启动htop:

[root@linuxcool ~]# htop

以单色模式启动htop:

[root@linuxcool ~]# htop -C

设置显示更新的延迟为3秒:

[root@linuxcool ~]# htop -d 3

显示一个给定的用户的进程:

[root@linuxcool ~]# htop -u linuxcool_user


iconv命令 转换文件编码

 

iconv命令是 Linux 系统自带的用于转换文件编码的命令行工具。

语法格式:iconv [参数]

常用参数:

-f 输入编码
-t 输出编码
-c 忽略不可转换的字符
--unicode-subst=FORMATSTRING 替代不可转换的 Unicode 字符
--byte-subst=FORMATSTRING 替代不可转换的字节
--widechar-subst=FORMATSTRING 替代不可转换的宽字符
-s 不显示有关转换出错的信息
-l 列出支持的编码
--version 显示版本信息并退出

参考实例

查看支持的编码列表:

[root@linuxcool ~]# iconv -l

转换文件内容编码:

[root@linuxcool ~]# iconv -f ENCODING -t ENCODING INPUTFILE


id命令 显示用户ID和组ID

 

id命令可以显示真实有效的用户ID(UID)和组ID(GID)。UID 是对一个用户的单一身份标识。组ID(GID)则对应多个UID。id命令已经默认预装在大多数Linux系统中。要使用它,只需要在你的控制台输入id。不带选项输入id会显示如下。结果会使用活跃用户。

当我们想知道某个用户的UID和GID时id命令是非常有用的。一些程序可能需要UID/GID来运行。id使我们更加容易地找出用户的UID以GID而不必在/etc/group文件中搜寻。如往常一样,你可以在控制台输入man id进入id的手册页来获取更多的详情。

语法格式:id [参数] [用户名]

常用参数

-g 显示用户所属群组的ID
-G 显示用户所属附加群组的ID
-n 显示用户,所属群组或附加群组的名称
-r 显示实际ID
-u 显示用户ID
--help 显示帮助
--version 显示版本信息

参考实例

显示当前用户的所有信息:

[root@linuxcool ~]# id
uid=0(root) gid=0(root) groups=0(root)

显示用户所属群组的ID:

[root@linuxcool ~]# id -g
0

显示用户所属附加群组的ID:

[root@linuxcool ~]# id -G
0

显示指定用户信息:

[root@linuxcool ~]# id linuxcool
uid=1000(linuxcool) gid=1000(linuxcool) groups=1000(linuxcool)


initctl命令 控制和管理init守护进程

 

initctl命令的作用是控制和管理init守护进程。

initctl命令包含在upstart提供的命令中。upstart是使用的事件驱动的一个优化,该优化体现为启动服务A的时候,不用等待A的结束就可以启动服务B了。

initctl命令允许系统管理员与upstart init后台守护进程交互。当作为initctl运行时,第一个非选项参数是命令本身,其他参数可以在命令之前或之后指定。默认为start、stop、restart、reload和status命令。

语法格式:initctl [参数] [ARG]

常用参数:

-- -system 用init守护进程通信常会进行一个私有socket连接
-- -no-wait 适用于start、stop、restart和emit命令
-- -quiet 只降低所有命令错误的输出
-- -dest 当使用--system选项时指定init守护进程的名称

命令描述:

start 启动作业
list 列出作业
stop 停止作业
restart 重启作业
reload 重新加载作业
status 查看作业状态
emit 命令事件发出的请求
reload-configuration 重新加载配置

参考实例

列出所有作业:

[root@linuxcool ~]# initctl list

启动作业control-alt-delete:

[root@linuxcool ~]# initctl start control-alt-delete

查看作业/dev/tty6的状态:

[root@linuxcool ~]# initctl status tty TTY=/dev/tty6

重新加载/dev/tty6配置:

[root@linuxcool ~]# initctl reload tty TTY=/dev/tty6


init命令 切换系统运行级别

 

init命令是Linux下的进程初始化工具,init进程是所有Linux进程的父进程,它的进程号为1。init命令是Linux操作系统中不可缺少的程序之一,init进程是Linux内核引导运行的,是系统中的第一个进程。

语法格式:init [参数]

常用参数:

0 关机
1 单用户
2 多用户
3 完全多用户模式
5 图形界面
6 重启

参考实例

关闭服务器:

[root@linuxcool ~]# init 0

切换单用户模式:

[root@linuxcool ~]# init 1

切换多用户模式:

[root@linuxcool ~]# init 2  

切换完全多用户模式:

[root@linuxcool ~]# init 3  

重启服务器:

[root@linuxcool ~]# init 6 


iostat命令 监视系统输入输出设备和CPU的使用情况

 

ostat被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。

语法格式: iostat [参数] [设备]

常用参数:

-c 仅显示CPU使用情况
-d 仅显示设备利用率
-k 显示状态以千字节每秒为单位,而不使用块每秒
-m 显示状态以兆字节每秒为单位
-p 仅显示块设备和所有被使用的其他分区的状态
-t 显示每个报告产生时的时间

参考实例

每隔两秒报告一次:

[root@linuxcool ~]# iostat -d 2

每2秒报告一次,持续6次:

[root@linuxcool ~]# iostat -d 2 6

显示sda与sdc的统计数据,每2秒报告一次,持续6次:

[root@linuxcool ~]# iostat -x sda sdc 2 6


iotop命令 监视磁盘I/O状态

 

iotop命令是一个用来监视磁盘I/O使用状况的top类工具。iotop具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。

Linux下的IO统计工具如iostat,nmon等大多数是只能统计到per设备的读写情况,如果你想知道每个进程是如何使用IO的就比较麻烦,使用iotop命令可以很方便的查看。

语法格式:iotop [参数]

常用参数:

-o 只显示有io操作的进程
-b 批量显示,无交互,主要用作记录到文件
-n NUM 显示NUM次,主要用于非交互式模式
-d SEC 间隔SEC秒显示一次
-p PID 监控的进程pid
-u USER 监控的进程用户

参考实例

使用-o参数只显示IO操作进程:

[root@linuxcool ~]# iotop -o

使用-b参数批量显示,无交互:

[root@linuxcool ~]# iotop -b

使用-u参数显示root用户的IO进程:

[root@linuxcool ~]# iotop -u root


ip6tables-restore命令 还原ip6tables表

 

ip6tables-restore命令用来还原ip6tables表。

语法格式:ip6tables-restore [参数]

常用参数:

-c 指定在还原iptables表时候,还原当前的数据包计数器和字节计数器的值
-t 指定要还原表的名称

参考实例

还原iptables配置:

[root@linuxcool ~]# ip6tables-restore < ip6tables.bak

指定在还原iptables表时候,还原当前的数据包计数器和字节计数器的值:

[root@linuxcool ~]# ip6tables-restore -c < ip6tables.bak 

指定要还原表的名称:

[root@linuxcool ~]# ip6tables-restore -t filter.bak 


ip6tables-save命令 保存ip6tables表配置

 

ip6tables-save命令用来保存ip6tables表配置。

语法格式:ip6tables-save [参数]

常用参数:

-c 指定要保存的iptables表时,保存当前的数据包计算器和字节计数器的值
-t 指定要保存的表的名称

参考实例

指定要保存的iptables表时,保存当前的数据包计算器和字节计数器的值:

[root@linuxcool ~]# ip6tables-save -c > ip6tables.bak 

指定要保存的表的名称:

[root@linuxcool ~]# ip6tables-save -t filter > filter.bak 


ip6tables命令 IPv6的防火墙命令

 

ip6tables命令和iptables一样,都是linux中防火墙软件,不同的是ip6tables采用的TCP/ip协议为IPv6。

语法格式:ip6tables [参数]

常用参数:

-A 向规则链中添加条目
-D 从规则链中删除条目
-i 向规则链中插入条目
-L 显示规则链中已有的条目
-F 清楚规则链中已有的条目
-p 指定要匹配的数据包协议类型
-s 指定要匹配的数据包源ip地址
-j 指定要跳转的目标

参考实例

查看当前的 IPv6 防火墙配置:

[root@linuxcool ~]# ip6tables -L

查看当前的 IPv6 防火墙配置并显示行号:

[root@linuxcool ~]# ip6tables -nL --line-numbers

清空当前的 IPv6 防火墙配置:

[root@linuxcool ~]# ip6tables -F


ipcrm命令 移除一个消息对象、共享内存段或信号集

 

ipcrm命令用来删除一个或更多的消息队列、信号量集或者共享内存标识。

语法格式:ipcrm [参数]

常用参数:

-m SharedMemory id 删除共享内存标识 SharedMemoryID
-M SharedMemoryKey 删除用关键字 SharedMemoryKey 创建的共享内存标识
-q MessageID 删除消息队列标识 MessageID 和与其相关的消息队列和数据结构
-Q MessageKey 删除由关键字 MessageKey 创建的消息队列标识和与其相关的消息队列和数据结构
-s SemaphoreID 删除信号量标识 SemaphoreID 和与其相关的信号量集及数据结构
-S SemaphoreKey 删除由关键字 SemaphoreKey 创建的信号标识和与其相关的信号量集和数据结构

参考实例

删除和 SharedMemoryID 18163 相关的共享内存段:

[root@linuxcool ~]# ipcrm -m 18163

删除和 MessageID 18163 相关的共享内存段:

[root@linuxcool ~]# ipcrm -q 18163 


iperf3命令 进行网络吞吐量测试

 

iperf3命令是一个执行网络吞吐量测量的工具; 它可以测试TCP或UDP的吞吐量, 要执行iperf3测试,用户必须同时建立一个服务器和一个客户端。

语法格式:iperf3 [参数]

常用参数:

-p 服务端监听或客户端连接的端口,默认端口:5201
-s 启动服务端监听
-f 格式化带宽输出:Kbits, Mbits, Kbytes, Mbytes
-i 以秒为单位周期性输出带宽报告,默认显示时间间隔为1秒,0表示不显示
-F 传输或接收特定的文件
-B 绑定特定的接口
-d 显示调试输出信息
-J 以JSON格式输出
-V 显示更多详细的输出

参考实例

开启服务端监听:

[root@linuxcool ~]# iperf3 -s

开启服务端监听并设置自定义监听端口:

[root@linuxcool ~]# iperf3 -s -p 5208

启动调试模式:

[root@linuxcool ~]# iperf3 -s -d

以JSON格式输出:

[root@linuxcool ~]# iperf3 -s -J

显示更多详细的输出:

[root@linuxcool ~]# iperf3 -s -V


ipstat命令 实时显示 Linux 内核中 iptables 的工作状态

 

ipstat 命令用于根据命令语法中指定的所选输出模式和排序顺序收集并报告有关服务器上 IP 通信流量的统计信息。使用此命令可以观察 IP 层的网络通信流量(按源、目标、高层协议和接口进行聚合)。当您希望观察一个服务器与其他服务器之间的通信量时,使用此命令。

语法格式: ipstat [参数]

常用参数:

-c 在以前的报告之后打印更新的报告
-l 指定每个报表要输出的数据行数
-d 显示标准日期格式 (–d
 d) 的时间戳

参考实例:

观察最活跃的五个 IP 通信流:

[root@linuxcool ~]# ipstat -l 5 

在以前的报告之后打印更新的报告,时间间隔为3:

[root@linuxcool ~]# ipstat -c 3

在unix时间形式打印时间戳,时间间隔为3:

[root@linuxcool ~]# ipstat -d u -c 3


iptables-restore命令 还原iptables表的配置

 

iptables-restore命令用来还原iptables-save命令所备份的iptables配置。

语法格式:iptables-restore [参数]

常用参数:

-c 指定在还原iptables表时候,还原当前的数据包计数器和字节计数器的值
-t 指定要还原表的名称

参考实例

还原iptables配置:

[root@linuxcool ~]# iptables-restore < iptables.bak

指定在还原iptables表时候,还原当前的数据包计数器和字节计数器的值:

[root@linuxcool ~]# iptables-restore -c < iptables.bak

指定要还原表的名称:

[root@linuxcool ~]# iptables-restore -t filter.bak


iptables-save命令 保存iptables的表配置

 

iptables-save命令用于保存iptables的表配置。

语法格式:iptables-save [参数]

常用参数:

-c 指定要保存的iptables表时,保存当前的数据包计算器和字节计数器的值
-t 指定要保存的表的名称

参考实例

指定要保存的iptables表时,保存当前的数据包计算器和字节计数器的值:

[root@linuxcool ~]# iptables-save -c > iptables.bak

指定要保存的表的名称:

[root@linuxcool ~]# iptables-save -t filter > filter.bak


iscsiadm命令 iscsi管理工具

 

iscsiadm实用程序是一个命令行工具,允许发现和登录iSCSI目标,以及访问和管理open-iscsi数据库。

Open-iscsi没有使用 iSCSI RFC 所定义的术语node,其中节点是指单个iSCSI启动器或目标。Open-iscsi使用术语node来指代目标上的门户。

语法格式:iscsiadm [参数]

常用参数:

-m discovery 指定模式为discovery
-p 指定目标服务器IP和端口
-o 开启认证模式
-t st 执行扫描操作的类型

参考实例

发现iSCSI目标服务器:

[root@linuxcool ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.1:3260

登录iSCSI服务器节点:

[root@linuxcool ~]# iscsiadm -m node –T iqn.1997-05.com.test:raid -p 192.168.1.1:3260 -l

设置开机自动登录:

[root@linuxcool ~]# iscsiadm -m node –T iqn.1997-05.com.test:raid -p 192.168.1.1:3260 --op update -n node.startup -v automatic

注销所有连接:

[root@linuxcool ~]# iscsiadm -m node --logoutall=all


journalctl命令 查看日志

 

Systemd统一管理所有 Unit 的启动日志。带来的好处就是可以只用journalctl一个命令,查看所有日志(内核日志和 应用日志)。

语法格式: journalctl [参数]

常用参数:

-k 查看内核日志
-b 查看系统本次启动的日志
-u 查看指定服务的日志
-n 指定日志条数
-f 追踪日志
--disk-usage 查看当前日志占用磁盘的空间的总大小

参考实例

查看所有日志:

[root@linuxcool ~]# journalctl 

查看内核日志:

[root@linuxcool ~]# journalctl -k 

查看系统本次启动的日志:

[root@linuxcool ~]# journalctl -b 

查看httpd的日志:

[root@linuxcool ~]# journalctl -u httpd

查看最近发生的20条日志:

[root@linuxcool ~]# journalctl -n 20

追踪日志:

[root@linuxcool ~]# journalctl -f


kernelversion命令 打印内核主版本号

 

kernelversion命令用于打印当前内核的主版本号。 kernelversion命令仅能输出当前内核的主版本号和次版本号信息。如果要显示更全面的内核信息可以使用uname命令。

语法格式: kernelversion

参考实例

打印内核主版本号:

[root@linuxcool ~]# kernelversion
2.6


kexec命令 直接起动另一linux内核

 

kexec命令的功能是可以从当前正在运行的内核直接引导到一个新内核。

kexec命令跳过了整个引导装载程序阶段的第一部分,直接跳转到我们希望引导到的内核。不再有硬件的重启和固件操作,不再涉及引导装载程序。完全避开了引导序列最慢的一部分。这一功能部件带来的最大益处在于,系统现在可以极其快速地重新启动。

使用kexec命令内核版本必需为 2.6.13 或以上。

语法格式:kexec [参数]

常用参数:

-l 指定内核映像文件
-e 允许当前被加载的内核
-f 强制立即调用系统调用“kexec”,而不调用“shutdown”
-t 指定新内核的类型
-u 卸载当前的kexec目标内核

参考实例

装在指定的内核映像:

[root@linuxcool ~]# kexec -l /boot/bzImage -append="root=/dev/hda1" 

重新启动已装载的内核:

[root@linuxcool ~]# kexec -e


killall命令 使用进程名称来杀死一组进程

 

killall命令使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。

我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。

语法格式:killall [参数]

常用参数

-e 对长名称进行精确匹配
-l 打印所有已知信号列表
-p 杀死进程所属的进程组
-i 交互式杀死进程,杀死进程前需要进行确认
-r 使用正规表达式匹配要杀死的进程名称
-s 用指定的进程号代替默认信号“SIGTERM”
-u 杀死指定用户的进程

参考实例

杀死httpd所有进程:

[root@linuxcool ~]# killall -9 httpd

使用-l参数打印所有已知信号列表:

[root@linuxcool ~]# killall -l


kill命令 杀死进程

 

kill正如这个单词的意思一样,就是杀死。linux系统中kill命令用来删除执行中的程序或工作。

kill命令可将指定的信号发送给相应的进程或工作。 kill命令默认使用信号为15,用于结束进程或工作。如果进程或工作忽略此信号,则可以使用信号9,强制杀死进程或作业。

语法格式:kill [参数] [进程号]

常用参数:

-l 列出系统支持的信号
-s 指定向进程发送的信号
-a 处理当前进程时不限制命令名和进程号的对应关系
-p 指定kill命令只打印相关进程的进程号,而不发送任何信号

参考实例

列出系统支持的信号列表:

[root@linuxcool ~]# kill -l

查找进程,并用kill杀掉 :

[root@linuxcool ~]# ps
PID TTY TIME CMD
1951 pts/0 00:00:00 bash
2446 pts/0 00:00:00 ps

查看bash的进程ID为1951,然后输入:

[root@linuxcool ~]# kill -9 1951


lastb命令 列出登入系统失败的用户

 

lastb命令用于显示用户错误的登录列表,此指令可以发现系统的登录异常。

单独执行lastb命令,它会读取位于/var/log目录下,名称为btmp的文件,并把该文件内容记录的登入失败的用户名单,全部显示出来。

语法格式:lastb [参数]

常用参数

-a 把从何处登入系统的主机名称或ip地址显示在最后一行
-d 将IP地址转换成主机名称
-f 指定记录文件
-n 设置列出名单的显示列数
-R 不显示登入系统的主机名称或IP地址
-x 显示系统关机,重新开机,以及执行等级的改变等信息

参考实例

列出登入失败的用户记录:

[root@linuxcool ~]# lastb 
root     ssh:notty    192.168.3.8      Mon Apr 29 14:25 - 14:25  (00:00)    
root     ssh:notty    192.168.3.8      Mon Apr 29 14:25 - 14:25  (00:00)    

btmp begins Mon Apr 29 14:25:16 2019

使用-a参数把IP显示在最后列:

[root@linuxcool ~]# lastb -a
root     ssh:notty    Mon Apr 29 14:25 - 14:25  (00:00)     192.168.3.8
root     ssh:notty    Mon Apr 29 14:25 - 14:25  (00:00)     192.168.3.8

btmp begins Mon Apr 29 14:25:16 2019

使用-R参数不显示主机名和IP信息:

[root@linuxcool ~]# lastb -R
root     ssh:notty    Mon Apr 29 14:43 - 14:43  (00:00)    
root     ssh:notty    Mon Apr 29 14:25 - 14:25  (00:00)    

btmp begins Mon Apr 29 14:25:16 2019


lastlog命令 显示用户最近一次登录信息

 

lastlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示Never logged。注意需要以root身份运行该命令。

语法格式:lastlog [参数]

常用参数:

-b <天数> 显示指定天数前的登录信息
-t <天数> 显示指定天数以来的登录信息
-u <用户名> 显示指定用户的最近登录信息
-h 显示召集令的帮助信息

参考实例

显示系统中所有用户最近一次登录信息 :

[root@linuxcool ~]# lastlog

显示指定天数前的登录信息 :

[root@linuxcool ~]# lastlog -b 7

显示指定天数以来的登录信息:

[root@linuxcool ~]# lastlog -t 7

显示指定用户的最近登录信息:

[root@linuxcool ~]# lastlog -u jaking
Username Port From Latest
jaking :0 Tue Apr 9 15:54:58 +0800 2019


ldconfig命令 动态链接库管理命令

 

ldconfig命令的作用主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库,进而创建出动态装入程序(ld.so)所需的连接和缓存文件。

缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表,为了让动态链接库为系统所共享,需运行动态链接库的管理命令ldconfig,此执行程序存放在/sbin目录下。

ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。

语法格式:  ldconfig [参数]

常用参数:

-v 显示正在扫描的目录及搜索到的动态链接库以及所创建的连接的名字
-n 仅扫描命令行指定的目录,不扫描默认目录,也不扫描配置文件所列的目录
-N 不重建缓存文件
-X 不更新文件的连接
-f <conf> 指定动态链接库的配置文件为CONF,系统默认为/etc/ld.so.conf
-C<cache> 指定生成的缓存文件为CACHE,系统默认的是/etc/ld.so.cache
-r<root> 改变应用程序的根目录为ROOT
-l 进入专家模式手工设置连接
-p 打印出当前缓存文件所保存的所有共享库的名字
-c<foemat> 指定缓存文件所使用的格式
-V 打印出ldconfig的版本信息,而后退出
-- -help 打印出其帮助信息,而后退出

参考实例

执行动态链接库管理命令:

[root@linuxcool ~]# sudo ldconfig

追加库文件/usr/local/mysql/lib到/etc/ld.so.conf文件中:

[root@linuxcool ~]# echo "/usr/local/mysql/lib" >>/etc/ld.so.conf
[root@linuxcool ~]# ldconfig -v | grep mysql                    

扫描命令行指定的目录:

[root@linuxcool ~]# ldconfig -n /linuxcool

不更新文件的链接:

[root@linuxcool ~]# ldconfig -X


liloconfig命令 设置核心载入

 

liloconfig命令用于设置核心载入,开机管理程序。

liloconfig是Slackware发行版专门用来调整lilo设置的程序。它通过互动式操作界面,让用户能够利用键盘上的方向键等,轻易地操控lilo的安装,设置作业,而无须下达各种参数或撰写配置文件。

语法格式:liloconfig

参考实例

设置核心载入:

[root@linuxcool ~]# liloconfig 


lilo命令 安装核心载入

 

lilo命令用于安装核心载入,开机管理程序。lilo是个Linux系统核心载入程序,同时具备管理开机的功能。单独执行lilo指令,它会读取/etc/lilo.conf配置文件,然后根据其内容安装lilo。虽然 LILO 仍在不断地发展,但 LILO 工作原理的基本概念保持不变。

语法格式: lilo [参数]

常用参数:

-b 指定安装lilo之处的外围设备代号
-c 使用紧致映射模式
-C 指定lilo的配置文件
-d 设置开机延迟时间
-D 指定开机后预设启动的操作系统,或系统核心识别标签

参考实例

使用LILO 作为引导加载程序:

[root@linuxcool ~]# /sbin/lilo -v -v 


localectl命令 控制系统的本地化与键盘布局

 

localectl命令可用于查询与修改系统的本地化(locale)与键盘布局的设置。 它通过与systemd-localed.service通信来修改例如 /etc/locale.conf 与 /etc/vconsole.conf 之类的配置文件。本地化设置控制着 用户界面的语言、字符类型与字符编码、 日期时间与货币符号的表达方式 等许多细节。

语法格式:localectl [参数]

常用参数:

--no-ask-password 在执行特权操作时不向用户索要密码
-H 操作指定的远程主机
--no-pager 不将程序的输出内容管道(pipe)给分页程序
status 显示当前的本地化设置与键盘映射
set-locale LOCALE 设置系统的本地化环境变量

参考实例

使用localectl命令设置系统的本地化字符集环境变量:

[root@linuxcool ~]# localectl set-locale LANG=en_US.UTF-8

显示当前的本地化设置与键盘映射:

[root@linuxcool ~]# localectl status

列出本地所有字符集:

[root@linuxcool ~]# localectl list-locales


locale命令 设置字符集

 

locale是linux系统中多语言环境的设置接口,Locale根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统所定义的一个软件运行时的语言环境。

通过locale来设置程序运行的不同语言环境,locale由ANSI C提供支持。locale的命名规则为<语言>_<地区>.<字符集编码>,如zh_CN.UTF-8,zh代表中文,CN代表大陆地区,UTF-8表示字符集。在locale环境中,有一组变量,代表国际化环境中的不同设置。

语法格式:locale [参数]

常用参数:

-a 写入可用区域设置的名称
-m 写入可用字符映射的名称
-c 写入选定类别的名称
-k 写入选定关键字的名称

参考实例

显示默认的语言字符集:

[root@linuxcool ~]# locale

查看可用的语言环境:

[root@linuxcool ~]# locale -a


logger命令 系统日志记录

 

logger是一个shell命令接口,可以通过该接口使用Syslog的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。

logger记录器通过在系统日志中创建条目,为syslog系统日志模块提供了一个shell命令接口。

语法格式:logger [参数]

常用参数:

-d 使用数据报(UDP)而不是使用默认的流连接(TCP)
-i 逐行记录每一次logger的进程ID
-f 记录特定的文件
-n 写入指定的远程syslog服务器,使用UDP代替内装式syslog的例程
-P 使用指定的UDP端口,默认的端口号是514
-s 输出标准错误到系统日志

参考实例

往系统日志例程中写入,在/var/log/syslog中查看:

[root@linuxcool ~]# logger System Rebooted

记录特定的文件:

[root@linuxcool ~]# logger -f /home/a.txt


loginctl命令 控制systemd登录管理器

 

loginctl命令可用于检查和控制systemd的状态;查看已经登录的用户会话消息。

语法格式:loginctl [参数]

常用参数:

-a 显示会话/用户/座位属性时,显示所有属性,无论是否设置
list-users 显示用户名与ID
list-sessions 显示会话配置信息
-M 在本地容器上执行操作

参考实例

显示所有会话及属性:

[root@linuxcool ~]# loginctl -a

显示会话配置消息:

[root@linuxcool ~]# loginctl show-session


login命令 登入系统

 

login指令让用户登入系统,您亦可通过它的功能随时更换登入身份。在Slackware发行版中 ,您可在指令后面附加欲登入的用户名称,它会直接询问密码,等待用户输入。当/etc目录里含名称为nologin的文件时,系统只root帐号登入系统,其他用户一律不准登入。

语法格式:login

参考实例

使用新的身份登录系统 :

[root@linuxcool ~]# login


logname命令 显示用户名称

 

执行logname指令,它会显示目前用户的名称。

语法格式:logname [参数]

常用参数:

--help 在线帮助
--vesion 显示版本信息

参考实例

显示登录账号的信息:

[root@linuxcool ~]# logname 


logout命令 退出系统

 

logout指令让用户退出系统,其功能和login指令相互对应。

语法格式:logout [参数]

常用参数:

--help 在线帮助
--vesion 显示版本信息

参考实例

退出系统:

[root@linuxcool ~]# logout


logrotate命令 管理记录文件

 

使用logrotate指令,可以让你轻松管理系统所产生的记录文件。它提供自动替换,压缩,删除和邮寄记录文件,每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。您必须自行编辑,指定配置文件,预设的配置文件存放在/etc目录下,文件名称为logrotate.conf。

语法格式:logrotate [参数]

常用参数:

--help 在线帮助
-d 详细显示指令执行过程,便于排错或了解程序执行的情况
-f 强行启动记录文件维护操作,纵使logrotate指令认为没有需要亦然
-s 使用指定的状态文件
-v 显示指令执行过程
-usage 显示指令基本用法

参考实例

指定记录文件:

[root@linuxcool ~]# logrotate /root/log.config 

强行启动记录文件维护操作:

[root@linuxcool ~]# logrotate -f /root/log.config 

显示配置文件的执行过程:

[root@linuxcool ~]# logrotate -d -f /etc/logrotate.d/nginx


logsave命令 将输出信息保存到指定的日志文件中

 

logsave程序将使用指定的参数执行cmd_prog,并将其输出的副本保存到logfile。如果日志文件的包含目录不存在,则logsave将在内存中累积输出,直到可以将其写出。输出的副本也将写入标准输出。

如果命令prog是单个连字符(“-”),那么log save将从标准输入中获取其输入并将其保存在日志文件中,而不是执行程序,logsave对于保存初始启动脚本的输出非常有用,直到/var分区被装入,因此输出可以写入/var/log。

语法格式:logsave [参数]

常用参数:

-a 追加信息到指定的日志文件中
-s 显示日志信息,不写入到文件中

参考实例

保存输出的日志信息到指定的文件中:

[root@linuxcool ~]# logsave /tmp/logdir/logfile bash -c "sleep 2;date"

使用-a参数往日志文件中追加信息:

[root@linuxcool ~]# logsave -a /tmp/logdir/logfile bash -c "sleep 2;date"


logwatch命令 遍历系统日志

 

logwatch命令是一个可定制和可插入式的日志监视系统,它通过遍历给定时间范围内的系统日志文件而产生日志报告。logwatch默认每天执行一次,可以从/etc/cron.daily里看到。

语法格式:logwatch [参数]

常用参数:

--detail 指定日志报告的详细程度
--range 指定处理日志的日期范围

参考实例

只看sshd的日志情况:

[root@linuxcool ~]# logwatch --service sshd --detail High

查看sshd当天的日志情况:

[root@linuxcool ~]# logwatch --service sshd --detail High --range today

查看sshd昨天的日志情况:

[root@linuxcool ~]# logwatch --service sshd --detail High --range yesterday

查看sshd从2018年10月24日到2019年10月24日的日志情况:

[root@linuxcool ~]# logwatch --service sshd --detail High --range 'between 10/24/2018 and 10/24/2019'


lpd命令 常驻的打印机管理程序

 

lpd命令是一个常驻的打印机管理程序,它会根据 /etc/printcap 的内容来管理本地或远端的打印机。这个程序通常是由 /etc/rc.d 中的程序在系统启始阶段执行。

lpr 和 lpd组成了一个可以离线工作的系统,当你使用 lpr 时,打印机不需要能立即可用,甚至不用存在。

lpd会自动监视打印机的状况,当打印机上线后,便立即将档案送交处理。这个得所有的应用程序不必等待打印机完成前一工作。

语法格式: lpd [参数]

常用参数:

-l 将一些错误信息显示在标准输出上

参考实例

自动监视打印机情况:

[root@linuxcool ~]# lpd

安装lpd服务:

[root@linuxcool ~]# yum install lpd

将一些错误信息显示在标准输出上:

[root@linuxcool ~]# lpd -l


lsb_release命令 查看LSB信息

 

LSB是Linux Standard Base的缩写,lsb_release命令用来显示LSB和特定版本的相关信息。如果使用该命令时不带参数,则默认加上-v参数。

语法格式: lsb_release [参数]

常用参数:

-i 显示系统名称简写
-d 显示系统全称和版本号
-r 显示版本号
-a 显示LSB所有信息

参考实例

使用-i参数显示系统简称:

[root@linuxcool ~]# lsb_release -i

使用-d参数显示系统全称:

[root@linuxcool ~]# lsb_release -d

使用-a参数显示LSB所有信息:

[root@linuxcool ~]# lsb_release -a


lshw命令 查看硬件信息

 

lshw是一个能把我们显示硬件信息的小工具,它能为我们提供内存配置、固件版本、主板配置信息、CPU版本和速度、cache信息、总线速度等。

语法格式:lshw [参数]

常用参数:

-short 显示设备列表,输出包括设备路径(path)、类别(class)以及简单描述
-businfo 显示设备列表,输出包括总线信息、SCSI、USB、IDE、PCI地址等
-C memory 显示内存相关的硬件

参考实例

显示设备列表,输出包括设备路径(path)、类别(class)以及简单描述:

[root@linuxcool ~]# lshw -short

显示设备列表,输出包括总线信息、SCSI、USB、IDE、PCI地址等:

[root@linuxcool ~]# lshw -businfo 

显示内存相关的硬件:

[root@linuxcool ~]# lshw -C memory 


lslk命令 列出本地锁

 

lslk命令的作用是可以列出本地inode上的文件锁的信息。

锁可以属于本地系统上的进程,也可以属于本地系统是NFS服务器的NFS客户端系统上的进程。

注意选定文件如果没有任何选项,lslk命令将列出与系统本地文件关联的所有锁。 指定选择选项后,将禁用所有锁的列表,并且将选择选项进行或运算。仅列出满足任何选择条件的锁。 指定-a选项时,将禁用所有锁的列表,并且将选择选项与在一起。仅列出符合所有选择条件的锁。

语法格式:lslk [参数] [路径]

常用参数:

-a 列出选择选项进行AND运算
-b 避免内核函数可能会阻塞
-n 禁止在网络主机名和网络地址之间互相转化
-i<主机名> 按拥有进程是Internet主机还是网络地址选择锁的列表
-v 列出版本信息
-k<内核名称> 以指定内核名称作为默认的内核名称列出文件路径
-p<进程PID> 按所属的进程标识(PID)号选择锁的列表
-S<超时时间> 为内核函数lstat、readlink和stat指定一个可选的超时时间,单位为秒,否则可能出现死锁。超时时间最小设置为2,在默认情况下是15,当没有指定值时,则使用默认值
-w 禁止非致命警告消息

输出字段:

SRC 进程持有锁的来源
PID 进程持有锁的进程标识号
DEV 锁的文件所在的设备(主要和次要号码)
INUM 锁文件的inode号
SZ 锁文件的大小
TY 锁类型
r:读取
rw:读取和写入
w:写入
?:未知
M 锁的强制状态:0表示没有,1表示设置
ST 锁的相对字节偏移量
WH 锁的起始偏移量
END 锁的结束偏移量
LEN 锁的长度
NAME 锁文件的名称

参考实例

列出所有的锁:

[root@linuxcool ~]# lslk

从主机linuxcool.com上列出锁:

[root@localhost ~]# lslk -i linuxcool.com

列出进程1234和8888持有的锁:

[root@linuxcool ~]# lslk -p 1234,8888


lsmod命令 显示已加载模块状态

 

lsmod命令用于显示已经加载到内核中的模块的状态信息。

执行lsmod命令后会列出所有已载入系统的模块。linux操作系统的核心具有模块化的特性,因此在编译核心时,务须把全部的功能都放入核心。可以将这些功能编译成独立的模块,待需要时再分别载入。

lsmod命令支持内核版本为2.5.48以上的linux系统,比此版本老的内核使用命令lsmod.old

语法格式:lsmod

参考实例

显示模块信息:

[root@linuxcool ~]# lsmod


lsns命令 列出名称空间

 

lsns命令列出有关所有当前可访问的名称空间或给定名称空间的信息。命名空间标识符是一个索引节点号。

语法格式:lsns [参数]

常用参数:

-J 使用 JSON 输出格式
-l 使用列表格式的输出
-n 不打印标题
-r 使用原生输出格式
-u 不截断列中的文本
-t 名字空间类型(mnt, net, ipc, user, pid, uts, cgroup)

参考实例

列出net名字空间类型:

[root@linuxcool ~]# lsns -t net

使用列表格式的输出:

[root@linuxcool ~]# lsns -l

不打印标题:

[root@linuxcool ~]# lsns -n

不截断列中的文本:

[root@linuxcool ~]# lsns -u


lsof命令 查看文件的进程信息

 

lsof命令用于查看进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。

在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。

语法格式:lsof [参数] [文件]

常用参数:

-a 列出打开文件存在的进程
-c <进程名> 列出指定进程所打开的文件
-g 列出GID号进程详情
-d <文件号> 列出占用该文件号的进程
+d <目录> 列出目录下被打开的文件
+D <目录> 递归列出目录下被打开的文件
-n <目录> 列出使用NFS的文件
-i <条件> 列出符合条件的进程
-p <进程号> 列出指定进程号所打开的文件
-u 列出UID号进程详情
-h 显示帮助信息
-v 显示版本信息

参考实例

最简单的用法,直接输入lsof查看文件的进程信息:

[root@linuxcool ~]# lsof

列出GID号进程详情:

[root@linuxcool ~]# lsof -g

列出目录下被打开的文件:

[root@linuxcool ~]# lsof +d /root

递归列出目录下被打开的文件:

[root@linuxcool ~]# lsof +D /home/linuxcool

列出使用NFS的文件:

[root@linuxcool ~]# lsof -n /root


lssubsys命令 列出包含指定子系统的层次结构

 

lssubsys命令的作用是可以列出包含指定子系统的层次结构。

如果未定义子系统,那么将显示所有已安装的层次结构。不带任何参数直接执行lssubsys命令效果等同于带参数-a。

语法格式:lssubsys [参数]

常用参数:

-i 如果子系统处于层次结构,则显示连接的层次数
-m 显示挂载点
-a 显示所有的子系统(包括没有挂载的)

参考实例

查看所有支持的子系统:

[root@linuxcool ~]# lssubsys -a

查看所有子系统挂载点:

[root@linuxcool ~]# lssubsys -m

查看单个子系统(如memory)挂载位置:

[root@linuxcool ~]# lssubsys –m memory
memory


lua命令 独立的Lua解释器

 

Lua是一门强大,高效,轻量级的嵌入式脚本语言。lua命令是独立的Lua解释器。它能能够加载并执行Lua源程序和预编译的二进制格式。lua既可以作为脚本解释器,也可以用作交互式解释器。

语法格式:lua [参数] [文件]

常用参数:

-e start 执行start语句,如果start中含有空格,引号等特殊字符则需要使用引号括起来
-i 在执行完script后进入交互模式
-l 加载库文件
-v 显示版本信息

参考实例

新建一个test.lua文件:

[root@linuxcool ~]# vim test.lua 
print("Hello World!")
print("www.linuxcool.com")

使用lua命令执行以上脚本:

[root@linuxcool ~]# lua test.lua 
Hello World!
www.linuxcool.com


lvremove命令 删除指定LVM逻辑卷

 

lvremove命令用于删除指定LVM逻辑卷。如果逻辑卷已经使用mount命令加载,则不能使用lvremove命令删除。必须使用umount命令卸载后,逻辑卷方可被删除。

语法格式:lvremove [参数]

常用参数

-f 强制删除

参考实例

删除逻辑卷lvol0:

[root@linuxcool ~]# lvremove /dev/vg1000/lvol0
Do you really want to remove active logical 
volume "lvol0"? [y/n]: y   
Logical volume "lvol0" successfully removed


mandb命令 创建或更新手册页索引缓存

 

mandb命令用于初始化或手动更新通常由man维护的索引数据库缓存,缓存包含与手动页面系统的当前状态相关的信息,其中存储的信息由man db实用程序用于提高其速度和功能。

语法格式:mandb [参数]

常用参数:

-d 打印调试信息
-q 不发出警告
-s 不花时间查找或向数据库添加有关stray cats的信息
-p 不花时间检查删除的手册页并从数据库中清理它们
-u 只创建用户数据库,即使有创建系统数据库所需的写权限
-C <文件> 使用此用户配置文件代替默认的 ~/.manpath

参考实例

更新top命令手册页索引缓存:

[root@linuxcool ~]# mandb top

使用-d参数,打印调试信息:

[root@linuxcool ~]# mandb -d unzip

使用-u参数,只创建用户数据库,即使有创建系统数据库所需的写权限:

[root@linuxcool ~]# mandb -d net-tools


mapfile命令 从标准输入读取行并赋值到数组

 

mapfile命令用于从标准输入或文件描述符读取行并赋值到数组

语法格式: mapfile [参数]

常用参数:

-n count 从标准输入中获取最多count行,如果count为零那么获取全部
-O origin 从数组下标为origin的位置开始赋值,默认的下标为0
-s count 跳过对前count行的读取

参考实例

先创建一个示例用的文件alpha.log,每行一个小写字母,共26行:

[root@linuxcool ~]#  echo {a..z} | tr " " "\n" >alpha.log
[root@linuxcool ~]#  cat alpha.log
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z

读取alpha.log文件并将每一行存储到数组myarr中(如果不指定,则存储到默认的MAPFILE数组中):

[root@linuxcool ~]# mapfile myarr <alpha.log
[root@linuxcool ~]# echo ${myarr[@]}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@linuxcool ~]#  echo ${myarr[2]}
c

从标准输入中获取最多6行数据:

[root@linuxcool ~]# mapfile -n 6 myarr <alpha.log 
[root@linuxcool ~]# echo ${myarr[2]}            
c
[root@linuxcool ~]# echo ${myarr[@]}             
a b c d e f

从数组下标为6的位置开始赋值:

[root@linuxcool ~]# mapfile -O 6 myarr <alpha.log 
[root@linuxcool ~]# echo ${myarr[@]}             
g h i j k l a b c d e f g h i j k l m n o p q r s t u v w x y z

跳过对前6行的读取:

[root@linuxcool ~]# mapfile -s 6 myarr <alpha.log 
[root@linuxcool ~]# echo ${myarr[@]}             
g h i j k l m n o p q r s t u v w x y z


metaclear命令 删除活动的元设备和热备用池

 

metaclear命令删除指定的metadevice或hot_spare_pool,或清除指定组件中的所有软分区。一旦元设备或热备用池被删除,必须使用metainit重新创建它,然后才能再次使用它。当前正在使用(打开)的任何元组件都不能删除。

语法格式:metaclear[参数]

常用参数:

–a 删除–s或默认情况下的本地集中的所有元设备和已配置的热备用池
–f 删除(强制)包含处于错误状态的子组件的元设备
–h 显示使用情况消息
–p 从指定的元设备或组件中删除(清除)所有软分区
–r 递归删除指定的元设备和热备用池,但不删除其他设备所依赖的元设备

参考实例

删除名为d10的元设备:

[root@linuxcool ~]#metaclear / dev / md / dsk / d10

删除具有子镜像处于错误状态的镜像mymirror:

[root@linuxcool ~]#metaclear -f mymirror

清除切片c2t3d5s2上的所有软分区,如果这些分区未被其他元设备使用或未打开:

[root@linuxcool ~]#metaclear -p c2t3d5s2


metaimport命令 将磁盘集导入到现有的Solaris Volume Manager配置中

 

metaimport命令允许将磁盘集(包括复制的磁盘集)导入到现有的Solaris卷管理器配置中。复制磁盘集是使用远程复制软件创建的磁盘集。

语法格式:metaimport[参数]

常用参数:

–f 即使没有足够数量的导入磁盘集的副本,也可以强制导入
–n 实际不执行该操作,但是显示如果该操作已运行,则可能导致输出或错误
–r 报告系统上未配置的磁盘集
–s setname 指定导入时要使用的磁盘集名称
-h 显示帮助信息

参考实例

创建一个名为blue的磁盘集,并将c1t5d0标识为包含要导入的磁盘集中的状态数据库副本的磁盘:

[root@linuxcool ~]# metaimport -s blue c1t5d0

扫描连接到系统并配置为系统一部分的所有磁盘和LUN:

[root@linuxcool ~]# metaimport -r


metainit命令 配置元设备

 

metainit命令根据命令行上指定的信息配置元组件和热备用。或者,你可以运行metainit,让它使用你在/etc/lvm/md.指定的配置条目选项卡文件。所有metadevices在使用之前都必须通过metainit命令进行设置。

语法格式:metainit[参数]

常用参数:

-f 即使片中的一个包含一个已挂载的文件系统或正用作交换,或者正在创建的条带的大小小于基础软分区的大小,也强制metainit命令继续执行
-h 显示使用情况消息
-n 在不实际设置元设备的情况下检查命令行或md.tab条目的语法
-r 引导时仅在shell脚本中使用
-s setname 指定用于metainit的磁盘集的名称

参考实例

显示了一个由两个切片组成的元设备/ dev / md / dsk / d15:

[root@linuxcool ~]# metainit d15 1 2 c0t1d0s0 c0t2d0s0 -i 32k

显示了一个元设备/ dev / md / dsk / d75,由三个磁盘的两个条带的串联组成:

[root@linuxcool ~]# metainit d75 2 3 c0t1d0s0 c0t2d0s0 \ 
          c0t3d0s0 -i 16k \ 
3 c1t1d0s0 c1t2d0s0 c1t3d0s0 -i 32k

显示了一个双向镜像/ dev / md / dsk / d50,由两个子镜像组成。该镜像不包含任何现有数据:

[root@linuxcool ~]# metainit d51 1 1 c0t1d0s0 
# metainit d52 1 1 c0t2d0s0 
# metainit d50 -m d51 
# metattach d50 d52

显示了一个元设备/ dev / md / dsk / d75,由称为set1的磁盘集内两个条带的串联组成:

[root@linuxcool ~]# metainit -s set1 d75 2 3 c2t1d0s0 c2t2d0s0 \ 
          c2t3d0s0 -i 32k 
# metainit -s set1 d51 1 1 c2t1d0s0 
# metainit -s set1 d52 1 1 c3t1d0s0 
# metainit -s set1 d50 -m d51 
# metattach -s set1 d50 d52


metaparam命令 修改元设备的参数

 

metaparam命令用于显示或修改元数据的当前参数。如果仅将metadevice指定为metaparam命令的参数,则会显示当前设置。

语法格式:metaparam[参数]

常用参数:

--h 显示使用情况消息
–s setname 指定运行metaparam的磁盘集的名称

参考实例

将热备用池user_pool与RAID5元设备user_raid关联:

[root@linuxcool ~]# metaparam -h user_pool user_raid

将镜像d50上的read选项从默认的roundrobin更改为geometric:

[root@linuxcool ~]# metaparam -r geometric d50


metarecover命令 恢复软分区信息

 

metarecover命令扫描指定的组件以查找软分区配置信息并重新生成配置。

语法格式:metarecover[参数]

常用参数:

–d 从设备上的扩展数据头中恢复元设备状态数据库中的软分区
–m 根据元设备状态数据库中列出的软分区,重新生成扩展区头并将其重新应用于基础设备
–n 实际不执行该操作,显示运行该操作可能导致的输出或错误
–p 根据元设备状态数据库或基础设备上的扩展区头重新生成软分区
–s setname 指定用于元恢复的磁盘集的名称
–v 详细模式,显示所做的更改

参考实例

基于磁盘范围标头更新元设备状态数据库:

[root@linuxcool ~]# metarecover -v c0t3d0s2 -p -d

基于不完整的软分区创建来更新元设备状态数据库:

[root@linuxcool ~]# metarecover -v c0t3d0s2 -p -m

验证软分区配置:

[root@linuxcool ~]# metarecover c0t3d0s2 -p


metarename命令 -重命名元组件或切换分层元组件名称

 

重命名元组件或切换分层元组件名称

语法格式:metarename[参数]

常用参数:

-f 强制转换跨元设备成员
-h 显示帮助信息
–s setname 指定将在其上使用metarename的磁盘集的名称
-x 交换元设备名称metadevice1metadevice2

参考实例

将名为d10的元设备重命名为account_records:

[root@linuxcool~]#metarename d10 account_records

从现有的名为d1的带安装了文件系统/ home2的条带创建双向镜像:

[root@linuxcool~]# metainit d2 1 1 c13d0s1 
# metainit -f d20 -m d1 
# umount /home2 
# metarename -x d20 d1 
# metattach d1 d2 # mount /home2

删除一个名为d10的trans元设备,其挂载点为/ myhome,条带化的主设备名为d2,记录设备(也是条带)名为d5:

[root@linuxcool~]# umount /myhome 
# metadetach d10 
# metarename -f -x d10 d2 
# metaclear d2 # metaclear d5 
# fsck /dev/md/dsk/d10 # mount /myhome


metareplace命令 启用或替换子镜像或RAID5元设备的组件

 

metareplace命令用于启用或子镜像或RAID5元设备内更换组件(片)。

语法格式:metareplace[参数]

常用参数:

–e 组件的状态转换为可用状态,然后重新同步发生故障的组件
–f 强制替换其中多个组件有错误的元设备的错误组件
–h 显示帮助信息
–s setname 指定将在其上使用metareplace的磁盘集的名称

参考实例

从RAID5元设备中的错误条件中恢复:

[root@linuxcool ~]# metareplace d10 c3t0d0s2 c5t0d0s2

更换物理磁盘后 使用–e:

[root@linuxcool ~]# metareplace -e mymirror1 c1t4d0s2


metassist命令 支持Solaris Volume Manager的自动卷创建实用程序

 

metassist命令通过自动化提供使用常见Solaris卷管理器任务的帮助。

语法格式:metassist[参数]

常用参数:

–c 输出将执行指定或生成的卷配置的命令脚本
–d 输出满足指定或生成的卷请求的卷配置
–f 指定该卷在故障后是否应支持自动组件更换
–n name 指定新卷的名称
–p n 指定存储卷所需的路径数
–v value 指定详细程度

参考实例

在控制器1和控制器2的可用设备上创建一个双向36Gb镜像。它将卷放置在磁盘集mirrorset中:

[root@linuxcool ~]# metassist create -r 2 -a c1,c2 -s mirrorset -S 36GB

创建具有附加容错功能的镜像:

[root@linuxcool ~]# metassist create -f -r 2 -a c1,c2 -s mirrorset -S 36GB

确定并实现满足请求文件中指定的请求的配置:

[root@linuxcool ~]# metassist create -F request.xml

确定配置并将其保存在volume-config文件中:

[root@linuxcool ~]# metassist create -d -F request.xml > volume-config

实现给定的vol-config:

[root@linuxcool ~]# metassist create -F config.xml

将给定的vol-config转换为Shell脚本:

[root@linuxcool ~]# metassist create -c -F config.xml > setupvols.sh


metattach命令 附加或分离元设备

 

metattach将子镜像添加到镜像,增长元设备或增长软分区。无需中断服务即可完成元设备的增长。

语法格式:metattach[参数]

常用参数:

–A alignment 设置软分区范围对齐的值
–f 强制分离具有需要维护或繁忙的组件的元设备
-h 显示用法消息
–s setname 指定在其上运行metattach命令或metadetach命令的磁盘集的名称

参考实例

将单个新切片连接到现有元设备Volume.1:

[root@linuxcool ~]# metattach Volume.1 /dev/dsk/c0t1d0s2

将日志记录设备与跨中继设备d9分离:

[root@linuxcool ~]# metadetach d9

通过附加另一个片来扩展RAID5元设备d45:

[root@linuxcool ~]# metattach d45 /dev/dsk/c3t0d0s2

例将子镜像d2与镜像d4分离:

[root@linuxcool ~]# metadetach d4 d2


mkbootdisk命令 建立启动盘

 

mkbootdisk命令用来为当前运行的系统创建能够单独使用的系统引导软盘,以便在系统出现故障时能够启动操作进行适当的修复工作。

语法格式: mkbootdisk [参数]

常用参数:

--device<设备> 指定设备
mkinitrdargs<参数> 设置mkinitrd的参数
--noprompt 不会提示用户插入磁盘
--verbose 执行时显示详细的信息
--version 显示版本信息

参考实例

以核心版本2.2.18设定开机:

[root@linuxcool ~]# mkbootdisk --device /dev/fd0 2.2.18

显示版本信息:

[root@linuxcool ~]# mkbootdisk --version 


mkbootmedia命令 创建可引导的Solaris ISO映像

 

mkbootmedia实用程序以媒体根(磁盘上Solaris安装媒体的根)作为输入,并使用mkisofs在文件ISO中创建一个可引导的Solaris ISO映像。

语法格式:mkbootmedia[参数]

常用参数:

–l label 设置标记为ISO映像的标签/卷名称
–v 详细,多个–v选项可增加详细程度

参考实例

根据s10u1的内容创建一个ISO映像并将其刻录到CD / DVD:

[root@linuxcool ~]# /usr/bin/mkbootmedia s10u1 s10u1.iso
# /usr/bin/cdrw -i s10u1.iso


mkdumprd命令 为内核转储崩溃恢复初始ramdisk映像

 

mkdumprd命令的作用是创建一个初始ram文件系统,用于在kdump框架中引导内核以进行崩溃恢复。

在初始ramdisk加载模块时,/etc/modprobe.conf中指定的任何模块选项都会被传递给模块。mkdumprd命令询问正在运行的系统,以了解需要在initramfs中加载哪些模块(基于从/etc/kdump.conf检索的配置)。

mkdumprd命令最初派生自mkinitrd实用程序(因此选项集的相似性),但是mkdumprd命令的目的和任务与mkinitrd有显著的不同。如果需要自定义kdump initramfs映像,建议使用kdump服务基础结构创建一个映像,然后手动解包、修改和重新打包映像。

语法格式:mkdumprd [参数] [镜像] [内核版本]

常用参数:

-- -image-version 在映像创建之前,内核版本号追加initrd映像路径
-- -nocompress 创建initrd映像不使用gzip方式压缩
-f 允许mkdumprd覆盖现有的映像文件
-v 打印详细的信息,同时创建映像(通常mkdumprd以静默方式运行)
-- -omit-lvm-modules 不加载任何LVM模块
-d 查询/etc/kdump
-- -fstab=<fstab文件> 使用fstab文件来自动确定根设备上的文件系统的类型。通常情况下使用/etc/fstab文件
-- -omit-reid-modules 不加载任何RAID模块
-- -omit-scsi-modules 不加载任何SCSI模块
-- -preload=<模块> 在初始ramdisk映像中加载指定模块
-- -builtin=<模块> 如果模块被内置到内核使用则激活

参考实例

创建初始ramdisk映像/root/ram:

[root@linuxcool ~]# mkdumprd /root/ram 2.6.32-358.el6.x86_64

查询/etc/kdump:

[root@linuxcool ~]# mkdumprd -d

打印详细的信息,同时创建映像:

[root@linuxcool ~]# mkdumprd -v


mkkickstart命令 建立安装的组态文件

 

mkkickstart命令用于建立安装的组态文件。可根据目前系统的设置来建立组态文件,供其他电脑在安装时使用。组态文件的内容包括使用语言,网络环境,系统磁盘状态,以及X Windows的设置等信息。

语法格式:mkkickstart [参数]

常用参数:

-bootp  安装与开机时,使用BOOTP
-dhcp 安装与开机时,使用DHCP
-nfs 使用指定的网络路径安装
-nonet 不要进行网络设置,即假设在没有网络环境的状态下
-nox 不要进行X Windows的环境设置
-version 显示版本信息

参考实例

构建一个安装组态文件:

[root@linuxcool ~]# mkkickstart --nonet -bootp


modinfo命令 显示kernel模块的信息

 

modinfo命令用于显示kernel模块的信息。

语法格式:modinfo [参数] [模块文件]

常用参数:

-a 显示模块开发人员
-d 显示模块的说明
-p 显示模块所支持的参数

参考实例

显示sg模块的信息:

[root@linuxcool ~]# modinfo sg 

显示sg模块的开发人员信息:

[root@linuxcool ~]# modinfo -a sg

显示sg模块说明:

[root@linuxcool ~]# modinfo -d sg

显示sg模块版本信息:

[root@linuxcool ~]# modinfo -V sg

显示sg模块所支持的参数:

[root@linuxcool ~]# modinfo -p sg


modprobe命令 内核模块智能加载工具

 

modprobe命令用于智能地向内核中加载模块或者从内核中移除模块。

modprobe命令可载入指定的个别模块,或是载入一组相依的模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。内核模块加载成功或失败信息可以使用dmesg指令来查看。

语法格式: modprobe [参数] [模块名]

常用参数:

-a 加载命令行给出的全部的模块
-c 显示所有模块的设置信息
-d 使用排错模式
-l 显示可用的模块
-r 从内核中移除模块
-t 指定模块类型
-s 记录错误信息到系统日志中
-- -show-depends 显示模块依赖关系
-v 执行时显示详细的信息
-V 显示版本信息
-help 显示帮助

参考实例

查看modules的配置文件:

[root@linuxcool ~]# modprobe -c

列出内核中所有已经或者未挂载的所有模块:

[root@linuxcool ~]# modprobe -l

挂载指定模块:

[root@linuxcool ~]# modprobe -v ide-cd

移除指定模块:

[root@linuxcool ~]# modprobe -r ide-cd


mountpoint命令 判断指定的目录是否是挂载点

 

mountpoint命令用来判断指定的目录是否是加载点,如果是挂载点返回0,如果不是就返回非0。设备总是挂载在某个指定的目录下,所以就可以使用mountpoint这条命令来确认某个目录是否“临时性”的被文件系统占用。

语法格式:mountpoint [参数] [目录]

常用参数:

-q 不打印任何信息
-d 打印文件系统的主设备号和次设备号
-x 打印块数设备的主设备号和次设备号

参考实例

查看/mnt目录是不是挂载点:

[root@linuxcool ~]# mountpoint /mnt
/mnt is a mountpoint

查看/usr/local是不是挂载点:

[root@linuxcool ~]# mountpoint /usr/local
/usr/local is not a mountpoint 

查看挂载的/media/cdrom的主/次设备号码:

[root@linuxcool ~]# mountpoint -d /media/cdrom
 11:0

查看一个设备的主/次设备号:

[root@linuxcool ~]# mountpoint -x /dev/sda
 8:0


mpstat命令 显示变化的CPU数据

 

mpstat命令可以显示随着时间变化的CPU数据,方便找出CPU使用率与时间的关系。这个命令包含在工具集sysstat中,使用之前需要安装sysstat。

语法格式:mpstat [参数]

常用参数:

-P 执行监控的CPU,取值0~CPUNUM。或者用ALL查看全部CPU
delay 采样间隔
count 采样次数

参考实例

执行监控第一个CPU:

[root@linuxcool ~]# mpstat -P 1

执行监控全部CPU:

[root@linuxcool ~]# mpstat -P ALL 

每隔1个时间单位采样5次:

[root@linuxcool ~]# mpstat 1 5


mtr命令 网络诊断

 

mtr在单个网络诊断工具中结合了traceroute和ping程序的功能。当mtr启动时,它调查运行在主机mtr和主机名之间的网络连接。

通过发送有目的的低TTL的包。它继续以较低的TTL发送数据包,记录中间路由器。这允许MTR打印Internet路由的响应百分比和响应时间。到主机名。包丢失或响应时间的突然增加通常是坏的(或仅仅是过度的)迹象。已加载)链接。结果通常以往返响应时间(毫秒)和包丢失百分比报告。

语法格式:mtr [参数]

常用参数:

-r 已报告模式显示
-c 发送多少个数据包
-n 不用主机解释
--report 结果显示,并不动态显示
-s 用来指定ping数据包的大小

参考实例

使用-r参数显示报告:

[root@linuxcool ~]# mtr -r 202.108.33.94

使用-c参数设置每秒发送数据包数量:

[root@linuxcool ~]# mtr -r -c 30 202.108.33.94 

使用-s参数指定ping数据包的大小:

 [root@linuxcool ~]# mtr -r -c 30 -s 1024 202.108.33.94 


netplan命令 网络配置工具

 

netplan 是一个命令行工具,用于在某些 Linux 发行版(例如 Ubuntu Linux 18.04)上配置网络。

以前我们配置网络都是在 /etc/network/interfaces 文件里配置。但是现在我们不用这么麻烦了,因为有了netplan。

netplan 使用 yaml 描述文件来配置网络接口,然后,通过这些描述为任何给定的呈现工具生成必要的配置选项。

语法格式:netplan [参数]

常用参数:

apply 将当前的netplan配置应用到正在运行的系统中
generate 生成后台特定的配置文件
info 显示当前网络计划的版本和可用功能
ip 从系统中获取IP信息

参考实例

从系统中获取IP信息:

[root@linuxcool ~]# netplan ip

显示当前网络计划的版本和可用功能:

[root@linuxcool ~]# netplan info

将当前的netplan配置应用到正在运行的系统中:

[root@linuxcool ~]# netplan apply


nfsstat命令 列出NFS统计信息

 

nfsstat命令显示关于nfs客户机和服务器活动的统计信息。

语法格式:nfsstat [参数]

常用参数:

-s 仅列出NFS服务器端状态
-c 仅列出NFS客户端状态
-n 仅列出NFS状态,默认显示nfs客户端和服务器的状态
-m 打印以加载的nfs文件系统状态
-r 仅打印rpc状态

参考实例

要显示关于客户机发送和拒绝的RPC和NFS调用数目的信息:

[root@linuxcool ~]# nfsstat -c

要显示和打印与客户机NFS调用相关的信息:

[root@linuxcool ~]# nfsstat -cn

要显示和打印客户机和服务器的与RPC调用相关的信息:

[root@linuxcool ~]# nfsstat -r

要显示关于服务器接收和拒绝的RPC和NFS调用数目的信息:

[root@linuxcool ~]# nfsstat –s


nice命令 调整进程的优先级

 

nice是用来调整进程的执行优先级的,nice命令表示新执行的命令即给予新的nice值。系统的后台工作中,某些比较不重要的进程在运行,例如备份,由于备份工作相当耗系统资源,这个时候就可以调大备份命令的nice值,可以使系统资源更合理使用。

语法格式: nice [参数] [命令]

常用参数:

-n 后面接一个数值,范围在-20~19

参考实例

用root给一个nice值为-5,用于执行vi,并查看该进程:

[root@localhost ~]# nice -n -5 vi &


nohup命令 后端运行程序

 

nohup命令的全称为“no hang up”,该命令可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端。

无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到$HOME/nohup.out文件中。如果没有文件能创建或打开以用于追加,那么 command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。

语法格式:nohup [参数]

常用参数

--help 在线帮助
--version 显示版本信息

参考实例

使用nohup命令在后台运行程序:

[root@linuxcool ~]# nohup bash linuxcool.sh &

指定输出文件, 输出被重定向到linuxcool.com文件中:

[root@linuxcool ~]# nohup command > linuxcool.com 2>&1 


nstat命令 监视内核的SNMP计数器和网络接口状态

 

nstat是一个简单的监视内核的SNMP计数器和网络接口状态的实用工具 。

语法格式:nstat [参数]

常用参数:

-z 显示0计数器
-h 显示帮助信息
-V 显示指令版本信息
-r 清零历史统计
-n 不显示任何内容,仅更新历史
-a 显示计数器的绝对值
-s 不更新历史
-d 以守护进程的方式运行本指令
-j 以json格式打印结果

参考实例

直接输入以查询内核的SNMP计数器和网络接口状态:

[root@linuxcool ~]# nstat


nsupdate命令 动态DNS更新工具

 

nsupdate实用程序用于向名称服务器提交 RFC2136 中定义的动态 DNS 更新请求。这允许在无需手动编辑区文件的情况下从区中添加或删除资源记录。一个更新请求可以包含添加或删除多个资源记录的请求。

语法格式:nsupdate [参数]

常用参数:

–k keyfile 从keyfile文件中读取密钥信息
-d 调试模式
-y keyname是密钥的名称,secret是以base64编码的密钥
-v 使用TCP协议进行nsupdate.默认是使用UDP协议

参考实例

使用TCP协议进行nsupdate:

[root@linuxcool ~]# nsupdate -v

从keyfile文件中读取密钥信息:

[root@linuxcool ~]# nsupdate -k keyfile

在调试模式下操作:

[root@linuxcool ~]# nsupdate -d


ntpdate命令 设置日期和时间

 

ntpdate命令是用来设置本地日期和时间。它从指定的每个服务器获得了一些样本,并应用标准 NTP 时钟过滤器和选择算法来选择最好的样本。

使用很多服务器可以大幅度改善 ntpdate 命令的可靠性与精度。尽管能使用单一服务器,但您能通过提供至少三个或四个服务器以获得更好的性能。

如果一个类似 xntpd 守护程序的 NTP 服务器守护程序正在同一主机上运行,命令将拒绝ntpdate设置日期。

语法格式:ntpdate [参数]

常用参数:

-aKeyid 使用 Keyid 来认证全部数据包
-b 通过调用 settimeofday 子例程来增加时钟的时间

参考实例

调整日期时钟:

[root@linuxcool ~]# ntpdate -b


ntsysv命令 设置系统服务

 

ntsysv是Red Hat公司遵循GPL规则所开发的程序,它具有互动式操作界面,您可以轻易地利用方向键和空格键等,开启,关闭操作系统在每个执行等级中,所要执行的系统服务。

语法格式:ntsysv [参数]

常用参数:

-back 在互动式界面里,显示Back钮,而非Cancel钮
-level <等级代号>  在指定的执行等级中,决定要开启或关闭哪些系统服务

参考实例

编辑运行级别0,1和6:

[root@linuxcool ~]# ntsysv --levels 016  

配置系统的各种服务运行等级,并且在交互式界面中显示Back按钮,可在命令行提示符下输入:

[root@linuxcool ~]# ntsysv --back 


openssl命令 加密算法

 

openSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。对应的命令就是openssl命令,用于加密算法。

语法格式:openssl [参数]

常用参数:

-in 输入
-out 输出

参考实例

用SHA1算法计算文件file.txt的哈西值,输出到stdout:

[root@linuxcool ~]# openssl dgst -sha1 file.txt

用SHA1算法计算文件file.txt的哈西值,输出到文件digest.txt:

[root@linuxcool ~]# openssl sha1 -out digest.txt file.txt

对称加密应用例子,用DES3算法的CBC模式加密文件plaintext.doc,加密结果输出到文件ciphertext.bin:

[root@linuxcool ~]# openssl enc -des3 -salt -in plaintext.doc -out ciphertext.bin

DES3算法的OFB模式解密文件ciphertext.bin,提供的口令为trousers,输出到文件plaintext.doc:

[root@linuxcool ~]# openssl enc -des-ede3-ofb -d -in ciphertext.bin -out plaintext.doc -pass pass:trousers

生成1024位DSA参数集,并输出到文件dsaparam.pem:

[root@linuxcool ~]# openssl dsaparam -out dsaparam.pem 1024

使用参数文件dsaparam.pem生成DSA私钥匙,采用3DES加密后输出到文件dsaprivatekey.pem:

[root@linuxcool ~]# openssl gendsa -out dsaprivatekey.pem -des3 dsaparam.pem

产生1024位RSA私匙,用3DES加密它,口令为trousers,输出到文件rsaprivatekey.pem:

[root@linuxcool ~]# openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024


package-cleanup命令 清理本地安装的RPM软件包

 

package-cleanup 清理本地安装的、重复的或孤立的的RPM软件包,这是一个只对RPM有用的工具,Ubuntu 之类的无法使用。

语法格式:package-cleanup [参数]

常用参数:

-c 使用备用配置文件(默认为/etc/yum.conf)
-y 同意任何要求
–leaves 列出与其他RPM没有依赖关系的软件包
–orphans 列出当前软件仓库中不再提供支持的本地已安装的软件包
–oldkernels 删除旧内核文件(kernel, kernel-devel)
–problems 列出有依赖问题的软件包
–dupes 扫描重复安装的RPM软件包
–cleandupes 扫描重复安装的软件包,并删除老版本的软件包

参考示例

列出与其他RPM没有依赖关系的软件包:

[root@linuxcool ~]# package-cleanup –leaves
libacl-devel-2.2.49-8.fc14.i686
libcap-devel-2.17-1.fc13.i686
libchamplain-gtk-0.6.1-4.fc14.i686
...

删除旧内核文件:

[root@linuxcool ~]# package-cleanup –oldkernels


pacman命令 软件包管理器

 

Pacman命令是一个软件包管理器,作为ArchLinux发行版的一部分。简单来说,就是和apt-get之于Ubuntu一样,pacman就是Arch的apt-get。要想轻松玩转Arch,学会pacman是必需的。

Pacman包管理器是ArchLinux的一大亮点。它汲取了其他Linux版本软件管理的优点,譬如Debian的APT机制、Redhat的 Yum机制、 Suse的Yast等,对于安装软件提供了无与伦比的方便。另外由于ArchLinux是一个针对i686架构优化的发行版,因此对于软件的效率提高也有一定的帮助。pacman可以说是ArchLinux的基础,因为ArchLinux默认安装非常少的软件,其他软件都是使用pacman通过网络来安装的。它将一个简单的二进制包格式和易用的构建系统结合了起来。Pacman使得简单的管理与自定义软件包成为了可能,而不论他们来自于官方的Arch软件库或是用户自己创建的。Pacman可以通过和主服务器同步包列表来进行系统更新,这使得注重安全的系统管理员的维护工作成为轻而易举的事情。

语法格式:pacman [参数]

常用参数:

-Q 列出已经安装的软件包
-i 查看已安装的包的详细信息
-I 列出已安装包的所有文件
-o 查找某个文件属于哪个包
-g 查询包组
-s 搜索相关的依赖包
-R 删除单个软件包

参考实例

安装或者升级单个软件包,或者一列软件包(包含依赖包):

[root@linuxcool ~]# pacman -S package_name1 package_name2

在Archlinux中,使用一条命令即可对整个系统进行更新:

[root@linuxcool ~]# pacman -Syu

删除单个软件包,保留其全部已经安装的依赖关系:

[root@linuxcool ~]# pacman -R package_name

删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系:

[root@linuxcool ~]# pacman -Rs package_name

Pacman可以在包数据库中查询软件包,查询位置包含了包的名字和描述:

[root@linuxcool ~]# pacman -Ss package

要查询已安装的软件包:

[root@linuxcool ~]# pacman -Qs package

获取已安装软件包所包含文件的列表:

[root@linuxcool ~]# pacman -Ql package


passwd命令 修改用户账户密码

 

passwd命令用于设置用户的认证信息,包括用户密码、账户锁定、密码失效等。直接运行passwd命令修改当前的用户密码,对其他用户的密码操作需要管理员权限。

常用格式:passwd [参数]

常用参数:

-d 删除密码
-l 锁定用户密码,无法被用户自行修改
-u 解开已锁定用户密码,允许用户自行修改
-e 密码立即过期,下次登陆强制修改密码
-k 保留即将过期的用户在期满后能仍能使用
-S 查询密码状态

参考实例

修改当前登陆的账户密码:

[root@linuxcool ~]# passwd

修改其他用户密码(假设有linuxprobe用户):

[root@linuxcool ~]# passwd linuxcool

锁定密码不允许用户修改:

[root@linuxcool ~]# passwd -l linuxcool

解除锁定密码,允许用户修改:

[root@linuxcool ~]# passwd -u linuxcool

下次登陆强制改密码:

[root@linuxcool ~]# passwd -e linuxcool

清除登录密码。清除之后登录时无需密码,风险极大,不推荐使用:

[root@linuxcool ~]# passwd -d linuxcool

查询密码状态:

[root@linuxcool ~]# passwd -S linuxcool


pathchk命令 检查文件中不可移植的部分

 

pathchk命令用于检查文件中不可移植的部分。

语法格式: pathchk [参数]

常用参数:

-p 检查大多数的POSIX系统
-P 检查空名字和“-”开头的文件
--portability 检查所有的POSIX系统,等同于“-P-p”选项
--help 显示帮助
--version 显示版本号

参考实例

检查文件路径是否具有可移植性:

[root@linuxcool ~]# pathchk /etc/httpd/conf/httpd.conf


pgrep命令 用于检索当前正在运行的进程

 

pgrep命令就是检索正在运行的进程,显示匹配准则是进程的PID,可跟正则表达式来匹配进程或命令行。

选择进程拥有者时,默认匹配规则是逻辑与的关系。

语法格式:pgrep [参数] [模式]

常用参数:

-d 设置一个字符串,用于分隔输出的每个进程ID
-f 模式参数仅用于匹配进程名
-I 列出进程名及进程ID
-P 仅选择匹配指定父进程ID的进程
-u 选择仅匹配指定有效用户ID进程
-U 选择仅匹配指定真实用户ID的进程

参考实例

查询用户root启动的bash进程的PID:

[root@linuxcool ~]# pgrep -u root bash


pidof命令 返回运行程序的进程ID

 

pidof命令用于检索指定的命令,返回相应的进程ID。其中program是一个或多个命令或进程的名字。当需要终止某个进程时,传统的做法是利用ps命令列出所有的进程,使用grep命令选出目标进程,然后使用kill命令终止进程。

利用pidof命令,可以省略ps与grep组合命令,直接把指定命令的进程ID写入到标准输出。

语法格式:pidof [参数]

常用参数:

-s 当系统中存在多个同名进程时,仅返回一个进程ID
-c 仅返回当前正在运行且具有同一根目录的进程PID
-x 返回指定运行脚本的shell进程PID
-o 忽略具有指定进程ID的进程

参考实例

返回crond守护进程的PID:

[root@linuxcool ~]# pidof crond

返回Apache服务器守护进程httpd:

[root@linuxcool ~]# pidof httpd


pkill命令 按照进程名杀死进程

 

pkill命令可以按照进程名杀死进程。pkill和killall应用方法差不多,也是直接杀死运行中的程序。如果想杀掉单个进程,请用kill来杀掉。

语法格式:pkill [参数]

常用参数:

-o 仅向找到的最小(起始)进程号发送信号
-n 仅向找到的最大(结束)进程号发送信号
-P 指定父进程号发送信号
-g 指定进程组
-t 指定开启进程的终端

参考实例

仅向找到的最小(起始)进程号发送信号:

[root@linuxcool ~]# pkill -o

仅向找到的最大(结束)进程号发送信号:

[root@linuxcool ~]# pkill  -n 

杀死Apache进程:

[root@linuxcool ~]# pkill httpd


pmap命令 显示进程的内存映像

 

pmap命令主要用于显示进程的地址空间,除了指定进程,如果不加任何选项,pmap命令将会显示指定进程每个内存映像的起始地址、虚拟内存的大小、进程的访问地址空间的权限,以及内存映射文件等。

语法格式:pmap [参数] [进程ID ]

常用参数:

-x 增加一个标题行,同时显示每个内存映像实际使用的物理内存大小,以及内存已修改但尚未写到磁盘的页面数量等附加进程信息
-d 增加一个标题行,同时显示内存映射文件的偏移值,以及存储设备的主次设备号等附加进程信息
-q 采用安静方式,禁止显示汇总信息行
-V 显示命令的版本信息,然后退出

参考实例

显示bash的地址空间,查询每个内存映像的概况:

[root@linuxcool ~]# pmap 2775

显示bash的地址空间,了解更多信息:

[root@linuxcool ~]# pmap -x 2775


postconf命令 显示main.cf配置参数的值

 

命令显示main.cf配置参数的值,并警告可能是参数名类型错误(Postfix 2.9及更高版本)。它还可以更改main.cf配置参数 ter值,或显示有关Postfix邮件系统的其他配置信息

语法格式:postconf [参数]

常用参数:

-d 查看默认配置
-n 查看当前配置(即当前生效的配置)
-e 配置某一参数

参考实例

配置某一参数:

[root@linuxcool ~]# postconf -e mydomain=mail.baidu.com


poweroff命令 关闭操作系统并切断电源

 

poweroff命令用来关闭计算机操作系统并且切断系统电源。如果确认系统中已经没有用户存在且所有数据都已保存,需要立即关闭系统,可以使用poweroff命令。

语法格式:poweroff [参数]

常用参数:

-n 关闭操作系统时不执行sync操作
-w 不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中
-d 关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录
-f 强制关闭操作系统
-i 关闭操作系统之前关闭所有的网络接口
-h 关闭操作系统之前将系统中所有的硬件设置为备用模式

参考实例:

关闭计算机操作系统并且切断系统电源:

[root@linuxcool ~]# poweroff

使用-h参数关闭操作系统之前将系统中所有的硬件设置为备用模式:

[root@linuxcool ~]# poweroff -h


printenv命令 显示指定的环境变量的值

 

printenv命令显示指定的环境变量的值,如果没有指定变量,则打印出所有变量的名称和值。 通过printenv命令,我们可以查看到当前的shell,和shell的环境变量,和其它一些常见的配置 。

语法格式:printenv [参数] [变量]

常用参数:

--null 以空字符而非新行符结束每一输出行
--help 显示此帮助信息并退出
--version 显示版本信息并退出

参考实例

显示所有环境变量:

[root@linuxcool ~]# printenv

显示环境变量 LANG 的值:

[root@linuxcool ~]# printenv LANG

显示此帮助信息并退出:

[root@linuxcool ~]# printenv --help

显示版本信息并退出:

[root@linuxcool ~]# printenv --version

显示环境变量 LANG 的值,以空字符而非新行符结束每一输出行:

[root@linuxcool ~]# printenv --null LANG 


procinfo命令 显示系统状态

 

proc文件系统是一个虚拟文件系统,其中包含存储有关进程和其他系统信息的信息的文件。 它被映射到/proc目录并在启动时挂载。 许多程序从/ proc文件系统中检索信息,对其进行处理并将其提供给各种用途。

Procinfo是一个简单的命令行实用程序,用于查看从/ proc目录收集的系统信息,并在标准输出设备上打印精美的格式。

语法格式:procinfo [参数]

常用参数:

-a 显示所有信息
-b 显示磁盘设备的区块数目,而非存取数目
-d 显示系统信息每秒间的变化差额,而非总和的数值。 必须配合”-f”参数使用
-D 此参数效果和指定”-d”参数类似,但内存和交换文件的信息为总和数值
-f 进入全画面的互动式操作界面
-F 把信息状态输出到文件保存起来
-i 显示完整的IRP列表
-m 显示系统模块和外围设备等相关信息
-n 设置全画面互动模式的信息更新速度,单位以秒计算
-s 显示系统的内存,磁盘空间,IRP和DMA等信息,此为预设值
-S 搭配参数”-d”或”-D”使用,每秒都会更新信息
-H 内存信息转换为可读(KB、MB、GB)格式单位
-v 显示版本信息

参考实例

显示系统状态:

[root@linuxcool ~]# procinfo

以每秒为基础显示统计数据,而不是按总值显示:

[root@linuxcool ~]# procinfo -d -f

将统计信息显示为总计:

[root@linuxcool ~]# procinfo -D


pstree命令 以树状图显示进程

 

Linux系统中pstree命令的英文全称是“process tree”,即将所有行程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的行程。

语法格式: pstree [参数]

常用参数:

-a 显示每个程序的完整指令,包含路径,参数或是常驻服务的标示
-c 不使用精简标示法
-G 使用VT100终端机的列绘图字符
-h 列出树状图时,特别标明现在执行的程序

参考实例

显示当前所有进程的进程号和进程id:

[root@linuxcool ~]# pstree -p

显示所有进程的所有详细信息,遇到相同的进程名可以压缩显示:

[root@linuxcool ~]# pstree  -a


ps命令 显示进程状态

 

ps命令是“process status”的缩写,ps命令用于显示当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。

ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

语法格式:ps [参数]

常用参数:

-a 显示所有终端机下执行的程序,除了阶段作业领导者之外
a 显示现行终端机下的所有程序,包括其他用户的程序
-A 显示所有程序
-c 显示CLS和PRI栏位
c 列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示
-C <指令名称> 指定执行指令的名称,并列出该指令的程序的状况
-d 显示所有程序,但不包括阶段作业领导者的程序
-e 此选项的效果和指定”A”选项相同
e 列出程序时,显示每个程序所使用的环境变量
-f 显示UID,PPIP,C与STIME栏位
f 用ASCII字符显示树状结构,表达程序间的相互关系
-g <群组名称> 此选项的效果和指定”-G”选项相同,当亦能使用阶段作业领导者的名称来指定
g 显示现行终端机下的所有程序,包括群组领导者的程序
-G <群组识别码> 列出属于该群组的程序的状况,也可使用群组名称来指定
h 不显示标题列
-H 显示树状结构,表示程序间的相互关系
-j或j 采用工作控制的格式显示程序状况
-l或l 采用详细的格式来显示程序状况
L 列出栏位的相关信息
-m或m 显示所有的执行绪
n 以数字来表示USER和WCHAN栏位
-N 显示所有的程序,除了执行ps指令终端机下的程序之外
-p <程序识别码> 指定程序识别码,并列出该程序的状况
p <程序识别码> 此选项的效果和指定”-p”选项相同,只在列表格式方面稍有差异
r 只列出现行终端机正在执行中的程序
-s <阶段作业> 指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况
s 采用程序信号的格式显示程序状况
S 列出程序时,包括已中断的子程序资料
-t <终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况
t <终端机编号> 此选项的效果和指定”-t”选项相同,只在列表格式方面稍有差异
-T 显示现行终端机下的所有程序
-u <用户识别码> 此选项的效果和指定”-U”选项相同
u 以用户为主的格式来显示程序状况
-U <用户识别码> 列出属于该用户的程序的状况,也可使用用户名称来指定
U <用户名称> 列出属于该用户的程序的状况
v 采用虚拟内存的格式显示程序状况
-V或V 显示版本信息
-w或w 采用宽阔的格式来显示程序状况
x 显示所有程序,不以终端机来区分
X 采用旧式的Linux i386登陆格式显示程序状况
-y 配合选项”-l”使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位
-- <程序识别码> 此选项的效果和指定”p”选项相同
--cols <每列字符数> 设置每列的最大字符数
--columns <每列字符数> 此选项的效果和指定”--cols”选项相同
--cumulative 此选项的效果和指定”S”选项相同
--deselect 此选项的效果和指定”-N”选项相同
--forest 此选项的效果和指定”f”选项相同
--headers 重复显示标题列
--help 在线帮助
--info 显示排错信息
--lines <显示列数> 设置显示画面的列数
--no-headers 此选项的效果和指定”h”选项相同,只在列表格式方面稍有差异
--group <群组名称> 此选项的效果和指定”-G”选项相同
--Group <群组识别码> 此选项的效果和指定”-G”选项相同
--pid <程序识别码> 此选项的效果和指定”-p”选项相同
--rows <显示列数> 此选项的效果和指定”--lines”选项相同
--sid <阶段作业> 此选项的效果和指定”-s”选项相同
-tty <终端机编号> 此选项的效果和指定”-t”选项相同
--user <用户名称> 此选项的效果和指定”-U”选项相同
--User <用户识别码> 此选项的效果和指定”-U”选项相同
--version 此选项的效果和指定”-V”选项相同
--widty <每列字符数> 此选项的效果和指定”-cols”选项相同

参考实例

把所有进程显示出来:

[root@linuxcool ~]# ps -aux
[root@linuxcool ~]# ps -A

把所有进程显示出来,并输出到ps.txt文件:

[root@linuxcool ~]# ps -aux > ps.txt

查找特定进程信息:

[root@linuxcool ~]# ps -ef | grep ssh
root 1303 1 0 Apr17 ? 00:00:00 /usr/sbin/sshd
root 3260 3087 0 Apr17 ? 00:00:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNO
ME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic"
root 24174 19508 0 11:39 pts/0 00:00:00 grep --color=auto ssh
[root@linuxcool ~]# ps -aux | grep ssh
root 1303 0.0 0.0 82468 1204 ? Ss Apr17 0:00 /usr/sbin/sshd
root 3260 0.0 0.0 52864 572 ? Ss Apr17 0:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "e
nv GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic"
root 24188 0.0 0.0 112652 956 pts/0 S+ 11:39 0:00 grep --color=auto ssh

显示指定用户信息:

[root@linuxcool ~]# ps -u root

按 CPU 资源的使用量对进程进行排序:

[root@linuxcool ~]# ps aux | sort -nk 3

按内存资源的使用量对进程进行排序:

[root@linuxcool ~]# ps aux | sort -rnk 4 


pwck命令 验证系统认证文件

 

使用pwck命令用来验证系统认证文件/etc/passwd和/etc/shadow的内容和格式的完整性。

语法格式:pwck [参数]

常用参数:

-q 仅报告错误信息
-s 以用户id排序文件
-r 只读方式运行指令

参考实例

检验用户配置文件/etc/passwd和/etc/shadow的文件内容是否合法、完整:

[root@linuxcool ~]# pwck 

验证密码文件完整性,在/etc/passwd和/etc/shadow文件中按UID排序条目:

[root@linuxcool ~]# pwck -s 


pwconv命令 开启用户的投影密码

 

pwconv命令用来开启用户的投影密码。Linux系统里的用户和群组密码,分别存放在名称为passwd和group的文件中, 这两个文件位于/etc目录下。因系统运作所需,任何人都得以读取它们,造成安全上的破绽。投影密码将文件内的密码改存在/etc目录下的shadow和gshadow文件内,只允许系统管理者读取,同时把原密码置换为”x”字符,有效的强化了系统的安全性。

语法格式:  pwconv [参数]

常用参数:

-h 显示帮助信息
-R 在chroot_dir目录中应用更改并使用来自chroot_dir目录的文件配置

参考实例

开启用户的投影密码:

[root@linuxcool ~]# pwconv

查看已经开启投影密码的用户linuxcool:

[root@linuxcool ~]# cat /etc/passwd | grep linuxcool
linuxcool:x:3001:3001::/home/linuxcool:/bin/sh


pwunconv命令 关闭投影密码

 

pwunconv命令与pwconv功能相反,用来关闭用户的投影密码。它会把密码从shadow文件内,重回存到passwd文件里。

语法格式: pwunconv [参数]

常用参数:

-h 显示帮助信息
-R 在chroot_dir目录中应用更改并使用来自chroot_dir目录的文件配置

参考实例

关闭影子密码:

[root@linuxcool ~]# pwunconv


reboot命令 重新启动计算机

 

Linux reboot命令用于用来重新启动计算机,和Windows系统中的restart一样。但是机器重启必须要root用户才有权限。

语法格式: reboot [参数]

常用参数:

-n 在重开机前不做将记忆体资料写回硬盘的动作 帮助
-w  并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
-d 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
-f 强迫重开机,不呼叫 shutdown 这个指令
-i 在重开机之前先把所有网络相关的装置先停止

参考实例

重新启动:

[root@linuxcool ~]# reboot 

模拟重开机:

[root@linuxcool ~]# reboot -w


reset命令 设定终端机的状态

 

Linux reset命令其实和 tset 是一同个命令,它的用途是设定终端机的状态。一般而言,这个命令会自动的从环境变数、命令列或是其它的组态档决定目前终端机的型态。如果指定型态是 ‘?’ 的话,这个程序会要求使用者输入终端机的型别。

由于这个程序会将终端机设回原始的状态,除了在 login 时使用外,当系统终端机因为程序不正常执行而进入一些奇怪的状态时,你也可以用它来重设终端机o 例如不小心把二进位档用 cat 指令进到终端机,常会有终端机不再回应键盘输入,或是回应一些奇怪字元的问题。此时就可以用 reset 将终端机回复至原始状态。

语法格式:reset [参数]

常用参数:

--help 在线帮助
--vesion 显示版本信息
-p 将终端机类别显示在屏幕上,但不做设定的动作。这个命令可以用来取得目前终端机的类别
-e ch 将 erase 字元设成 ch
-i ch 将中断字元设成 ch
-k ch 将删除一行的字元设成 ch
-l 不要做设定的动作,如果没有使用选项 -Q 的话,erase、中断及删除字元的目前值依然会送到屏幕上
-Q 不要显示 erase、中断及删除字元的值到屏幕上
-r 将终端机类别印在屏幕上
-s 将设定 TERM 用的命令用字串的型式送到终端机中,通常在 .login 或 .profile 中用

参考实例

让使用者输入一个终端机型别并将终端机设到该型别的预设状态:

[root@linuxcool ~]# reset ? 

将 erase 字元设定 control-h:

[root@linuxcool ~]# reset -e ^B 

将设定用的字串显示在屏幕上:

[root@linuxcool ~]# reset -s


resize2fs命令 调整文件系统大小

 

resize2fs命令是用来增大或者收缩未加载的“ext2/ext3/ext4”文件系统的大小。

语法格式:resize2fs [参数] [文件]

常用参数:

-d 打开调试特性
-p 打印已完成的百分比进度条
-f 强制执行调整大小操作,覆盖掉安全检查操作
-F 开始执行调整大小前,刷新文件系统设备的缓冲区

参考实例

调整逻辑卷文件系统大小:

[root@linuxcool ~]# resize2fs /dev/linuxprobe/vo

打开调试特性:

[root@linuxcool ~]# resize2fs -d /dev/linuxprobe/vo

打印已完成的百分比进度条:

[root@linuxcool ~]# resize2fs -p /dev/linuxprobe/vo

强制执行调整大小操作,覆盖掉安全检查操作:

[root@linuxcool ~]# resize2fs -f /dev/linuxprobe/vo

开始执行调整大小前,刷新文件系统设备的缓冲区:

[root@linuxcool ~]# resize2fs -F /dev/linuxprobe/vo


restorecon命令 恢复文件属性

 

restorecon命令的作用是可以修复SELinux文件属性即恢复文件的安全上下文。

在Selinux中,一切皆对象,由存放在节点的扩展属性域的安全元素所控制其访问。所有文件和端口资源和进程都具备安全标签就是安全上下文。

一般情况下,cp命令会重新生成符合目录本身的安全上下文,当然可以使用-p参数,mv命令只是单纯将原有文件移动过去 不改变文件本身的属性,要用到restorecon命令。

语法格式:restorecon [参数]

常用参数:

-i 忽略不存在的文件
-f infilename 文件 infilename 中记录要处理的文件
-e directory 排除目录
-v 将过程显示到屏幕上
-F 强制恢复文件安全语境

参考实例

恢复网页主目录中所有文件的SELinux配置信息:

[root@linuxcool ~]# restorecon -R /var/www/html/


rht-vmctl命令 控制VM

 

rht-vmctl用来控制desktop或者sever这两台虚拟机.rht-vmctl主要是用于管理红帽培训中使用到的KVM虚拟机,该工具是红帽公司出的。可以显示desktop或者sever虚机的状态,控制其开关等。

语法格式:rht-vmctl [参数]

常用参数:

view 显示虚拟机
start 开启虚拟机

参考实例

显示虚拟机:

[root@linuxcool ~]# rht-vmctl view desktop

打开虚拟机:

[root@linuxcool ~]# rht-vmctl start desktop

关闭虚拟机:

[root@linuxcool ~]# rht-vmctl poweroff desktop

重置虚拟机:

[root@linuxcool ~]# rht-vmctl reset desktop


rpmlint命令 检查rpm软件包中的常见错误

 

rpmlint命令的作用是可以检查rpm软件包中常见的错误。使用rpmlint命令需要先安装rpmlint软件包。

rpmlint命令可用于在上传之前测试单个软件包或检查整个发行版。默认情况下,将对包进行全面检查,根据需要可以使用参数执行特定的检查。

语法格式: rpmlint [参数] [文件或软件包]

常用参数:

-I 未指定的消息标识符显示解释然后退出
-v 详细模式
-C<目录> 在路径列表的前面插入指定目录,来进行加载检查
-a 检查所有已安装的软件包
-c 只运行指定的检查
-i 显示报告信息的说明
-E<目录> 为提取临时文件指定基本目录
-n 忽略输出过滤
-f<配置文件> 从指定的文件加载用户的配置
-o<值> 覆盖配置选项

参考实例

检查指定软件包中的错误:

[root@linuxcool ~]# rpmlint bind

检查所有的已安装软件包:

[root@linuxcool ~]# rpmlint -a

详细检查所有已安装的软件包:

[root@linuxcool ~]# rpmlint -a -v


rpm命令 RPM软件包管理器

 

rpm命令是Red-Hat Package Manager(RPM软件包管理器)的缩写, 该命令用于管理Linux 下软件包的软件。在 Linux 操作系统下,几乎所有的软件均可以通过RPM 进行安装、卸载及管理等操作。

概括的说,rpm命令包含了五种基本功能:安装、卸载、升级、查询和验证。

语法格式:rpm [参数] [软件包]

常用参数:

-a 查询所有的软件包
-b或-t 设置包装套件的完成阶段,并指定套件档的文件名称;
-c 只列出组态配置文件,本参数需配合”-l”参数使用
-d 只列出文本文件,本参数需配合”-l”参数使用
-e或--erase 卸载软件包
-f 查询文件或命令属于哪个软件包
-h或--hash 安装软件包时列出标记
-i 显示软件包的相关信息
--install 安装软件包
-l 显示软件包的文件列表
-p 查询指定的rpm软件包
-q 查询软件包
-R 显示软件包的依赖关系
-s 显示文件状态,本参数需配合”-l”参数使用
-U或--upgrade 升级软件包
-v 显示命令执行过程
-vv 详细显示指令执行过程

参考实例

直接安装软件包:

[root@linuxcool ~]# rpm -ivh packge.rpm 

忽略报错,强制安装:

[root@linuxcool ~]# rpm --force -ivh package.rpm

列出所有安装过的包:

[root@linuxcool ~]# rpm -qa

查询rpm包中的文件安装的位置:

[root@linuxcool ~]# rpm -ql ls

卸载rpm包:

[root@linuxcool ~]# rpm -e package.rpm 

升级软件包:

[root@linuxcool ~]# rpm -U file.rpm


rsh命令 远端登入的shell

 

rsh命令的英文全称为“remote shell”,该命令提供的用户环境,也就是shell,以便指令能够在指定的远端主机上执行。

语法格式: rsh [参数]

常用参数:

-d 使用Socket层级的排错功能
-l 指定要登入远端主机的用户名称
-n 把输入的指令号向代号为/dev/null的特殊外围设备

参考实例

远程命令执行:

[root@linuxcool ~]# rsh -l linuxcool 192.168.1.88 /bin/ls


runlevel命令 显示系统的运行级

 

runlevel命令是读取/var/run/utmp/文件或指定的其他文件,检索其中最近的运行级记录,显示系统先前与当前的运行级

如果运行级记录中没有先前的运行级,则使用字符N表示先前的运行级。如果找不到运行级记录,runlevel将会输出一条表示不知道的错误信息,然后退出,返回一个非0的结束状态

语法格式:runlevel [参数]

常用参数:

q 禁止输出任何运行级信息,遇到问题时也不输出错误信息
--help 显示命令的用法与概述等帮助信息
--version 显示命令的版本等信息

参考实例

显示系统先前与当前的运行级:

[root@linuxcool ~]# runlevel


rwho命令 查看系统用户

 

rwho指令的效果类似who指令,但它会显示局域网里所有主机的用户。主机必须提供rwhod常驻服务的功能,方可使用rwho指令。

语法格式:rwho [参数]

常用参数:

-a 列出所有的用户,包括闲置时间超过1个小时以上的用户

参考实例

显示本地局域网内的所有用户 :

[root@linuxcool ~]# rwho 


sar命令 系统运行状态统计

 

sar命令是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。

sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。

语法格式:sar [参数]

常用参数:

-R 显示内存状态
-b 显示I/O速率
-B 显示换页状态
-d 显示每个块设备的状态
-i 状态信息刷新的间隔时间
-u 显示CPU利用率

参考实例

使用-R参数显示内存信息:

[root@linuxcool ~]# sar -R

使用-b参数显示I/O速率:

[root@linuxcool ~]# sar -R 

使用-u参数显示CPU利用率:

[root@linuxcool ~]# sar -u


screen命令 多重视窗管理程序

 

screen命令为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。通常中有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。

语法格式:screen [参数]

常用参数:

-A 将所有的视窗都调整为目前终端机的大小
-d<作业名称> 将指定的screen作业离线
-m 即使目前已在作业中的screen作业,仍强制建立新的screeN作业
-r<作业名称> 恢复离线的screen作业
-R 先试图恢复离线的作业,若找不到离线的作业,即建立新的screen作业
-s<shell> 指定建立新视窗时,所要执行的shell
-S<作业名称> 指定screen作业的名称
-v 显示版本信息
-x 恢复之前离线的screen作业
-ls 显示目前所有的screen作业
-list 显示目前所有的screen作业
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业

参考实例

创建screen终端:

[root@linuxcool ~]# screen

创建screen终端并执行任务:

[root@linuxcool ~]# screen vi ~/main.c

重新连接id为2276的screen终端:

[root@linuxcool ~]# screen -r 2276

显示已创建的screen终端:

[root@linuxcool ~]# screen ls

将linuxcool作业离线:

[root@linuxcool ~]# screen -d linuxcool


seinfo命令 查询SELinux策略规则

 

seinfo命令是用来查询SELinux的策略提供多少相关规则,一个主体进程能否读取到目标文件资源的重点是在于SELinux的策略以及策略内的各项规则,然后再通过该规则的定义去处理各项目标文件的安全上下文,尤其是“类型”部分。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。

语法格式:seinfo [参数]

常用参数:

-a 列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息
-t 列出SELinux所有类型(type)的种类
-r 列出SELinux所有角色(role)的种类
-u 列出SELinux所有身份识别(user)的种类
-b 列出所有规则的种类(布尔值)

参考实例

列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息:

[root@linuxcool ~]# seinfo -a

列出SELinux所有类型(type)的种类:

[root@linuxcool ~]# seinfo -t

列出SELinux所有角色(role)的种类:

[root@linuxcool ~]# seinfo -r

列出SELinux所有身份识别(user)的种类:

[root@linuxcool ~]# seinfo -u

列出所有规则的种类(布尔值):

[root@linuxcool ~]# seinfo -b

列出与httpd有关的规则:

[root@linuxcool ~]# seinfo -b | grep httpd


semodule命令 管理SELinux策略模块

 

semodule命令的作用是可以管理SELinux策略模块,比如显示、安装、重装、升级、删除、激活及禁用策略模块。

semodule命令还可用于强制从模块存储重建策略和/或强制重新加载策略而不执行任何其他事务。 semodule命令作用于semodule_package创建的模块包。通常,这些文件具有.pp后缀(策略包),尽管这不是以任何方式强制执行的。

语法格式:semodule [参数]

常用参数:

-l 显示安装的模块
-R 重装策略模块
-B 建立和重装策略模块
-i<策略模块> 安装一个新的模块
-u<策略模块> 升级策略模块
-e<策略模块> 激活策略模块
-d<策略模块> 禁用策略模块
-b<策略模块> 安装新的基础模块
-r<策略模块> 删除策略模块

参考实例

查看SELinux加载的策略模块:

[root@linuxcool ~]# semodule -l

查看apache策略模块:

[root@linuxcool ~]# semodule -l|grep apache

禁用zebra策略模块:

[root@localhost ~]# semodule -d zebra


service命令 控制系统服务

 

service命令是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

语法格式:service [参数]

常用参数

--status-all 显示所服务的状态
-h 显示帮助信息

参考实例

显示所有服务的状态:

[root@linuxcool ~]# service --status-all


sesearch命令 查看SElinux策略

 

使用seinfo命令可以查询SELinux的策略提供多少相关规则,如果查到的相关类型或者布尔值,想要知道详细规则时,使用sesearch命令查询。

语法格式: sesearch [参数]

常用参数:

-a 列出该类型或布尔值的所有相关信息
-t 后面还要接类型,例如 -t httpd_t
-b 后面还要接布尔值的规则,例如 -b httpd_enable_ftp_server

参考实例

找出目标文件资源类型为httpd_sys_content_t的有关信息:

[root@linuxcool ~]# sesearch -a -t httpd_sys_content_t

找出主体进程为httpd_t且目标文件类型为httpd相关的所有信息:

[root@linuxcool ~]# sesearch -s httpd_t -t httpd_* -a 

查看布尔值httpd_enable_homedirs设置了多少规则:

[root@linuxcool ~]# sesearch -b httpd_enable_homedirs -a 


sestatus命令 显示SELinux状态

 

sestatus命令的作用是可以查看系统运行SELinux的状态,应用模式、布尔值,以及显示/etc/sestatus.conf文件内列出的文件和进程的安全上下文。

SELinux全称是Security Enhanced Linux (安全强化 Linux),是 MAC (Mandatory Access Control,强制访问控制系统)的一个实现,已在linux内核中存在了许多年,对于目前可用的linux安全模块来说,SELinux功能最全面,测试最充分,是linux内核的安全保镖。

SELinux主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。

语法格式:sestatus [参数]

常用参数:

-v 详细检查进程和文件的安全上下文
-b 显示当前布尔值状态

参考实例

查看当前SELinux的状态:

[root@linuxcool ~]# sestatus

详细检查进程和文件的安全上下文:

[root@linuxcool ~]# sestatus -v

显示当前布尔值状态:

[root@linuxcool ~]# sestatus -b


setenforce命令 设置SELinux状态

 

setenforce命令是用来开启和关闭SELinux的。

语法格式: setenforce [参数]

常用参数:

1 开启
0 关闭

参考实例

开启SELinux:

[root@linuxcool ~]# setenforce 1

关闭SELinux:

[root@linuxcool ~]# setenforce 0


setsebool命令 修改布尔值

 

setsebool命令是用来修改SElinux策略内各项规则的布尔值。

语法格式:setsebool [参数]

常用参数:

-P 直接将设置值写入配置文件,该设置数据将来会生效的

参考实例

允许vsvtp匿名用户写入权限:

[root@linuxcool ~]# setsebool -P allow_ftpd_anon_write=1 

HTTP被设置允许cgi的设置:

[root@linuxcool ~]# setsebool -P httpd_enable_cgi 1 

Selinux将本机的NFS共享设置成只读:

[root@linuxcool ~]# setsebool -P nfs_export_all_ro 1 


setup命令 系统管理工具

 

setup命令是一个基于文本界面的系统管理工具,集成了用户认证管理、防火墙管理、网络管理和系统服务管理。

语法格式:setup

setup面板具体说明:

Authentication configuration 用户管理认证
Firewall configuration 防火墙管理
Network configuration 网络管理
System services 系统服务自动启动管理

参考实例

进入setup管理界面:

[root@linuxcool ~]# setup

使用setup命令配置网络信息:

  1. 选择 Network configuration 选项
  2. 选择Device configuration 选项
  3. 选择eth0网络接口,选择save即可


set命令 设置shell

 

set命令能设置所使用shell的执行方式,可依照不同的需求来做设置。

语法格式:set [参数]

常用参数:

-a 标示已修改的变量,以供输出至环境变量
-b 使被中止的后台程序立刻回报执行状态
-C 转向所产生的文件无法覆盖已存在的文件
-d Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消
-e 若指令传回值不等于0,则立即退出shell
-f 取消使用通配符
-h 自动记录函数的所在位置
-k 指令所给的参数都会被视为此指令的环境变量
-l 记录for循环的变量名称
-m 使用监视模式

参考实例

使用declare命令定义一个新的环境变量”mylove”,并且将其值设置为”Visual C++”,输入如下命令:

[root@linuxcool ~]# declare mylove='Visual C++' 

再使用set命令将新定义的变量输出为环境变量,输入如下命令:

[root@linuxcool ~]# set -a mylove  

执行该命令后,将会新添加对应的环境变量。用户可以使用env命令和grep命令分别显示和搜索环境变量”mylove”,输入命令如下:

[root@linuxcool ~]# env | grep mylove '


sha1sum命令 查看效验文件哈希值命令

 

sha1sum命令用于生成和校验文件的sha1值。它会逐位对文件的内容进行校验。是文件的内容,与文件名无关,也就是文件内容相同,其sha1值相同。

语法格式:sha1sum [参数] [文件]

常用参数:

-b 以二进制读取
-t 以文本模式读取
-c 从文本中读取md5值并验证它们

参考实例

取得文件的md5值:

[root@linuxcool ~] # sha1sum lua-5.3.4.tar.gz 
79790cfd40e09ba796b01a571d4d63b52b1cd950  lua-5.3.4.tar.gz

从文本中读取md5值并验证它们:

[root@linuxcool ~] # sha1sum lua-5.3.4.tar.gz > lua-md5.txt
[root@linuxcool ~] #  sha1sum -c lua-md5.txt 


sharectl命令 配置和管理文件共享服务

 

sharectl命令对文件共享协议进行操作,如NFS和SMB。该命令可以设置客户端和服务器的操作属性,获取和恢复配置快照,并获取pro-tocol服务的状态。

语法格式:sharectl [参数]

常用参数:

get 获取协议的属性值
set 设置文件共享的属性
status 显示状态

参考实例

获取NFS协议的属性:

[root@linuxcool ~]# sharectl get nfs

设置NFS的版本号:

[root@linuxcool ~]# sharectl set -p server_versmin=3 nfs

获取状态:

[root@linuxcool ~]# sharectl status


shutdown命令 关闭服务器

 

shutdown命令用来系统关机命令。shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。

语法格式:shutdown [选项] [参数]

常用参数:

-c 当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令
-f 重新启动时不执行fsck
-F 重新启动时执行fsck
-h 将系统关机
-k 只是送出信息给所有用户,但不会实际关机
-n 不调用init程序进行关机,而由shutdown自己进行
-r shutdown之后重新启动
-t 送出警告信息和删除信息之间要延迟多少秒

参考实例

指定现在立即关机:

[root@linuxcool ~]# shutdown -h now 

指定5分钟后关机,同时送出警告信息给登入用户:

[root@linuxcool ~]# shutdown +5 "System will shutdown after 5 minutes" 

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

[root@linuxcool ~]# shutdown -c 

重启服务器:

[root@linuxcool ~]# shutdown -r now 

按预定时间关闭系统:

[root@linuxcool ~]# shutdown -h hours:minutes


sh命令 shell命令语言解释器

 

sh命令是shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取。通过用户输入命令,和内核进行沟通!

Bourne Again Shell (即bash)是自由软件基金会(GNU)开发的一个Shell,它是Linux系统中一个默认的Shell。Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点。

语法格式:sh [参数]

常用参数:

-c 命令从-c后的字符串读取
-i 实现脚本交互
-n 进行shell脚本的语法检查
-x 实现shell脚本逐条语句的跟踪

参考实例

跟踪脚本调试shell脚本,能打印出所执行的每一行命令以及当前状态:

[root@linuxcool ~]# sh -x test.sh 
+ DEFINE=30 
+ cat /var/log/secure + awk '/Failed/ {++ip[$(NF-3)]} END {for (i in ip) print i"="ip[i]}' ++ cat /root/satools/black.txt + for i in '`cat /root/satools/black.txt`' 
++ echo 121.42.0.16=1427 
++ awk -F= '{print $1}' 
+ IP=121.42.0.16 ++ echo 121.42.0.16=1427 ++ awk -F= '{print $2}' + NUM=1427 + '[' 1427 -gt 30 ']' + grep 121.42.0.16 /etc/hosts.deny + '[' 1 -gt 0 ']' + echo ss
hd:121.42.0.16 + echo vsftpd:121.42.0.16 + for i in '`cat /root/satools/black.txt`' ++ echo 121.42.0.72=276 ++ awk -F= '{print $1}' + IP=121.42.0.72 ++ awk -F= '{pr
int $2}' ++ echo 121.42.0.72=276 + NUM=276 + '[' 276 -gt 30 ']' + grep 121.42.0.72 /etc/hosts.deny + '[' 1 -gt 0 ']' + echo sshd:121.42.0.72 + echo vsftpd:121.42.0.72


size命令 列出文件字节大小

 

size命令用于查看目标文件、库或可执行文件中各段及其总和的大小,是 GNU 二进制工具集 GNU Binutils 的一员。

语法格式:size [参数] [文件]

常用参数:

-A|-B|--format=compatibility 控制输出格式
-d|-o|-x|--radix=number 控制大小输出的进制
--common 打印每个文件的 common symbols 大小
--totals 列出所有文件的总大小

参考实例

查看指定程序各个段的大小:

[root@linuxcool ~] # size /bin/size

查看静态库中的各个目标文件的段大小:

[root@linuxcool ~] # size /usr/lib64/libc.a


skill命令 送讯号给正在执行的程序

 

skill命令送个讯号给正在执行的程序,预设的讯息为 TERM (中断),较常使用的讯息为 HUP、INT、KILL、STOP、CONT 和 0。

讯息有三种写法:分别为 -9、-SIGKILL、-KILL,可以使用 -l 或 -L 已列出可使用的讯息。

语法格式:skill [讯号名称] [选择程序的规则]

常用参数:

-v 详细输出/ 列出所选择程序的资讯
-n 没有动作/ 显示程序代号
-t 终端机代号
-u 使用者名称
-w 智能警告讯息/ 尚未完成

参考实例

停止所有在 PTY 装置上的程序:

[root@linuxcool ~]# skill -KILL -v pts/* 

停止三个使用者 user1、user2、user3:

[root@linuxcool ~]# skill -STOP user1 user2 user3

冻结16514号进程:

[root@linuxcool ~]# skill -STOP 16514

冻结oracle进程:

[root@linuxcool ~]# skill -STOP oracle

唤醒进程:

[root@linuxcool ~]# skill -CONT 16514 


slabtop命令 实时显示内核slab缓冲信息

 

slabtop命令的命令是以实时的方式显示内核“slab”缓冲区的细节信息。

linux内核需要为临时对象如任务或者设备结构和节点分配内存,缓存分配器管理着这些类型对象的缓存。现代linux内核部署了该缓存分配器以持有缓存,称之为片。不同类型的片缓存由片分配器维护。slabtop命令的作用就是显示实时内核片缓存信息。

slabtop命令仅可以用于在版本高于2.4的linux内核中。使用该命令要有root权限。

语法格式:slabtop [参数]

常用参数:

-d 每n秒更新一次显示的信息,默认是每3秒
-s 指定排序标准进行排序
-o 显示一次后退出
-V 显示版本
-- -help 显示帮助信息

参考实例

显示内核slab缓存区信息:

[root@linuxcool ~]# slabtop

每隔十秒钟刷新显示slab缓冲区信息:

[root@linuxcool ~]# slabtop -d 10

仅输出一次信息:

[root@linuxcool ~]# slabtop -o


sleep命令 延迟当前命令的执行

 

sleep命令可以用来将目前动作延迟一段时间, 直到达到参数所指定的时间或是被信号所中断。使用权限:所有使用者。

语法格式:sleep [参数]

常用参数:

--help 显示辅助讯息
--version 显示版本编号
number  时间长度,后面可接 s、m、h 或 d
smhd s 为秒,m 为 分钟,h 为小时,d 为日数

参考实例

休眠5分钟:

[root@linuxcool ~]# sleep 5m

显示目前时间后延迟 1 分钟,再次显示时间:

[root@linuxcool ~]# date ; sleep 1m ; date


sliplogin命令 将SLIP接口加入标准输入

 

sliplogin可将SLIP接口加入标准输入,把一般终端机的连线变成SLIP连线。通常可用来建立SLIP服务器,让远端电脑以SLIP连线到服务器。

sliplogin会去检查/etc/slip/slip.hosts文件中是否有相同的用户名称。通过检查后,sliplogin会调用执行shell script来设置IP地址,子网掩码等网络界面环境。此shell script通常是/etc/slip/slip.login。

语法格式:sliplogin [用户名称]

参考实例

改变用户的连接方式:

[root@linuxcool ~]# sliplogin kk 


sosreport命令 收集并打包诊断和支持数据

 

sosreport命令从正在运行的系统生成配置和诊断信息的存档。存档文件可以存储在本地或集中,以便记录或跟踪,也可以发送给技术支持代表、开发人员或系统管理员,以帮助进行技术故障查找和调试。

语法格式:sosreport [参数]

常用参数:

-l 列出所有可用的插件及其选项
-n 禁用指定的插件
-e 启用指定的插件
-a 对于所有的插件启用,将所有布尔选项设置为True
-v 增加日志记录的详细程度
--no-report 禁用HTML报告写入
--config-file CONFIG 指定备用配置文件

参考实例

列出所有可用的插件及其选项:

[root@linuxcool ~]# sosreport -l

使用-e参数,启用指定apache.log插件:

[root@linuxcool ~]# sosreport -e apache.log

使用-n参数,禁用指定yum.yumlist插件:

[root@linuxcool ~]# sosreport -n yum.yumlist

使用-a参数,启用所有列出来的插件:

[root@linuxcool ~]# sosreport -a


ssh-add命令 agent的高速缓存

 

ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中。该命令位置在/usr/bin/ssh-add。

语法格式:ssh-add [参数]

常用参数:

-D 删除ssh-agent中的所有密钥
-d 从ssh-agent中的删除密钥
-l 显示ssh-agent中的密钥
-L 显示ssh-agent中的公钥
-X 对ssh-agent进行解锁
-x 对ssh-agent进行加锁

参考实例

把专用密钥添加到 ssh-agent 的高速缓存中:

[root@linuxcool ~]# ssh-add ~/.ssh/id_dsa

从ssh-agent中删除密钥:

[root@linuxcool ~]# ssh-add -d ~/.ssh/id_xxx.pub

查看ssh-agent中的密钥:

[root@linuxcool ~]# ssh-add -l


ssh-agent命令 ssh密钥管理器

 

ssh-agent命令是一种控制用来保存公钥身份验证所使用的私钥的程序。ssh-agent在X会话或登录会话之初启动,所有其他窗口或程序则以客户端程序的身份启动并加入到ssh-agent程序中。通过使用环境变量,可定位代理并在登录到其他使用ssh机器上时使用代理自动进行身份验证。

其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。

语法格式: ssh-agent [参数]

常用参数:

-a bind_address 将代理绑定到Unix域套接字绑定地址
-d 调试模式
-k 把ssh-agent进程杀掉
-s 生成Bourne shell 风格的命令输出

参考实例

运行ssh-agent,打印本身的环境和变量:

[root@linuxcool ~]# ssh-agent

使用-d参数,运行调试模式:

[root@linuxcool ~]# ssh-agent -d

使用-k参数杀掉ssh-agent进程:

[root@linuxcool ~]# ssh-agent -k


ssh-copy-id命令 复制公钥到远程主机

 

ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限。

语法格式:ssh-copy-id [参数]

常用参数:

-i 指定公钥文件

参考实例

拷贝本机公钥到远程主机上面:

[root@linuxcool ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.3.22


ssh-keygen命令 密钥认证

 

ssh-keygen命令用于为“ssh”生成、管理和转换认证密钥,它支持RSA和DSA两种认证密钥。

语法格式:ssh-keygen [参数]

常用参数:

-b 指定密钥长度
-e 读取openssh的私钥或者公钥文件
-f 指定用来保存密钥的文件名
-t 指定要创建的密钥类型
-C 添加注释

参考实例

创建一个默认密钥:

[root@linuxcool ~]# ssh-keygen

使用-t参数创建一个指定密钥的类型并添加注释:

[root@linuxcool ~]# ssh-keygen -t rsa -C "your_email@example.com" 

使用-e参数读取openssh的私钥或者公钥文件:

[root@linuxcool ~]# ssh-keygen -e


startx命令 初始化X-windows

 

startx命令用来启动X-Window,它负责调用X-Window系统的初始化程序xinit。以完成 X-Window运行所必要的初始化工作,并启动X-Window系统。

语法格式:startx [参数]

常用参数:

-d 指定在启动过程中传递给客户机的X服务器的显示名称
-m 当未找到启动脚本时,启动窗口管理器
-r 当未找到启动脚本时,装入资源文件
-w 强制启动
-x 使用startup脚本启动X-windows会话

参考实例

已默认方式启动X-windows系统:

[root@linuxcool ~]# startx

以16位颜色深度启动X-windows系统:

[root@linuxcool ~]# startx -- -depth 16

强制启动 X-windows系统:

[root@linuxcool ~]# startx -w


strace命令 跟踪系统调用

 

strace命令是一个集诊断、调试、统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者是了解应用工作过程的目的。

strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。

语法格式:strace [参数]

常用参数:

-c 统计每一系统调用的所执行的时间,次数和出错的次数等
-d 输出strace关于标准错误的调试信息
-f 跟踪由fork调用所产生的子进程
-F 尝试跟踪vfork调用.在-f时,vfork不被跟踪
-a 设置返回值的输出位置.默认 为40
-r 打印出相对时间关于每一个系统调用
-t 在输出中的每一行前加上时间信息

参考实例

通用的完整用法,跟踪28979进程的所有系统调用(-e trace=all),并统计系统调用的花费时间,以及开始时间(并以可视化的时分秒格式显示),最后将记录结果存在output.txt文件里面:

[root@linuxcool ~]# strace -o output.txt -T -tt -e trace=all -p 28979

同时跟踪fork和vfork出来的进程,把所有strace输出写到~/dcop-strace.txt里面, 启动调试dcopserver:

[root@linuxcool ~]# strace -f -F -o ~/dcop-strace.txt dcopserver

设置返回值的输出位置.默认为40:

[root@linuxcool ~]# strace -a column

跟踪 whoami时的输出:

[root@linuxcool ~]# strace -o whoami-strace.txt whoami

限制strace只跟踪特定的系统调用:

[root@linuxcool ~]# strace -f -o configure-strace.txt -e execve ./configure


sudo命令 以系统管理者的身份执行指令

 

sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。

sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。当然,能做什么不能做什么都是通过安全策略来指定的。sudo 支持插件架构的安全策略,并能把输入输出写入日志。第三方可以开发并发布自己的安全策略和输入输出日志插件,并让它们无缝的和 sudo 一起工作。默认的安全策略记录在 /etc/sudoers 文件中。而安全策略可能需要用户通过密码来验证他们自己。也就是在用户执行 sudo 命令时要求用户输入自己账号的密码。如果验证失败,sudo 命令将会退出。

语法格式:sudo [参数]

常用参数:

-v 因为 sudo 在第一次执行时或是在 N分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过N分钟,也会问密码
-k 强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b 将要执行的指令放在背景执行
-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称,%h 会显示主机名称
-s 执行环境变数中的SHELL 所指定的shell ,或是 /etc/passwd 里所指定的 shell
command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

参考实例

切换到root用户:

[root@linuxcool ~]# sudo su

指定用户执行命令:

[root@linuxcool ~]# sudo -u userb ls -l 

以root权限执行上一条命令:

[root@linuxcool ~]# sudo !!

列出目前的权限:

[root@linuxcool ~]# sudo -l 

列出 sudo 的版本资讯:

[root@linuxcool ~]# sudo -V


supervisord命令 配置后台服务/常驻进程的进程工具

 

supervisor是一个用 Python 写的进程管理工具,可以很方便的用来在 UNIX-like 系统(不支持 Windows)下启动、重启(自动重启程序)、关闭进程(不仅仅是 Python 进程)。

语法格式: supervisord [参数]

常用参数:

status 查看程序状态
start 启动程序
stop 关闭程序
update 重启配置文件修改过的程序

参考实例

查看进程运行状态:

[root@linuxcool ~]# supervisorctl status

启动进程:

[root@linuxcool ~]# supervisorctl start 进程名

关闭进程:

[root@linuxcool ~]# supervisorctl stop 进程名

清空进程日志:

[root@linuxcool ~]# supervisorctl clear 进程名

重新载入配置文件:

[root@linuxcool ~]# supervisorctl update

 


suspend命令 暂停执行shell

 

suspend是终端的内建命令,可暂停目前正在执行的shell。若要恢复,则必须使用SIGCONT信息。

语法格式:suspend [参数]

常用参数:

-f  若目前执行的shell为登入的shell,则suspend预设无法暂停此shell

参考实例

暂停终端 :

[root@linuxcool ~]# suspend -f


SVGATextMode命令 加强文字模式的显示画面

 

SVGATextMode可用来设置文字模式下的显示画面,包括分辨率,字体和更新频率等。

语法格式:SVGATextMode [参数]

常用参数:

-a 如果新显示模式的屏幕大小与原先不同时,SVGATextMode会执行必要的系统设置
-c 维持原有的VGA时脉
-d 执行时会显示详细的信息,供排错时参考
-f 不要执行配置文件中有关字体载入的指令
-h 显示帮助
-m 允许1×1的方式来重设屏幕大小
-n 仅测试指定的模式
-r 通知或重设与屏幕大小相关的程序
-s 显示配置文件中所有可用的模式
-t 指定配置文件
-v 在配置新的显示模式时,预设会先检查垂直与水平的更新更新频率是否在配置文件所指定的范围内,如果不在范围内,则不设置新的显示模式

参考实例

显示关于 SVGATextMode 的帮助:

[root@linuxcool ~]# SVGATextMode -h

维持原有的VGA时脉:

[root@linuxcool ~]# SVGATextMode -c


swatch命令 用于系统监控

 

swatch可用来监控系统记录文件,并在发现特定的事件时,执行指定的动作。使用之前需要预设swatch的配置文件”.swatchrc”。可以根据需求修改”.swatchrc”文件来监控事件及执行的动作。

语法格式:swatch [参数]

常用参数:

-A 预设配置文件中,动作的分隔字符,预设为逗号
-c 指定配置文件,而不使用预设的配置文件
-f 检查指定的记录文件,检查完毕后不会继续监控该记录文件
-I 指定输入记录的分隔字符,预设为换行字符
-P 指定配置文件中,事件的分隔字符,预设为逗号
-r 在指定的时间重新启动
-t 检查指定的记录文件,并且会监控加入记录文件中的后继记录

参考实例

开启系统监控:

[root@linuxcool ~]# swatch

选定”abc.conf”配置文件(请注意文件路径),执行将日志写入到”/var/log/secure.1″:

[root@linuxcool ~]# swatch -c /root/abc.conf --examine=/var/log/secure.1


sysctl命令 配置内核参数

 

sysctl命令被用于在内核运行时动态地修改内核的运行参数,可用的内核参数在目录“/proc/sys”中。

它包含一些TCP/ip堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能。用sysctl可以读取设置超过五百个系统变量。

sysctl命令对内核参数的修改仅在当前生效,重启系统后参数丢失。如果希望参数永久生效可以修改配置文件“/etc/sysctl.conf”。

语法格式:sysctl [参数]

常用参数:

-n 打印值时不打印关键字
-e 忽略未知关键字错误
-N 仅打印名称
-w 当改变sysctl设置时使用此项
-p 从配置文件“/etc/sysctl.conf”加载内核参数设置
-a 打印当前所有可用的内核参数变量和值
-A 以表格方式打印当前所有可用的内核参数变量和值

参考实例

查看所有可读变量:

[root@linuxcool ~]# sysctl -a

读一个指定的变量:

[root@linuxcool ~]# sysctl net.ipv6.neigh.lo.locktime
net.ipv6.neigh.lo.locktime = 0

修改指定变量的值:

[root@linuxcool ~]# sysctl net.ipv6.neigh.lo.locktime=1
net.ipv6.neigh.lo.locktime = 1 


syslog命令 系统默认的日志守护进程

 

syslog 是Linux系统默认的日志守护进程。默认的syslog配置文件是/etc/syslog.conf文件。程序,守护进程和内核提供了访问系统的日志信息。因此,任何希望生成日志信息的程序都可以向 syslog 接口呼叫生成该信息。

几乎所有的网络设备都可以通过syslog协议,将日志信息以用户数据报协议(UDP)方式传送到远端服务器,远端接收日志服务器必须通过syslogd监听UDP 端口514,并根据 syslog.conf配置文件中的配置处理本机,接收访问系统的日志信息,把指定的事件写入特定文件中,供后台数据库管理和响应之用。意味着可以让任何事件都登录到一台或多台服务器上,以备后台数据库用off-line(离线) 方法分析远端设备的事件。

通常,syslog 接受来自系统的各种功能的信息,每个信息都包括重要级。/etc/syslog.conf 文件通知 syslogd 如何根据设备和信息重要级别来报告信息。

语法格式: show syslog [参数]

常用参数:

statistics 统计信息
error 异常日志
memory 内存日志

参考实例

要向syslog文件/var/log/messages中记录日志信息:

[root@linuxcool ~]# logger this is a test log line 

显示系统所有内核日志统计表:

[root@linuxcool ~]# show syslog statistics

显示系统所有异常日志信息:

[root@linuxcool ~]# show system log error

显示日志配置信息:

[root@linuxcool ~]# show log-config

显示内存日志信息:

[root@linuxcool ~]# show log memory notice


systemctl命令 管理系统服务

 

Centos7之后从init完全换成了systemd的启动方式,systemd 启动服务的机制主要是通过 systemctl 的这个系统服务管理指令来处理。systemctl在用法上也囊括 service / chkconfig / setup / init 的大部分功能。

语法格式:systemctl [参数] [服务]

常用参数:

-start 启动服务
-stop 停止服务
-restart 重启服务
-enable 使某服务开机自启
-disable 关闭某服务开机自启
-status 查看服务状态
-list -units --type=service 列举所有已启动服务

参考实例

启动httpd服务:

[root@linuxcool ~]# systemctl start httpd.service 

停止httpd服务:

[root@linuxcool ~]# systemctl stop httpd.service 

重启httpd服务:

[root@linuxcool ~]# systemctl restart httpd.service 

查看httpd服务状态:

[root@linuxcool ~]# systemctl status httpd.service  

使httpd开机自启:

[root@linuxcool ~]# systemctl enable httpd.service  

取消httpd开机自启:

[root@linuxcool ~]# systemctl disable httpd.service   

列举所有已启动服务(unit单元) :

[root@linuxcool ~]# systemctl list-units --type=service


tabs命令 在终端上设置选项卡

 

tabs程序清除并设置终端上的制表位。这使用terminfo清除所有选项卡和设置选项卡功能。如果其中一个不存在,则制表符无法清除/设置制表位。终端应配置为使用硬标签。

语法格式:tabs [参数]

常用参数:

-0 重置选项卡
-8 将制表符设置为标准间隔
-T 使用终端类型

参考实例

重置选项卡:

[root@linuxcool ~]# tabs -0

将制表符设置为标准间隔:

[root@linuxcool ~]# tabs -8


taskset命令 设置或检索进程的CPU相关性

 

将进程绑定到指定的CPU上运行,这样可以避免大量的进程切换产生的无效时间。通过 taskset 命令可将某个进程与某个CPU核心绑定,使得其仅在与之绑定的CPU核心上运行。

线程是最小的内核执行调度单元,因此,准确地说是将某个线程与某个CPU核心绑定,而非某个进程。

taskset命令是依据线程PID(TID)查询或设置线程的CPU亲和性(与哪个CPU核心绑定)。

语法格式:taskset [参数]

常用参数:

-a, --all-tasks 设置或检索所有任务(线程)的CPU相关性对于给定的PID
-c, --cpu-list 将掩码解释为处理器的数字列表
-p, --pid 在现有PID上操作,不要启动新任务
-V, --version 显示版本信息

-h, --help
显示帮助信息

参考实例

使用给定的关联运行新命令:

[root@linuxcool ~]# taskset mask command [arguments]

检索现有任务的CPU相关性:

[root@linuxcool ~]# taskset -p pid

设置现有任务的CPU相关性:

[root@linuxcool ~]# taskset -p mask pid


telint命令 切换运行等级

 

telint命令用于切换当前正在运行的Linux系统的运行等级。

语法格式:telint [参数]

常用参数:

-t 指定等待的秒数

参考实例

切换当前正在运行的Linux系统的运行等级:

[root@linuxcool ~]# telint -t 1000


testparm命令 测试Samba的设置是否正确无误

 

testparm命令用于测试Samba的设置是否正确无误,执行testparm(test parameter)指令可以简单测试Samba的配置文件,假如测试结果无误,Samba常驻服务就能正确载入该设置值,但并不保证其后的操作如预期般一切正常。

语法格式:testparm [参数]

常用参数:

-s 直接列出Samba服务定义信息

参考实例

查看Samba配置,按Enter键显示Samba配置结果:

[root@linuxcool ~]# testparm

直接查看Samba配置 :

[root@linuxcool ~]# testparm -s


timeconfig命令 设置时区

 

timeconfig命令用于设置时区, 是Red Hat公司遵循GPL规则所开发的程序,它具有互动式操作界面,可以轻易地利用方向键和空格键等,设置系统时间所属的时区。

语法格式:timeconfig [参数] [时区]

常用参数:

--arc 使用Alpha硬件结构的格式存储系统时间
--back 在互动式界面里,显示Back钮而非Cancel钮
--test 仅作测试,并不真的改变系统的时区
--utc 把硬件时钟上的时间视为CUT,有时也称为UTC或UCT

参考实例

设置时区:

[root@linuxcool ~]# timeconfig


timedatectl命令 控制系统时间和日期

 

timedatectl 可以用来查询和更改系统时钟及其设置。

使用 systemd-firstboot(1) 来初始化已挂载(但未启动)的系统镜像的系统时区。

语法格式:timedatectl [参数]

常用参数:

status 显示当前时间设置
set-time TIME 设置系统时间
set-timezone ZONE 设置系统时区
list-timezones 显示已知时区

参考实例

查看当前的时区:

[root@linuxcool ~]# timedatectl status

设置系统日期:

[root@linuxcool ~]# timedatectl set-time 2020-08-20

查看所有的时区:

[root@linuxcool ~]# timedatectl list-timezones

设置时区为东八区:

[root@linuxcool ~]# timedatectl list-timezones | grep "Asia/S"


timeout命令 在指定的时间应在运行则杀死该进程

 

timeout命令作用是运行指定命令,如果在指定时间后在运行则杀死该进程。

timeout命令是GNU核心实用程序软件包的一部分,该软件包几乎安装在所有Linux发行版中。后缀s代表秒(默认值),m代表分,h代表小时,d代表天。如果不添加任何单位,默认是秒。如果持续时间为0,则禁用关联的超时。

默认情况下,timeout在后台运行托管命令。

语法格式:timeout [参数]

常用参数:

-s<信号> 指定在超时时发送的信号,信号可以是类似“HUP”的信号名或是信号数
-k<时间> 达到给定的时间限制后会强制结束
-- -foreground 在前台运行

参考实例

发送SIGKILL信号给ping命令,5秒钟后终止:

[root@linuxcool ~]# timeout -s SIGKILL 5s ping www.linuxprobe.com

运行命令一分钟,如果命令没有结束,将在10秒后终止命令:

[root@linuxcool ~]# timeout -k 10s 1m sh linuxcool.sh

在前台运行命令:

[root@linuxcool ~]# timeout --foreground 5m ./linuxcool.sh


time命令 指令执行时所消耗的时间

 

time命令的用途,在于量测特定指令执行时所需消耗的时间及系统资源等消息。 例如 CPU 时间、记忆体、输入输出等等。需要特别注意的是,部分消息在 Linux 上显示不出来。这是因为在 Linux 上部分资源的分配函式与 time 指令所预设的方式并不相同,以致于 time 指令无法取得这些资料。

语法格式:time [参数] [命令]

-o 设定结果输出档。这个选项会将 time 的输出写入 所指定的档案中。
-a 配合 -o 使用,会将结果写到档案的末端,而不会覆盖掉原来的内容。
-f FORMAT 以 FORMAT 字串设定显示方式。

参考实例

显示命令date的时间统计结果:

[root@linuxcool ~]# time date   


tload命令 显示系统负载状况

 

tload命令用于显示系统的负载状况。tload命令用ASCII字符简单的以文字模式显示系统负载状态。假设不给予终端机编号,则会在执行tload命令的终端机显示负载情形。

语法格式:tload [参数]

常用参数:

-d<间隔秒数> 设置tload检测系统负载的间隔时间,单位以秒计算
-s<刻度大小> 设置图标的垂直刻度大小,单位以列计算

参考实例

显示系统负载:

[root@linuxcool ~]# tload

每10秒显示系统负载情况:

[root@linuxcool ~]# tload -d 10

显示666号终端机系统负载情况的图表垂直刻度为五列:

[root@linuxcool ~]# tload -s 5 666

每1秒显示系统负载情况:

[root@linuxcool ~]# tload -d 1


top命令 实时显示进程动态

 

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。

在top命令中按f按可以查看显示的列信息,按对应字母来开启/关闭列,大写字母表示开启,小写字母表示关闭。带*号的是默认列。

语法格式:top [参数]

常用参数:

-d 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
-q 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
-c  切换显示模式
-s 安全模式,将交谈式指令取消, 避免潜在的危机
-i 不显示任何闲置 (idle) 或无用 (zombie) 的行程
-n 更新的次数,完成后将会退出 top
-b 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内

参考实例

显示进程信息:

[root@linuxcool ~]# top

显示完整的进程信息:

[root@linuxcool ~]# top -c

以批处理模式显示程序信息:

[root@linuxcool ~]# top -b

以累积模式显示程序信息:

[root@linuxcool ~]# top -s

设置信息更新次数:

[root@linuxcool ~]# top -n 2


tsar命令 收集服务器系统信息

 

tsar是淘宝自己开发的一个采集工具(类似于sar工具),主要用来收集服务器的系统信息(如cpu,io,mem,tcp等),以及应用数据(如squid haproxy nginx等)。

收集到的数据存储在磁盘上,可以随时查询历史信息,输出方式灵活多样,另外支持将数据存储到mysql中,也可以将数据发送到nagios报警服务器。

tsar在展示数据时,可以指定模块,并且可以对多条信息的数据进行merge输出,带-live参数可以输出秒级的实时信息。

tsar是基于模块化设计的程序,程序有两部分组成:框架和模块。
框架程序源代码主要在src目录,而模块源代码主要在modules目录中。
框架提供对配置文件的解析,模块的加载,命令行参数的解析,应用模块的接口对模块原始数据的解析与输出。 模块提供接口给框架调用。
tsar依赖与cron每分钟执行采集数据,因此它需要系统安装并启用crond,安装后,tsar每分钟会执行tsar –cron来定时采集信息,并且记录到原始日志文件。

语法格式:tsar [参数]

常用参数:

-check 查看最后一次的采集数据
--check/-C 查看最后一次tsar的提醒信息
--cron/-c 使用crond模式来进行tsar监控
--interval/-i 指明tsar的间隔时间,默认单位分钟,带上--live参数则单位是秒
--list/-L 列出启用的模块
--live/-l 查看实时数据
--file/-f 指定输入文件
--ndays/-n 指定过去的数据天数,默认1天
--date/-d 指定日期,YYYYMMDD或者n代表n天前
--detail/-D 能够指定查看主要字段还是模块的所有字段
--cpu 列出cpu相关的监控计数
--tcp TCP 协议 IPV4的使用情况
--mem 物理内存的使用情况

参考实例

cpu监控:

[root@linuxcool ~]# tsar --cpu

监控虚存和load情况:

[root@linuxcool ~]# tsar --swap --load

列出系统内存的使用情况:

[root@linuxcool ~]# tsar --mem

监控系统IO情况:

[root@linuxcool ~]# tsar --io

历史数据回溯:

[root@linuxcool ~]# tsar -d 2 -i 1


tset命令 终端初始化

 

tset命令的作用是可以进行终端初始化。默认终端类型为“unknown”。

如果命令行上没有指定终端类型,则应用-m选项映射,如果终端类型以问号(” ? “)开头,则提示用户确认终端类型。或者可以输入另一个类型来指定新类型。一旦确定了终端类型,就会检索终端。如果没有找到该类型的,则提示用户输入另一种终端类型。

一旦获取了条目,就会设置窗口大小、退格、中断和行终止字符(以及许多其他内容),并且将终端和制表符初始化字符串发送到标准错误输出。最后,如果擦除、中断和行终止字符已经更改,或者没有设置为默认值,那么它们的值将显示在标准错误输出中。

语法格式:tset [参数] [终端]

常用参数:

-w 调整窗口的大小,以匹配通过setupterm推导的大小
-c 控制字符和模式
-e<ch> 将擦除字符设置为ch
-i<ch> 将中断字符设置为ch
-I 不要发送终端或标签初始化字符串到终端
-k<ch> 将行删除字符设置为ch
-m<映射> 从一个端口类型到一个终端指定一个映射
-Q 为擦除、中断和行删除字符不显示任何值
-q 终端类型被显示到标准输出,并且所述终端是不以任何方式进行初始化
-r 输出终端类型到标准输出
-s 输出shell命令的序列来初始化环境变量TEERM到标准输出

参考实例

终端初始化:

[root@linuxcool ~]# tset

显示终端类型:

[root@linuxcool ~]# tset -q

将中断字符设置为ch:

[root@linuxcool ~]# tset -i ch
Interrupt set to c.


tty命令 打印输出连接到标准输入的终端文件名

 

tty是 Teletype(电传打字机)的缩写,电传打字机是最早出现的一种终端设备,现在通常使用 TTY 来统称各种类型的终端设备,如键盘 、打印机 、显示器等。

pty(虚拟终端): 如果我们远程telnet到主机或使用xterm时,也需要一个终端交互,这就是虚拟终端pty(pseudo-tty) 。

pts/ptmx(pts/ptmx结合使用,进而实现pty): pts(pseudo-terminal slave)是pty的实现方法,与ptmx(pseudo-terminal master)配合使用实现pty。

语法格式:tty [参数]

常用参数:

-s/--silent/--quiet 无打印输出结果,只是返回退出状态码
--help 打印输出tty命令的帮助信息并退出
--version 打印输出当前tty命令版本信息

参考实例

直接输入tty命令,打印输连接到当前标准输入的终端设备文件名:

[root@linuxcool ~]# tty
/dev/pts/1

输入”tty -s/--silent/--quiet”无直接返回结果,需要通过”echo $?”查看返回的退出码:

[root@linuxcool ~]# tty -s
[root@linuxcool ~]# echo $?
0

退出码的含义: “0” 表示标准输入是一个终端。 “1” 表示标准输入不是一个终端。” 2″ 表示给定的参数是不正确的参数。 “3” 表示发生了写错误。 


tune2fs命令 文件系统管理

 

tune2fs命令允许系统管理员调整“ext2/ext3/ext4”文件系统中的可该参数。Windows下面如果出现意外断电死机情况,下次开机一般都会出现系统自检。Linux系统下面也有文件系统自检,而且是可以通过tune2fs命令,自行定义自检周期及方式。

语法格式:tune2fs [参数]

常用参数:

-c 调整最大加载次数
-C 设置文件系统已经被加载的次数
-e 设置内核代码检测到错误时的行为
-f 强制执行修改,即使发生错误
-i 设置相邻两次文件系统检查的相隔时间
-j 为“ext2”文件系统添加日志功能,将其转换为“ext3”文件系统
-l 显示文件超级块内容
-L 设置文件系统卷标
-m 显示文件保留块的百分比
-M 设置文件系统最后被加载到的目录
-o 设置或清除文件系统加载的特性或选项
-O 设置或清除文件系统的特性或选项
-r 设置文件系统保留块的大小
-T 设置文件系统上次被检查的时间
-u 设置可以使用文件系统保留块的用户
-U 设置文件系统的UUID

参考实例

查看详细信息:

[root@linuxcool ~]# tune2fs -l /dev/sdb1

设置强制检查前文件系统可以挂载的次数:

[root@linuxcool ~]# tune2fs -c 30 /dev/sdb1

10天后检查:

[root@linuxcool ~]# tune2fs -i 10 /dev/sdb1

1天后检查:

[root@linuxcool ~]# tune2fs -i 1d /dev/sdb1

3周后检查:

[root@linuxcool ~]# tune2fs -i 3w /dev/sdb1

半年后检查:

[root@linuxcool ~]# tune2fs -i 6m /dev/sdb1

禁用时间检查:

[root@linuxcool ~]# tune2fs -i 0 /dev/sdb1 

添加日志功能,将ext2转换成ext3文件系统:

[root@linuxcool ~]# tune2fs -j /dev/sdb1

调整/dev/sdb1分区的保留空间为40000个磁盘块:

[root@linuxcool ~]# tune2fs -r 40000 /dev/sdb1

设置/dev/sdb1挂载选项,启用Posix Access Control Lists和用户指定的扩展属性:

[root@linuxcool ~]# tune2fs -o acl,user_xattr /dev/sdb1


type命令 显示指定命令的类型

 

type命令用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令。

语法格式:type [参数] [命令]

常用参数:

lias 别名
keyword 关键字,Shell保留字
function 函数,Shell函数
builtin 内建命令,Shell内建命令
file 文件,磁盘文件,外部命令
unfound 没有找到

参考实例

别名命令:

[root@linuxcool ~]# type ls
ls is aliased to `ls --color=auto'

内建命令:

[root@linuxcool ~]# type cd
cd is a shell builtin

关键字:

[root@linuxcool ~]# type if
if is a shell keyword


tzselect命令 查看设置时区

 

tzselect命令在调用时不需要任何参数,它显示了一个由十几个地理区域组成的列表,人们可以粗略地将其视为大陆。按编号选择一个地理区域后,会显示这个区域的国家和城市列表。

语法格式:tzselect [参数]

常用参数:

-c COORD 根据自定义数值设置时区
-n LIMIT 当使用-c时,显示大多数LIMIT位置(默认为10)

参考实例

按次序查看并设置时区:

[root@linuxcool ~]# tzselect

自定义设置时区:

[root@linuxcool ~]# tzselect -c -35-058

当使用-c时,显示LIMIT数量:

[root@linuxcool ~]# tzselect -c -35-058 -n 5


ufw命令 管理netfilter防火墙的程序

 

ufw程序用于管理Linux防火墙,旨在为用户提供易于使用的界面。

Linux原始的防火墙工具iptables由于过于繁琐,所以ubuntu系统默认提供了一个基于iptables之上的防火墙工具ufw。而UFW支持图形界面操作,只需在命令行运行ufw命令即能看到一系列的操作。

语法格式:ufw [参数]

常用参数:

enable 启动ufw
disable 关闭ufw
reload 重新加载ufw
logging on|off|LEVEL 日志 启动|关闭|级别
reset 重置配置
status 查看状态
show REPORT 显示“报告”

参考实例

设置开机启动ufw,启动ufw:

[root@linuxcool ~]# ufw enable

禁止开机启动,关闭ufw:

[root@linuxcool ~]# ufw disable

重启ufw防火墙:

[root@linuxcool ~]# ufw reload

显示防火墙状态及规则:

[root@linuxcool ~]# ufw status

重置ufw防火墙配置:

[root@linuxcool ~]# ufw reset

显示“报告”:

[root@linuxcool ~]# ufw show raw


ulimit命令 控制shell程序的资源

 

Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux用户的最大进程数,我们可以用ulimit来显示当前的各种用户进程限制。

ulimit为shell内建命令,可用来控制shell执行程序的资源。

语法格式:ulimit [参数]

常用参数:

-a 显示目前资源限制的设定
-d 程序数据节区的最大值,单位为KB
-t 指定CPU使用时间的上限,单位为秒
-u 用户最多可开启的程序数目
-v 指定可使用的虚拟内存上限,单位为KB

参考实例

显示系统资源的设置:

[root@linuxcool ~]# ulimit -a 

设置单一用户程序数目上限 :

[root@linuxcool ~]# ulimit -u 500

将每个进程可以打开的文件数目加大到4096 :

[root@linuxcool ~]# ulimit -n 4096 

指定可使用的虚拟内存上限为12800KB :

[root@linuxcool ~]# ulimit -v 12800 

指定CPU使用时间的上限为2s :

[root@linuxcool ~]# ulimit -t 2


unalias命令 取消命令别名

 

unalias命令用来取消命令别名,是为shell内建命令。如果需要取消任意一个命令别名,则使用该命令别名作为指令的参数选项即可。如果使用-a选项,则表示取消所有已经存在的命令别名。

语法格式:unalias [参数] [别名]

常用参数:

-a 取消所有命令别名

参考实例

先设置一个别名:

[root@linuxcool ~]# alias i='ls'
[root@linuxcool ~]# i
IGI  Leader  NetEase

使用unalias命令将已经设置的命令别名”i”取消:

[root@linuxcool ~]# unalias i

上面的命令执行后,系统会将指定的命令别名取消掉。如果再使用该命令别名时,系统将提示如下信息:

[root@linuxcool ~]# i
-bash: i: command not found


uname命令 显示系统信息

 

uname命令的英文全称即“Unix name”。

用于显示系统相关信息,比如主机名、内核版本号、硬件架构等。

如果未指定任何选项,其效果相当于执行”uname -s”命令,即显示系统内核的名字。

语法格式:uname [参数]

常用参数:

-a 显示系统所有相关信息
-m 显示计算机硬件架构
-n 显示主机名称
-r 显示内核发行版本号
-s 显示内核名称
-v 显示内核版本
-p 显示主机处理器类型
-o 显示操作系统名称
-i 显示硬件平台

参考实例

显示系统主机名、内核版本号、CPU类型等信息:

[root@linuxcool ~]# uname -a
Linux linuxcool 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux

仅显示系统主机名:

[root@linuxcool ~]# uname -n
linuxcool

显示当前系统的内核版本 :

[root@linuxcool ~]# uname -r
3.10.0-123.el7.x86_64

显示当前系统的硬件架构:

[root@linuxcool ~]# uname -i
x86_64


update-alternatives命令 维护系统命令链接符

 

update-alternatives是Debian系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令、哪个软件版本,比如系统中同时安装了open jdk和sun jdk两个版本,而我们又希望系统默认使用sun jdk,通过update-alternatives就可以方便实现管理。

语法格式:update-alternatives [参数] [命令]

常用参数:

--install 在系统中加入一组替换项
--remove <name> <path> 从名称替换组中去除路径项
--auto 将名称的主链接切换到自动模式
--list 列出名称替换组中所有可用替换项

参考实例:

将自己安装的JDK设置为默认的JDK版本:

[root@linuxcool ~]# update-alternatives --install /usr/bin/java java /usr/lib/jvm/java/bin/java 1070
[root@linuxcool ~]# update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java/bin/javac 1070
[root@linuxcool ~]# update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/java/bin/jar 1070
[root@linuxcool ~]# update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/java/bin/javah 1070
[root@linuxcool ~]# update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/java/bin/javap 1070

选择我们安装的JDK版本:

[root@linuxcool ~]# update-alternatives --config java

选择我们安装的JDK版本:

[root@linuxcool ~]# update-alternatives --config java

列出主要候选项名称以及它们的状态:

[root@linuxcool ~]# update-alternatives --get-selections


uptime命令 查看系统负载

 

Linux系统中的uptime命令主要用于获取主机运行时间和查询Linux系统负载等信息。

uptime命令可以显示系统已经运行了多长时间,信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登录用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。 uptime命令用法十分简单,直接输入uptime即可查看系统负载情况。

语法格式:uptime [参数]

常用参数:

-p 以漂亮的格式显示机器正常运行的时间
-s 系统自开始运行时间,格式为yyyy-mm-dd hh:mm:ss
-h 显示帮助信息

参考实例

显示当前系统运行负载情况:

[root@linuxcool ~]# uptime 
15:23:22 up 2 days,  5:13,  3 users,  load average: 0.12, 0.04, 0.05

使用-p参数显示机器正常运行的时间:

[root@linuxcool ~]# uptime -p
up 2 days, 5 hours, 15 minutes

使用-s参数显示机器启动时间:

[root@linuxcool ~]# uptime -s
2019-05-09 10:09:43


useradd命令 创建用户

 

useradd命令用来创建新的用户或更改用户的信息。

useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

语法格式:useradd [参数] [用户名]

常用参数:

-D 改变新建用户的预设值
-c 添加备注文字
-d 新用户每次登陆时所使用的家目录
-e 用户终止日期,日期的格式为YYYY-MM-DD
-f 用户过期几日后永久停权。当值为0时用户立即被停权,而值为-1时则关闭此功能,预设值为-1
-g 指定用户对应的用户组
-G 定义此用户为多个不同组的成员
-m 用户目录不存在时则自动创建
-M 不建立用户家目录,优先于/etc/login.defs文件设定
-n 取消建立以用户名称为名的群组
-r 建立系统帐号
-u 指定用户id

参考实例

添加新用户linuxcool:

[root@linuxcool ~]# useradd linuxcool

不创建家目录,并且禁止登陆:

[root@linuxcool ~]# useradd -M -s /sbin/nologin linuxcool

添加新用户linuxcool,指定UID为888,指定归属用户组为root,cool成员,其shell类型为/bin/sh:

[root@linuxcool ~]# useradd -u 888 -s /bin/sh -G root,cool linuxcool

添加新用户linuxcool,设置家目录为/tmp/linuxcool,用户过期时间为2019/05/01.过期后两天停权:

[root@linuxcool ~]# useradd -e "2019/05/01" -f 2 -d /tmp/linuxcool linuxcool


userconf命令 设置用户账号

 

userconf的命令全称是“user config”,该命令是用户账号设置程序。 userconf实际上为linuxconf的符号连接,提供图形界面的操作方式,供管理员建立与管理各类账号。若不加任何参数,即进入图形界面。

语法格式:userconf [参数]

常用参数:

--addgroup<群组> 新增群组
--adduser<用户ID><群组><用户名称><shell> 新增用户账户
--delgroup<群组> 删除群组
--deluser<用户ID> 删除用户账号
--help 显示帮助

参考实例

新增用户账号:

[root@linuxcool ~]# userconf --adduser 666 tt lord /bin/bash

新增群组:

[root@linuxcool ~]# userconf --addgroup linux

删除用户账号:

[root@linuxcool ~]# userconf --deluser 666

删除群组:

[root@linuxcool ~]# userconf --delgroup lord


usermod命令 修改用户账号

 

usermod命令用于修改用户账号 。usermod可用来修改用户账号的各项设定,修改系统账号文件来反映通过命令行指定的变化。

语法格式:usermod [参数]

常用参数:

-c<备注> 修改用户账号的备注文字
-d<登入目录> 修改用户登入时的目录
-e<有效期限> 修改账号的有效期限
-f<缓冲天数> 修改在密码过期后多少天即关闭该账号
-g<群组> 修改用户所属的群组
-G<群组> 修改用户所属的附加群组
-l<账号名称> 修改用户账号名称
-L 锁定用户密码,使密码无效
-s<shell> 修改用户登入后所使用的shell
-u<uid> 修改用户ID
-U 解除密码锁定

参考实例

更改登陆目录:

[root@linuxcool ~]# usermod -d /home/hnlinux root

改变用户的uid:

[root@linuxcool ~]# usermod -u 777 root

修改用户名为linux:

[root@linuxcool ~]# usermod -l Linux linuxcool

锁定linuxcool的密码:

[root@linuxcool ~]# usermod -L linuxcool

解锁linuxcool的密码:

[root@linuxcool ~]# usermod -U linuxcool


uustat命令 显示UUCP目前的状况

 

执行uucp与uux指令后,会先将工作送到队列,再由uucico来执行工作。uustat可显示,删除或启动队列中等待执行的工作。

语法格式:uustat [参数]

常用参数:

-a 显示全部的UUCP工作
-e 仅显示待执行的工作
-i 针对队列中的每项工作,询问使用是否要删除工作
-p 显示负责UUCP锁定的程序
-q 显示每台远端主机上所要执行工作的状态
-Q 不显示工作

参考实例

显示全部的UUCP工作:

[root@linuxcool ~]# uustat -a

仅显示待执行的工作:

[root@linuxcool ~]# uustat -e

针对队列中的每项工作,询问使用是否要删除工作:

[root@linuxcool ~]# uustat -i

显示负责UUCP锁定的程序:

[root@linuxcool ~]# uustat -p

显示每台远端主机上所要执行工作的状态:

[root@linuxcool ~]# uustat -q


vigr命令 修改group、gshadow文件

 

vigr命令可以修改group、gshadow文件,使用vigr命令可以编辑/etc/group文件。当寻找一个编辑器时将首先尝试环境变量$VISUAL,然后是环境变量$EDITOR,最后默认是vi编辑器。

语法格式:vigr [参数]

常用参数:

-g 修改组信息
-p 修改密码信息
-R 在CHROOT_DIR目录中应用更改并使用CHROOT_DIR目录中的配置文件
-s 编辑shadow 或 gshadow 信息

参考实例

修改组信息:

[root@linuxcool ~]# vigr -g 

修改密码信息:

[root@linuxcool ~]# vigr -p


vim-cmd命令 控制虚机状态

 

vim-cmd是esxi命令行,可在命令行下控制虚拟机的注册,启动等。vim-cmd是构建在host进程之上的命令空间,允许最终用户调用几乎所有的vSphere API。Vim-cmd提供了一些ESXi子命令管理不同的虚拟基础设施,而且和vimsh相比,更容易使用。

语法格式:vim-cmd [参数]

常用参数:

vmsvc 与虚机相关的状态
hostsvc 与host相关的状态

参考实例

查看有哪些虚机:

[root@linuxcool ~]# vim-cmd vmsvc/getallvms

查看虚机的状态:

[root@linuxcool ~]# vim-cmd vmsvc/power.getstate vmid

打开虚拟机:

[root@linuxcool ~]# vim-cmd vmsvc/power.on vmid

host进入维护模式:

[root@linuxcool ~]# vim-cmd hostsvc/maintenance_mode_enter

host退出维护模式:

[root@linuxcool ~]# vim-cmd hostsvc/maintenance_mode_exit


virsh命令 管理用户界面

 

virsh命令是管理virsh来宾域的主界面。该程序可用于创建、暂停和关闭域。它还可用于列出当前域。

Libvirt是一个与虚拟化交互的C工具包最新版本Linux(和其他操作系统)的功能。它是GNU下的免费软件执照。Linux操作系统的虚拟化意味着能够运行多个操作系统实例同时在一个硬件系统上,其中基本资源由一个Linux实例驱动。图书馆的目标是提供长期稳定的C API。它目前支持Xen、QEMU、KVM、LXC、OpenVZ、VirtualBox和VMware ESX。

语法格式:virsh [参数]

常用参数:

nodememstats 获取KVM管理程序(主机)内存信息
nodecpustats 获取KVM虚拟机监控程序CPU信息
list --all 获取来宾虚拟机的数量,与运行、保存、关闭等状态无关
net-list 获取可用于KVM管理程序的所有网络
dominfo 获取KVM客户机的硬件信息
shutdown 虚拟机名称 关闭虚拟机
start 虚拟机名称 启动虚拟机
reboot 虚拟机名称 重启虚拟机
destroy 强行关闭或毁坏机器

参考实例

获取KVM管理程序(主机)内存信息:

[root@linuxcool ~]# virsh nodememstats

获取KVM虚拟机监控程序CPU信息:

[root@linuxcool ~]# virsh nodecpustats

获取来宾虚拟机的数量,与运行、保存、关闭等状态无关:

[root@linuxcool ~]# virsh list --all

获取可用于KVM管理程序的所有网络:

[root@linuxcool ~]# virsh net-list


vlock命令 锁住虚拟终端

 

vlock命令的英文全称为“virtual console lock”,该命令可锁住虚拟终端,避免他人使用。

语法格式:vlock [参数]

常用参数:

-a 锁住所有的终端阶段作业,如果您在全屏幕的终端中使用本参数,则会将用键盘切换终端机的功能一并关闭
-c 锁住目前的终端阶段作业,此为预设值
-v 显示版本信息

参考实例

锁定虚拟终端:

[root@linuxcool ~]# vlock 


vmstat命令 显示虚拟内存状态

 

vmstat命令的含义为显示虚拟内存状态(“Virtual Memory Statistics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。

语法格式:vmstat [参数]

常用参数:

-a 显示活动内页
-f 显示启动后创建的进程总数
-m 显示slab信息
-n 头信息仅显示一次
-s 以表格方式显示事件计数器和内存状态
-d 报告磁盘状态
-p 显示指定的硬盘分区状态
-S 输出信息的单位

参考实例

显示活动内页:

[root@linuxcool ~]# vmstat -a

显示启动后创建的进程总数:

[root@linuxcool ~]# vmstat -f

显示slab信息:

[root@linuxcool ~]# vmstat -m

头信息仅显示一次:

[root@linuxcool ~]# vmstat -n

以表格方式显示事件计数器和内存状态:

[root@linuxcool ~]# vmstat -s

显示指定的硬盘分区状态:

[root@linuxcool ~]# vmstat -p /dev/sda1

指定状态信息刷新的时间间隔为1秒:

[root@linuxcool ~]# vmstat 1


vnstat命令 网络流量监控器

 

vnstat是一个基于控制台的网络流量监控器。它保存了所选接口的每小时、每天和每月的网络流量日志。然而,它并不是一个数据包嗅探器,而是从proc(5)或sys文件系统中读取流量信息。流量信息是从proc(5)或sys文件系统中读取的,具体取决于是否可用。这样一来,即使没有root权限也可以在大多数系统上使用vnstat。

语法格式:vnstat [参数]

常用参数:

-q 查询数据
-i 选择网卡 (默认: eth0)
-l 显示实时流量
-m 按月份
-d 按天
-u 更新数据库

参考实例

查询eth1网卡流量:

[root@linuxcool ~]# vnstat -u -i eth1

查看当前实时流量:

[root@linuxcool ~]# vnstat -l

查看当天流量:

[root@linuxcool ~]# vnstat -d

查看当月流量:

[root@linuxcool ~]# vnstat -m


watch命令 周期性执行命令

 

watch命令以周期性的方式执行给定的指令,指令输出以全屏方式显示。watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。

语法格式:watch [参数] [命令]

常用参数:

-n/--interval watch默认每2秒运行一下程序,可以用-n或-interval来指定间隔的时间
-d/--differences 用-d或--differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来
-t/--no-title 关闭watch命令在顶部的时间间隔、命令、当前时间的输出
-h/--help 查看帮助文档

参考实例

重复执行uptime命令:

[root@linuxcool ~]# watch uptime

每隔一秒高亮显示网络链接数的变化情况:

[root@linuxcool ~]# watch -n 1 -d netstat -ant

每10秒一次输出系统的平均负载:

[root@linuxcool ~]# watch -n 10 'cat /proc/loadavg'

监测磁盘inode和block数目变化情况:

[root@linuxcool ~]# watch -n 1 "df -i;df"

监测当前目录中test.txt文件的变化:

[root@linuxcool ~]# watch -d 'ls -l|grep test.txt'


whoami命令 打印当前登录用户

 

whoami命令是打印与当前有效用户ID关联的用户名;这个工具可以用来获取本地系统上当前用户(访问令牌)的用户名和组信息,以及相应的安全标识符(SID)、声明、本地系统上当前用户的权限、登录标识符(登录 ID)。

whoami命令显示自身的用户名称,本指令相当于执行”id -un”指令。

语法格式:whoami [参数]

常用参数

--help 在线帮助
--version 显示版本信息

参考实例

查询当前登录的用户名:

[root@linuxcool ~]# whoami 
root


who命令 打印当前登录用户

 

who命令用来打印当前登录用户信息,包含了系统的启动时间 、 活动进程 、 使用者 ID、使用终端等信息,是系统管理员了解系统运行状态的常用命令。

who命令的输出信息默认来自文件“/var/log/utmp”和“/var/log/wtmp”。

语法格式: who [参数] [选项]

常用参数:

-a 打印全面信息
-b 打印系统最近启动时间
-d 打印死掉的进程
-l 打印系统登录进程
-H 带有列标题打印用户名,登录终端和登录时间
-t 打印系统上次锁定时间
-u 打印已登录用户列表

参考实例

打印用户登录信息(-H 带有列标题打印):

[root@linuxcool ~]# who -H
名称 线路 时间 备注
root pts/0 2019-04-10 12:31 (192.168.12.34)

打印全部信息:

[root@linuxcool ~]# who -H -a
名称 线路 时间 空闲 进程号 备注 退出
系统引导 2019-04-03 15:01
运行级别 3 2019-04-03 15:02
登录 tty1 2019-04-03 15:02 852 id=tty1
2019-04-03 15:31 1022 id=102
终端=0 退出=0
root + pts/0 2019-04-10 12:27 . 2789 (192.168.12.34)

打印系统最近启动时间 :

[root@linuxcool ~]# who -b
系统引导 2019-04-03 15:01

打印系统登录进程:

[root@linuxcool ~]# who -l
登录 tty1 2019-04-03 15:02 852 id=tty1


w命令 显示已登录用户

 

w命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。

语法格式:w [参数]

常用参数:

-h/--no-header 不打印头信息
-u/--no-current 当显示当前进程和cpu时间时忽略用户名
-s/--short 使用短输出格式
-f/--from 显示用户从哪登录
-o/--old-style 老式输出
-i/--ip-addr 显示IP地址而不是主机名(如果可能)
--help 显示此帮助并退出
-V/--version 显示版本信息

参考实例

显示目前登入系统的用户信息:

[root@linuxcool ~]# w

不打印头信息:

[root@linuxcool ~]# w -h

显示用户从哪登录:

[root@linuxcool ~]# w -f

使用短输出格式:

[root@linuxcool ~]# w -s
  


xauth命令 修改x服务器访问授权

 

xauth命令用于显示和编辑被用于连接X服务器的认证信息。

语法格式:xauth [参数]

常用参数:

-f 不使用默认的认证文件,而使用指定的认证文件
-q 安静模式,不打印未请求的状态信息
-v 详细模式,打印指定的各种操作信息
-i 忽略认证文件锁定
-b 执行任何操作,中断认证文件锁定
add 添加认证条目到认证文件中
extract 将指定的设备内容加入到指定的密码文件中
info 显示授权文件相关信息
exit 退出交互模式
list 列出给定的显示设备的内容
merge 合并多个授权文件内容
extract 将指定设备内容写入指定的授权文件
nextrct 将指定设备内容写入指定的授权文件
nmerge 合并多个授权文件内容
remove 删除指定显示设备的授权条目
source 从指定文件读取包含xauth的内容指令

参考实例

显示授权文件信息:

[root@linuxcool ~]# xauth info

显示所有授权条目:

[root@linuxcool ~]# xauth list

进入交互模式:

[root@linuxcool ~]# xauth


XF86Setup命令 设置XFee86

 

这是Linux系统用来设置XFee86的程序,它会进入图形模式,通过互动操作界面,让用户轻松完成XFee86环境的设置。

XF86Setup命令就是通过对XFee86的配置,从而改变显示画面的效果。

XF86Setup是在图形界面下运行的设置程序,它运行在图形界面下,如果系统没有启动 X Window系统,那么它会自动启动一个标准VGA模式的X服务器。XF86Setup首先使用缺省设置启动这个16色、640×480分辨率的X服务器,然后再运行XF86Setup设置程序本身。

语法格式:XF86Setup [参数]

常用参数:

display 指定显示XF86Setup设置画面的主机名称以及欲在该主机上的哪个显示器显示画面
nodialog 执行XF86Setup时,不显示交谈窗,直接以文字模式提出询问
sync 和X Server进行数据同步传输

参考实例

指定显示XF86Setup设置画面的主机名称以及欲在该主机上的哪个显示器显示画面:

[root@linuxcool ~]# XF86Setup display test1:001

执行XF86Setup时,不显示交谈窗,直接以文字模式提出询问:

[root@linuxcool ~]# XF86Setup nodialog

执行XF86Setup时,和X Server进行数据同步传输:

[root@linuxcool ~]# XF86Setup sync


xhost命令 X服务器访问控制工具

 

xhost命令是X服务器的访问控制工具,用来控制哪些X客户端能够在X服务器上显示。

运行xhost命令时要求启动本地X-window的图形界面后,在图形界面下的命令行中输入。

语法格式:xhost [参数]

常用参数:

+ 关闭访问授权,允许任何主机访问本地X服务器
-- 打开访问授权,仅允许授权清单中的主机访问本地X服务器
+<主机或ip> 允许指定的主机访问本地X服务器
-<主机或ip> 禁止指定的主机访问本地X服务器

参考实例

显示当前X服务器的授权配置:

[root@linuxcool ~]# xhost

添加授权ip访问x服务器:

[root@linuxcool ~]# xhost + 192.168.80.80


xinit命令 X服务器初始化程序

 

xinit命令是Linux下X-Window系统的初始化程序,主要完成X服务器的初始化设置。

语法格式:xinit [参数]

常用参数:

客户端选项 客户端指令及选项
用于区分客户端选项和服务器端选项
服务器端选项 服务器端选项指令及选项

参考实例

以普通用户启动 X:

[root@linuxcool ~]# xinit -- :1

传递参数会话:

[root@linuxcool ~]# xinit session 


xsetroot命令 根窗口参数设置实用程序

 

xsetroot命令允许您在运行X的工作站显示器上定制背景(根)窗口的外观。通常,您可以尝试使用xsetroot命令直到找到所需的个性化外观,然后将产生该外观的xsetroot命令放入您的X启动文件。如果未指定任何选项,或者如果指定了-def标志,则将窗口重置为其默认状态。可以将-def标志与其他标志一起指定,并且只有未指定的特征才被重置为默认状态。

语法格式:xsetroot [参数]

常用参数:

-gray 将整个背景设为灰色
-def 将未指定的属性重置为默认值
-bg <color> 使用颜色作为背景色
-solid <color> 这会将根窗口的背景设置为指定的颜色

参考实例

将整个背景设为灰色:

[root@linuxcool ~]# xsetroot -gray

将未指定的属性重置为默认值:

[root@linuxcool ~]# xsetroot -def

使用-bg设置自定义背景色:

[root@linuxcool ~]# xsetroot -bg red


xset命令 X-Window系统的用户爱好设置

 

xset命令是设置X-Window系统中的用户爱好的实用工具。 xset是上层应用程序,主要用于在X-Window启动之后,对X-Window进行一些设置。

运行xset命令时要求启动本地X-Windows的图形界面后,在图形界面下的命令行中输入,否则将出现错误提示。

语法格式: xset [参数]

常用参数:

-b 蜂鸣器开关设置
-c 键盘按键声响设置
b 蜂鸣器开关设置
c 键盘按键声响设置
s 屏幕保护程序设置
q 显示相关信息
-fp或fp- 从当前字体路径中删除元素
+fp或fp+ 前置和附加元素到当前字体路径
dpms<标记> 允许DPMS(能源之星)的参数进行设置
bc 在服务器中控制bug兼容模式
-display<显示器> 指定使用的服务器
-dpms 禁用DPMS(能源之星)功能
+dpms 启用DPMS(能源之星)功能
fp=<路径> 设置字体路径到指定路径

参考实例

显示当前的xset相关信息:

[root@linuxcool ~]# xset q

开启蜂鸣器和键盘按键声:

[root@linuxcool ~]# xset b on c on

启用DPMS(能源之星)功能:

[root@linuxcool ~]# xset -display :0 +dpms


yes命令 重复打印字符串

 

yes命令的作用是中输出指定的字符串,直到yes进程被杀死。不带任何参数输的yes命令默认的字符串就是y。 终止yes命令可以使用组合键ctrl+c

yes命令通常在脚本中使用,在脚本中可以对对命令和程序的确认提示和问题进行管道输出并回答提问(例如:你确认要删除这个文件吗,按’y’ or ‘n’)。

语法格式: yes [字符串]

-- -help 显示帮助信息
-- -version 显示命令版本信息

参考实例

重复打印一段字符:

[root@linuxcool ~]# yes linuxcool
linuxcool
linuxcool
linuxcool
linuxcool
linuxcool
linuxcool
linuxcool
linuxcool
...
^C //使用ctrl+c强制停止


yum-builddep命令 安装缺少的用于生成RPM包的依赖项

 

yum-builddep命令可以安装建立指定的包所需要的RPM包,源RPM指定的软件包必须提供一个yum软件库(如果它被禁用,将被自动启用)或它可以是一个本地源RPM文件。

语法格式 :yum-builddep [参数] [软件包1] [软件包2]

常用参数:

-C 从系统缓存中完全运行,不更新缓存
-c <配置文件> 配置文件的位置
-v 详细操作
-q 安静模式
-y 对所有问题回答yes

参考实例

下载并安装所有生成kernel的RPM所需的RPM包:

[root@linuxcool ~]# yum-builddep kernel

使用-v参数显示详细的信息:

[root@linuxcool ~]# yum-builddep -v net-tools

使用-y参数一步到位:

[root@linuxcool ~]# yum-builddep -y net-tools


yum-complete-transaction 命令 尝试完成系统上不完整或中止的yum事务进程

 

yum-complete-transaction命令的作用是在系统上查找不完整或中止的yum事务进程并尝试完成它们。yum-complete-transaction命令需要通过安装相应的软件包才能运行。

如果发现多个未完成的事务,yum-complete-transaction命令将尝试首先完成最近的事务。可以通过多次运行yum-complete-transaction命令以清理所有未完成的事务。

由于yum-complete-transaction命令使用YUM仓库来检索所有信息,因此它依赖于YUM仓库配置的默认值。

语法格式:yum-complete-transaction [参数]

常用参数:

-t 宽容错误
-- -setopt=<设置选项> 设置任意配置和软件仓库选项
-- -cleanup-only 清理事物日志
-C 从系统缓存中完全运行,不更新缓存
-c<配置文件> 指定配置文件的位置
-R<等待时间> 最大命令等待时间,单位是分钟
-d<调试级别> 调试输出级别
-e<错误级别> 错误输出级别
-- -nogpgcheck 禁用GPG签名检查
-- -color=<颜色> 控制使用颜色
-- -releasever=<值> 在yum配置和软件仓库文件中设置$releasever值
-- -noplugins 禁用yum插件
-- -enableplugin=<插件> 按名称启用插件
-- -disableplugin=<插件> 按名称禁用插件
-q 安静模式
-v 详细操作
-y 对所有问题回答yes
-- -showduplicates 在软件仓库,在列表和搜索命令中显示重复的
-- -rpmverbosity=<调试级别名> 为rpm指定调试输出级别
-- -disablepresto 禁用Presto插件,不下载任何deltarpm
-- -version 显示yum版本然后退出
-- -enablerepo=<软件仓库> 启用一个或多个仓库
-- -disablerepo=<软件仓库> 禁用一个或多个软件仓库
-- -installroot=<路径> 设置安装根路径
-x<软件包> 按名称或排除软件包
-- -obsoletes 在更新过程中启用废弃处理

参考实例

尝试完成系统上不完整或中止的yum进程:

[root@linuxcool ~]# yum-complete-transaction –cleanup-only

显示详细的操作过程:

[root@linuxcool ~]# yum-complete-transaction -v

完全在缓存中运行该命令:

[root@linuxcool ~]# yum-complete-transaction -C


yum-config-manager命令 管理yum配置选项和存储库

 

yum-config-manager是一个程序,它可以管理主要的yum配置选项,切换启用或禁用的存储库,以及添加新的存储库。

语法格式:yum-config-manager [参数]

常用参数:

-e<错误级别> 错误输出级别
-d<调试级别> 调试输出级别
-c<配置文件> 指定配置文件的位置
-t 错误宽容
--enable 启用软件仓库
--disable 禁用软件仓库
--add-repo=<软件仓库> 从指定文件或URL添加(和启用)软件仓库

参考实例

显示main和repos foo和bar的配置:

[root@linuxcool ~]# yum-config-manager main foo bar

使用--add-repo快速添加yum源:

[root@linuxcool ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/repo/Centos-7.repo

使用--enable显示启用的软件仓库:

[root@linuxcool ~]# yum-config-manager --enable


yumdb命令 查询和修改yum数据库

 

yumdb命令的作用是查询和更改yum数据库,yum数据库是与rpm数据库结合使用的。任何已安装的包都可以在yum数据库中拥有相应数据,但是yum数据库主要还是在安装软件包时存储有关软件包相关的额外数据。

语法格式: yumdb[参数] [软件包]

常用参数:

get 获得给定的键值,限制了任何指定的包
rename 重命名指定的旧键,给定新的键
set 为给定的键设置值
del 删除指定键,并限制到任何指定的包
search 为指定键搜索所有的包,反对任何指定的通配符值
sync 从软件仓库中添加任何丢失的数据到yumdb
sync-force 将从存储库替换yumdb任何数据,限制于任何特定的软件包
exist 将打印具有指定键的软件包,限制到任何指定的程序包
unset 将打印不具有指定键的软件包,限制到任何指定的软件包
info 将显示所有存储在yumdb中的数据
rename-force 强制重命名指定的旧键,给定新的键
copy 将复制给定的旧键为新的键
copy-force 强制复制给定的旧键为新的键

参考实例

显示指定软件包所有存储在yumdb中的数据:

[root@linuxcool ~]# yumdb info bind

列出所有作为依赖项安装的包:

[root@linuxcool ~]# yumdb search reason dep

与软件仓库进行同步操作:

[root@linuxcool ~]# yumdb sync


yum-debug-restore命令 重播在调试转储文件中捕获的yum事务

 

yum debug restore是一个程序,它接受由yum debug dump创建的gzip文件,并对其中包含的已安装包的信息执行操作。

语法格式:yum debug restore [参数]

常用参数:

-C 只从缓存中运行
-c<配置文件> 指定配置文件的位置
--output 输出yum shell命令
shell=<文件> 输出yum shell命令到一个文件
install-latest 安装最新的版本而不是指定版本

参考实例

借助yum-debug-dump创建的gzip压缩文件来进行还原:

[root@linuxcool ~]# yum-debug-dump yum_debug_dump-linuxcool-2020-04-24_22:07:40.txt.gz

使用-C参数从缓存中运行:

[root@linuxcool ~]# yum-debug-dump -C linuxcool.gz

使用install-latest参数获取最新版本的:

[root@linuxcool ~]# yum-debug-dump install-latest net-tools


yumdownloader命令 从yum存储库下载rpm包

 

yumdownloader是一个用于从yum存储库下载rpm的程序。

yumdownloader是一款简单,但是却十分有用的命令行工具,它可以一次性下载任何 rpm 软件包及其所有依赖包。

语法格式:yumdownloader [参数]

常用参数:

--destdir 指定下载的目标目录,默认为当前目录
--resolve 解决依赖关系并下载所需的包
--source 不是下载二进制RPM,而是下载源RPM

参考实例

使用本地源离线安装net-tools工具包:

[root@linuxcool ~]# yumdownloader net-tools.x86_64

使用--destdir参数设置下载的目标目录:

[root@linuxcool ~]# yumdownloader net-tools.x86_64 --destdir=/usr/local/bin/

使用--resolve参数解决依赖关系并下载所需的安装包:

[root@linuxcool ~]# yumdownloader net-tools.x86_64 --resolve --destdir=/usr/local/bin/


yum-groups-manager命令 创建和编辑yum的组元数据

 

yum groups manager用于创建或编辑yum存储库的组元数据文件;这通常比书面形式要容易得多手工编辑XML。

语法格式:yum-groups-manager [参数]

常用参数:

--dependencies 为软件包添加依赖
--load 从文件中加载组的云数据
--save 保存组元数据到文件
--remove 删除列出来的软件包
--merge 加载和保存组元数据到文件

参考实例

创建组元数据文件,名称以yum开头:

[root@linuxcool ~]# yum-groups-manager --name YUM --save groups.xml'yum*'

向yum组添加描述和翻译后的名称:

[root@linuxcool ~]# yum-groups-manager -n YUM --merge groups.xml --description 'This is a group with most of the yum packages in it' --translated-name 'en:yum packages'

加载groups.xml数据,使用yum组,设置该组不可见,并从中删除yum skip broken和yum priorities包:

[root@linuxcool ~]# yum-groups-manager -n YUM --merge groups.xml --remove yum-skip-broken yum-priorities --not-user-visible


zenity命令 显示图形框

 

zenity是一个程序,它将显示图形框,并返回(在返回代码中,或在标准输出中)用户的输入。这允许您从各种shell脚本中呈现信息,并向用户索取信息。

语法格式:zenity [参数]

常用参数:

--calendar 快速日历对话框
--error 错误对话框
--entry 一般文本输入对话框
--info 信息对话框
--question 问题对话框
--progress 进度栏
--scale 缩放对话框
--password 密码对话框
--forms 窗体对话框
--about 关于对话

参考实例

使用zenity命令显示快速日历对话框:

[root@linuxcool ~]# zenity --calendar

弹框显示进度栏:

[root@linuxcool ~]# zenity --progress

显示密码框:

[root@linuxcool ~]# zenity --password


journalctl命令 检索systemd日志

 

Systemd统一管理所有 Unit 的启动日志。带来的好处就是可以只用journalctl一个命令,查看所有日志(内核日志和 应用日志)。

语法格式: journalctl [参数]

常用参数:

-k 查看内核日志
-b 查看系统本次启动的日志
-u 查看指定服务的日志
-n 指定日志条数
-f 追踪日志
--disk-usage 查看当前日志占用磁盘的空间的总大小

参考实例

查看所有日志:

[root@linuxcool ~]# journalctl 

查看内核日志:

[root@linuxcool ~]# journalctl -k 

查看系统本次启动的日志:

[root@linuxcool ~]# journalctl -b 

查看httpd的日志:

[root@linuxcool ~]# journalctl -u httpd

查看最近发生的20条日志:

[root@linuxcool ~]# journalctl -n 20

追踪日志:

[root@linuxcool ~]# journalctl -f

 

 

 

 

4:磁盘管理

 

 

 

arpd命令 收集arp信息

 arpd命令是用来收集免费arp信息的一个守护进程,它将收集到的信息保存在磁盘上或者在需要时,提供给内核用户用于避免多余广播。

语法格式:arpd [参数]

参考实例

-l 将arp数据库输出到标准输出设备显示并退出
-f 指定读取和加载arpd数据库的文本文件,文件的格式与“-l”输出信息类似
-b 指定arpd数据库文件,默认的位置为“/var/lib/arpd.db
-a 指定目标被认为死掉前查询的次数
-k 禁止通过内核发送广播查询
-n 设定缓冲失效时间

常用参数:

启动arpd进程:

[root@linuxcool ~]# arpd -b /var/tmp/arpd.db 

一段时间后看结果:

[root@linuxcool ~]# killall arpd ; arpd -l -b /var/tmp/arpd.db 

启用内核帮助程序,将主要角色留给内核:

[root@linuxcool ~]# arpd -b /var/tmp/arpd.db -a 1 eth0 eth1 

完全替换接口eth0和eth1上的内核决议。 在这种情况下,内核仍会进行单播探测以验证条目,但所有广播活动都被抑制并在arpd的授权下进行:

[root@linuxcool ~]# arpd -b /var/tmp/arpd.db -a 3 -k eth0 eth1 

禁止内核发送广播查询 :

[root@linuxcool ~]# arpd -k


badblocks命令 检查磁盘装置中损坏的区块

 badblocks就是一个检查磁盘装置中损坏区块的命令,执行该命令时只须指定所要检查的磁盘装置,及此装置的磁盘区块数。

语法格式:badblocks [参数]

常用参数:

-b 指定磁盘的区块大小,单位为字节
-o 将检查的结果写入指定的输出文件
-s 在检查时显示进度
-v 执行时显示详细的信息
-w 在检查时,执行写入测试

参考实例

通过命令扫描硬盘:

[root@linuxcool ~]# badblocks -s -v /dev/sdnx

其中n表示硬盘设备名,x表示硬盘对应的分区号,例如需要检查”/dev/sda2″:

[root@linuxcool ~]# badblocks -s -v /dev/sda2
 
Checking blocks 0 to 30681000 
Checking for bad blocks (read-only test): 306809600674112/ 306810000000 30680964
30680965
30680966
30680967
30680968
30680969
30680970
30680971
30680972
30680973 
...
done Pass completed, 37 bad blocks found.其中,“37 bad blocks found”表示硬盘存在37个坏块。

以4096字节为一个“block”,每一个“block”检查1次, 将结果输出到“hda-badblocks-list.1”文件中,由第51000 block开始,到63000 block结束:

[root@linuxcool ~]# badblocks -b 4096 -c 1 /dev/hda1 -o hda-badblocks-list.1 63000 51000

扫描硬盘的损坏扇区或区块并写入到临时文件夹下的bad-blocks.txt文件中:

[root@linuxcool ~]# badblocks -v -o /dev/sdb > /tmp/bad-blocks.txt

如果找到了坏道,可以进行写入扫描进行修复。写入扫描遇到坏道的时候会自动重映射。写入扫描会覆盖原有数据,所以请先备份。写入扫描速度很低,所以应该只扫描只读扫描时候发现错误的部分:

[root@linuxcool ~]# badblocks -w -s /dev/sdb END START

将END和START换成结束和开始的块的编号就可以了。


blktrace命令 分析磁盘IO

 

在Linux系统上,查看磁盘的负载情况,咱们一般使用iostat监控工具。其中很重要的参数就是await,await表示单个I/O所需的平均时间,但它同时包含了I/O Scheduler所消耗的时间和硬件所消耗的时间,所以不能作为硬件性能的指标。那如何才能分辨一个io从下发到返回整个时间上,是硬件层耗时多还是在io调度上耗时多呢?如何查看io在各个时间段所消耗的时间呢?那么,blktrace在这种场合就能派上用场,因为它能记录I/O所经历的各个步骤,从中可以分析是IO Scheduler慢还是硬件响应慢,以及各个时间段所用时间。

blktrace的原理:

一个I/O请求进入block layer之后,可能会经历下面的过程:

  • Remap: 可能被DM(Device Mapper)或MD(Multiple Device, Software RAID) remap到其它设备
  • Split: 可能会因为I/O请求与扇区边界未对齐、或者size太大而被分拆(split)成多个物理I/O
  • Merge: 可能会因为与其它I/O请求的物理位置相邻而合并(merge)成一个I/O
  • 被IO Scheduler依照调度策略发送给driver
  • 被driver提交给硬件,经过HBA、电缆(光纤、网线等)、交换机(SAN或网络)、最后到达存储设备,设备完成IO请求之后再把结果发回。

语法格式:blktrace [参数]

常用参数:

-A hex-mask 设置过滤信息mask成十六进制mask
-a mask 添加mask到当前的过滤器
-b size 指定缓存大小for提取的结果,默认为512KB
-d dev 添加一个设备追踪
-k 杀掉正在运行的追踪
-n num-sub 指定缓冲池大小,默认为4个子缓冲区
-o file 指定输出文件的名字
-r rel-path 指定的debugfs挂载点
-w seconds 设置运行的时间

参考实例

centos7安装blktrace(会自动生成blktrace blkparse btt 3个工具,其中,blktrace收集数据,blkparce分析数据,btt汇总数据):

[root@linuxcool ~]# yum install blktrace -y

使用blktrace需要挂载debugfs:

[root@linuxcool ~]# mount -t debugfs debugfs /sys/kernel/debug

利用blktrace查看实时数据的方法,比如要看的硬盘是sdb:

[root@linuxcool ~]# blktrace -d /dev/sdb -o – | blkparse -i –

分析磁盘/dev/sdc的IO情况:

[root@linuxcool ~]# blktrace -d /dev/sdc

生成数据: 应用结束后,手动终止监控,会生成cpu数量的文件

[root@linuxcool ~]# blkparse -i sdc -d sdc.blktrace.bin


cfdisk命令 用于磁盘分区

 

cfdisk是用来磁盘分区的程序,它十分类似DOS的fdisk,具有互动式操作界面而非传统fdisk的问答式界面,您可以轻易地利用方向键来操控分区操作。cfdisk指令是一个基于鼠标的、用于硬盘分区的程序。输入指令cfdisk之后,将出现上面的图形界面,它是基于鼠标进行操作的,利用它可以进行磁盘的分区操作。

语法格式:cfdisk [参数]

常用参数:

-a 在程序里不用反白代表选取,而以箭头表示
-c 忽略BIOS的数值,直接指定磁盘的柱面数目
-P 显示分区表的内容
-s 忽略BIOS的数值,直接指定磁盘的磁区数目
-v 显示版本信息
-z 不读取现有的分区,直接当作没有分区的新磁盘使用

参考实例

进行磁盘分区:

[root@linuxcool ~]# cfsik 

进行磁盘分区,使用箭头进行操作,而不使用反白表示:

[root@linuxcool ~]# cfsik -a


convertquota命令 替换旧的磁盘额数据文件

 

convertquota命令用于将老的磁盘额数据文件(“quota.user”和“quota.group”)转换为新格式的文件(“quota.user”和“quota.group”)。

语法格式:convertquota [参数]

常用参数:

-u 仅转换用户磁盘配额数据文件
-g 仅转换组磁盘配额数据文件
-f 将老的磁盘配额文件转换为新的格式
-e 将新的文件格式从大字节序换为小字节序

参考实例

使用convertquota指令转换指定文件系统/data的磁盘配额数据文件:

[root@linuxcool ~]# convertquota -u /data


df命令 显示磁盘空间使用情况

 

df命令的英文全称即“Disk Free”,顾名思义功能是用于显示系统上可使用的磁盘空间。默认显示单位为KB,建议使用“df -h”的参数组合,根据磁盘容量自动变换合适的单位,更利于阅读。

日常普遍用该命令可以查看磁盘被占用了多少空间、还剩多少空间等信息。

语法格式: df [参数] [指定文件]

常用参数:

-a 显示所有系统文件
-B <块大小> 指定显示时的块大小
-h 以容易阅读的方式显示
-H 以1000字节为换算单位来显示
-i 显示索引字节信息
-k 指定块大小为1KB
-l 只显示本地文件系统
-t <文件系统类型> 只显示指定类型的文件系统
-T 输出时显示文件系统类型
-- -sync 在取得磁盘使用信息前,先执行sync命令

参考实例

显示磁盘分区使用情况:

[root@linuxcool ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 1980612 0 1980612 0% /dev
tmpfs 1994756 0 1994756 0% /dev/shm
tmpfs 1994756 1040 1993716 1% /run
tmpfs 1994756 0 1994756 0% /sys/fs/cgroup
/dev/mapper/fedora_linuxhell-root 15718400 2040836 13677564 13% /
tmpfs 1994756 4 1994752 1% /tmp
/dev/sda1 999320 128264 802244 14% /boot
tmpfs 398948 0 398948 0% /run/user/0

以容易阅读的方式显示磁盘分区使用情况:

[root@linuxcool ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 1.1M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mapper/fedora_linuxhell-root 15G 2.0G 14G 13% /
tmpfs 2.0G 4.0K 2.0G 1% /tmp
/dev/sda1 976M 126M 784M 14% /boot
tmpfs 390M 0 390M 0% /run/user/0

显示指定文件所在分区的磁盘使用情况:

[root@linuxcool ~]# df /etc/dhcp
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/fedora_linuxcool-root 15718400 2040836 13677564 13% /

显示文件类型为ext4的磁盘使用情况:

[root@linuxcool ~]# df -t ext4
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda1 999320 128264 802244 14% /boot


dmsetup命令 显示当前的device mapper的信息

 

dmsetup是一个更加底层的逻辑卷管理工具。平时我们管理linux 上的逻辑卷,使用lvm相关的工具即可。lvs是更高级的管理逻辑卷的命令。但是,有时候会出现类似lvm删除不掉的lvm分区。我们可以使用dmsetup去删除。

语法格式:dmsetup [参数]

常用参数:

info 提供有关 Device Mapper 设备概述
ls 列出映射的设备的设备名称列表
status 提供指定设备中每个目标的状态信息
deps 指定设备的映射列表参考的设备提供(major,minor)对列表

参考实例

使用dmsetup 查看lv卷:

[root@linuxcool ~]# dmsetup ls

使用dmsetup 删除lv卷:

[root@linuxcool ~]# dmsetup remove vg--test-vg--lv

输出设备概述:

[root@linuxcool ~]# dmsetup info


e2fsck命令 检查使用 Linux ext2档案系统的partition是否正常工作

 

e2fsck命令用于检查使用 Linux ext2 档案系统的 partition 是否正常工作。 e2fsck命令可以检查ext2、ext3、ext4文件系统,如果系统已经挂载了,那么不建议去检查,因为这样是不安全的。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

语法格式: e2fsck [参数]

常用参数:

device 预备检查的硬盘 partition,例如:/dev/sda1
-b 设定存放 superblock 的位置
-B 设定单位 block 的大小
-c 检查该partition 是否有坏轨
-C file  将检查的结果存到 file 中以便查看
-d 列印 e2fsck 的 debug 结果
-f 强制检查
-F 在开始检查前,将device 的 buffer cache 清空,避免有错误发生
-l bad_blocks_file 将有坏轨的block资料加到 bad_blocks_file 里面
-L bad_blocks_file 设定坏轨的block资料存到 bad_blocks_file 里面,若无该档则自动产生
-n 将档案系统以[唯读]方式开启
-p 对 partition 做检查,若有问题便自动修复
-v  详细显示模式
-V 显示出目前 e2fsck 的版本
-y 预先设定所有检查时的问题均回答[是]

参考实例

检查 /dev/hda5 是否正常,如果有异常便自动修复,并且设定若有问答,均回答[是]:

[root@linuxcool ~]# e2fsck -a -y /dev/hda5 


edquota命令 编辑用户或群组的磁盘配额

 

edquota预设会使用vi来编辑使用者或群组的磁盘配额设置

语法格式:edquota [参数] [用户或群组名称…]

常用参数:

-u 设置用户的磁盘配额,这是预设的参
-g  设置群组的磁盘配额
-p 将源用户的磁盘配额设置套用至其他用户或群组
-t 设置宽限期限

参考实例

假设linuxcool是需要定额的系统帐户,来为用户分配磁盘配额:

[root@linuxcool ~]# edquota -u linuxcool

想对Jack、Tom、Chen三个用户使用和linuxcool一样的限额配置:

[root@linuxcool ~]# edquota -p linuxcool -u Jack Tom Chen 

对组的配额,除了edquota命令中对应-u选项的改为-g选项,例如下面对webterm1组的操作:

[root@linuxcool ~]# edquota -g webterm1


eject命令 退出抽取式设备

 

eject命令用于退出抽取式设备。若设备已挂入,则eject会先将该设备卸除再退出。

语法格式: eject [参数] [设备]

常用参数:

-a 控制设备的自动退出功能
-c 选择光驱柜中的光驱
-d 显示预设的设备,而不是实际执行动作
-f 退出抽取式磁盘
-h 显示帮助
-n 显示指定的设备
-q 退出磁带
-r 退出光盘
-s 以SCSI指令来退出设备
-t 关闭光盘的托盘
-v 执行时,显示详细的说明

参考实例

不加参数默认弹出:

[root@linuxcool ~]# eject  

指定设备:

[root@linuxcool ~]# eject -r /dev/cdrom


ext2ed命令 文件系统编辑程序

 

ext2ed命令属于ext2文件系统编辑程序。

ext2ed可直接处理硬盘分区上的数据,这指令只有Red Hat Linux才提供。

语法格式:ext2ed [参数]

常用参数:

setdevice[设备名称] 指定要处理的设备
disablewrite 将ext2ed设为只读的状态
enablewrite 将ext2ed设为可读写的状态
next 移至下一个单位,单位会依目前所在的模式而异
prev 移至前一个单位,单位会依目前所在的模式而异
pgup 移至下一页
pgdn 移至上一页

参考实例

处理硬盘/dev/hdc2分区上的数据:

[root@linuxcool ~]# ext2ed setdevice /dev/hdc2

将ext2ed设为只读的状态:

[root@linuxcool ~]# ext2ed disablewrite

将ext2ed设为可读写的状态:

[root@linuxcool ~]# ext2ed enablewrite


fdformat命令 对指定的软碟机装置进行低阶格式化

 

fdformat命令用于对指定的软碟机装置进行低阶格式化。

使用这个指令对软碟格式化的时候,最好指定像是下面的装置:

  • /dev/fd0d360 磁碟机 A: ,磁片为 360KB 磁碟
  • /dev/fd0h1440 磁碟机 A: ,磁片为 1.4MB 磁碟
  • /dev/fd1h1200 磁碟机 B: ,磁片为 1.2MB 磁碟

如果使用像是 /dev/fd0 之类的装置,如果里面的磁碟不是标准容量,格式化可能会失败。在这种情况之下,使用者可以用 setfdprm 指令先行指定必要参数。

语法格式: fdformat [参数]

常用参数:

-n 关闭确认功能。这个选项会关闭格式化之后的确认步骤

参考实例

将磁碟机 A 的磁片格式化成 1.4MB 的磁片,并且省略确认的步骤:

[root@linuxcool ~]# fdformat -n /dev/fd0h1440    


fdisk命令 磁盘分区

 

fdisk命令的英文全称是“Partition table manipulator for Linux”,即作为磁盘的分区工具。进行硬盘分区从实质上说就是对硬盘的一种格式化, 用一个形象的比喻,分区就好比在一张白纸上画一个大方框,而格式化好比在方框里打上格子。

语法格式:fdisk [参数]

常用参数:

-b 指定每个分区的大小
-l 列出指定的外围设备的分区表状况
-s 将指定的分区大小输出到标准输出上,单位为区块
-u 搭配”-l”参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址
-v 显示版本信息

参考实例

查看所有分区情况:

[root@linuxcool ~]# fdisk -l

选择分区磁盘:

[root@linuxcool ~]# fdisk /dev/sdb

在当前磁盘上建立扩展分区:

[root@linuxcool ~]# fdisk /ext

不检查磁盘表面加快分区操作:

[root@linuxcool ~]# fdisk /actok

重建主引导记录:

[root@linuxcool ~]# fdisk /cmbr 


fio命令 对磁盘进行压力测试和验证

 

fio是测试IOPS的非常好的工具,用来对磁盘进行压力测试和验证。磁盘IO是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类。FIO是一个可以产生很多线程或进程并执行用户指定的特定类型I/O操作的工具,FIO的典型用途是编写和模拟的I/O负载匹配的作业文件。也就是说FIO 是一个多线程io生成工具,可以生成多种IO模式,用来测试磁盘设备的性能(也包含文件系统:如针对网络文件系统 NFS 的IO测试)。

语法格式:fio [参数]

常用参数:

filename 测试文件名称,通常选择需要测试的盘的data目录
rw=randwrite 测试随机写的I/O
rw=randrw 测试随机写和读的I/O
bs 指定单次io的块文件大小
bsrange 提定数据块的大小范围
size 指定每个线程读写的数据量

参考实例

测试随机读写:

[root@linuxcool ~]# fio --filename=/bdata/test.big -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=64 -ru
ntime=20-group_reporting -name=test-rand-write

测试顺序读取:

[root@linuxcool ~]# fio --filename=/bdata/test.big -iodepth=64 -ioengine=libaio --direct=1 --rw=read --bs=1m --size=2g --numjobs=4 --ru
ntime=10 --group_reporting --name=test-read

测试顺序写入:

fio --filename=/bdata/test.big -iodepth=64 -ioengine=libaio -direct=1 -rw=write -bs=1m -size=2g -numjobs=4 -runtime=20 -group_reporting -name=test-write


free命令 显示系统内存情况

 

free 命令能够显示系统中物理上的空闲和已用内存,还有交换内存,同时,也能显示被内核使用的缓冲和缓存。这些信息是通过解析文件 /proc/meminfo 而收集到的。

不带任何选项运行 free 命令会显示系统内存,包括空闲、已用、交换、缓冲、缓存和交换的内存总数。

语法格式:free [参数]

常用参数:

-b 以Byte显示内存使用情况
-k 以kb为单位显示内存使用情况
-m 以mb为单位显示内存使用情况
-g 以gb为单位显示内存使用情况
-s 持续显示内存
-t 显示内存使用总合

参考实例

显示内存使用情况:

[root@linuxcool ~]# free 

用MB显示内存使用情况:

[root@linuxcool ~]# free -m

用KB显示内存使用情况:

[root@linuxcool ~]# free -K

以总和的形式显示内存的使用信息:

[root@linuxcool ~]# free -t 

周期性查询内存使用情况:

[root@linuxcool ~]# free -s 10


fsadm命令 在设备上调整或检查文件系统

 


fsck.minix命令 文件系统管理

 

Linux fsck.minix命令用于检查文件系统并尝试修复错误。

当minix文件系统发生错误时,可用fsck.minix指令尝试加以参考。

MINIX文件系统(英语:MINIX file system),一种文件系统,是MINIX操作系统中的原生文件系统。

MINIX是一个迷你版本的类Unix操作系统,由塔能鲍姆教授为了教学之用而创作,采用微核心设计。它启发了Linux核心的创作。

语法格式:fsck.minix [参数]

常用参数:

-a 自动修复文件系统,不询问任何问题
-f 强制对该文件系统进行完整检查,纵然该文件系统在慨略检查下没有问题
-l 列出所有文件名称
-m 使用类似MINIX操作系统的警告信息
-r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式
-s 显示该分区第一个磁区的相关信息
-v 显示指令执行过程

参考实例

自动修复磁盘/etc/hdc1:

[root@linuxcool ~]# fsck.minix -a /etc/hdc1

强制检查磁盘/etc/hdc1:

[root@linuxcool ~]# fsck.minix -f /etc/hdc1

列出磁盘/etc/hdc1所有文件名称:

[root@linuxcool ~]# fsck.minix -l /etc/hdc1


fsconf命令 设置文件系统相关功能

 

fsconf是Red Hat Linux发行版专门用来调整Linux各项设置的程序。

语法格式: fsconf [参数]

常用参数:

--check 检查特定文件的权限

参考实例

检查当前文件权限:

[root@linuxcool ~]# fsconf --check


gdisk命令 交互式GPT操纵器

 

gdisk 是一个命令界面的用于创建和操作分区表的工具。 它会自动将MBR分区表转换为较新的GPT分区表格式,或者加载GUID分区表。 与-l命令行选项一起使用时,程序将显示当前分区表。

语法格式:gdisk [参数]

常用参数:

-l 列出指定的设备的分区表状况

参考实例

查看所选分区情况:

[root@linuxcool ~]# gdisk -l /dev/sda

选择磁盘:

[root@linuxcool ~]# gdisk /dev/sda

 


hdparm命令 显示与设定硬盘参数

 

hdparm命令用于检测,显示与设定IDE或SCSI硬盘的参数。

语法格式:hdparm [参数]

常用参数:

-a 设定读取文件时,预先存入块区的分区数
-f 将内存缓冲区的数据写入硬盘,并清空缓冲区
-g 显示硬盘的磁轨,磁头,磁区等参数
-I  直接读取硬盘所提供的硬件规格信息
-X 设定硬盘的传输模式

参考实例

显示硬盘的相关设置:

[root@linuxcool ~]# hdparm /dev/sda
/dev/sda:
IO_support = 0 (default 16-bit)  
readonly = 0 (off) 
readahead = 256 (on)  
geometry = 19929[柱面数]/255[磁头数]/63[扇区数], sectors = 320173056[总扇区数], start = 0[起始扇区数] 

显示硬盘的柱面、磁头、扇区数:

[root@linuxcool ~]# hdparm -g /dev/sda

评估硬盘的读取效率:

[root@linuxcool ~]# hdparm -t /dev/sda

直接读取硬盘所提供的硬件规格信息:

[root@linuxcool ~]# hdparm -X /dev/sda

使IDE硬盘进入睡眠模式:

[root@linuxcool ~]# hdparm -Y /dev/sda


iozone命令 进行linux下的硬盘性能测试

 

iozone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能。可以测试Read, write, re-read,re-write, read backwards, readstrided, fread, fwrite, random read, pread, mmap, aio_read,aio_write 等等不同的模式下的硬盘的性能。

语法格式:lozone [参数]

常用参数:

-b iozone输出结果时将创建一个兼容Excel的二进制格式的文件。
-g 设置测试时最大文件大小
-s 设置测试时文件大小
-f 指定测试文件的名字,完成后会自动删除(这个文件必须指定你要测试的那个硬盘中)

参考实例

测试 /mnt/iozone 并输出表格:

[root@linuxcool ~]# ./iozone -a -n 512m -g 4g -i 0 -i 1 -i 5 -f /mnt/iozone -Rb ./iozone.xls

指定块大小测试:

[root@linuxcool ~]# ./iozone -a -i 0 -i 1 -i 2 -s 8g -r 16m -Rb ./iozone.xls

挂载盘测试:

[root@linuxcool ~]# ./iozone -a -n 1g -g 4g -i 0 -i 1 -f /mnt/iozone -Rb ./iozone.xls


lndir命令 连接目录内容

 

lndir命令的全称为“ link directory ”,该命令用于连接目录内容。

执行lndir命令可以把源目录底下的文件和子目录统统建立起相互对应的符号连接。lndir命令用于创建目录的符号链接,和ln不同的是lndir会自动为源文件目录下所有的文件和子目录都建立对应的符号链接。

语法格式: lndir [参数]

常用参数:

-ignorelinks 直接建立符号连接的符号连接
-silent 不显示指令执行过程

参考实例

给目录下所有的文件或者子文件目录建立链接:

[root@linuxcool ~]# lndir /home/uptech abc  


losetup命令 设置循环设备

 

losetup命令用来设置循环设备,查看回环设备的状态。循环设备可把文件虚拟成区块设备,籍以模拟整个文件系统,让用户得以将其视为硬盘驱动器,光驱或软驱等设备,并挂入当作目录来使用。

语法格式:losetup [参数]

常用参数:

-d  卸除设备
-e 启动加密编码
-o 设置数据平移的数目

参考实例

使用 losetup将磁盘镜像文件虚拟成块设备:

[root@linuxcool ~]# losetup /dev/loop1 floppy.img


lsblk命令 查看系统的磁盘

 

lsblk命令的英文是“list block”,即用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。

lsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。

语法格式:lsblk [参数]

常用参数:

-a 显示所有设备
-b 以bytes方式显示设备大小
-d 不显示 slaves 或 holders
-D print discard capabilities
-e 排除设备
-f 显示文件系统信息
-h 显示帮助信息
-i use ascii characters only
-m 显示权限信息
-l 使用列表格式显示
-n 不显示标题
-o 输出列
-P 使用key=”value”格式显示
-r 使用原始格式显示
-t 显示拓扑结构信息

参考实例

lsblk命令默认情况下将以树状列出所有块设备:

[root@linuxcool ~ ]# lsblk
lsblk NAME MAJ:MIN rm SIZE RO type mountpoint
sda 8:0 0 232.9G 0 disk
├─sda1 8:1 0 46.6G 0 part /
├─sda2 8:2 0 1K 0 part
├─sda5 8:5 0 190M 0 part /boot
├─sda6 8:6 0 3.7G 0 part [SWAP]
├─sda7 8:7 0 93.1G 0 part /data
└─sda8 8:8 0 89.2G 0 part /personal
sr0 11:0 1 1024M 0 rom

默认选项不会列出所有空设备:

[root@linuxcool ~]# lsblk -a 

也可以用于列出一个特定设备的拥有关系,同时也可以列出组和模式:

[root@linuxcool ~]# lsblk -m 

要获取SCSI设备的列表,你只能使用-S选项,该选项是用来以颠倒的顺序打印依赖的:

[root@linuxcool ~]# lsblk -S

例如,你也许想要以列表格式列出设备,而不是默认的树状格式。可以将两个不同的选项组合,以获得期望的输出:

[root@linuxcool ~]# lsblk -nl


lvchange命令 更改逻辑卷属性

 

lvchange命令的作用是可以更改一个逻辑卷的属性。

逻辑卷是一种device mapper技术,即可以将一个或者多个底层块设备组织成一个逻辑设备,从而提供动态改变大小,不停机情况下添加磁盘,快照以及备份 等功能,使得对于磁盘的管理更加方便。

逻辑卷的体系分为3个层次: 底层的PV,中层的VG,最上层的LV。

语法格式:lvchange [参数] [逻辑卷路径]

常用参数:

-p<r|rw> 更改访问权限为只读(r)或读/写(rw)
-C<y|n> 为逻辑卷试图设置或重置连续分配策略
--monitor<y|n> 如果dmeventd已安装,启动或停止监控镜像或快照逻辑卷
-M<y|n> 设置为y以使次要号码指定为永久
-a<a|e|1|y|n> 控制使用的逻辑卷的可用性
--refresh 如果逻辑卷被激活,重新加载其元数据
--noudevsync 禁用udev同步
-r<ReadAheadSectors|auto|none> 设置预读比逻辑卷的扇区数,可以设置为ReadAheadSectors、auto、none
--minor<次要号码> 设置次要号码
--resync 强制镜像完全同步。在正常情况下不需要这个选项,因为同步是自动发生的
--sysinit 表明在可写的文件系统可用之前,从早期的系统初始化脚本

参考实例

将逻辑卷/dev/vg1/linuxcool_v1的状态设置为不可用:

[root@linuxcool ~]# lvchange -a y /dev/vg1/linuxcool_v1

将逻辑卷linuxcool_v1的访问权限设置为只读:

[root@linuxcool ~]# lvchange -p r vg1/linuxcool_v1

将逻辑卷linuxcool_v1的访问权限设置为读写:

[root@linuxcool ~]# lvchange -p rw vg1/linuxcool_v1


lvcreate命令 创建逻辑卷

 

lvcreate命令的作用是创建LVM的逻辑卷。

逻辑卷是创建在卷组之上的。逻辑卷对应的设备文件保存在卷组目录下,例如:在卷组”vg1000″上创建一个逻辑卷”lvol0″,则此逻辑卷对应的设备文件为”/dev/vg1000/lvol0″。

语法格式 :  lvcreate [参数] [逻辑卷]

常用参数:

-L 指定逻辑卷的大小,单位为“kKmMgGtT”字节
-l 指定逻辑卷的大小(LE数)

参考实例

在名为vg_newlvm的卷组中创建15G大小的逻辑卷:

[root@linuxcool ~]# lvcreate -L 15G vg_newlvm

在名为vg_newlvm的卷组中创建大小为2500MB的逻辑卷,并命名为linuxcool:

[root@linuxcool ~]# lvcreate -L 2500 -n linuxcool vg_newlvm

使用卷组剩下的所有空间创建逻辑卷:

[root@linuxcool ~]# lvcreate --name linuxcool -l 100%FREE vg_newlvm


lvdisplay命令 显示LVM逻辑卷属性

 

lvdisplay命令用于显示LVM逻辑卷空间大小、读写状态和快照信息等属性。如果省略”逻辑卷”参数,则lvdisplay命令显示所有的逻辑卷属性。否则,仅显示指定的逻辑卷属性。

语法格式:lvdisplay [参数]

常用参数:

-C 以列显示输出
-c 使用冒号分隔输出

参考实例

使用lvdisplay命令显示指定逻辑卷的属性:

[root@linuxcool ~]# lvdisplay /dev/vg1000/lvol0 
--- Logical volume ---     
LV Name                /dev/vg1000/lvol0   
...................     
Block device           253:0 


lvextend命令 扩展逻辑卷空间

 

lvextend命令的作用是在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问。

使用lvextend命令动态在线扩展磁盘空间,整个空间扩展过程对于应用程序来说是完全透明的。

语法格式 : lvextend [参数] [逻辑卷]

常用参数:

-L 指定逻辑卷的大小,单位为“kKmMgGtT”字节
-l 指定逻辑卷的大小(LE数)

参考实例

为逻辑卷增加100M空间:

[root@linuxcool ~]# lvextend -L +100M /dev/vg1000/lvol0
Extending logical volume lvol0 to 300.00 MB   Logical volume lvol0 successfully resized 

在物理卷/dev/sdk3上将逻辑卷“ vg0/lvol10”的大小扩展100M:

[root@linuxcool ~]# lvextend -L +100 /dev/vg01/lvol10 /dev/sdk3

使用物理区段/dev/sda:8-9和/dev/sdb:8-9空间,将逻辑卷“ vg01/lvol01”扩展为160MB:

[root@linuxcool ~]# lvextend -L+160 vg01/lvol01 /dev/sda:8-9 /dev/sdb:8-9

 


lvmconf命令 LVM配置修改

 

lvmconf命令的作用是可以修改在LVM配置文件中锁定的配置。

LVM全拼为Logical Volume Manager ,逻辑卷管理LVM是一个多才多艺的硬盘系统工具,无论在linux或者其他类似的系统,都是非常的好用。

传统分区使用固定大小分区,重新调整大小十分麻烦,但是LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘,可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷,LVM并不需要重启就可以让内核知道分区的存在。

语法格式:lvmconf [参数]

常用参数:

-- -disable-cluster 设置locking_type为默认的非聚集型
-- -lockinglibdir<目录> 指定locking_library锁定库目录
-- -enable-cluster 在此系统上设置locking_type到默认集群类型
-- -file<配置文件> 将更改应用到指定的配置文件,而不是默认的/etc/lvm/lvm.conf文件
-- -lockinglib<lib> 如果使用一个外部锁定类型,则设置外部locking_library锁定库进行装载

参考实例

设置locking_type为默认的非聚集型:

[root@linuxcool ~]# lvmconf --disable-cluster

指定locking_library锁定库目录:

[root@linuxcool ~]# lvmconf --lockinglibdir /linuxcool

设置locking_type到默认集群类型:

[root@linuxcool ~]# lvmconf --enable-cluster


lvmdiskscan命令 扫描可见LVM2所有设备

 

lvmdiskscan命令的作用是可以在系统中为LVM物理卷扫描所有的SCSI、IDE磁盘、多种设备和其他块设备。

lvmdiskscan命令会扫描所有可见的LVM2设备,而LVM2比LVM1支持了更多的逻辑卷类型,支持了cluster lvm功能,提供了基于文本格式的元数据信息,提供了更多的命令集和操作命令。

lvmdiskscan命令报告的大小就是实际设备的大小。通常还可以通过lvmdiskscan命令来查看那些设备被做成了物理卷。

常用参数:lvmdiskscan [参数]

常用参数:

-l 只报告物理卷
-v 长格式显示
-h 帮助
-d 调试模式

参考实例

扫描可见LVM2所有设备,只报告物理卷:

[root@linuxcool ~]# lvmdiskscan -l

扫描所有可见LVM2设备:

[root@linuxcool ~]# lvmdiskscan

扫描可见LVM2所有设备,以长格式显示:

[root@linuxcool ~]# lvmdiskscan -v

 


lvmdump命令 转储LVM2有关的各种信息

 

lvmdump命令的作用是可以用来转储LVM2有关的各种信息。

LVM2是在linux上提供逻辑卷管理功能的用户空间工具集。它可以与原始LVM工具集向下兼容。

要使用LVM2需要三个条件:内核中的device-mapper,用户空间device-mapper支持库(libdevmapper)和用户空间LVM2工具。

语法格式:lvmdump [参数]

常用参数:

-d<目录> 转储到一个目录,而不是默认情况下的tar压缩包
-c 如果 clvmd 正在运行,也收集集群数据
-a 高级集合
-s 收集系统信息和上下文
-p 转储包含当前由守护程序监视的所有正在进行的操作以及部分历史记录
-m 从系统可见的所有pvs中生成1:1的元数据区域转储

参考实例

转储LVM2有关的各种信息:

[root@linuxcool ~]# lvmdump

收集系统信息和上下文:

[root@linuxcool ~]# lvmdump -s

将信息转储到一个目录:

[root@linuxcool ~]# lvmdump -d /linuxcool

 


lvmetad命令 启动LVM元数据高速缓存守护进程

 

lvmetad命令的作用是启动LVM元数据缓存守护进程。

正常情况下,lvmetad命令通过处理来自客户端的提醒消息和系统的uevents来保持缓存处于最新状态。当其他主机改变磁盘上的元数据时,也应该使本机的lvmetad元数据缓存变为过时状态。

当一个命令向lvmetad命令发送获取元数据请求时,在lvmetad命令返回元数据的同时,附带缓存“无效”标志。命令在收到响应后首先检查这个标志,如果无效则扫描磁盘,获取最新的元数据。最后把最新的元数据发送给lvmetad命令,并清除其“无效”标志,后面再有新的命令获取元数据时获取的就是最新的元数据了。

语法格式:lvmetad [参数]

常用参数:

-l<类型> 选择日志消息的生成类型,类型可以是all、wire、debug
-s<路径> 使用的socket文件的路径
-f 不fork,在前台运行

参考实例

启动LVM元数据缓存守护进程:

[root@linuxcool ~]# lvmetad

设置日志类型为all:

[root@linuxcool ~]# lvmetad -l all

指定socket文件的路径:

[root@linuxcool ~]# lvmetad -s /linuxcool


lvreduce命令 减少LVM逻辑卷所占空间大小

 

lvreduce命令用于减少LVM逻辑卷占用的空间大小。使用lvreduce命令收缩逻辑卷的空间大小有可能会删除逻辑卷上已有的数据,所以在操作前必须进行确认。

语法格式:lvreduce [参数]

常用参数:

-L 指定逻辑卷的大小, 单位为“kKmMgGtT”字节
-l 指定逻辑卷的大小(LE数)
-f 在不提示的情况下减小空间

参考实例

将逻辑卷的空间大小减少50M:

[root@linuxcool ~]# lvreduce -L -50M /dev/vg1000/lvol0 
................  
Do you really want to reduce lvol0? [y/n]: y       
Reducing logical volume lvol0 to 252.00 MB     
Logical volume lvol0 successfully resized 


lvresize命令 调整LVM逻辑卷空间大小

 

lvresize命令用于调整LVM逻辑卷的空间大小,可以增大空间和缩小空间。使用lvresize命令调整逻辑卷空间大小和缩小空间时需要谨慎,因为它有可能导致数据丢失。

语法格式:lvresize [参数]

常用参数:

-L 指定逻辑卷的大小, 单位为“kKmMgGtT”字节
-l 指定逻辑卷的大小(LE数)

参考实例

将逻辑卷空间增加200M:

[root@linuxcool ~]# lvresize -L +200M /dev/vg1000/lvol0
Extending logical volume lvol0 to 280.00 MB Logical volume lvol0 successfully resized 

 


lvscan命令 扫描LVM逻辑卷

 

lvscan命令用于扫描当前系统中存在的所有的LVM逻辑卷。使用lvscan指令可以发现系统中的所有逻辑卷,及其对应的设备文件。

语法格式: lvscan [参数]

常用参数:

-b 显示显示逻辑卷的主设备和此设备号

参考实例

使用lvscan命令扫描系统中的所有逻辑卷:

[root@linuxcool ~]# lvscan

显示设备号:

[root@linuxcool ~]# lvscan -b


lvs命令 报告有关逻辑卷的信息

 

lvs命令的作用是可以报告有关逻辑卷的信息。

逻辑卷建立在卷组之上,它是从卷组中“切出”的一块空间。它是最终用户使用的逻辑设备。

逻辑卷相对于物理卷来说:可以将多个物理卷,合并为一个逻辑卷,这样一个分区的容量可以突破物理硬盘的限制。逻辑卷可以弹性的扩容和缩容,当我们不太确定一个应用将来所需的容量,可以先分配少一点的空间,这样可以随着业务发展,按需扩容,避免一次性分配过大磁盘空间导致的资源浪费。另外逻辑卷支持快照功能,可在对系统进行关键操作前设置还原点,避免操作失误导致的数据损坏。

语法格式:lvs [参数] [卷组名]

常用参数:

-- -all 包括所有有关内部逻辑卷的输出信息
-- -units<输出单位> 所有尺寸都在输出这些单位:h、H、b、B、s、S、k、K、m、M、g、G、t、T、p、P、e、E
-- -aligned 使用带--separator分隔符对齐输出列
-- -nosuffix 在输出大小上后缀
-- -rows 输出列作为行
-- -segments 使用默认列强调段信息
-- -nameprefixes 添加一个“LVM2_”前缀加上字段名输出
-- -unbuffered 立即产生没有正确排序或对齐列的输出
-- -noheadings 标题行,这通常是输出的第一行

参考实例

报告有关逻辑卷的信息:

[root@linuxcool ~]# lvs

输出所有有关内部逻辑卷的信息:

[root@linuxcool ~]# lvs --all fedora
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root fedora -wi-ao---- 15.00g
swap fedora -wi-ao---- <3.04g

输出大小上后缀:

[root@linuxcool ~]# lvs --units M fedora
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root fedora -wi-ao---- 16106.13M
swap fedora -wi-ao---- 3258.97M


mdadm命令 管理linux软RAID

 

mdadm命令是multiple devices admin的简称,它是linux下的一款标准的软件 RAID管理工具,可以管理linux软RAID,比如创建、调整、监控RAID。

mdadm命令能够诊断、监控和收集详细的阵列信息,是一个单独集成化的程序而不是一些分散程序的集合,因此对不同RAID管理命令有共通的语法。

mdadm命令能够执行几乎所有的功能而不需要配置文件(也没有默认的配置文件)。

语法格式:mdadm [参数]

常用模式参数

create 创建一个新的RAID,每个设备都具有元数据(超级块)
build 创建或组合一个没有元数据(超级块)的RAID
assemble 组装以前创建的RAID的组件集成到一个活动RAID
manage 更改一个现有的RAID,比如添加新的备用成员和删除故障设备
misc 报告或修改各种RAID相关设备,比如查询RAID或者设备的状态信息、删除旧的超级块
grow 调整/重新塑造一个活动RAID,比如改变RAID容量或阵列中的设备数目。
monitor 监控一个或多个RAID的更改
incremental 添加设备到RAID中,或从RAID中删除设备。

常用参数:

-D 显示RAID设备的详细信息
-A 加入一个以前定义的RAID
-B 创建一个没有超级块的RAID设备
-F 选项监控模式
-G 更改RAID设备的大小或形态
-I 添加设备到RAID中,或从RAID中删除设备
-z 组建RAID1、RAID4、RAID5、RAID6后从每个RAID成员获取的空间容量
-s 扫描配置文件或/proc/mdstat以搜寻丢失的信息
-C 创建RAID设备,把RAID信息写入每个RAID成员超级块中
-v 显示RAID创建过程中的详细信息
-B 创建RAID的另一种方法,不把RAID信息写入每个RAID成员的超级块中
-l 指定RAID的级别
-n 指定RAID中活动设备的数目
-f 把RAID成员列为有问题,以便移除该成员
-r 把RAID成员移出RAID设备
-a 向RAID设备中添加一个成员
--re-add 把最近移除的RAID成员重新添加到RAID设备中
-E 查看RAID成员详细信息
-c 指定chunk大小,创建一个RAID设备时默认为512kb
-R 开始部分组装RAID
-S 停用RAID设备,释放所有资源
-x 指定初始RAID设备的备用成员的数量
--zero-superblock 如果RAID设备包含一个有效的超级块,该块使用零覆盖

参考实例

使用sda1和sdb1创建RAID0,条带大小是64KB:

[root@linuxcool ~]# mdadm –create /dev/md0 –chunk=64 –level=0 –raid-devices=2 /dev/sda1 /dev/sdb1

给md0增加热备盘sdc1:

[root@linuxcool ~]# mdadm /dev/md0 -add /dev/sdc1

查看组件设备sda1中超级块的信息和状态:

[root@linuxcool ~]# mdadm –examine /dev/sda1

停止md0的运行:

[root@linuxcool ~]# mdadm –stop /dev/md0


mdu命令 显示MS-DOS目录所占用的磁盘空间

 

mdu命令用于显示MS-DOS目录所占用的磁盘空间,mdu为mstools工具指令,可显示MS-DOS文件系统中目录所占用的磁盘空间。

语法格式:mdu [参数]

常用参数:

-a 显示每个文件及整个目录所占用的空间
-s 仅显示整个目录所占用的空间

参考实例

显示每个文件及整个目录所占用的空间:

[root@linuxcool ~]# mdu -a

仅显示整个目录所占用的空间:

[root@linuxcool ~]# mdu -s


mformat命令 格式化MS-DOS文件系统的磁盘

 

mformat命令可以用于对MS-DOS文件系统的磁盘进行格式化,在已经做过低阶格式化的磁片上建立 DOS 档案系统,此命令支持多种文件系统格式。

语法格式:mformat [参数]

常用参数:

-t 磁柱(synlider)数
-h 磁头(head)数
-s 每一磁轨的磁区数
-S 磁区大小代码,计算方式为 sector = 2^(大小代码+7)
-c 磁丛(cluster)的磁区数。如果所给定的数字会导致磁丛数超过 FAT 表的限制,mformat 会自动放大磁区数。
-M 软件磁区大小。这个数字就是系统回报的磁区大小。通常是和实际的大小相同。
-a 如果加上这个参数,mformat 会产生一组 Atari 系统的序号给这块软碟。
-X 将软碟格式化成 XDF 格式。使用前必须先用 xdfcopy 指令对软碟作低阶格式化的动作。

参考实例:

用预设值把 a: (就是 /dev/fd0)里的磁碟片格式化:

[root@linuxcool ~]# mformat a

把 a: 格式化为XDF格式:

[root@linuxcool ~]# mformat -X a

把 a: 格式化为FAT32格式:

[root@linuxcool ~]# mformat -F a


mkdosfs命令 建立DOS文件系统

 

mkdosfs命令用于建立DOS文件系统。

语法格式: mkdosfs [参数]

常用参数:

-c 建立档案系统之前先检查是否有坏轨
-l 从得定的档案中读取坏轨记录
-f 指定档案配置表的数量
-F 指定 FAT 表的大小,通常是 12 或是 16 个位元组
-i 指定 Volume ID
-n 指定 Volume Name,即磁碟标签
-r  指定根目录下的最大档案数
-v 提供额外的信息

参考实例

将 A 槽里的磁碟片格式化为 DOS 格式,并将标签设为 Tester:

[root@linuxcool ~]# mkdosfs -n Tester /dev/fd0 


mkfs.ext4 命令 创建ext4文件系统

 

mkfs.ext4命令可以磁盘分区创建ext4文件系统。该命令是mke2fs命令的符号链接,使用方法和mke2fs命令一样。

语法格式:mkfs.ext4 [参数] [设备]

常用参数:

-c 格式化前检查分区是否有坏块
-q 执行时不显示任何信息
-b block-size 指定block size大小,默认配置文件在/etc/mke2fs.conf,blocksize = 4096
-F 强制格式化

参考实例

格式化前检查分区是否有坏块:

[root@linuxcool ~]# mkfs.ext4 -c /dev/sdb

将/dev/sdb分区格式化成ext4文件系统:

[root@linuxcool ~]# mkfs.ext4 /dev/sdb

将硬盘格式化为ext4文件系统,并添加卷标‘root’,块大小为2048,文件系统预留5%给管理员:

[root@linuxcool ~]# mkfs.ext4 -L 'root' -b 2048 /dev/sdb -m 5


mkfs命令 在特定分区上建立文件系统

 

在磁盘分区上创建ext2、ext3、ext4、ms-dos、vfat文件系统,默认情况下会创建ext2。mkfs用于在设备上构建Linux文件系统,通常是硬盘分区。文件要么是设备名称(例如/dev/hda1,/dev/sdb2),要么是包含文件系统的常规文件。成功返回0,失败返回1。

实际上,mkfs只是Linux下可用的各种文件系统构建器(mkfs.fstype)的前端,在可能/sbin、/sbin/fs、/sbin/fs.d、/etc/fs、/etc/fs等多个目录中搜索特定于文件系统的生成器(编译时定义了精确的列表,但至少包含/sbin和/sbin/fs),最后在PATH环境变量中列出的目录中搜索。

语法格式: mkfs [参数]

常用参数:

device 预备检查的硬盘分区,例如:/dev/sda1
-V 详细显示模式
-t 给定档案系统的型式,Linux 的预设值为 ext2
-c 在制做档案系统前,检查该partition 是否有坏轨
-l bad_blocks_file 将有坏轨的block资料加到 bad_blocks_file 里面
block  给定 block 的大小

参考实例

在 /dev/hda5 上建一个 msdos 的档案系统,同时检查是否有坏轨存在,并且将过程详细列出来:

[root@linuxcool ~]# mkfs -V -t msdos -c /dev/hda5 

将sda6分区格式化为ext3格式:

[root@linuxcool ~]# mfks -t ext3 /dev/sda6      


mkimage命令 制作可启动映象文件

 

mkimage工具是u-boot用来制作镜像文件的工具,其源代码在u-boot源码的tools目录下:mkimage.c。我们使用bootm命令加载的内核和根文件系统,都要用这个工具加上个头。

语法格式:mkimage [参数]

常用参数:

-A


CPU 架构,可选的值有:
“alpha”,”arm”,”x86″,”ia64″,”m6k8″,”microblaze”,”mips”,”mips64″,”nios”,”nios2″,”ppc”,”s390″,”sh”,”sparc”,”sparc64″,
“blackfin”,”avr32″
-O 操作系统。可选的值有:
“4_4bsd”,”artos”,”esix”,”freebsd”,”irix”,”linux”,”lynxos”,”ncr”,”netbsd”,”openbsd”,”psos”,”qnx”,”rtems”,”sco”,”sloaris”,
“u-boot”,vxworks”
-T 镜像类型。可选的值有:
“filesystem”,”firmware”,”firmware”,”kernel”,”multi”,”ramdisk”,”script”,”standalone”,”flat_dt”
-C 镜像压缩类型。可选的值有:
“none”,”bzip2″,”gzip” none为没有压缩

参考实例

为内核加上u-boot引导所需要的文件头:

[root@linuxcool ~]# mkimage -n 'linux-2.6.14' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d zImage zImage.img

指定CPU架构和操作系统:

[root@linuxcool ~]# mkimage -A arm -O linux -a 0x20008000 -e 0x20008000 -d linux.bin.gz uImage

指定压缩格式:

[root@linuxcool ~]# mkimage -A arm -O linux -C bzip2 -a 0x20008000 -e 0x20008000 -d linux.bin.gz uImage


mknod命令 创建字符设备文件和块设备文件

 

Linux一切皆文件,系统与设备通信之前,要建立一个存放在/dev目录下的设备文件,默认情况下就已经生成了很多设备文件,有时候自己手动新建一些设备文件,这就会用到mknod。

语法格式:mknod [参数]

常用参数:

-Z 设置安全的上下文
-m 设置权限模式 ,缺省为读写
b 块设备
c 字符设备
-help 显示帮助信息
--version 显示版本信息

参考实例

创建一个名为”linuxcool”的字符设备:

[root@linuxcool ~]# mknod linuxcool c 30 1

创建一个名为”linuxcool”的块设备:

[root@linuxcool ~]# mknod linuxcool b 50 0


mkswap命令 建立和设置SWAP交换分区

 

mkswap命令用于在一个文件或者设备上建立交换分区。在建立完之后要使用sawpon命令开始使用这个交换区。最后一个选择性参数指定了交换区的大小,但是这个参数是为了向后兼容设置的,没有使用的必要,一般都将整个文件或者设备作为交换区。

语法格式:mkswap [参数]

常用参数:

-c 建立交换区前,先检查是否有损坏的区块
-f 在SPARC电脑上建立交换区,要加此参数
-v0 建立旧式交换区,此为预设值
-v1 建立新式交换区

参考实例

添加交换分区,假设存在并设置 /dev/sdb3为交换分区:

[root@linuxcool ~]# mkswap /dev/sdb2 
[root@linuxcool ~]# swapon /dev/sdb2

用dd创建一个512M的交换文件,将文件设置为交换分区:

[root@linuxcool ~]# dd if=/dev/zero of=/swapfile1 bs=1024 count=524288
[root@linuxcool ~]# mkswap /swapfile1  
[root@linuxcool ~]# swapon /swapfile1   


mlabel命令 设定磁盘的标签

 

mlabel命令用于设定磁盘的标签 (Label)。

如果磁盘上设定过标签,mlabel 会将他显示给使用者。如果没有指定新标签并且没有指定 c 或 s 选项,mlabel 会提示使用者输入新的标签。如果直接按下 Enter ,就会将原本的标签删除。

语法格式:mlabel [参数] [设备]

常用参数:

-v 更多的讯息
-c 清除原有的标签,不出现提示讯息
-s 显示目前的标签,不出现提示讯息

参考实例

将 A 盘的标签更改为 newlabel:

[root@linuxcool ~]# mlabel a:newlabel

 

 


mpartition命令 建立或删除MS-DOS的分区

 

在讲述该命令之前,首先需要明白目录和分区的概念和区别:

Linux的分区是物理上的概念,从物理上将存储空间分开;Linux的目录是逻辑上的概念,Linux的目录树实际上是一个分区之间的数据逻辑结构关系,不是物理结构;一个分区必须挂载在一个目录下才能使用,分区可以挂载到任何目录;

总结:分区是真正存放数据的地方,只有一份数据。目录是分区数据的逻辑映射,就像Windows系统中的快捷方式一样,分区的数据可以挂载到任意多个不同目录,这些目录就像不同名的快捷方式,都指向同样的分区数据;

而mpartition为mtools工具命令,可建立或删除磁盘分区。mpartition命令用于建立或删除MS-DOS的分区。使用该命令正可以很好的进行磁盘分区。

语法格式:mpartition [参数]

常用参数:

-a 将分区设置为可开机分区
-b<磁区数> 建立分区时,指定要从第几个磁区开始建立分区。
-c 建立分区
-d  将分区设置为无法开机的分区
-f 强制地修改分区而不管检查时发生的错误信息
-h<磁头数>  建立分区时,指定分区的磁头数
-I 删除全部的分区
-p  当要重新建立分区时,显示命令列
-r  删除分区

参考实例

将/etc/linuxcool设置为可开机分区:

[root@linuxcool ~]# mpartition -a /etc/linuxcool

删除指定分区:

[root@linuxcool ~]# mpartition -r /etc/linuxcool 

建立新分区:

[root@linuxcool ~]# mpartition -c /etc/linuxcool


mzip命令 控制磁盘驱动器

 

mzip是Zip/Jaz磁盘驱动器控制命令。为mtools工具命令,可设置Zip或Jaz磁盘驱动区的保护模式以及执行退出磁盘的动作。

语法格式:mzip [参数]

常用参数:

-e 退出磁盘
-f 与-e参数一并使用,不管是否已经挂入磁盘中的文件系统,一律强制退出磁盘
-p 设置磁盘的写入密码
-q 显示目前的状态
-r 将磁盘设为防写状态
-u 退出磁盘以前,暂时解除磁盘的保护状态
-w 将磁盘设为可写入状态
-x 设置磁盘的密码

参考实例

退出磁盘:

[root@linuxcool ~]# mzip -e

强制退出磁盘:

[root@linuxcool ~]# mzip -f -e

设置磁盘为可写:

[root@linuxcool ~]# mzip -w

设置磁盘密码:

[root@linuxcool ~]# mzip -x linuxcool

设置磁盘为防写:

[root@linuxcool ~]# mzip -r


newgrp命令 登入另一个群组

 

newgrp命令类的英文全称为“new group”,该命令类似login指令,当它是以相同的帐号,另一个群组名称,再次登入系统。欲使用newgrp指令切换群组,您必须是该群组的用户,否则将无法登入指定的群组。

单一用户要同时隶属多个群组,需利用交替用户的设置。若不指定群组名称,则newgrp指令会登入该用户名称的预设群组。

语法格式:newgrp [参数]

常用参数:

--help 在线帮助
--vesion 显示版本信息

参考实例

将群组切换到linuxcool组 :

[root@linuxcool ~]# newgrp linuxcool


parted命令 磁盘分区工具

 

parted命令是由GNU组织开发的一款功能强大的磁盘分区和分区大小调整工具,与fdisk不同,它支持调整分区的大小。作为一种设计用于Linux的工具,它没有构建成处理与fdisk关联的多种分区类型,但是,它可以处理最常见的分区格式,包括:ext2、ext3、fat16、fat32、NTFS、ReiserFS、JFS、XFS、UFS、HFS以及Linux交换分区。

parted命令为大于2T硬盘分区,一般来说我们对磁盘分区都是用fdisk命令,但是对于硬盘容量大于2T时,这个命令就不管用了,因为MBR分区表只支持2T磁盘;所以大于2T的磁盘必须使用GPT分区表,这时我们就需要用到parted命令。

语法格式:parted [参数] [设备]

常用参数

-i 交互式模式
-s 脚本模式,不提示用户
-l 列出所有块设备上的分区布局
-h 显示帮助信息

参考实例

列出所有块设备上的分区布局:

[root@linuxprobe ~]# parted -l

磁盘设备分区:

[root@linuxprobe ~]# parted


partprobe命令 重读分区表

 

partprobe命令用于重读分区表,将磁盘分区表变化信息通知内核,请求操作系统重新加载分区表。如果删除文件后,仍然提示占用空间,可以用partprobe在不重启的情况下重读分区 。

语法格式:partprobe [参数]

常用参数:

-d 不更新内核
-s 显示摘要和分区
-h 显示帮助信息
-v 显示版本信息

参考实例

在安装Linux系统之后,创建分区并且在不重新启动机器的情况下让系统识别这些分区(sdb6为新创建的分区):

[root@linuxcool ~]# partprobe /dev/sdb6


partx命令 显示内核磁盘上分区情况

 

partx命令用来告诉内核当前磁盘的分区情况,对一个磁盘或者分区表类型,尝试解析分区表。可以增加或删除分区。但不是fdisk,增加,删除分区对磁盘造成改变,只是告诉内核当前磁盘的分区情况。

语法格式:partx [参数] [设备]

常用参数:

-a         增加制定的分区或读磁盘新增的分区
-d         删除制定或所有的分区
-l         列出分区
--type     指定分区类型

参考实例

列出磁盘的分区表:

[root@linuxcool ~]# partx --show /dev/sda5

指定要显示的分区范围:

[root@linuxcool ~]# partx -a /dev/sdb

列出支持的分区类型:

[root@linuxcool ~]# partx --list-types


pvchange命令 改变物理卷分配许可

 

pvchange命令允许管理员改变物理卷的分配许可,如果物理卷出现故障,可以使用pvchange命令禁止分配物理卷上的PE。

语法格式:pvchange [参数]

常用参数:

-u 生成新的UUID
-x 是否允许分配PE

参考实例

禁止分配/dev/sdb1上的PE:

[root@linuxcool ~]# pvchange -x n /dev/sdb1  
Physical volume "/dev/sdb1" changed   
1 physical volume changed / 0 physical volumes not changed 


pvck命令 检测物理卷LVM元数据一致性

 

pvck命令用来检测物理卷的LVM元数据的一致性。默认情况下,物理卷中的前4个扇区保存着LVM卷标。

语法格式:pvck [参数]

常用参数:

-d 调试模式
-v 详细信息模式
--labelsector 指定LVE卷标所在扇区

参考实例

使用pvck命令检查物理卷/dev/sdb1:

[root@linuxcool ~]# pvck -v /dev/sdb1
Scanning /dev/sdb1  
Found label on /dev/sdb1, sector 1, type=LVM2 001  
Found text metadata area: offset=4096, size=192512 
Found LVM2 metadata record at offset=125952,  
size=70656, offset2=0 size2=0


pvcreate命令 创建逻辑卷

 

pvcreate命令用于将物理硬盘分区初始化为物理卷,以便LVM使用。

语法格式:pvcreate [参数]

常用参数:

-f 强制创建物理卷,不需要用户确认
-u 指定设备的UUID
-y 所有的问题都回答yes

参考实例

创建物理卷:

[root@linuxcool ~]# pvcreate /dev/sdb

创建多个物理卷:

[root@linuxcool ~]# pvcreate /dev/sdc{1,2,3,4}


pvdisplay命令 显示物理卷属性

 

pvdisplay命令用于显示物理卷的属性。显示的物理卷信息包括:物理卷名称、所属的卷组、物理卷大小、PE大小、总PE数、可用PE数、已分配的PE数和UUID。

语法格式:pvdisplay [参数]

常用参数:

-s 以短格式输出
-m 显示PE到LE的映射

参考实例

显示物理卷基本信息:

[root@linuxcool ~]# pvdisplay /dev/xvda2
--- Physical volume ---
PV Name               /dev/xvda2
VG Name               VolGroup
PV Size               7.51 GiB / not usable 3.00 MiB
Allocatable           yes (but full)
PE Size               4.00 MiB
Total PE              1922
Free PE               0
Allocated PE          1922
PV UUID               6MQM6I-pgfg-PHVp-0cvz-k2WQ-YwP7-M0ee0b


pvmove命令 移动物理盘区

 

pvmove命令的作用是可以将源物理卷上的物理盘区移动到一个或多个其他的目标物理卷。

使用pvmove命令时可以指定一个源日志或卷。在这种情况下,只有逻辑卷使用的区才会被移动到目标物理卷上的空闲或指定的区。如果没有指定的物理卷,则使用卷组的默认规则分配。

如果pvmove命令执行时由于任何原因中断(例如机器崩溃),那么重新启动上一个检查点正在进行的任何操作时pvmove命令会不带任何参数。可以一次运行多个pvmove命令,前提从不同的源物理卷移动数据。

语法格式:pvmove [参数] [源物理卷] [目标物理卷]

常用参数:

-- -abort 中止正在进行的任何移动
-- -noudevsync 禁用udev同步
-i<时间间隔> 以固定的时间间隔报告进度百分比,单位为秒
-b 在后台运行守护进程
-n<逻辑卷> 从源物理卷只移动属于逻辑卷中的盘区,而不是所有分配盘区到目标物理卷

参考实例

移动物理卷/dev/sda5上的所有的物理盘区:

[root@linuxcool ~]# pvmove /dev/sda5

将源物理卷/dev/sda5上的物理盘区移动到物理卷/dev/sda6上:

[root@linuxcool ~]# pvmove /dev/sda5 /dev/sda6

将源物理卷/dev/sda5上的物理盘区1000~1999移动到物理卷/dev/sda6上:

[root@linuxcool ~]# pvmove /dev/sda5:1000-1999 /dev/sda6

中止正在进行的任何移动:

[root@linuxcool ~]# pvmove --abort


pvremove命令 删除物理卷

 

pvremove命令用于删除一个存在的物理卷。使用pvremove指令删除物理卷时,它将LVM分区上的物理卷信息删除,使其不再被视为一个物理卷。

语法格式:pvremove [参数]

常用参数:

-d 调试模式
-f 强制删除
-y 对提问回答yes

参考实例

使用pvremove命令删除物理卷/dev/sdb1:

[root@linuxcool ~]# pvremove /dev/sdb1 

使用pvremove命令强制删除物理卷/dev/sdb2:

[root@linuxcool ~]# pvremove -f /dev/sdb2


pvresize命令 调整一个卷组中的物理卷的大小

 

pvresize命令的作用是调整一个卷组中的物理卷的大小。pvresize命令可以调整可能已经在卷组中的物理卷的大小,并在其中分配活动的逻辑卷。

对于存在物理卷的设备,在扩增其容量之后或缩小其容量之前,必须使用pvresize命令对应地增加或减少物理卷的大小。如果物理卷已分配物理区域超过了命令指定的新大小边界,pvresize命令会拒绝将物理卷缩小。若磁盘空间足够,可通过pvresize命令将物理区域重新分配至别的卷组来解决这个问题。

如果运行pvresize命令不带参数,就会将物理卷的大小调整为操作系统为底层分区报告的大小。

语法格式:pvresize [参数] [物理卷]

常用参数:

-d 调试模式
-h 帮助信息
-t 以测试模式运行
-v 制定发送消息的详细等级
-y 总是选择确定(谨慎)
-- -reportformat basic|json 重写当前报告的输出格式
-- -setphysicalvolumesize<卷大小> 覆盖物理卷自动检测到的尺寸

参考实例

调整物理卷/dev/sda5的大小为磁盘:

[root@linuxcool ~]# pvresize /dev/sda5

调整物理卷/dev/sda5的大小为40GB:

[root@linuxcool ~]# pvresize --setphysicalvolumesize 40G /dev/sda5

测试模式下运行调整:

[root@linuxcool ~]# pvresize -t /dev/sda2


pvscan命令 列出找到的物理卷

 

pvscan命令会扫描系统中连接的所有硬盘,列出找到的物理卷列表。使用pvscan命令的-n选项可以显示硬盘中的不属于任何卷组的物理卷,这些物理卷是未被使用的。

语法格式: pvscan [参数]

常用参数:

-d 调试模式
-e 仅显示属于输出卷组的物理卷
-n 仅显示不属于任何卷组的物理卷
-s 短格式输出
-u 显示UUID

参考实例

扫描所有硬盘上的物理卷:

[root@linuxcool ~]# pvscan

仅显示属于输出卷组的物理卷:

[root@linuxcool ~]# pvscan -e 

仅显示不属于任何卷组的物理卷:

[root@linuxcool ~]# pvscan -n 


pvs命令 格式化输出物理卷信息报表

 

pvs命令用于格式化输出物理卷信息报表,使用pvs命令仅能得到物理卷的概要信息。

语法格式:pvs [参数]

常用参数:

--noheadings 不输出标题头
--nosuffix 不输出空间大小的单位

参考实例

输出物理卷信息报表:

[root@linuxcool ~]# pvs
PV         VG       Fmt  Attr PSize  PFree
/dev/xvda2 VolGroup lvm2 a--u  7.51g    0
/dev/xvda3 VolGroup lvm2 a--u 11.99g 1.99g


quotacheck命令 扫描获取磁盘信息

 

quotacheck命令通过扫描指定的文件系统,获取磁盘的使用情况,创建、检查和修复磁盘配额(quota)文件。

语法格式: quotacheck [参数]

常用参数:

-a 扫描在/etc/fstab文件里,有加入quota设置的分区
-d 详细显示指令执行过程,便于排错或了解程序执行的情形
-g 扫描磁盘空间时,计算每个群组识别码所占用的目录和文件数目
-R 排除根目录所在的分区
-u 扫描磁盘空间时,计算每个用户识别码所占用的目录和文件数目

参考实例

将所有的在/etc/mtab内,含有quota支持的partition进行扫描:

[root@linuxcool ~]# quotacheck -avug

强制扫描已挂载的filesystem:

[root@linuxcool ~]# quotacheck -avug -m


quotaoff命令 关闭磁盘空间限制

 

quotaoff命令关闭磁盘空间限制。

执行quotaoff命令可关闭用户和群组的磁盘空间限制。磁盘配额服务(quota)既然能使用 quotaon 命令手动开启,那么自然也能手动关闭,使用quotaoff命令即可。quotaoff命令的功能就是关闭 quota 服务,此命令的基本格式同quotaon命令一样。

语法格式: quotaoff [参数]

常用参数:

-a 关闭在/etc/fstab文件里,有加入quota设置的分区的空间限制
-g 关闭群组的磁盘空间限制
-u  关闭用户的磁盘空间限制
-v 显示指令执行过程

参考实例

关闭配额限制:

[root@linuxcool ~]# mkfs -V -t msdos -c /dev/hda5 

将sda6分区格式化为ext3格式:

[root@linuxcool ~]# quotaoff -a     


quotaon命令 激活Linux内核中指定文件系统的磁盘配额功能

 

quotaon命令用于激活Linux内核中指定文件系统的磁盘配额功能。执行quotaon指令可开启用户和群组的才磅秒年空间限制,各分区的文件系统根目录必须有quota.user和quota.group配置文件。

语法格式:quotaon [参数]

常用参数:

-a 开启在/ect/fstab文件里,有加入quota设置的分区的空间限制
-g 开启群组的磁盘空间限制
-u 开启用户的磁盘空间限制
-v 显示指令指令执行过程

参考实例

开启在/ect/fstab文件里,有加入quota设置的分区的空间限制:

[root@linuxcool ~]# quotaon -a

开启指定分区的磁盘配额:

[root@linuxcool ~]# quotaon /dev/sdb1 


quotastats命令 显示Linux系统当前的磁盘配额运行状态信息

 

quotastats命令用于显示Linux系统当前的磁盘配额运行状态信息。

语法格式:quotastats

参考实例

显示磁盘配额限制状态:

[root@linuxcool ~]# quotastats 


quota命令 显示磁盘已使用的空间与限制

 

quota命令用于显示磁盘已使用的空间与限制。执行quota命令可查询磁盘空间的限制,并得知已使用多少空间。

语法参数:quota [参数]

常用参数:

-g 列出群组的磁盘空间限制
-q 简明列表,只列出超过限制的部分
-u 列出用户的磁盘空间限制
-v 显示该用户或群组,在所有挂入系统的存储设备的空间限制
-V 显示版本信息

参考实例

显示目前执行者(root )的 quota 值:

[root@linuxcool ~]# quota -guvs 

显示 test 这个使用者的 quota 值:

[root@linuxcool ~]# quota -uvs test


repquota命令 显示文件系统配额的汇总信息

 

repquota用于显示指定文件系统的磁盘使用情况与配额设置的汇总信息,对于用户,显示当前创建的文件数量、存储空间使用数量,以及配额的设置信息。

由于需要把所有的用户ID与用户组ID翻译成相应的用户名与用户组名,repquota在显示数据时可能会有时间上的延迟。

语法格式:repquota [参数] [文件]

常用参数:

-g 显示基于用户组的配额信息
-i 忽略automounter守护进程安装的安装点
-a 显示/etc/mtab文件中已经设置了配额限制的所有文件系统的配额信息
-c 能把所有的用户id与用户组id一次翻译成用户名和用户名组
-F 按照指定格式显示配额信息
-s 采用易于理解的适当单位显示存储空间
-v 显示详细的配额信息,最后给出汇总统计数据

参考实例

查询所有用户的配额设置与存储空间的实际使用状况:

[root@linuxcool ~]# repquota -av

采用易于阅读和理解的适当单位显示用户使用空间:

[root@linuxcool ~]# repquota -asv


setquota命令 设置文件系统配额

 

setquota是一个命令行配额编辑器,可以采用命令行的方式直接设置用户或用户组的配额限制。

若想禁用配额限制,可以把相应参数设置为0。如果多个文件系统需要修改配额设置,每个文件系统需要调用一次setquota命令。

语法格式:setquota [参数]

常用参数:

-a 编辑启用配额限制的所有文件系统
-b 从标准输入读取配额设置信息
-u 设置命令行参数name指定用户的配额
-t 设置用户数据快与信息节点的宽限时间周期

参考实例

在文件系统(/dev/sdb2)设置指定用户的配额限制:

[root@linuxcool ~]# setquota -u zwx 20480 40 960 600 1200 /deb/sda1

把数据块与信息节点的宽限时间周期设置为10天(86400秒/每天):

[root@linuxcool ~]# setquota -tu 864000 86400 /deb/sda1


sfdisk命令 硬盘分区工具

 

sfdisk为硬盘分区工具程序,可显示分区的设置信息,并检查分区是否正常。sfdisk也可用来建立分区。由于建立硬盘分区兹事体大,建议还是使用为个别操作系统设计的硬盘分区工具程序比较妥当,如用fdisk建立DOS分区,用Disk Druid或sfdisk建立linux的分区。

语法格式: sfdisk [参数]

常用参数:

-d 显示硬盘分区的设置
-g 输出模块的载入信息
-l 显示后硬盘分区的相关设置
-s 显示分区的大小,单位为区块
-T 显示所有sfdisk能辨识的文件系统ID
-v 显示版本信息
-V 检查硬盘分区是否正常
-x 显示扩展分区中的逻辑分区
-N 按照从标准输入读取的分区表,在指定的块设备上创建分区表
-A 打开指定分区的启动标记(仅可用于MBR分区表)
--delete 删除指定/全部的分区
-J 按照 JSON 格式导出指定块设备的现有分区表
-F 列出指定/全部块设备上尚未被分区的剩余空间
-r 按照各分区的起始扇区,对现有分区进行重新编号
-a 仅在现有的分区表上添加新分区,而不是创建一个全新的分区表
-f 禁用所有一致性检查,强制执行看上去明显的错误动作
-n 模拟操作(并不真正写入块设备)
-o 仅输出指定的字段
-q 不显示所有多余的信息
-X 指定分区表的类型。如果未明确指定此选项,那么表示使用块设备上的现有类型。 如果现有块设备上不存在分区表,那么默认为 dos 类型(MBR)
-h或--help 打印帮助信息并立即退出

参考实例

显示分区信息:

[root@linuxcool ~]# sfdisk -l    

显示硬盘分区的设置:

[root@linuxcool ~]# sfdisk -d    


sgdisk命令 Linux和Unix的命令行GPT操纵器

 

sgdisk是Linux下操作GPT分区的工具, sgdisk程序使用完全基于命令行的用户界面,使其适用于脚本或想要对磁盘进行一次或两次快速更改的专家。

语法格式:sgdisk [参数] [设备]

常用参数:

-p 打印分区表
-d x 删除分区
-n x:y:z 创建一个编号 x 的新分区,从 y扇区 开始,到 z扇区 结束
-c x:y 更改分区 x 的名称为 y
-t x:y -t x:y 将分区 x 的类型更改为 y
–list-types 列出分区类型代码

参考实例

打印分区表:

[root@linuxcool ~]#  sgdisk -p /dev/sda 

删除sda的第一个分区:

[root@linuxcool ~]# sgdisk -d 1 /dev/sda 

创建一个编号 1 的新分区,从 1MiB 开始,到 2MiB 结束:

[root@linuxcool ~]# sgdisk -n 1:1MiB:2MiB /dev/sda

把编号为 1 的分区名称改为 grub:

[root@linuxcool ~]#  sgdisk -c 1:grub /dev/sda 

将编号为 1 的分区,类型更改为 ef02:

[root@linuxcool ~]# sgdisk -t 1:ef02 /dev/sda 

列出分区类型代码:

[root@linuxcool ~]# sgdisk --list-types


swapon命令 激活交换空间

 

swapon命令用于激活Linux系统中交换空间,Linux系统的内存管理必须使用交换区来建立虚拟内存。

语法格式: swapon [参数 ]

常用参数

-a 将/etc/fstab文件中所有设置为swap的设备,启动为交换区
-h 显示帮助
-p 制定交换区的优先顺序
-s 显示交换区的使用情况

参考实例

显示交换区的版本信息:

[root@linuxcool ~]# swapon -v /dev/hdb4

显示交换区的使用情况:

[root@linuxcool ~]# swapon -s

设定优先权:

[root@linuxcool ~]# swapon -p 3 /dev/hdb4

自动启动所有SWAP装置:

[root@linuxcool ~]# swapon -a

显示swap命令的帮助文档:

[root@linuxcool ~]# swapon -h


sync命令 刷新文件系统缓冲区

 

sync命令用于强制被改变的内容立刻写入磁盘,更新信息速度非常快, 在Linux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘,以提高系统的运行效率。

sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。用户通常不需执行sync命令,系统会自动执行update或bdflush操作,将缓冲区的数据写 入磁盘。只有在update或bdflush无法执行或用户需要非正常关机时,才需手动执行sync命令。

语法格式:sync [参数]

常用参数:

--help 显示命定详细帮助信息
--version 显示版本号

参考实例

显示帮助信息:

[root@linuxcool ~]# sync --help
Usage: sync [OPTION]
Force changed blocks to disk, update the super block.
--help display this help and exit
--version output version information and exit
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'sync invocation'

显示版本:

[root@linuxcool ~]# sync --version
sync (coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Jim Meyering.


testdisk命令 修复磁盘文件

 

testdisk是一个强大的免费的跨平台的数据恢复工具,这款软件主要被设计用于恢复丢失的分区以及修复那些由于人为或者病毒等原因导致分区表错误而无法启动系统的问题。

语法格式:testdisk

参考实例

以下为您介testdisk的使用步骤

1.直接运行testdisk:

[root@linuxcool ~]# testdisk

2.选择磁盘:使用 上/下 键来选择丢失分区的硬盘,enter键确认选择项

3.选择分区表类型:使用 上/下 键来选择分区表类型,enter键确认选择项,当您不确认时候,一般选择默认的就可以

4.查看当前分区状态:使用“analyze”选项检查当前的分区结构并搜索丢失的分区

5.快速搜索分区:按 p 键来列出文件,返回前一页使用q,enter键继续

6.保存分区表:选择 write 菜单项保存分区结构,并按 enter 继续,到这里基本就可以解决磁盘文件丢失的问题了。


vgcfgbackup命令 备份卷组描述符区域

 

vgcfgbackup命令的作用是可以备份卷组的元数据。如果在命令行上没有指定任何卷组,将备份所有的卷组。在默认情况下,每个卷组被备份到一个单独的带有卷组名称的文件中,该文件存储在/etc/lvm/backup目录中。

语法格式:vgcfgbackup [参数] [卷组名]

常用参数:

-d 启用调试模式
-f<文件名> 指定备份文件
-- -ignorelockingfailure 忽略锁定失败
-v 显示详细信息

参考实例

备份卷组vg_linuxcool的元数据:

[root@linuxcool ~]# vgcfgbackup vg_linuxcool

显示备份详细信息:

[root@linuxcool ~]# vgcfgbackup -v vg_linuxcool

指定备份文件:

[root@linuxcool ~]# vgcfgbackup -f vg_001


vgcfgrestore命令 还原卷组描述符区域

 

vgcfgrestore命令的作用是可以从一个文件备份中恢复卷组的元数据。可以附加相关参数来指定备份文件,如果没有指定备份文件,使用最近的一次。也可以使用附加参数列出可用的卷组名备份和归档文件。

语法格式:vgcfgrestore [参数] [卷组名]

常用参数:

-l 列出有关卷组元数据备份的文件和有关卷组的归档文件
-n<卷组名> 指定卷组名
-f<文件名> 指定用于恢复的LVM元数据备份文件
-- -force 以精简池卷恢复元数据(不进行任何校验,慎用)

恢复卷组vg_linuxcool的元数据:

[root@linuxcool ~]# vgcfgrestore vg_linuxcool

使用指定用于恢复元数据备份文件:

[root@linuxcool ~]# vgcfgrestore /dev/vg0 -f /archive/vg0_backup.vg

列出指定卷组名下的备份:

[root@linuxcool ~]# vgcfgrestore -l -n vg_linuxcool

 


vgchange命令 修改卷组属性

 

vgchange命令用于修改卷组的属性,经常被用来设置卷组是处于活动状态或非活动状态。处于活动状态的卷组无法被删除,必须使用vgchange命令将卷组设置为非活动状态后才能删除。

语法格式:vgchange [参数]

常用参数:

-a 设置卷组的活动状态

参考实例

将卷组”vglinuxprobe”设置为活动状态:

[root@linuxcool ~]# vgchange -ay vglinuxprobe


vgconvert命令 转换指定LVM卷组的元数据格式

 

vgconvert命令用于转换指定LVM卷组的元数据格式,通常将“LVM1”格式的卷组转换为“LVM2”格式。转换卷组元数据前必须保证卷组处于非活动状态,否则无法完成转换操作。

语法格式:vgconvert [参数]

常用参数:

-M 要转换的卷组格式

参考实例

转换vglinuxprobe卷组为LVM2格式:

[root@linuxcool ~]# vgconvert -M2 vglinuxprobe


vgcreate命令 创建卷组

 

vgcreate命令用于创建LVM卷组。卷组(Volume Group)将多个物理卷组织成一个整体,屏蔽了底层物理卷细节。在卷组上创建逻辑卷时不用考虑具体的物理卷信息。

语法格式:vgcreate [参数]

常用选项:

-l 卷组上允许创建的最大逻辑卷数
-p 卷组中允许添加的最大物理卷数
-s 卷组上的物理卷的PE大小

常用参数:

卷组名称 要创建的卷组名称
物理卷列表 要加入到卷组中的物理卷列表

参考实例

创建卷组 “vg1000” :

[root@linuxcool ~]# vgcreate vg1000

创建最大逻辑卷数为200的卷组 “vg1000” :

[root@linuxcool ~]# vgcreate -l 200 vg1000

创建允许添加最大物理卷数为200的卷组 “vg1000” :

[root@linuxcool ~]# vgcreate -p 200 vg1000

创建卷组 “vg1000″,并且将物理卷”/dev/sdb1″和”/dev/sdb2″添加到卷组中:

[root@linuxcool ~]# vgcreate vg1000 /dev/sdb1 /dev/sdb2

创建卷组 “vg1000″,并且允许添加不超过200的 物理卷 “/dev/sdb1” 到卷组中:

[root@linuxcool ~]# vgcreate -p 200 vg1000 /dev/sdb1

 


vgdisplay命令 显示LVM卷组的信息

 

vgdisplay命令用于显示LVM卷组的信息。如果不指定”卷组”参数,则分别显示所有卷组的属性。

语法格式: vgdisplay [参数]

常用参数:

-A 仅显示活动卷组的属性
-s 使用短格式输出的信息

参考实例

显示存在的卷组”vg1000″的属性:

[root@linuxcool ~]# vgdisplay vg1000 

显示存在的卷组”vg2000″的属性:

[root@linuxcool ~]# vgdisplay vg2000

显示活动卷组”vg1000″的属性:

[root@linuxcool ~]# vgdisplay -A vg1000 

使用短格式显示卷组”vg1000″的属性:

[root@linuxcool ~]# vgdisplay -s vg1000

使用短格式显示活动卷组”vg1000″的属性:

[root@linuxcool ~]# vgdisplay -As vg1000


vgexport命令 导出卷组

 

vgexport命令的作用是可以导出卷组。

vgexport命令允许设置系统未知的非活动卷组名称。 也可以将该卷组中的所有物理卷移动到不同的系统中,以便以后使用vgimport命令导入。

语法格式:vgexport [参数] [卷组名]

常用参数:

-a 导出所有活动的卷组
-p 不从系统中中将卷组相关的信息去掉
-s 向映射文件中添加卷组标识符 (VGID)
-m 产生一个map文件
-v 显示详细过程

参考实例

导出卷组vgl:

[root@linuxcool ~]# vgexport linuxcool_vg

导出所有活动卷组:

[root@linuxcool ~]# vgexport -a

导出带有map文件的卷组:

[root@linuxcool ~]# vgexport -s -p -m /tmp/vglinuxcool.map /dev/vglinuxcool


vgextend命令 扩展卷组

 

vgextend命令用于动态扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量。LVM卷组中的物理卷可以在使用vgcreate命令创建卷组时添加,也可以使用vgextend命令动态的添加。

语法格式:vgextend [参数]

常用参数:

-d 调试模式
-t 仅测试

参考实例

将物理卷/dev/sdb1加入卷组vglinuxprobe:

[root@linuxcool ~]# vgextend vglinuxprobe /dev/sdb1


vgimportclone命令 导入并重命名复制的卷组

 

vgimportclone命令的作用是可以导入并重命名复制的卷组,这有点类硬件快照。

复制的卷组和物理卷在与原始卷组和物理卷共存之前不能使用。vgimportclone命令重命名与指定物理卷关联的卷组,并更改关联的卷组和物理卷uuid。

语法格式:vgimportclone [参数] [物理卷]

常用参数:

-i 导入之前导出的卷组
-n<快照卷组名> 指定快照卷组名称,默认情况下,快照卷组将被重命名为原来的名称加上一个数字后缀,以避免重复命名

参考实例

将物理卷/dev/sda5、/dev/sda6和/dev/sda7导入并重命名复制的卷组名称为vg_linuxcool:

[root@linuxcool ~]# vgimportclone -n vg_linuxcool /dev/sda5 /dev/sda6 /dev/sda7

要将与/dev/sdc和/dev/sdd关联的卷组vg00重命名为vg00_snap,并更改关联的卷组和物理卷的uuid:

[root@linuxcool ~]# vgimportclone -n vg00_snap /dev/sdc /dev/sdd

导入指定卷组:

[root@linuxcool ~]# vgimportclone -i vg_linuxcool /dev/sda5


vgimport命令 导入卷组

 

vgimport命令的作用是可以导入卷组。

从不同的系统移动导出物理卷之后,vgimport命令配合相应map文件可以让系统再次认出导出的卷组。

语法格式:vgimport [参数] [卷组名]

常用参数:

-a 导入所有已经存在的卷组
-s 扫描与系统连接的每个磁盘,并使用具有匹配卷组信息的物理卷更新/etc/lvmtab文件,始终与-m一起使用
-m 产生一个map文件
-v 显示详细过程
-N 在/etc/lvmtab文件中填充持久性设备专用文件来配置卷组,只能与-s一起使用

参考实例

导入卷组vgl:

[root@linuxcool ~]# vgimport vgl

使用map文件导入并自动搜索相应的硬盘:

[root@linuxcool ~]# vgimport –s –m /tmp/linuxcool_vg.map /dev/linuxcool_vg

显示详细操作过程进行卷组导入:

[root@linuxcool ~]# vgimport -v -s -m /tmp/linuxcool_vg.map /dev/linuxcool_vg


vgmerge命令 合并两个卷组

 

vgmerge命令的作用是可以合并两个现有的卷组。

如果物理盘区大小相等,并且两个卷组的物理和逻辑卷摘要都符合目标卷组名称的要求,则非活动源卷组名称将合并到目标卷组名称中。

语法格式:vgmerge [参数] [目的卷组名] [源卷组名]

常用参数:

-l 显示合并的目的卷组名,类似于vgdisplay -v命令
-t 进行一个测试运行而不做任何真正的改变
-A<y|n> 是否启用自动备份
-d 启用调试模式
-v 显示详细信息

参考实例

将卷组vg2合并到卷组vg1中:

[root@linuxcool ~]# vgmerge -v vg1 vg2

模拟测试合并卷组操作:

[root@linuxcool ~]# vgmerge -t vg3 vg4

显示合并的完毕的卷组名:

[root@linuxcool ~]# vgmerge -l vg5 vg6


vgremove命令 删除LVM卷组

 

vgremove命令用于删除LVM卷组,当要删除的卷组上已经创建了逻辑卷时,需要进行确认删除,防止误删除数据。

语法格式: vgremove [参数]

常用参数:

-f 强制删除

参考实例

删除卷组vg1000:

[root@linuxcool ~]# vgremove vg1000
Volume group "vg1000" successfully removed


vgsplit命令 将物理卷移动到新的或现有的卷组中

 

vgsplit命令的作用是可以从源卷组(物理卷)移动到新的或现有的卷组中。

使用vgsplit命令将一个或多个物理卷时,移动的物理卷可以指定物理卷路径,也可以通过-n逻辑卷名指定,但在这种情况下,只移动指定逻辑卷底层的物理卷。

如果目标卷组名称确实存在,将在移动物理卷之前检查它是否与源卷组名称冲突。 不能在卷组之间分割逻辑卷。 vgsplit命令只移动完整的物理卷。每个现有的逻辑卷必须完全位于构成源卷组或目标卷组的物理卷上。

语法格式:vgsplit [参数] [源卷组名] [目标卷组名] [物理卷路径]

常用参数:

-d 启用调试模式
-v 显示详细信息
-l<最大逻辑卷数> 指定卷组中最大的逻辑卷数
-- -vgmeladatacopies<数量> 指定副本数量
-M<1|2> 指定元数据类型
-n<逻辑卷名> 指定逻辑卷的名称
-A<y|n> 是否自动备份
-t 启用测试模式
-p<最大物理卷数> 指定卷组中最大的物理卷数

参考实例

将卷组vg1拆分为两个,生成新卷组vg2,该卷组成员为/dev/sda3:

[root@linuxcool ~]# vgsplit vg1 vg2 /dev/sda3

指定卷组中最大的物理卷数:

[root@linuxcool ~]# vgsplit -p 5 vg1 vg2 /dev/sda3

将/dev/sdg2与dev分离,添加到一个名为“ design”的新卷组:

[root@linuxcool ~]# vgsplit dev design /dev/sdg2


vgs命令 报告关于卷组的信息

 

vgs命令的作用是可以报告显示关于卷组的信息。

通常一个分区或者一个硬盘就可以建立一个物理卷,将多个物理卷组合到一起,成为一个卷组。

语法格式: vgs [参数] [卷组名]

常用参数:

-- -aligned 使用--separator对齐输出列
-- -nameprefixes 添加一个“LVM2_”前缀加上字段名输出
-- -noheadings 标题行,通常是输出的第一行
-- -all 列出所有的卷组
-- -nosuffix 在输出尺寸上后缀
-- -unbuffered 立即产生输出,无需正确的排序或对齐列
-- -units<单位> 所有尺寸都在输出这些单位:h、H、b、B、s、S、k、K、m、M、g、G、t、T、p、P、e、E
-O 逗号分隔的有序的列的列表进行排序
-- -rows 输出的列作为行

参考实例

显示卷组vg1的信息:

[root@linuxcool ~]# vgs vg1

显示结果使用分隔符对齐输出:

[root@linuxcool ~]# vgs --aligned vg1

列出所有卷组:

[root@linuxcool ~]# vgs --all


warnquota命令 发送邮件给超出配额的用户

  

warnquota命令的作用是可以对超过磁盘限额的用户发出警告邮件,而邮件的内容在/etc/warnquota.conf文件中进行设置。

warnquota命令需要安装包quota-warnquota的支持才可以使用。

语法格式:warnquota [参数]

常用参数:

-u 向用户发出警告
-g 向组群发出警告
-s 用更易懂的单位发送信息
-i 避免autofs挂载点
-d 不给自己发送磁盘配额信息
-F<格式名> 使用特定格式的配额文件
-c<配置文件> 非默认配置文件
-a<管理员文件> 非默认的管理员文件

参考实例

使用配置文件发送磁盘配额警告电子邮件:

[root@linuxcool ~]# warnquota -c /etc/warnquota.conf

用更易懂的单位发送电子邮件:

[root@linuxcool ~]# warnquota -s

使用特定格式的配额文件发送磁盘配额警告电子邮件:

[root@linuxcool ~]# warnquota -F /etc/warning.conf

 

 

 

5:文件传输

 

 

axel命令 多线程下载工具

 

axel是优秀的http/ftp多线程下载工具。支持断点续传,可以从多个地址或者从一个地址的多个连接来下载同一个文件。适合单线程下载限速的情景,通过多线程加速下载。

语法格式:axel [参数]

常用参数:

-s 设置最高速度
-n 设置连接数
-o 下载另存为本地文件
-H 指定HTTP头
-U 指定HTTP代理
-V 版本信息

参考实例

以5个链接数下载testfile.zip,并另存为/tmp/目录下的filetest.zip 文件:

[root@linuxcool ~]# axel -n 5 -o /tmp/filetest.zip  http://www.Linuxcool.com/testfile.zip


bye命令 中断FTP连线并结束程序

 

在ftp模式下,输入bye即可中断目前的连线作业,并结束ftp的执行。

语法格式: bye

参考实例

中断FTP连线并结束程序:

[root@linuxcool ~]# bye


curl命令 文件传输工具

 

curl命令是一个利用URL规则在shell终端命令行下工作的文件传输工具;它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。

作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征;做网页处理流程和数据检索自动化。

语法格式:curl [参数] [网址]

常用参数:

-O 把输出写到该文件中,保留远程文件的文件名
-u 通过服务端配置的用户名和密码授权访问

参考实例

将下载的数据写入到文件,必须使用文件的绝对地址:

[root@linuxcool ~]# curl https://www.linuxcool.com/abc.txt --silent -O

访问需要授权的页面时,可通过-u选项提供用户名和密码进行授权:

[root@linuxcool ~]# curl -u root https://www.linuxprobe.com/
Enter host password for user 'root':


fsck命令 检查并修复Linux文件系统

 

fsck命令的英文全称是“filesystem check”,即检查文件系统的意思,常用于检查并修复Linux文件系统的一些错误信息,操作文件系统需要先备份重要数据,以防丢失。

Linux fsck命令用于检查并修复Linux文件系统,可以同时检查一个或多个 Linux 文件系统;若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。

语法格式:fsck [参数] [文件系统]

常用参数:

-a 自动修复文件系统,不询问任何问题
-A 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统
-N 不执行指令,仅列出实际执行会进行的动作
-P 当搭配”-A”参数使用时,则会同时检查所有的文件系统
-r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式
-R 当搭配”-A”参数使用时,则会略过/目录的文件系统不予检查
-t 指定要检查的文件系统类型
-T 执行fsck指令时,不显示标题信息
-V 显示指令执行过程

参考实例

修复坏的分区文件系统:

[root@linuxcool ~]# fsck -t ext3 -r /usr/local
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
fsck.ext3: Is a directory while trying to open /usr/local
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193
/usr/local: status 8, rss 1232, real 0.020288, user 0.002022, sys 0.005354

显示fsck系统安装的版本号:

[root@linuxcool ~]# fsck --version 
fsck from util-linux 2.23.2


ftpcount命令 显示当前登录FTP的用户人数

 

执行ftpcount这项命令可得知目前用FTP登入系统的人数以及FTP登入人数的上限。

语法格式:ftpcount [参数]

常用参数:

-f 指定文件的路径
-h 显示帮助

参考实例

直接查询FTP服务器上用户的人数:

[root@linuxcool ~]# ftpcount


ftpshut命令 指定时间关闭FTP服务器

 

ftpshut命令为系统管理者提供了在设置的时间关闭FTP服务器,且能在关闭之前发出警告信息通知用户的功能。

关闭时间若设置后为”none”,则会马上关闭服务器。如果采用”+30″的方式来设置表示服务器在30分钟之后关闭。依次类推,假设使用”1130″的格式则代表服务器会在每日的11时30分关闭,时间格式为24 小时制。FTP服务器关闭后,在/etc目录下会产生一个名称为shutmsg的文件,把它删除后即可再次启用FTP服务器。

语法格式:ftpshut [参数]

常用参数:

-d 切断所有FTP连线时间
-l 停止接受FTP登入的时间

参考实例

在晚上11:00 关闭FTP服务器,并在关闭前5 分钟拒绝新的FTP登录,前3 分钟关闭所有ftp的链接,且给出警告信息 :

[root@linuxcool ~]# ftpshut-d 3 -1 5 1100 "Server will be shutdown at 23:00:00" 


ftpwho命令 显示ftp会话信息

 

ftpwho命令用于显示当前所有以FTP登入的用户会话信息。

执行该命令可得知当前用FTP登入系统的用户有哪些人,以及他们正在进行的操作。

语法格式:ftpwho [参数]

常用参数:

-h 显示帮助信息
-v 详细模式,输出更多信息

参考实例

查询当前正在登录FTP 服务器的用户:

[root@linuxcool ~]# ftpwho

在详细模式下,查询当前正在登录FTP 服务器的用户:

[root@linuxcool ~]# ftpwho -v

显示帮助信息:

[root@linuxcool ~]# ftpwho -h


ftp命令 文件传输协议客户端

 

ftp命令是FTP文件传输协议的客户端工具,用于本地主机和远程文件服务器之间上传和下载文件。ftp命令使用FTP协议和远程文件服务器进行通信。

匿名FTP服务器在登录时使用“anonymous”作为用户名,用任意的电子邮件作为密码。通常,匿名FTP服务器只能下载文件,而不允许用户上传文件。

FTP协议使用明文传送用户的认证信息,和容易被局域网内的嗅探软件截获,所以使用ftp命令时要格外注意。

语法格式:  ftp [参数] [主机名或IP]

常用参数:

-d 使用调试模式运行
-i 关闭交互模式,在遇到问题时不询问用户而直接执行
-n 禁用自动登录
-v 显示指令执行的详细信息
-g 关闭文件名替换
-t 激活数据包包追踪

参考实例

启动ftp服务:

[root@linuxcool ~]# service vsftpd start 

进入ftp提示符:

[root@linuxcool ~]# ftp
ftp>

获得内部命令的帮助:

ftp> help rename

连接FTP服务器:

[root@linuxcool ~]# ftp www.linuxcool.com

查看ftp服务的状态:

[root@linuxcool ~]# service vsftpd status 

查看ftp进程:

[root@linuxcool ~]# ps -ef|grep -i ftp 


gpm命令 提供文字模式下的滑鼠事件处理

 

gpm命令是linux的虚拟控制台下的鼠标服务器,用于在虚拟控制台下实现鼠标复制和粘贴文本的功能。gpm命令需要安装并开启相关服务才能使用。

语法格式:gpm [参数]

常用参数:

-a 设置加速值
-b 设置波特率
-B 设置鼠标按键次序
-m 指定鼠标设备文件
-t 设置鼠标类型

参考实例

安装并开启gpm服务:

[root@linuxcool ~]# yum install -y gpm*
[root@linuxcool ~]# systemctl start gpm

指定鼠标设备文件:

[root@linuxcool ~]# gpm -m /dev/input/mice

设定鼠标类型:

[root@linuxcool ~]# gpm -m /dev/input/mice -t ps2


lftp命令 优秀的命令行FTP客户端

 

lftp支持FTP、SETP、HTTP和FTPs等多种文件传输协议。 还支持FXP,允许数据绕过客户端直接在两个FTP服务器之间传输。同时还有递归镜像整个目录树以及断点续传下载的功能, lftp的传输任务可以安排时间段计划执行,可以限制带宽和创建传输列表,支持类似Unix shell的任务控制。客户端还可以在交互式或自动脚本里使用。

语法格式:lftp [参数]

常用参数:

-f 指定lftp要执行的脚本文件
-c 执行指定的命令后退出
--help 显示帮助信息
--version 显示当前版本号

参考实例

登陆后只用”ls”、”cd”等命令查看文件和改变目录:

[root@linuxcool ~]# lftp 用户名:密码@ftp地址:传送端口(默认21) 

使用”get”、”mget”、”mirror”、”pget”不同的指令功能下载文件:

> mget -c *.db  # 把所有的db文件以允许断点续传的方式下载。 
> mirror aaa/ #  将aaa目录整个的下载下来,子目录也会自动复制 
> pget -c -n 10 10G.file  以最多10个线程以允许断点续传的方式下载10G.file

“put”、”mput”都是对文件上传的操作,”mirror -R” 将本地目录以迭代(包括子目录)的方式反向上传到ftp站点:

> put linuxcool.tar
> mirror -R 本地目录名 

 


lpq命令 查看打印队列状态

 

lpq命令用于显示打印队列中的打印任务的状态信息及其所包含的打印任务 ,如果使用该命令时没有指定打印机或类,则将显示默认目标上排队的作业。

语法格式:lpq [参数]

常用参数:

-E 强制使用加密方式与服务器连接
-P 显示中的打印机上的打印队列状态
-U 自动可选的用户名
-a 报告所有打印机的定义任务
-h 指定打印服务器信息
-l 使用长格式输出
+ 指定显示状态的间隔时间

参考实例

显示打印队列状态:

[root@linuxcool ~]# lpq

查看当前打印任务:

[root@linuxcool ~]# lpq -l


lprm命令 删除打印队列中的打印任务

 

lprm命令的英文全称是“Remove jobs from the print queue”,意为用于删除打印队列中的打印任务。尚未完成的打印机工作会被放在打印机贮列之中,这个命令可用来将未送到打印机的工作取消。

语法格式:lprm [参数] [任务编号]

常用参数:

-E 与打印服务器连接时强制使用加密
-P 指定接受打印任务的目标打印机
-U 指定可选的用户名

参考实例

将打印机hpprint中的第102号任务移除:

[root@linuxcool ~]# lprm -Phpprint 102

将第101号任务由预设打印机中移除:

[root@linuxcool ~]# lprm 101


lpr命令 将文件放入打印队列等待打印

 

lpr命令用于将文件发送给指定打印机进行打印,如果不指定目标打印机,则使用默认打印机。

语法格式:lpr [参数]

常用参数:

-E 与打印服务器连接时强制使用加密
-H 指定可选的打印服务器
-C 指定打印任务的名称
-P 指定接受打印任务的目标打印机
-U 指定可选的用户名
-# 指定打印的份数
-h 关闭banner打印
-m 打印完成后发送E-mail
-r 打印完成后删除文件

参考实例

将man1和man2送到打印机lp进行打印:

[root@linuxcool ~]# lpr -P lp man1 man2

在名为mailroom的打印机上打印report文件 :

[root@linuxcool ~]# lpr -P mailroom report 

在名为laser1的打印机上打印3个文件 :

[root@linuxcool ~]# lpr -P laser1 file_1.txt file_2.txt file_3.txt 


ncftp命令 传输文件

 

ncftp命令是文字模式FTP程序中的佼佼者,它具备多样特色, 包括显示传输速率,下载进度,自动续传,标住书签,可通过防火墙和代理服务器等。

当不指定用户名时,ncftp 命令会自动尝试使用匿名账户anonymous 去连接远程FTP 服 务器,不需要用户输入账号和密码。

语法格式:ncftp [参数] [主机或IP地址]

常用参数:

-u 指定登录FTP服务器的用户名
-p 设置用户密码
-P 指定FTP端口号,默认为21
-j 指定账号
-h  显示帮助信息
-v  显示版本信息

参考实例

匿名连接www.linuxcool.com服务器,同时不想输入anonymous等匿名用户名:

[root@linuxcool ~]# ncftp www.linuxcool.com 

显示帮助信息:

[root@linuxcool ~]# ncftp -h   


rmt命令 远端磁带传输协议模块

 

rmt即 remote magnetic tape 的缩写,该命令通过进程间通信远程控制磁带机。

通过rmt指令,用户可通过IPC连线,远端操控磁带机的倾倒和还原操作。

语法格式:rmt

参考实例

远端操控磁带机:

[root@linuxcool ~]# rmt 


rsync命令 远程数据同步工具

 

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。

rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。

rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。

语法格式:rsync [参数]

常用参数:

-v 详细模式输出
-q 精简输出模式
-h 显示帮助信息

参考实例

启动ssh服务:

[root@linuxcool ~]# service sshd start
启动 sshd: [确定]

使用rsync命令来备份服务端上的数据:

[root@linuxcool ~]# rsync -vzrtopg --progress -e ssh --delete 


symlinks命令 维护符号连接的工具程序

 

symlinks命令可以检查目录中的符号连接,并显示符号连接类型。

语法格式:symlinks [参数] [目录]

常用参数:

-c 将使用绝对路径的符号连接转换为相对路径
-d 移除dangling类型的符号连接
-r 检查目录下所有子目录中的符号连接
-s 检查lengthy类型的符号连接
-t 与-c一并使用时,会显示如何将绝对路径的符号连接转换为相对路径,但不会实际转换
-v 显示所有类型的符号连接

参考实例

将test目录使用绝对路径的符号连接转换为相对路径:

[root@linuxcool ~]# symlinks -c test

检查test目录下所有子目录中的符号连接:

[root@linuxcool ~]# symlinks -r test


tftp命令 上传及下载文件

 

tftp命令用于传输文件。ftp让用户得以下载存放于远端主机的文件,也能将文件上传到远端主机放置。

tftp是简单的文字模式ftp程序,它所使用的指令和ftp类似。

语法格式:tftp [参数]

常用参数:

connect 连接到远程tftp服务器
mode 文件传输模式
put 上传文件
get 下载文件
quit 退出
verbose 显示详细的处理信息
trace 显示包路径
status 显示当前状态信息
binary 二进制传输模式
ascii ascii 传送模式
rexmt 设置包传输的超时时间
timeout 设置重传的超时时间
help 帮助信息
? 帮助信息

参考实例

连接远程服务器”218.28.188.288″:

[root@linuxcool ~]# tftp 218.28.188.288 

远程下载file文件:

tftp> get file                            
getting from 218.28.188.288 to /dir  
Recived 168236 bytes in 1.5 seconds[112157 bit/s] 

退出tftp:

tftp> quit                       

 


uupick命令 处理传送进来的文件

 

当其他主机通过UUCP将文件传送进来时,可利用uupick命令取出这些文件。

语法格式:uupick [参数]

常用参数:

-I 指定配置文件
-s 处理由指定主机传送过来的文件
-v 显示版本信息
--help  显示帮助信息

参考实例

处理由主机localhost传送过来的文件:

[root@linuxcool ~]# uupick -s localhost


uuto命令 将文件传送到远端的UUCP主机

 

uuto命令为script文件,它实际上会执行uucp,用来将文件传送到远端UUCP主机,并在完成工作后,以邮件通知远端主机上的用户。

语法格式:uuto [文件]

常用参数:

文件 需要执行的传送文件
目的 指定目标文件路径

参考实例

将文件传送到远程UUCP主机localhost的tmp目录:

[root@linuxcool ~]# uuto ./testfile localhost/tmp 

将文件传送到远程UUCP主机localhost 的www目录:

[root@linuxcool ~]# uuto ./testfile localhost/www

将文件传送到远程UUCP主机localhost 的test目录:

[root@linuxcool ~]# uuto ./testfile localhost/test

将文件传送到远程UUCP主机localhost 的test1目录:

[root@linuxcool ~]# uuto ./testfile localhost/test1

将文件传送到远程UUCP主机localhost 的test2目录:

[root@linuxcool ~]# uuto ./testfile localhost/test2

 

 

 

6:网络通讯

 

 

 

apachectl命令 Apache服务器前端控制工具

 

apachectl命令是Apache的Web服务器前端控制工具,用以启动、关闭和重新启动Web服务器进程。

语法格式: apachectl [参数]

常用参数:

configtest 检查设置文件中的语法是否正确
fullstatus 显示服务器完整的状态信息
graceful 重新启动Apache服务器,但不会中断原有的连接
help 显示帮助信息
restart 重新启动Apache服务器
start 启动Apache服务器
status 显示服务器摘要的状态信息
stop 停止Apache服务器
startssl 启动带ssl支持的apache的web服务器进程

参考实例

测试配置文件语法:

[root@linuxcool ~]# apachectl configtest
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::6da1:1b23:c479:649a. Set the 'ServerName' directive glob
ally to suppress this message Syntax OK

显示服务器状态信息:

[root@linuxcool ~]# apachectl status

重新启动Apache服务器:

[root@linuxcool ~]# apachectl restart


arpaname命令 IP地址转换为对应的ARPA名称

 

arpaname命令的作用是可以转换IP地址(IPv4和IPv6)到相应的IN-ADDR.ARPA或IP6.ARPA名称。

由于在域名系统中,一个IP地址可以对应多个域名,因此从IP出发去找域名,理论上应该遍历整个域名树,但这在Internet上是不现实的。为了完成逆向域名解析,系统提供一个特别域,该特别域称为逆向解析域IN-ADDR.ARPA。

这样解析的IP地址就会被表达成一种像域名一样的可显示串形式,后缀以逆向解析域域名“IN-ADDR.ARPA”结尾。例如一个IP地址:218.30.150.106,其逆向域名表达方式为:155.94.158.194.in-addr.arpa。

语法格式:arpaname [IP地址]

常用参数:

参考实例

将IP地址192.168.0.2转换为对应的ARPA名称:

[root@linuxcool ~]# arpaname 192.168.60.110
110.60.168.192.IN-ADDR.ARPA


arping命令 向邻近主机发送ARP请求报文

 

arping命令作用是使用arp数据包,通过ping命令检查来测试网络。arping命令能够测试一个ip地址是否是在网络上已经被使用,并能够获取更多设备信息。功能类似于ping。

由于arping命令基于ARP广播机制,所以arping命令只能测试同一网段或子网的网络主机的连通性,ping命令则是基于ICMP协议,是可以路由的,所以使用ping命令可以测试任意网段的主机网络连通性。

语法格式:arping [参数]

常用参数:

-A 更新邻近主机的ARP缓存(
使用ARP应答数据包代替ARP请求数据包)
-b 仅发送MAC级广播
-c 发送指定个数ARP请求数据包后停止
-D 重复地址检测模式(DAD)
-f 在第一个回复确认目标存活后退出命令
-h 打印帮助手册并退出
-I 指定ARP请求报文的网络接口
-q 安静模式。不显示任何信息
-s 指定发送ARP请求数据包的源IP地址
-U 更新邻近主机的ARP缓存

参考实例

测试目标主机的存活状态:

[root@linuxcool ~]# arping -f 192.168.60.1
ARPING 192.168.60.1 from 192.168.60.149 ens192
Unicast reply from 192.168.60.1 [00:03:0F:81:6B:F1]  1.995ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)

向目标主机发送3次(指定次数)ARP请求报文:

[root@linuxcool ~]# arping -c 3 192.168.60.1
ARPING 192.168.60.1 from 192.168.60.149 ens192
Unicast reply from 192.168.60.1 [00:03:0F:81:6B:F1]  1.813ms
Unicast reply from 192.168.60.1 [00:03:0F:81:6B:F1]  1.850ms
Unicast reply from 192.168.60.1 [00:03:0F:81:6B:F1]  1.816ms
Sent 3 probes (1 broadcast(s))
Received 3 response(s)

使用指定网口发送指定次数ARP请求报文后自动退出命令:

[root@linuxcool ~]# arping -I ens192 -c 2 192.168.60.1
ARPING 192.168.60.1 from 192.168.60.149 ens192
Unicast reply from 192.168.60.1 [00:03:0F:81:6B:F1]  1.861ms
Unicast reply from 192.168.60.1 [00:03:0F:81:6B:F1]  1.921ms
Sent 2 probes (1 broadcast(s))
Received 2 response(s)


arptables命令 ARP包过滤管理工具

 

arptables命令用来设置、维护和检查Linux内核中的arp包过滤规则表。使用arptables命令可以定义多个不同的规则表,每个规则表包含多个内置的规则链或者用户自定义的规则链。

arptables命令工作在ARP协议层,要掌握此命令必须理解ARP的原理。

语法格式:  arptables [参数]

常用参数:

-A 向规则链中追加规则
-D 从指定的链中删除规则
-l 向规则链中插入一条新的规则
-R 替换指定规则
-P 设置规则链的默认策略
-F 刷新指定规则链,将其中的所有规则链删除,但是不改变规则链的默认策略
-Z 将规则链计数器清零
-L 显示规则链中的规则列表
-X 删除指定的空用户自定义规则链
-h 显示指令帮助信息
-j 指定满足规则的添加时的目标
-s 指定要匹配ARP包的源ip地址
-d 指定要匹配ARP包的目的IP地址

参考实例

添加新的规则:

[root@linuxcool ~]# arptables -A IN -s 192.168.0.10 -j DROP

显示arp包过滤规则:

[root@linuxcool ~]# arptables -L

指定源ip进行包过滤:

[root@linuxcool ~]# arptables -s 192.168.20.20


arpwatch命令 监听网络上ARP的记录

 

arpwatch命令用于监听网络上ARP的记录。

ARP(Address Resolution Protocol)是用来解析IP与网络装置硬件地址的协议。 arpwatch可监听区域网络中的ARP数据包并记录,同时将监听到的变化通过E-mail来报告。

语法格式: arpwatch [参数]

常用参数:

-d 启动排错模式
-f 设置存储ARP记录的文件,预设为/var/arpwatch/arp.dat
-i 指定监听ARP的接口,预设的接口为eth0
-r 从指定的文件中读取ARP记录,而不是从网络上监听
-n  指定附加的本地网络
-u 指定用户和用户组
-e 发送邮件给指定用户,非默认的root用户
-s 指定用户名作为返回地址,而不是默认的用户root

参考实例

监听网卡eth0的ARP信息:

[root@linuxcool ~]# arpwatch -i eth0  

监听ARP的信息,将相关信息记录到相应的文件:

[root@linuxcool ~]# arpwatch -i eth0 -f a.log


arp命令 操纵系统arp缓存

 

arp命令的英文全拼“Address Resolution Protocol” 。该命令用于操作主机的arp缓存,它可以显示arp缓存中的所有条目、删除指定的条目或者添加静态的ip地址与MAC地址对应关系。

语法格式: arp [参数] [IP]

常用参数:

-a 显示arp缓存的所有条目,主机位可选参数
-H 指定arp指令使用的地址类型
-d 从arp缓存中删除指定主机的arp条目
-D 使用指定接口的硬件地址
-e 以linux的显示风格显示arp缓存中的条目
-i 指定要操作arp缓存的网络接口
-n 以数字方式显示arp缓存中的条目
-v 显示详细的arp缓存条目,包括缓存条目的统计信息
-f 设置主机的IP地址与MAC地址的静态映射

参考实例

显示本机arp缓存中所有记录:

[root@linuxcool ~]# arp
Address HWtype HWaddress Flags Mask Iface
gateway ether 00:03:0f:81:6b:f1 C ens160

以数字方式显示指定主机arp缓存条目:

[root@linuxcool ~]# arp -n 192.168.60.1
Address HWtype HWaddress Flags Mask Iface
192.168.60.1 ether 00:03:0f:81:6b:f1 C ens160

删除接口eth1上的192.168.60.1的arp表中的项:

[root@linuxcool ~]# arp -i eth1 -d 192.168.60.1

使用eth1的MAC地址回答eth0上的192.168.60.2的arp请求:

[root@linuxcool ~]# arp -i eth0 -Ds 192.168.60.2 eth1 pub 


ctlinnd命令 设置INN新闻组服务器

 

通过ctlinnd指令,可以对新闻组服务器这项常驻服务下达控制命令,直接设置相关数值。

语法格式:ctlinnd [参数]

常用参数:

h 在线帮助
s 不显示指令执行过程
t 设置等待服务器回报的时间,单位以秒计算,超过此一时间则为超时

参考实例

设置等待服务器回报的时间:

[root@linuxcool ~]# ctlinnd -t 60

查看帮助信息:

[root@linuxcool ~]# ctlinnd -h

下达指令,但不显示指令执行过程:

[root@linuxcool ~]# ctlinnd -hs -t 60


cu命令 连接另一个系统主机

 

cu命令可连接另一台主机,并采用类似拨号终端机的接口工作,也可执行简易的文件传输作业。

语法格式:cu [参数] [电话号码]

常用参数:

-p 使用指定的通信端口进行连线
-c 拨打该电话号码
-d 进入排错模式
-I 指定要使用的配置文件
-n 拨号时等待用户输入电话号码
-s 设置连线的速率
-x 使用排错模式
--help 在线帮助

参考实例

与远程主机连接:

[root@linuxcool ~]# cu -c 735148100

指定端口号连接:

[root@linuxcool ~]# cu -p 111 -c 735148100


dhclient命令 动态获取或释放IP地址

 

dhclient命令的作用是:使用动态主机配置协议动态的配置网络接口的网络参数,也支持BOOTP协议。

语法格式:dhclient [参数] [网络接口]

常用参数:

-p 指定dhcp客户端监听的端口号(默认端口号86)
-d 总是以前台方式运行程序
-q 安静模式,不打印任何错误的提示信息
-r 释放ip地址
-n 不配置任何接口
-x 停止正在运行的DHCP客户端,而不释放当前租约,杀死现有的dhclient
-s 在获取ip地址之前指定DHCP服务器
-w 即使没有找到广播接口,也继续运行

参考实例

在指定网络接口上发出DHCP请求:

[root@linuxcool ~]# dhclient eth0

释放IP地址:

[root@linuxcool ~]# dhclient -r
Killed old client process

从指定的服务器获取ip地址:

[root@linuxcool ~]# dhclient -s 192.168.60.240

停止运行dhclient:

[root@linuxcool ~]# dhclient -x
Killed old client process


dhcpd命令 运行DHCP服务器

 

dhcpd命令的作用是可以运行DHCP服务器。

在启动dhcpd命令时它会读取dhcpd.conf文件,并将每个子网上的可用地址存储在内存中。当客户端使用DHCP协议请求地址时,dhcpd命令会为其分配地址。

每个客户都分配了一个租约时间,租约在管理员选择的时间(默认为一天)后到期。在租约到期之前,应将分配了租约的客户端进行续订IP地址续订。

语法格式:dhcpd [参数] [网络接口]

常用参数:

-p <端口> 指定dhcpd监听的端口
-f 作为前台进程运行dhcpd
-d 启用调试模式
-q 在启动时不显示版权信息
-t 简单地测试配置文件的语法是否正确的,但不会尝试执行任何网络操作
-T 可以用来测试租约数据库文件
-4 运行DHCP服务器
-6 运行DHCPv6服务器
-s <服务器> 指定发送回复的服务器
-cf <配置文件> 指定配置文件
-lf <租约文件> 指定租约文件
-pf <PID文件> 指定PID文件
-tf <跟踪输出文件> 指定文件记录DHCP服务器的整个启动状态

参考实例

对DHCP服务器进行排错:

[root@linuxcool ~]# dhcpd

指定发送回复的服务器:

[root@linuxcool ~]# dhcpd -s 192.168.20.20

启用调试模式:

[root@linuxcool ~]# dhcpd -d

指定dhcpd监听的端口:

[root@linuxcool ~]# dhcpd -p 53


dhcrelay命令 提供中继DHCP和BOOTP请求

 

dhcrelay命令可以提供中继DHCP和BOOTP请求,从一个没有DHCP服务器的子网直接连接到其它子网内的一个或多个DHCP服务器。该命令在DHCP中继服务器上使用,同时支持DHCPv4/BOOTP和DHCPv6协议。

DHCP中继代理在一个或多个接口上侦听来自客户端或其他中继代理的DHCPv4或DHCPv6查询,并将其传递到指定的“上游”服务器或中继代理。从上游接收到答复后,会将其组播或单播发送回原始请求的源。

语法格式:  dhcrelay [参数] [DHCP服务器]

常用参数:

-c <跳数> 当转发数据包时,dhcrelay丢弃已经达到一个最大跳数的数据包。默认值是10,最大值是255
-4 运行dhcrelay命令作为DHCPv4/BOOTP中继代理。这是默认操作模式
-6 运行dhcrelay命令作为DHCPv6中继代理
-q 安静模式
-p <端口> 监听和发送端口。DHCPv4/BOOTP默认端口是67,DHCPv6默认端口是547
-A <长度> 指定发送到DHCP服务器的最大数据包大小
-d 强制dhcrelay命令作为前台进程运行

参考实例

指定DHCP服务器:

[root@linuxcool ~]# dhcrelay 192.168.20.4

指定到DHCP服务器的最大挑数:

[root@linuxcool ~]# dhcrelay -c 15 192.168.20.4

发送到DHCP服务器的最大数据包:

[root@linuxcool ~]# dhcrelay -A 2048 192.168.20.4


dig命令 查询域名DNS信息

 

dig命令的全称是“domain information groper”,它是一个用来灵活查询DNS的工具,它会打印出DNS域名服务器的回应,dig命令主要用来从DNS域名服务器查询主机地址信息。

dig命令与nslookup命令功能基本相同,但是dig命令灵活性好、易用、输出清晰。

语法格式: dig [参数] [IP]

常用参数:

@ 指定进行域名解析的域名服务器
-b 使用指定的本机ip地址向域名服务器发送域名查询请求
-f 指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息
-p 指定域名服务器所使用端口号
-t 指定要查询的DNS数据类型(默认为A)
-x 执行逆向域名查询
-4 使用ipv4(默认)
-6 使用ipv6
-h 显示命令帮助信息

参考实例

查询对应域名的ip:

[root@linuxcool ~]# dig www.linuxcool.com

对目标ip进行反向解析查询:

[root@linuxcool ~]# dig -x 166.111.4.100

查询目标域名的MX记录:

[root@linuxcool ~]# dig -t MX linuxcool.com


dip命令 用于IP拨号连接

 

dip命令是一种linux网络通讯命令,可以用于IP拨号连接。dip命令可以控制调制解调器,以拨号IP的方式建立对外的双向连接。

语法格式: dip [参数]

常用参数:

-a 询问用户名称与密码
-i  启动拨号服务器功能
-k  删除执行中的dip程序
-l  指定要删除的连线,必须配合-k参数一起使用
-m 设置最大传输单位,预设值为296
-p 设置通信协议
-t  进入dip的指令模式
-v 执行时显示详细的信息

参考实例

建立拨号连接:

[root@linuxcool ~]# dip -t  

启动拨号服务器功能:

[root@linuxcool ~]# dip -i

设置通信协议为http:

[root@linuxcool ~]# dip -p "http"


dnsconf命令 设置DNS服务器组态

 

dnsconf命令实际上为linuxconf的符号连接,提供图形的操作方式,供管理员管理DNS服务器。

语法格式:dnsconf [参数] [域]

常用参数:

--deldomain 删除域
--delsecondary 删除次级域
--newdomain 新增域
--set 新增主机记录
--setcname 设置NAME
--unset 删除DNS中某台主机的记录

参考实例:

删除域:

[root@linuxcool ~]# dnsconf --deldomain www.linuxcool.com

新增主机记录:

[root@linuxcool ~]# dnsconf --set www.linuxcool.com 1.1.1.1 


domainname命令 显示和设置系统的NIS域名

 

domainname命令作用是显示或设置当前网络信息服务(NIS)域的名称。如果不指定参数domainname命令则显示当前NIS域的名称,一个域通常包含同一管理器下的一组主机。

注意:只有 root 用户可以通过domainname命令的参数设置域名。

语法格式: domainname [参数] [域名]

常用参数:

-v 详细信息模式
-F 指定读取域名信息的文件
-s 短主机域名
-I 主机的ip地址
-y NIS域名

参考实例

查看当前系统域名:

[root@linuxcool ~]# domainname
(none)

设置并查看当前系统域名:

[root@linuxcool ~]# domainname linuxcool.com
[root@linuxcool ~]# domainname
linuxcool.com

查看主机ip地址:

[root@linuxcool ~]# domainname -I
192.168.122.1 


efax命令 收发传真

 

efax命令用于收发传真;支持Class 1与Class 2的调制解调器来收发传真。

语法格式:efax [参数]

常用参数:

-r   在接收传真时,将每页分别保存成文件
-v   选择要印出的信息类型
-w   不要接听电话,等待OK或CONNECT的信号

参考实例

不要接听电话,等待OK或CONNECT的信号:

[root@linuxcool ~]# efax -w

在接收传真时,将每页分别保存成文件test.txt:

[root@linuxcool ~]# efax -r test.txt 


elinks命令 网络应用

 

elinks命令能实现一个纯文本界面的WWW浏览器。

语法格式:elinks [参数]

常用参数:

-anonymous 使用匿名帐号方式
-auto-submit 对于偶然遇到的第一个表单是否自动提交
-config-dir 指定elinks指令运行时读取和写入自身的配置和运行状态的存放目录
-dump 将HTML文档以纯文本的方式打印到标准输出设备
-version 显示指令的版本信息
-h 显示帮助信息

参考实例

使用匿名帐号方式:

[root@linuxcool ~]# elinks -anonymous www.linuxprobe.com

对于偶然遇到的第一个表单是否自动提交:

[root@linuxcool ~]# elinks -auto-submit www.linuxprobe.com

指定elinks指令运行时读取和写入自身的配置和运行状态的存放目录:

[root@linuxcool ~]# elinks -config-dir www.linuxprobe.com

将HTML文档以纯文本的方式打印到标准输出设备:

[root@linuxcool ~]# elinks -dump www.linuxprobe.com


elm命令 纯文本邮件客户端程序

 

elm命令是ELectronic Mail单词的缩写,是一个E-mail客户端管理程序,它提供了纯文本交互式全屏幕界面。elm命令中不但提供了方便的键盘功能,还有一个在屏幕下方的命令帮助。

elm命令在运行时使用小键盘的箭头来选择要处理的邮件,直接按回车键阅读邮件。

语法格式:  elm [参数]

常用参数:

-s<邮件主题> 指定新邮件的邮件主题
-f<目录> 开启程序时,读取指定的目录
-h 显示帮助
-i<文件名> 将文件内容插入送出的邮件中
-m 进入elm后,不显示指令说明
-v 显示elm的版本信息
-z 若收件信箱没有邮件,则不启动elm程序

参考实例

查看E-mail:

[root@linuxcool ~]# eml

进入elm后,不显示指令说明:

[root@linuxcool ~]# eml -m

将文件内容插入送出的邮件中:

[root@linuxcool ~]# eml -i linuxcool.txt


fping命令 检测主机是否存在

 

fping类似于ping(ping是通过ICMP(网络控制信息协议InternetControl Message Protocol)协议回复请求以检测主机是否存在)。fping与ping不同的地方在于,fping可以在命令行中指定要ping的主机数量范围,也可以指定含有要ping的主机列表文件。

语法格式: fping [参数]

常用参数:

-a 显示存活的(alive)
-g 指定一个范围(group)
-u 显示不存活的(unreacheable)

参考实例

检测192.168.1.1到192.168.1.10之间的主机是否存在:

[root@linuxcool ~]# fping -a -g 192.168.1.1 192.168.1.10

检测192.168.1.1/24的主机是否存在:

[root@linuxcool ~]# fping -a -g 192.168.1.1/24  

将IP列表放在一个文件里面,通过读取文件来检测列表里的主机是否存在:

[root@linuxcool ~]# fping -a -f ip.txt 

检测www.linuxcool.com是否存在:

[root@linuxcool ~]# fping www.linuxcool.com 


ftptop命令 显示服务器的连接状态

 

ftptop命令的作用是使用top命令的显示风格显示服务器的连接状态。

语法格式:ftptop [参数]

常用参数:

-D 过滤正在下载的会话
-S 仅显示虚拟主机的连接状态
-d 指定屏幕刷新时间(默认2秒)
-U 过滤正在上传的会话

参考实例

显示服务器连接状态:

[root@linuxcool ~]# ftptop

过滤正在下载的会话:

[root@linuxcool ~]# ftptop -D

指定屏幕刷新时间为1秒:

[root@linuxcool ~]# ftptop -d 1


getty命令 用于设置终端机模式

 

getty命令用于设置终端机模式,连线速率和管制线路。

getty命令是UNIX之类操作系统启动时所必须的3个步骤之一 ,用来开启终端,进行终端的初始化,设置终端。 getty 命令设置和管理终端线路和端口。getty 命令由 init 命令来运行。getty 命令与终端状态管理员程序相链接。终端状态管理员程序提供了终端控制和登录的复合功能。 当作为 getty 命令调用时,终端状态管理员程序提供了通常的端口管理功能。

语法格式: getty [参数]

常用参数:

-c 指定定义配置文件,预设为/etc/gettydefs
-d 指定组态配置文件,预设为/etc/conf.getty
-h 当传输速率为0时就强制断线
-r 设置延迟时间
-t 设置等待登入的时间
-w 设置等待回应的字符串

参考实例

开启终端:

[root@linuxcool ~]# getty tty7  


gluster命令 Gluster控制台管理工具

 

gluster是一个免费的开源软件可扩展网络文件系统,Gluster Console Manager是一个用于弹性卷管理的命令行实用程序。您可以在任何出口服务器上运行gluster命令。该命令使管理员能够执行云操作,如创建、扩展、收缩、重新平衡和迁移卷,而无需安排服务器停机。

语法格式:gluster [参数]

常用参数:

peer probe 节点 添加节点
peer detach 节点 删除节点
peer status 节点 节点状态
volume start 卷名 启动卷
volume stop 卷名 停止卷
volume delete 卷名 删除卷
volume list 列出卷
volume info 查看卷信息
volume status 查看卷状态

参考实例

查看所有节点的基本状态(显示的时候不包括本节点):

[root@linuxcool ~]# gluster peer status

列出集群中的所有卷:

[root@linuxcool ~]# gluster volume list

查看集群中的卷信息:

[root@linuxcool ~]# gluster volume info

查看集群中的卷状态:

[root@linuxcool ~]# gluster volume status


host命令 域名查询

 

host命令是一个用于执行DNS查找的简单实用程序。它通常用于将名称转换为IP地址,反之亦然。 如果没有给出参数或选项,host将打印其命令行参数和选项的简短摘要。

语法格式: host [参数]

常用参数:

-a 显示详细的DNS信息
-c 指定查询类型,默认值为“IN”
-C 查询指定主机的完整的SOA记录
-r 不使用递归的查询方式查询域名
-t 指定查询的域名信息类型
-v 显示指令执行的详细信息
-w 如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答
-W 指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息则退出
-4 使用IPv4查询传输 (默认)
-6 使用IPv6查询传输

参考实例

查询域名对应的IP地址:

[root@linuxcool ~]# host linuxcool.com

显示执行域名查询的详细信息:

[root@linuxcool ~]# host -v linuxcool.com

查询域名的MX信息:

[root@linuxcool ~]# host -t MX linuxcool.com


htpasswd命令 管理用户基本认证文件

 

htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。

语法格式:htpasswd [参数] [用户和密码]

常用参数:

-c 创建一个加密文件
-n 不更新加密文件,只将加密后的用户名密码显示在屏幕上
-m 默认采用MD5算法对密码进行加密
-d 采用CRYPT算法对密码进行加密
-p 不对密码进行进行加密,即明文密码
-s 采用SHA算法对密码进行加密
-b 在命令行中一并输入用户名和密码而不是根据提示输入密码
-D 删除指定的用户

参考实例

添加用户并设置密码:

[root@linuxcool ~]# htpasswd -bc .passwd linuxcool 123456

在上面生成的密码文件中添加一个用户并设置密码 :

[root@linuxcool ~]# htpasswd -b .passwd linuxprobe 123456

删除用户名和密码:

[root@linuxcool ~]# htpasswd -D .passwd linuxcool

修改密码:

[root@linuxcool ~]# htpasswd -D .passwd linuxcool
[root@linuxcool ~]# htpasswd -b .passwd linuxcool 654321


httpd命令 Apache HTTP服务器程序

 

httpd为Apache HTTP服务器程序。直接执行程序可启动服务器的服务。

语法格式:httpd [参数]

常用参数

-t 测试配置文件的语法是否正确
-l 显示服务器编译时所包含的模块
-L 显示httpd指令的说明
-S 显示配置文件中的设定
-D 指定要传入配置文件的参数

参考实例

检查配置文件语法错误:

[root@linuxcool ~]# httpd -t 

启动httpd服务:

[root@linuxcool ~]# httpd

显示编译模块:

[root@linuxcool ~]# httpd -l 

显示配置文件:

[root@linuxcool ~]# httpd -L>1.log|tail -n 20 1.log 

显示配置文件中的设定:

[root@linuxcool ~]# httpd -S


ifcfg命令 配置网络接口

 

ifcfg命令是一个Bash脚本程序,用来设置linux中的网络接口参数。

语法格式: ifcfg [参数]

常用参数:

网络接口 指定要操作的网络接口
add/del 添加或删除网络接口上的地址
ip地址 指定IP地址和子网掩码
Stop 停用指定的网络接口的IP地址

参考实例

停止指定网络接口上的IP地址:

[root@linuxcool ~]# ifcfg eth0 stop

为网络接口配置IP地址:

[root@linuxcool ~]# ifcfg eth1 add 192.168.60.11/24

为网口删除网络地址:

[root@localhost ~]# ifcfg eth0 delete 192.168.10.250/24


ifconfig命令 显示或设置网络设备

 

ifconfig命令的英文全称是“network interfaces configuring”,即用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

语法格式:ifconfig [参数]

常用参数:

add<地址> 设置网络设备IPv6的IP地址
del<地址> 删除网络设备IPv6的IP地址
down 关闭指定的网络设备
up 启动指定的网络设备
IP地址 指定网络设备的IP地址

参考实例

显示网络设备信息:

[root@linuxcool ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:56:0A:0B:0C
inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fe0a:b0c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:172220 errors:0 dropped:0 overruns:0 frame:0
TX packets:132379 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:87101880 (83.0 MiB) TX bytes:41576123 (39.6 MiB)
Interrupt:185 Base address:0x2024
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2022 errors:0 dropped:0 overruns:0 frame:0
TX packets:2022 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2459063 (2.3 MiB)
TX bytes:2459063 (2.3 MiB)

启动关闭指定网卡:

[root@linuxcool ~]# ifconfig eth0 down
[root@linuxcool ~]# ifconfig eth0 up

为网卡配置和删除IPv6地址:

[root@linuxcool ~]# ifconfig eth0 add 33ffe:3240:800:1005::2/64
[root@linuxcool ~]# ifconfig eth0 del 33ffe:3240:800:1005::2/64

用ifconfig修改MAC地址:

[root@linuxcool ~]# ifconfig eth0 down
[root@linuxcool ~]# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
[root@linuxcool ~]# ifconfig eth0 up
[root@linuxcool ~]# ifconfig eth1 hw ether 00:1D:1C:1D:1E
[root@linuxcool ~]# ifconfig eth1 up

配置IP地址:

[root@linuxcool ~]# ifconfig eth0 192.168.1.56 
[root@linuxcool ~]# ifconfig eth0 192.168.1.56 netmask 255.255.255.0
[root@linuxcool ~]# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255


ifdown命令 禁用网络接口

 

ifdown命令用于禁用指定的网络接口。该命令会去读取/etc/sysconfig/network-scripts/目录下的相关网络接口的配置文件,并根据配置文件的内容来关闭该网络接口。

注意:网络接口名称必须是/etc/sysconfig/network-scripts/目录配置文件中设置的才可以。如果使用ifconfig命令改变了网络接口后,ifdown命令就不会识别了。因为ifdown命令会对比当前网络的参数与/etc/sysconfig/network-scripts/中配置文件的内容是否相符。

语法格式:ifdown [网络接口]

常用参数:

网络接口 要禁用的网络接口

参考实例

禁用网络接口eth0:

[root@linuxcool ~]# ifdown eth0


ifstat命令 统计网络信息

 

ifstat命令就像iostat/vmstat描述其它的系统状况一样,是一个统计网络接口活动状态的工具。ifstat工具系统中并不默认安装,需要自己下载源码包,重新编译安装,使用过程相对比较简单。

语法格式:ifstat [参数]

常用参数:

-p 优化打印
-a 忽略历史记录
-e 显示错误信息
-r 重置历史记录

参考实例

使用-p参数打印网络接口流量信息:

[root@linuxcool ~]# ifstat -p

使用-a参数忽略历史记录:

[root@linuxcool ~]# ifstat -a

使用-e参数显示网络接口错误信息:

[root@linuxcool ~]# ifstat -e


iftop命令 套接字及进程的网络利用率

 

iftop是一款实时流量监控工具,监控TCP/IP连接等,缺点就是无报表功能。必须以root身份才能运行。

语法格式:iftop [参数]

常用参数:

-i 指定要监控的网卡
-n 直接显示IP, 不进行DNS反解析

参考实例

默认监控第一块网卡的流量:

[root@linuxcool ~]# iftop 

监控eth1网卡的流量:

[root@linuxcool ~]# iftop eth1

直接显示IP, 不进行DNS反解析:

[root@linuxcool ~]# iftop -n

 


ifup命令 激活网络接口

 

ifup命令用于激活指定的网络接口。ifup命令会去读取/etc/sysconfig/network-scripts/目录下的相关网络接口的配置文件,并根据配置文件的内容来激活该网络接口。

注意:网络接口名称必须是/etc/sysconfig/network-scripts/目录配置文件中设置的才可以。如果使用ifconfig命令改变了网络接口后,ifup命令就不会识别了。因为ifup命令会对比当前网络的参数与/etc/sysconfig/network-scripts/中配置文件的内容是否相符。

语法格式:ifup [网络接口]

常用参数:

网络接口 要激活的网络接口

参考实例

激活网络接口eth0:

[root@linuxcool ~]# ifup eth0


ipcalc命令 简单的IP地址计算器

 

ipcalc命令的全称是:Calculate IP information for a host(计算主机的IP信息)

ipcalc命令是一个简单的ip地址计算器,可以完成简单的IP地址计算任务。

语法格式: ipcalc [参数] [IP地址]

常用参数:

-b 由给定的IP地址和网络掩码计算出广播地址
-h 显示给定IP地址所对应的主机名
-m 由给定的IP地址计算器网络掩码
-p 显示给定的掩码或IP地址的前缀
-n 由给定的IP地址和网络掩码计算网络地址
-s 安静模式,不显示任何错误信息
--help 显示帮助信息

参考实例

计算给定掩码的前缀 :

[root@linuxcool ~]# ipcalc -p 192.168.88.56 255.255.255.0
PREFIX=24

给定IP和网络掩码计算网络地址 :

[root@linuxcool ~]# ipcalc -n 192.168.88.56 255.255.255.0
NETWORK=192.168.88.0

给定IP显示对应的主机名:

[root@linuxcool ~]# ipcalc -h 223.5.5.5
HOSTNAME=public1.alidns.com

使用多个参数计算给定IP的网络掩码,广播地址,网络地址:

[root@linuxcool ~]# ipcalc -m -b -n 119.29.29.29/28
NETMASK=255.255.255.240
BROADCAST=119.29.29.31
NETWORK=119.29.29.16


iptables命令 内核包过滤与NAT管理工具

 

iptables命令是linux系统中在用户空间中运行的运来配置内核防火墙的工具。它可以设置,维护和检查linux内核中的ipv4包过滤规则和管理网络地址转换(NAT)。

ipatbles命令仅仅是用户空间的linux内核防火墙管理工具,真正的功能实现是由linux内核模块实现的。在配置服务器策略前必须加载相应的内核模块。在linux的2.6内核中仅支持ipatbles。

ipatbles命令仅支持ipv4,如果使用的IP协议是ipv6则需要使用专门的管理工具ip6tables。

语法格式: iptables [参数]

常用参数:

-t<表> 指定要操纵的表
-A 向规则链中追加条目
-D 从规则链中删除条目
-I 向规则链中插入条目
-R 替换规则链中的相应条目
-L 显示规则链中的已有条目
-F 清除规则链中的现有条目。不改变规则链的默认目标策略
-Z 清空规则链中的数据包计数器和字节计数器
-N 创建新的用户自定义规则链
-P 定义规则链中的默认目标(策略)
-h 显示帮助信息
-p<协议> 指定要匹配的数据包的协议类型
-s<源地址> 指定要匹配的数据包的源IP地址
-j<目标> 指定要跳转的目标
-i<网络接口> 指定数据包进入本机的网络接口
-o<网络接口> 指定数据包离开本机做使用的网络接口
-c<包计数> 在执行插入、追加和替换操作时初始化包计数器和字节计数器

参考实例

显示内核当前的filter表:

[root@linuxcool ~]# iptables -L

显示内核当前的nat表:

[root@linuxcool ~]# iptables -L -t nat

禁止本机对192.168.20.20地址的访问:

[root@linuxcool ~]# iptables -t filter -A OUTPUT -d 192.168.20.20 -j DROP

显示filter表的OUTPUT链:

[root@linuxcool ~]# iptables -L OUTPUT -t filter


iptraf-ng命令 交互式彩色IP LAN监视器

 

iptraf-ng命令是一个基于ncurses的IP LAN监视器,可生成各种网络统计信息,包括TCP信息,UDP计数,ICMP和OSPF信息,以太网负载信息,节点统计信息,IP校验和错误等等。

语法格式: iptraf-ng [参数] [接口]

常用参数:

--d 允许您立即启动指定接口上的详细信息(iface)
--z 显示指定接口上的数据包计数大小
-i 立即在指定接口启动IP流量监视器。如果指定了“-i all”,则所有接口上
--z 显示指定接口上的数据包计数大小
-u 允许使用不受支持的接口作为以太网设备。 如果更改了接口的名称,则需要这样做
-g 立即启动常规接口统计

参考实例

立即启动指定接口上的详细信息:

[root@linuxcool ~]# iptraf-ng -d eth5

显示数据包计数大小:

[root@linuxcool ~]# iptraf-ng -z eth5

立即启动常规接口统计:

[root@linuxcool ~]# iptraf-ng -g eth5


iptraf命令 实时监视网卡流量

 

iptraf命令的全拼是“IP traffic monitor”,iptraf命令可以实时地监视网卡流量,可以生成网络协议数据包信息、以太网信息、网络节点状态和ip校验和错误等信息。

iptraf命令支持命令行和菜单操作两种方式,当不带任何参数是iptraf命令将进入菜单操作方式,通过屏幕菜单来执行相应操作。

语法格式:iptraf [参数] [网卡]

常用参数:

-i 立即在指定网络接口上开启IP流量监视
-g 立即开始生成网络接口的概要状态信息
-d 在指定网络接口上立即开始监视明细的网络流量信息
-s 在指定网络接口上立即开始监视TCP和UDP网络流量信息
-z 在指定网络接口上显示包计数
-l 在指定网络接口上立即开始监视局域网工作站信息
-t 指定命令监视的时间
-B 将标注输出重新定向到“/dev/null”,关闭标注输入,将程序作为后台进程运行
-f 清空所有计数器
-h 显示帮助信息

参考实例

监视网卡eth0的详细流量:

[root@linuxcool ~]# iptraf -d eth0

监视网卡eth0的详细ip流量:

[root@linuxcool ~]# iptraf -i eth0

监视网卡eth0的详细tcp/udp流量:

[root@linuxcool ~]# iptraf -s eth0 


iptstate命令 以top风格显示内核的iptables状态

 

iptstate命令以top命令类似的风格实时显示Linux内核中iptables的工作状态。输出信息可以以任何字段进行排序,可以定义状态刷新的频率和单次显示状态信息。

语法格式: iptstate [参数]

常用参数:

-b 指定输出信息的排序规则
-d 不动态的改变窗口大小
-f 过滤本地回送消息
-h 显示帮助消息
-l 将IP地址解析为域名
-L 隐藏于DNS查询相关的状态
-r<秒数> 指定刷新屏幕的频率
-R 反序排序
-s 单次运行模式,仅打印一次状态信息
-t 显示汇总信息

参考实例

以top风格实时显示iptables的工作状态:

[root@linuxcool ~]# iptstate

显示汇总消息:

[root@linuxcool ~]# iptstate -t

指定屏幕刷新的频率为5秒:

[root@linuxcool ~]# iptstate -r 5

打印状态信息:

[root@linuxcool ~]# iptstate -s


ipvsadm命令 linux 虚拟服务器管理

 

ipvsadm命令用于在Linux内核中设置,维护或检查虚拟服务器表。 Linux虚拟服务器可用于基于两个或更多节点的集群构建可伸缩网络服务。 群集的主节点将服务请求重定向到将实际执行服务的服务器主机集合。 支持的功能包括两种协议(TCP和UDP),三种数据包转发方法(NAT,隧道和直接路由),以及八种负载均衡算法(roundrobin,加权循环,最小连接,加权最小连接,基于位置) 最小连接,基于位置的最小连接,具有复制,目标哈希和源哈希)。

语法格式:ipvsadm [参数]

常用参数:

-A/--add-service 添加一条新的虚拟服务
-E/--edit-service 编辑虚拟服务
-D/--delete-service 删除虚拟服务
-C/--clear 清除所有的虚拟服务规则
-R/--restore 恢复虚拟服务规则
-S/--save 保存虚拟服务器规则
-a/--add-server 在一个虚拟服务中添加一个新的真实服务器
-e/--edit-server 编辑某个真实服务器
-d/--delete-server 删除某个真实服务器
-L/-l/--list 显示内核中的虚拟服务规则
-Z/--zero 将转发消息的统计清零
--set tcp/tcpfin/udp 配置三个超时时间(tcp/tcpfin/udp)
--start-daemon 启动同步守护进程。
--stop-daemon 停止同步守护进程 
-h/--help 显示帮助信息
-t/--tcp-service service-address TCP协议的虚拟服务
-u/--udp-service service-address UDP协议的虚拟服务
-f/--fwmark-service fwmark 说明是经过iptables 标记过的服务类型。
-s/--scheduler scheduler 使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc.
-p/--persistent [timeout] 持久稳固的服务。
-M/--netmask 指定客户地址的子网掩码
-r/--real-serverserver-address 真实的服务器
-g/--gatewaying 指定LVS 的工作模式为直接路由模式
-i/--ipip 指定LVS 的工作模式为隧道模式 
-m/--masquerading 指定LVS 的工作模式为NAT 模式 
-w/--weightweight 真实服务器的权值 
--mcast-interface interface 指定组播的同步接口 
-c/--connection 显示ipvs中目前存在的连接
-6: 如果fwmark用的是ipv6地址需要指定此选项。

参考实例

管理虚拟服务:

添加一个虚拟服务192.168.1.100:80,使用轮询算法:

[root@linuxcool ~]# ipvsadm -A -t 192.168.1.100:80 -s rr

修改虚拟服务的算法为加权轮询:

[root@linuxcool ~]# ipvsadm -E -t 192.168.1.100:80 -s wrr

删除虚拟服务:

[root@linuxcool ~]# ipvsadm -D -t 192.168.1.100:80

管理真实服务:

添加一个真实服务器192.168.1.123,使用DR模式,权重2:

[root@linuxcool ~]# ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.123 -g -w 2

修改真实服务器的权重:

[root@linuxcool ~]# ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.123 -g -w 5

删除真实服务器:

[root@linuxcool ~]# ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.123

查看统计:

查看当前配置的虚拟服务和各个RS的权重:

[root@linuxcool ~]# ipvsadm -Ln

查看当前ipvs模块中记录的连接(可用于观察转发情况):

[root@linuxcool ~]# ipvsadm -lnc

查看ipvs模块的转发情况统计:

[root@linuxcool ~]# ipvsadm -Ln --stats | --rate


ip命令 显示与操作路由

 

ip命令用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。

语法格式:ip [参数]

常用参数

-s 输出更详细的信息
-f 强制使用指定的协议族
-4 指定使用的网络层协议是IPv4协议
-6 指定使用的网络层协议是IPv6协议
-r 显示主机时,不使用IP地址,而使用主机的域名

参考实例

用ip命令显示网络设备的运行状态:

[root@linuxcool ~]# ip link list

使用-s参数输出更详细的信息:

[root@linuxcool ~]# ip -s link list

显示核心路由表:

[root@linuxcool ~]# ip route list
[root@linuxcool ~]# ip route show

显示邻居路由表:

[root@linuxcool ~]# ip neigh list
[root@linuxcool ~]# ip neigh show


jwhois命令 whois 客户端服务

 

jwhois命令是在Whois服务器上搜索命令行上要查询的域名主机。从Whois服务器的全局的配置文件具有一定的权威性,从Whois服务器上获取要查询的信息后,显示在命令行中。

语法格式:  jwhois [参数]

常用参数:

-v 输出详细调试信息
-c FILE 使用文件配置文件
-h HOST 显式查询主机
-n 禁用内容重定向
-s 禁用whois-servers.net支持
-a 禁用重新格式化查询
-i 禁用所有重定向而不隐藏
-p PORT 使用端口号(与主机连接)
-r 强制执行一个rwhois查询
-- -rwhois-display 设置rwhois查询中的显示选项
-- -rwhois-limit 设置要返回的最大匹配数

参考实例

查询域名信息:

[root@linuxcool ~]# jwhois www.linuxcool.com

使用指定端口号进行查询:

[root@linuxcool ~]# jwhois -p 8080 www.linuxcool.com

禁用内容重定向:

[root@linuxcool ~]# jwhois -n www.linuxcool.com


links命令 命令行web浏览器

 

links是一个文本模式的WWW浏览器,带有ncurses界面,支持颜色、正确的表格渲染、后台下载、菜单驱动的配置界面和slim代码,支持框架。可以将不同的文件格式与外部查看器关联。

通过外部客户端支持mailto:和telnet:。链接可以处理本地(文件://)或远程(http://或ftp://)URL。

 

语法格式

links [参数]

 

 

常用参数:

 

-g 以图形模式运行
-lookup 进行名称查找
-dump 将格式化文档写入标准输出
-display 设置X窗口显示

 

参考实例

 

以命令行模式查看网站内容:

[root@linux265 ~]# links https://linux265.com/course/linux-command-links

将格式化文档写入标准输出:

[root@linux265 ~]# links -dump https://linux265.com/course/linux-command-links


lnstat命令 显示Linux系统的网路状态

 

lnstat命令实际上是读取系统“/proc”中目录“/proc/net/stat”下面的文件,来显示当前主机的网络状态的。lnstat命令是rtstat命令的更新替代命令,功能更完善。

语法格式: lnstat [参数]

常用参数:

-c 指定显示网络状态的次数,每隔一定时间显示一次网络状态
-d 显示可用的文件或关键字
-i 指定两次显示网络状的间隔秒数
-k 只显示给定的关键字
-s 是否显示标题头
-w 指定每个字段所占的宽度
-h 显示帮助信息
-v 显示指令版本信息

参考实例

显示网络状态:

[root@linuxcool ~]# lnstat

显示命令支持的统计文件:

[root@linuxcool ~]# lnstat -d

过滤出只想要查看的关键字段信息:

[root@linuxcool ~]# lnstat -k arp_cache:entries,rt_cache:in_hit,arp_cache:destroys
arp_cach|rt_cache|arp_cach|
entries|  in_hit|destroys|
      6|       0|       2|


mailq命令 显示待发送的邮件队列

 

mailq命令作用是显示用户待发送的邮件队列,显示的每一个条目包括邮件队列id、邮件大小、加入队列时间、邮件发送者和接受者。如果邮件最后一次尝试后还没有将邮件投递出去,则显示发送失败的原因。

语法格式:mailq [参数]

常用参数:

–Ac 使用submit.cf配置文件,而不管邮件是否是初始提交
–qp<time> 设定睡眠时间。 默认为1秒
–q<name> 只处理名为name的队列组中的作业
-v 显示详细信息

参考实例

显示邮件发送队列:

[root@linuxcool ~]# mailq

显示邮件发送队列详细信息:

[root@linuxcool ~]# mailq -v

使用submit.cf配置文件执行操作:

[root@linuxcool ~]# mailq -Ac


mailstat命令 显示到达的邮件状态

 

mailstat命令用来显示到达的邮件状态。它显示的邮件状态是基于邮件的日志文件。

mailstat命令需要读取邮件日志文件来显示邮件状态,所以需要在命令行中给出邮件日志文件的具体位置。默认情况下,mailstat命令会在显示邮件状态后将邮件日志文件清空。

语法格式: mailstat [参数] [日志文件]

常用参数:

-k 保持邮件日志文件的完整性,不清空日志文件
-l 使用长格式显示邮件状态
-m 合并任何错误信息到一行中显示
-o 使用老的邮件日志邮件
-t 使用简洁的格式显示邮件状态
-s 如果没有邮件则不输出任何信息

参考实例

显示邮件状态:

[root@linuxcool ~]# mailstat /var/log/maillog

使用长格式显示邮件状态:

[root@linuxcool ~]# mailstat -l /var/log/maillog

保留完整的邮件日志文件:

[root@linuxcool ~]# mailstat -k /var/log/maillog


mail命令 发送和接收邮件

 

mail命令是命令行的电子邮件发送和接收的工具。mail命令是个软链接,真实的程序文件是mailx。

语法格式:mail [参数]

常用参数:

-s 给邮件追加主题
-a 发送邮件附件,多个附件使用多次-a选项即可
-b 指定密件抄送的收信人地址
-c 指定抄送的收信人地址

参考实例

开启邮件服务(只有开启服务才能使用该命令 ) :

[root@linuxcool ~]# /etc/init.d/postfix start
Starting postfix:          [  OK  ]                                          

发一封标题为test的空信给后面的邮箱:

[root@linuxcool ~]# mail -s test test@linuxcool.com


mesg命令 设置终端机的写入权限

 

mesg命令用于设置当前终端的写入权限,即是否让其他用户向本终端发信息。将mesg设置y时,其他用户可利用write命令将信息直接显示在您的屏幕上。

语法格式: mesg [参数]

常用参数:

n 不允许其他用户将信息直接显示在你的屏幕上
允许其他用户将信息直接显示在你的屏幕上

参考实例

允许其他用户发信息到当前终端:

[root@linuxcool ~]# mesg y

不允许其他用户发信息到当前终端:

[root@linuxcool ~]# mesg n


mii-tool命令 网络设备协商工具

 

mii-tool命令是用于查看、管理介质的网络接口的状态,有时网卡需要配置协商方式,比如10/100/1000M的网卡半双工、全双工、自动协商的配置。

但大多数的网络设备是不用我们来修改协商,因为大多数网络设置接入的时候,都采用自动协商来解决相互通信的问题。不过自动协商也不是万能的,有时也会出现错误,比如丢包率比较高,这时就要我们来指定网卡的协商方式。mii-tool就是能指定网卡的协商方式。下面我们说一说mii-tool的用法。

语法格式:mii-tool [参数] [设备接口]

常用参数:

-v 显示网络接口的信息
-R 重设MII到开启状态
-r 重启自动协商模式
-w 查看网络接口连接的状态变化
-l 写入事件到系统日志
-A 指令特定的网络接口
-F 更改网络接口协商方式

参考实例

查看网络接口的协商状态:

[root@linuxcool ~]# mii-tool -v eth0

使用-F参数把网络接口eth0改为1000Mb/s全双工的模式:

[root@linuxcool ~]# mii-tool -F 100baseTx-FD

使用 -r 重启自动协商模式:

[root@linuxcool ~]# mii-tool -r eth0


mingetty命令 登入程序

 

mingetty命令是精简版的getty。 mingetty适用于本机上的登入程序。

语法格式:mingetty [参数]

常用参数:

--long-hostname 显示完整的主机名称
--noclear 在询问登入的用户名称之前不要清楚屏幕画面

参考实例

显示完整的主机名称:

[root@linuxcool ~]# mingetty -long-hostname gethostname()

在提示输入用户名之前不进行清屏操作 (通常屏幕被清除):

[root@linuxcool ~]# mingetty -noclear


minicom命令 通信程序

 

Linux minicom命令用于调制解调器通信程序。 minicom是一个相当受欢迎的PPP拨号连线程序。

语法格式:minicom [参数]

常用参数:

-d 启动或直接拨号
-s 开启程序设置画面

参考实例

启动或直接拨号编号为02的号码:

[root@linuxcool ~]# minicom -d 02

开启程序设置画面:

[root@linuxcool ~]# minicom -s


mutt命令 E-mail管理程序

 

mutt是一个文字模式的邮件管理程序,提供了全屏幕的操作界面。

它是一款基于文字界面的邮件客户端,非常小巧,但功能强大,可以用它来读写,回复保存和删除你的邮件,能在linux命令行模式下收发邮件附件。

语法格式:mutt [参数]

常用参数:

h 显示帮助
a 在邮件中加上附加文件
b 指定密件副本的收信人地址
c 指定副本的收信人地址
f 指定要载入的邮件文件
F 指定mutt程序的设置文件,而不读取预设的.muttrc文件

参考实例

将指定文件插入邮件内文中:

[root@linuxcool ~]# mutt -i /etc/home/test.txt

以只读的方式开启邮件文件:

[root@linuxcool ~]# mutt -R 

在邮件中加上附加文件:

[root@linuxcool ~]# mutt -a /etc/home/test.txt

发送邮件到linuxcool@mail.com 这个邮箱,邮件主题是“test”,邮件内容在 /root/test.txt 中,邮件中包含附件 /home/backup/test.sql:

[root@linuxcool ~]# mutt linuxcool@mail.com -s "test" -a /home/backup/test.sql 


mysqlshow命令 显示数据库、数据表和列信息

 

mysqlshow命令用于显示MySQL服务器中的数据库、表和列信息。

语法格式: mysqlshow [参数] [数据库]

常用参数:

-h MySQL服务器的IP地址或主机名
-u 连接MySQL服务器的用户名
-p 连接MySQL服务器的密码
--count 显示每个数据表中数据的行数
-k 显示数据库表的索引
-t 显示数据表的类型
-i 显示数据表的额外信息

参考实例

查看“newdb”数据库的信息:

[root@linuxcool ~]# mysqlshow -h localhost -u root -p  -t newdb

显示数据表的额外信息:

[root@linuxcool ~]# mysqlshow -h localhost -i -t newdb

显示每个数据表中数据的行数:

[root@linuxcool ~]# mysqlshow -h localhost --count -t newdb


nc命令 设置路由

 

nc命令是一个功能打包的网络实用程序,它通过命令行在网络上读取和写入数据;nc是为NMAP项目编写的,是目前已分裂的netcat家族的顶峰,它被设计成一个可靠的后端工具,可以立即为其他用户提供网络连接应用程序和用户。nc不仅可以使用IPv4和IPv6,而且可以为用户提供无限的潜在用途。

在nc的大量功能中,有能力将nc链接在一起;TCP、UDP和到其他站点的SCTP端口;支持SSL;通过socks4或HTTP代理(带有可选代理)进行代理连接身份验证);一些一般原则适用于大多数应用程序,因此使您能够立即向通常不支持它的软件添加网络支持。

语法格式:nc [参数]

常用参数:

-l 使用监听模式,管控传入的资料
-p 设置本地主机使用的通信端口
-s 设置本地主机送出数据包的IP地址
-u 使用UDP传输协议
-v 显示指令执行过程
-w 设置等待连线的时间
-z 使用0输入/输出模式,只在扫描通信端口时使用

参考实例

扫描80端口:

[root@linuxcool ~]# nc -nvv 192.168.3.1 80

扫描UDP端口:

[root@linuxcool ~]# nc -u -z -w2 192.168.0.1 1-1000

扫描TCP端口:

[root@linuxcool ~]# nc -v -z -w2 192.168.0.3 1-100


netconf命令 设置网络功能

 

netconf是Red Hat Linux发行版专门用来调整Linux各项设置的程序。

netconf是Red Hat Linux提供的Linuxconf的一部分,主要用于设置与网络相关的参数。它可以在consle下运行(文本菜单),也可以在X-Window中运行(图形界面)。

语法格式: netconf [参数]

常用参数:

缺省 调出网络配置界面
ethX 调出网卡eth x=0以上数字设置

参考实例

命令行下调出网络配置界面:

[root@linuxcool ~]# netconf 

命令行下调出网卡eth1配置界面并使之生效:

[root@linuxcool ~]# netconf eth1

[root@linuxcool ~]# service network restart

命令行下调出网卡eth0配置界面并使之生效:

[root@linuxcool ~]# netconf eth0

[root@linuxcool ~]# ifdown eht0
[root@linuxcool ~]# ifup eht0


nethogs命令 实时统计网络带宽使用率工具

 

nethogs是一个小型的net top工具,不像大多数工具那样拖慢每个协议或者是每个子网的速度而是按照进程进行带宽分组。NetHogs不需要依赖载入某个特殊的内核模块。如果发生了网络阻塞你可以启动NetHogs立即看到哪个PID造成的这种状况。这样就很容易找出哪个程序跑飞了然后突然占用你的带宽。

语法格式:nethogs [参数] [设备]

常用参数:

device(s) 要监控的设备,默认“eth0”
-d 以秒为单位的界面刷新频率。用于控制界面的更新速度。默认为一秒
-v 选择查看模式。参数mode的取值为:“0” = KB/s;“1” = total KB, “2” = total B, “3” = total MB。默认为“0”
-p 混杂模式的嗅探器
-t 追踪模式
--c 限制刷新的次数,通常与-t选项配合使用
-s 根据输出中的SENT列进行排序

参考实例

设置5秒刷新一次:

[root@linuxcool ~]# nethogs -d 5 

监视设备(eth0)的网络带宽:

[root@linuxcool ~]# nethogs eth0

使用追踪模式:

[root@linuxcool ~]# nethogs -t 


netstat命令 显示网络状态

 

netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

从整体上看,netstat的输出结果可以分为两个部分:一个是Active Internet connections,称为有源TCP连接,其中”Recv-Q”和”Send-Q”指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到;另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

语法格式:netstat [参数]

常用参数:

-a 显示所有连线中的Socket
-p 显示正在使用Socket的程序识别码和程序名称
-u 显示UDP传输协议的连线状况
-i 显示网络界面信息表单
-n 直接使用IP地址,不通过域名服务器

参考实例

显示详细的网络状况:

[root@linuxcool ~]# netstat -a

显示当前户籍UDP连接状况:

[root@linuxcool ~]# netstat -nu

显示UDP端口号的使用情况:

[root@linuxcool ~]# netstat -apu 
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:bootpc 0.0.0.0:* 4000/dhclient
udp 0 0 localhost:323 0.0.0.0:* 3725/chronyd
udp6 0 0 localhost:323 [::]:* 3725/chronyd

显示网卡列表:

[root@linuxcool ~]# netstat -i 
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 181864 0 0 0 141278 0 0 0 BMRU
lo 16436 0 3362 0 0 0 3362 0 0 0 LRU

显示组播组的关系:

[root@linuxcool ~]# netstat -g 
IPv6/IPv4 Group Memberships Interface
RefCnt Group
--------------- ------ ---------------------
lo 1 ALL-SYSTEMS.MCAST.NET
eth0 1 ALL-SYSTEMS.MCAST.NET lo 1 ff02::1
eth0 1 ff02::1:ff0a:b0c eth0 1 ff02::1


newaliases命令 文字模式转换

 

Linux newaliases命令会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫 redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程序负责分送的工作。

/etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的数据库。

使用权限:系统管理者。

语法格式:newaliases [参数]

常用参数:

-bi 将 /etc/aliases 转换成一个 sendmail 所能了解的数据库

参考实例

将 /etc/aliases 转换成一个 sendmail 所能了解的数据库:

[root@linuxcool ~]# newaliases -bi


nisdomainname命令 显示主机NIS的域名

 

nisdomainname命令用于显示主机NIS的域名。

注意区分DNS域名和NIS域名,前者为因特网的标准域名系统,后者则基本被淘汰,重要应用在中小型网络中。

语法格式:  nisdomainname [参数]

常用参数:

-v 详细信息模式

参考实例

显示本机的NIS域名:

[root@linuxcool ~]# nisdomainname -v

设置主机NIS的域名:

[root@linuxcool ~]# nisdomainname linuxcool


nmap命令 网络探测工具和安全和端口扫描器

 

nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个 主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,那些主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息), 它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核, 许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息,管理服务升级计划,以及监视主机和服务的运行。

除了所感兴趣的端口表,Nmap还能提供关于目标机的进一步信息,包括反向域名,操作系统猜测,设备类型,和MAC地址。

语法格式:nmap [参数]

常用参数:

--traceroute 扫描主机端口并跟踪路由
-p 扫描指定端口和端口范围
-sP 对目标主机进行ping扫描
-A 使用高级功能进行扫描
-PE 强制执行直接的ICMPping
-sV 探测服务版本信息
-d 增加调试信息地输出
-PU 发送udp ping
-ps 发送同步(SYN)报文

参考实例

扫描主机并跟踪路由:

[root@linuxcool ~]# nmap --traceroute www.linuxcool.com

使用-p参数探测80、443端口:

[root@linuxcool ~]# nmap -p80,443 www.linuxcool.com

探测服务器的1-10000端口范围:

[root@linuxcool ~]# nmap -p1-10000 www.linuxcool.com

使用-A参数进行高级扫描:

[root@linuxcool ~]# nmap -A www.linuxcool.com


nmblookup命令 通过TCP/IP客户端来查找NetBIOS名称

 

使用nmblookup命令可以通过TCP/IP客户端来查找NetBIOS名称。比方说可以查看windows主机的ip地址。

语法格式: nmblookup [参数] [名称]

常用参数:

-B 指定用于广播的地址
-usage 显示简要的用法信息
-d 设置调试级别

参考实例

显示NetBIOS名称为windows的主机的IP地址:

[root@linuxcool ~]# nmblookup -S windows

查找所有的主浏览器或域控制器:

[root@linuxcool ~]# nmblookup -M -192.168.0.200 MSBROWSE<01>

通过查询IP地址192.168.0.200来获得主机名:

[root@linuxcool ~]# nmblookup -A 192.168.0.200


nntpget命令 下载新闻组文章

 

执行nntpget命令将从指定的新闻组服务器下载文章。nntpget命令会从标准输入设备读取信息识别码,而下载的新闻文章则呈现到标准输出设备。

语法格式:nntpget [参数]

常用参数:

-d<组类型清单> 指定新闻组类型为distribution的清单
-f<文件或目录>  下载其更改时间较指定文件或目录的更改时间更接近现在的新闻文章
-n<组名称清单> 指定新闻组名称的清单
-o 下载本地主机所没有的新闻文章
-t<时间日期>  指定时间与日期,较该日期时间更新的新闻文章都会被下载
-u<文件或目录> 此参数的效果和指定”-f”参数类似,但它在成功下载文章之后会去更改指定文件或木的更改时间,便于下次再作为参考
-v 当命令执行时,把每篇文章的信息识别码都送到标准输出,本参数需配合参数”-o”使用

参考实例

下载指定日期的文章:

[root@linuxcool ~]# nntpget -t 2020.01.01

指定下载目录:

[root@linuxcool ~]# nntpget -u /linuxcool

显示下载具体信息:

[root@linuxcool ~]# nntpget -u -v /linuxcool


nslookup命令 域名查询

 

nslookup命令的英文全称为 “query Internet name server interactively ”。nslookup命令主要用来查询域名的DNS信息。在使用nslookup之前,先确保已经安装了它,nslookup属于bind-utils包下一个命令 。

nslookup有两种工作模式:“交互模式”和“非交互模式”。在命令行中直接输入nslookup,无需输入任何参数即进入交互模式,由“>”提示。

语法格式:nslookup [参数] [域名]

常用参数:

-sil 不显示任何警告信息
exit 退出命令
server 指定解析域名的服务器地址
set type=soa 设置查询域名授权起始信息
set type=a 设置查询域名A记录
set type=mx 设置查询域名邮件交换记录

参考实例:

在非交互模式下查询域名基本信息:

[root@linuxcool ~]# nslookup linuxcool.com
Server:         180.76.76.76
Address:        180.76.76.76#53
Non-authoritative answer:
Name:    linuxcool.com 
Address: 216.218.186.2
Name:    linuxcool.com
Address: 2001:470:0:76::2

进入交互模式下查询域名信息:

[root@linuxcool ~]# nslookup
>linuxcool.com
Server:         180.76.76.76
Address:        180.76.76.76#53 

Non-authoritative answer:
Name:   linuxcool.com
Address: 216.218.186.2
Name:   linuxcool.com
Address: 2001:470:0:76::2
>

在交互模式下使用“set”选项设置域名查询类型进行查询:

[root@linuxcool ~]# nslookup
>set type=mx     
>linuxcool.com
Server:         180.76.76.76
Address:        180.76.76.76#53 

Non-authoritative answer:
linuxcool.com  mail exchanger = 1 linuxcool.com.

Authoritative answers can be found from:
linuxcool.com  internet address = 216.218.186.2
linuxcool.com  has AAAA address 2001:470:0:76::2


ntpdc命令 查询NTP守护进程

 

ntpdc是一个实用程序,用于查询 ntpd(8) 的当前状态,并请求改变其状态。 它使用源代码中描述的 NTP mode 7 控制消息格式。程序既可以在交互模式下运行,也可以使用命令行参数。

通过ntpdc接口可以获得广泛的状态和统计信息。此外,几乎所有可以在启动时使用 ntpd 的配置文件指定的配置选项也可以在运行时指定。使用ntpdc的时间。

语法格式:ntpdc [参数]

常用参数:

-c command 在指定的主机上执行给定的命令
-i 强制ntpdc实用程序在交互模式下运行
-l 获取服务器已知的对等体列表
-n 以点阵数字格式输出所有主机地址,而不是转换为规范的主机名。
-p 打印服务器已知的对等体列表以及它们的状态摘要
-s 打印服务器已知的对等体列表以及它们的状态摘要。它的格式与-p选项略有不同。

参考实例

获取服务器已知的对等体列表:

[root@linuxcool ~]# ntpdc -l

打印服务器已知的对等体列表以及它们的状态摘要:

[root@linuxcool ~]# ntpdc -p

打印服务器已知的对等体列表以及它们的状态摘要,它的格式与-p选项略有不同:

[root@linuxcool ~]# ntpdc -s


ntpd命令 网络时间协议(NTP)守护进程

 

ntpd实用程序是一个操作系统守护程序,它可以设置和维护系统的时间与互联网标准时间服务器同步。它是RFC-5905定义的网络时间协议(NTP)第4版的完整实现,同时也是RFC-5905定义的网络时间协议(NTP)的完整实现。

语法格式:ntpd [参数]

常用参数:

-a 对广播客户端、多播客户端和对称被动关联进行加密认证
-A 广播客户端、多播客户端和对称被动关联不需要加密认证
-b 启用客户端同步到广播服务器
-c conffile 指定配置文件的名称和路径,默认为/etc/ntp/ntp.conf
-L 不要监听虚拟IP,默认是监听
-d 使用调试模式

参考实例

对广播客户端、多播客户端和对称被动关联进行加密认证:

[root@linuxcool ~]# ntpd -a

广播客户端、多播客户端和对称被动关联不需要加密认证:

[root@linuxcool ~]# ntpd -A

启用客户端同步到广播服务器:

[root@linuxcool ~]# ntpd -b


ntptrace命令 追踪NTP服务器链

 

ntptrace是一个 perl 脚本,它使用 ntpq 实用程序来跟踪从给定主机到主要时间源的 NTP 服务器链。为了使ntptrace正常工作,这些服务器中的每一个都必须实现RFC 1305中指定的NTP控制和监控协议,并启用NTP模式6数据包。

语法格式:ntptrace [参数]

常用参数:

-d 开启调试输出
-n 只打印主机IP地址,不打印主机名称
-r retries 设置每个主机的重传尝试次数。默认值为5

参考实例

只打印主机IP地址,不打印主机名称:

[root@linuxcool ~]# ntptrace -n

开启调试输出:

[root@linuxcool ~]# ntptrace -d

设置每个主机的重传尝试次数:

[root@linuxcool ~]# ntptrace -r www.linuxcool.com


open命令 启用虚拟终端

 

open命令的作用是可以启用虚拟终端,然后执行指定的命令。

虚拟终端类似于你目前使用的终端。它们用于执行命令和提供输入。唯一的区别是你不能将鼠标与虚拟终端一起使用。虚拟终端允许许多用户在同一台计算机上同时处理不同的程序。

当你登录linux服务器的时候,默认只能使用虚拟终端。此外,即便是普通的桌面环境,当你需要重新配置图形界面,或者图形界面因为内部异常等原因崩溃了的时候,你还可以切换到虚拟终端继续执行操作。

语法格式:open [参数] [命令]

常用参数:

-l 登录环境
-u 启用新的终端
-s 切换到终端
-v 显示详细信息
-w 进入等待状态
-c<终端号码> 指定终端 

参考实例

启用新的终端10,然后执行命令:

[root@linuxcool ~]# open -c 10 - date

显示终端详细信息:

[root@linuxcool ~]# open -v

使终端进入等待状态:

[root@linuxcool ~]# open -w


pine命令 收发电子邮件,浏览新闻组

 

pine是个以显示导向为住的邮件处理程序,包括一般电子邮件和新闻组的文章。pine也支持MIME格式,可让用户将MIME的对象保存成文件,甚至指定外挂程序直接开启对象。

语法格式:pine [参数]

常用参数:

-a 在UWIN中使用匿名模式
-attach<附件> 把指定的文件附加在信件里,一并夹带寄出
-attachlist<附件清单> 设置一份文件清单,把该清单内的文件全部附加到信件中,夹带寄出
-c<邮件编号>  直接开启指定编号的邮件
-o 设置收件箱为只读
-f<收件箱> 开启指定的接收信件箱,而非预设的INBOX收件箱
-F<文件>  直接浏览指定文件的内容
-n<邮件编号> 设置现在的邮件编号
-p<环境文件> 另外指定pine的环境文件

参考实例

设置邮箱只读:

[root@linuxcool ~]# pine -o xxx@linuxcool.com

浏览文件内容:

[root@linuxcool ~]# pine -F linuxcool.txt

开启指定的邮箱:

[root@linuxcool ~]# pine -f  xxx@linuxcool.com 


ping命令 测试主机间网络连通性

 

ping命令主要用来测试主机之间网络的连通性,也可以用于。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

不过值得我们注意的是:Linux系统下的ping命令与Windows系统下的ping命令稍有不同。Windows下运行ping命令一般会发出4个请求就结束运行该命令;而Linux下不会自动终止,此时需要我们按CTR+C终止或者使用-c参数为ping命令指定发送的请求数目。

语法格式:ping [参数] [目标主机]

常用参数:

-d 使用Socket的SO_DEBUG功能
-c 指定发送报文的次数
-i 指定收发信息的间隔时间
-I 使用指定的网络接口送出数据包
-l 设置在送出要求信息之前,先行发出的数据包
-n 只输出数值
-p 设置填满数据包的范本样式
-q 不显示指令执行过程
-R 记录路由过程
-s 设置数据包的大小
-t 设置存活数值TTL的大小
-v 详细显示指令的执行过程

参考实例

检测与linuxcool网站的连通性:

[root@linuxcool ~]# ping www.linuxcool.com

连续ping4次:

[root@linuxcool ~]# ping -c 4 www.linuxcool.com 

设置次数为4,时间间隔为3秒:

[root@linuxcool ~]# ping -c 4 -i 3 www.linuxcool.com

利用ping命令获取指定网站的IP地址:

[root@linuxcool ~]# ping -c 1 linuxcool.com | grep from | cut -d " " -f 4
220.181.57.216


ppp-off命令 关闭ppp连线

 

ppp-off命令是Slackware发行版内附的程序,让用户切断PPP的网络连线。

语法格式:ppp-off [参数]

参考实例

关闭ppp连线:

[root@linuxcool ~]# ppp-off


pppsetup命令 设置PPP连线

 

pppsetup命令用于设置PPP连线,这是Slackware发行版内附程序,它具有互动式的问答界面,让用户轻易完成PPP的连线设置。

语法格式:pppsetup

参考实例

设置ppp拨号:

[root@linuxcool ~]# pppsetup 


pppstats命令 用于显示PPP连线状态

 

pppstats命令用于显示PPP连线状态。

利用pppstats(point to point protocol status)指令可让你得知PPP连接网络的相关信息。

语法格式: pppstats [参数]

常用参数:

-a 显示绝对统计值。
-c<执行次数> 设置回报状况的次数。
-d  显示相对统计值。
-r  显示数据包压缩比率的统计值。
-v 显示VJTCP文件头的压缩效率统计值。
-w<间隔秒数>  设置显示统计信息的间隔时间。

参考实例

显示ppp的了连接状态 :

[root@linuxcool ~]# pppstats  


rdate命令 显示其他主机的日期与时间

 

执行rdate命令,向局域网或者网络上其他主机询问系统时间并打印显示出来。也可以将其他主机的时间同步为本机时间。

语法格式:rdate[参数] [IP]

常用参数:

-p 显示远端主机的日期与时间
-s 把从远端主机收到的日期和时间,回存到本地主机的系统时间
-u 传输协议使用UDP协议
-l 使用syslog显示错误信息
-t <时间> 设置超时时间

参考实例

获取”time.nist.gov”的时间:

[root@linuxcool ~]# rdate -p time.nist.gov
rdate: [time.nist.gov]    Sun Jun 30 00:45:51 2019

获取”time.nist.gov”的时间并同步为本机时间:

[root@linuxcool ~]# rdate -p -s time.nist.gov
rdate: [time.nist.gov]    Sun Jun 30 00:49:23 2019


rexec命令 远程执行指令客户端

 

rexec命令是远程执行命令服务器的客户端工具,向远程rexec服务器发出执行命令的请求。

rexec命令以客户机/服务器的模式运行。运行rexec命令时首先要启动远程主机上的rexec服务器。

语法格式:  rexec [参数] [远程主机或命令]

常用参数:

-a 表示远程命令的标准错误与标准输出相同,不支持发送任意信号到远程进程
-l<用户名> 指定连接远程rexec服务器的用户名
-p<密码> 指定连接远程rexec服务器的密码
-n 明确地提示输入用户名和密码

参考实例

在远程主机上执行date命令:

[root@linuxcool ~]# rexec linuxcool date

提示输入用户名和密码执行date命令:

[root@linuxcool ~]# rexec -n linuxcool date

使用密码执行date命令:

[root@linuxcool ~]# rexec -l uesrname -p password linuxcool date


route命令 显示并设置路由

 

route命令用来显示并设置linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。

在linux系统中设置路由通常是为了解决以下问题:该linux系统在一个局域网中,局域网中有一个网关,能够让主机访问Internet,那么就需要将这台机器的ip地址设置为linux机器的默认路由。

要注意的是:直接在命令行下执行route命令来添加路由,不会永久保存。当网卡重启或者机器重启之后,该路由就失效了。可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。

语法格式:route [参数]

常用参数:

-A 设置地址类型( 默认IPv4)
-C 打印linux核心的路由缓存
-v 详细信息模式
-n 不执行DNS反向查找,直接显示数字形式的ip地址
-e netstat格式显示路由表
-net 到一个网络的路由表
-host 到一个主机的路由表
Add 增加指定的路由记录
Del 删除指定的路由记录
Target 目的网络或目的主机
gw 设置默认网关
mss 设置TCP的最大区块长度(MSS),单位MB
window 指定通过路由表的TCP连接的TCP窗口大小
dev 路由记录所表示的网络接口

参考实例

显示当前路由:

[root@linuxcool ~]# route
Kernel IP routing table
Destination     Gateway      Genmask        Flags Metric Ref      Use Iface
default        _gateway      0.0.0.0         UG    100    0        0 ens192
192.168.60.0    0.0.0.0      255.255.255.0   U     100    0        0 ens192

添加一条路由记录:

[root@linuxcool ~]# route add -net 192.168.60.11 netmask 192.168.60.1 dev ens192

删除路由记录:

 [root@linuxcool ~]# route del -net 192.168.60.11 netmask 192.168.60.1 dev ens192 

添加和删除默认网关:

[root@linuxcool ~]# route add default gw 192.168.60.1
[root@linuxcool ~]# route del default gw 192.168.60.1


rpcinfo命令 查询RPC信息

 

rpcinfo命令的主要用途是利用RPC调用,访问RPC服务器,显示其响应信息,从而查询已注册的RPC服务。

语法格式:rpcinfo [参数] [主机]

常用参数:

-a 使用指定的传输层通用地址servaddr作为服务地址,探测指定程序号prognum的过程0,报告是否收到响应信息
-b 列出收到响应信息的所有主机
-d 从已注册的RPC服务中删除匹配指定程序号prognum与版本号versnum的服务
-I 显示指定主机中与指定程序号prognum和版本号versnum匹配的基于所有传输层协议的RPC服务列表
-m 以表格形式指定主机上rpcbind操作的统计数据
-s 显示注册到指定主机的所有RPC程序的简明列表

参考实例

显示已注册到本地系统的所有RPC服务:

[root@linuxcool ~]# rpcinfo

显示本地系统中注册到rpcbind协议版本2的所有RPC服务:

[root@linuxcool ~]# rpcinfo -p


samba命令 控制Samba服务器

 

samba为script文件,可启动,停止Samba服务器或回报目前的状态。 Samba是一套使用SMB(Server Message Block)协议的应用程序, 通过支持这个协议, Samba允许Linux服务器与Windows系统之间进行通信,使跨平台的互访成为可能。Samba采用C/S模式, 其工作机制是让NetBIOS( Windows 网上邻居的通信协议)和SMB两个协议运行于TCP/IP通信协议之上,并且用NetBEUI协议让Windows在“网上邻居”中能浏览Linux服务器。

samba服务器可实现如下功能:WINS和DNS服务; 网络浏览服务; Linux和Windows域之间的认证和授权; UNICODE字符集和域名映射;满足CIFS协议的UNIX共享等。 samba的主要目的就是用来沟通Windows与Unix这两种不同的作业平台。

语法格式: samba [参数]

常用参数:

start  启动Samba服务器的服务
stop 停止Samba服务器的服务
status 显示Samba服务器目前的状态
restart  重新启动Samba服务器

参考实例

启动Samba:

[root@linuxcool ~]# samba start 

停止Samba:

[root@linuxcool ~]# samba stop 

重新启动Samba:

[root@linuxcool ~]# samba restart 


sendmail命令 电子邮件传送代理

 

sendmail命令是一款著名的电子邮件传送代理程序,也就是平常所说的电子邮件服务器,它基于标准的简单邮件传送协议(SMTP)。

sendmail仅负责邮件的投递工作,不负责邮件的撰写和显示等功能。

语法格式: sendmail [参数]

常用参数:

-bd 以守护进程方式运行命令
-bD 以前台运行方式运行命令
-bi 初始化别名数据库
-bm 以常规发送电子邮件
-bp 显示邮件发送队列
-C<配置文件> 指定配置文件
-D<日志文件> 将调试的输出信息保存到指定日志文件,而不显示在标准输出设备上
-F<全名> 指定右键发送者全名
-f<名字> 指定发件人的名字
-n 禁止使用邮件别名功能
-q<时间间隔> 设置处理邮件队列中邮件的时间间隔

参考实例

以守护进程方式运行sendmail:

[root@linuxcool ~]# sendmail -bd

禁止使用邮件别名功能:

[root@linuxcool ~]# sendmail -n

向user1发送邮件:

[root@linuxcool ~]# sendmail -f user1

将调试的信息输出到test:

[root@linuxcool ~]# sendmail -D test

以前台方式运行命令:

[root@linuxcool ~]# sendmail -bD


setserial命令 设置或显示串口的相关信息

 

setserial命令可以用来设置串口或显示目前串口的状态信息。

语法格式:setserial [参数] [设备]

常用参数:

-a 显示详细信息
-b 显示摘要信息
-g 显示串口的相关信息
-G 以指令列表的格式来显示信息
-q 执行时显示较少的信息
-v 执行时显示较多的信息
-V 显示版本信息

参考实例

显示串口/dev/ttyS1的信息:

[root@linuxcool ~]# setserial -g /dev/ttyS1

显示串口/dev/ttyS1的简略信息:

[root@linuxcool ~]# setserial -q /dev/ttyS1 

显示串口/dev/ttyS1的信详细息:

[root@linuxcool ~]# setserial -a /dev/ttyS1  


sftp-server命令 sftp协议的服务器端程序

 

sftp-server命令是IETF draft-ietf-secsh-filexfer中定义的SSH文件传输协议的服务器端。它使用加密的方式进行文件传输。

sftp-server是sshd的子系统,不能直接运行。sftp-server命令行要在Subsystem 声明中指定。要启用sshd的sftp-server命令,要将相关命令行添加到/etc/ssh/sshd_config中。

语法格式: sftp-server [参数]

常用参数:

-- d<start_directory> 为用户指定备用起始目录
-e 日志记录信息打印到stderr
–f<log_facility> 指定记录日志时的设备代码
–l <log_level> 指定记录日志时的分类
-h 显示服务器使用情况信息
-P 指定黑名单列表
-p 指定白名单列表
-R 将服务器设置于只读模式
–u<umask> 用指定的umask创建的文件和目录
-m<force_file_perms> 设置要应用于新创建文件的显式文件权限

参考实例

运行sftp-server:

[root@linuxcool ~]# sftp-server

指定要记录日志的设备代码:

[root@linuxcool ~]# sftp-server -f LOCAL1

将服务器设置于只读模式:

[root@linuxcool ~]# sftp-server -R

显示服务器使用情况信息:

[root@linuxcool ~]# sftp-server -h


sftp命令 交互式的文件传输程序

 

sftp命令全称是Secure File Transfer Protocol。是一款交互式的文件传输程序,sftp命令的运行和使用方式与ftp命令相似,但是,sftp命令对传输的所有信息使用ssh加密,它还支持公钥认证和压缩等功能。

语法格式: sftp [参数] [IP或主机名]

常用参数:

-B 指定传输文件时缓冲区的大小
-l 使用ssh协议版本1
-b 指定批处理文件
-C 使用压缩
-o 指定ssh选项
-F 指定ssh配置文件
-R 指定一次可以容忍多少请求数
-v 升高日志等级

参考实例

使用sftp命令链接到服务器:

[root@linuxcool ~]# sftp 192.168.20.29 

指定传输文件是缓冲区大小:

[root@linuxcool ~]# sftp -B 512 192.168.20.29

在传输过程中使用压缩:

[root@linuxcool ~]# sftp -C 192.168.20.29


shapecfg命令 管制网络设备的流量

 

shapecfg命令用于管制网络设备的流量。自Linux-2.15开始,便支持流量管制的功能。

语法格式:shapecfg [参数]

常用参数:

attach  将流量管制器与实际的网络设备结合
speed 设置流量管制器的对外传输带宽

参考实例

管制网络设备的流量:

[root@linuxcool ~]# shapecfg attach [流量管制器] [网络设备] 


showmount命令 显示NFS服务器的加载信息

 

showmount命令查询“mount”守护进程,以显示NFS服务器的加载信息。

语法格式: showmount [参数]

常用参数:

-d 仅显示已被NFS客户端加载的目录
-e 显示NFS服务器上所有的共享目录

参考实例

获取已经被客户端加载的NFS共享目录:

[root@linuxcool ~]# showmount -d 61.163.231.197

获取NFS服务器的全部共享目录:

[root@linuxcool ~]# showmount -e 61.163.231.197


smbpasswd命令 修改用户SMB密码

 

smbpasswd命令属于samba套件,用户添加及删除samba用户和为用户修改密码。

因为samba用户是基于Linux的系统用户的,所以在添加samba用户前需要先创建Linux系统用户,否则添加samba用户将失败。

语法格式: smbpasswd [参数]

常用参数:

-a 向smbpasswd文件中添加用户
-c<配置文件> 指定samba的配置文件
-x 从smbpasswd文件中删除用户
-d 在smbpasswd文件中禁用指定的用户
-e 在smbpasswd文件中激活指定的用户
-n 将指定用户的密码置空

参考实例

添加samba用户sarah:

[root@linuxcool ~]# smbpasswd -a sarah

将sarah用户的密码置空:

[root@linuxcool ~]# smbpasswd -n sarah

激活用户user1:

[root@linuxcool ~]# smbpasswd -e user1

禁用用户user2:

[root@linuxcool ~]# smbpasswd -d user2

删除用户user2:

[root@linuxcool ~]# smbpasswd -x user2


speedtest-cli命令 测试服务器外网速度

 

speedtest-cli 是一个使用python编写的命令行脚本,通过调用speedtest.net测试上下行的接口来完成速度测试,最后我会测试运维生存时间所在服务器的外网速度。

语法格式:speedtest-cli [参数]

常用参数:

--share 分享你的网速,该命令会在speedtest网站上生成网速测试结果的图片
--list 根据距离显示speedtest.net的测试服务器列表
--server=SERVER 指定列表中id的服务器来做测试
--source=SOURCE 绑定服务器的源地址
--simple 仅显示基本信息

参考实例

列出所有在中国的测试服务器:

[root@linuxcool ~]# speedtest-cli --list | grep China

将速度测试的结果生成一张图片的连接,便于你分享 :

[root@linuxcool ~]# speedtest-cli --share 

以字节计算的方式来测试上下行速度:

[root@linuxcool ~]# speedtest-cli --bytes

只显示ping和上下行速度:

[root@linuxcool ~]# speedtest-cli --simple 

列出speedtest.net所有的服务器距离你的物理距离,单位是千米(km):

[root@linuxcool ~]# speedtest-cli --list 


squidclient命令 squid客户端管理工具

 

squidclient命令使用squid服务的客户端管理工具,它可以查看squid服务的详细运行信息和管理squid服务器。

使用squidclient命令钱必须先启动squid服务器。

语法格式: squidclient [参数]

常用参数:

-a 不包含“Accept:header”
-r 强制缓存重新加载URL
-s 安静模式,不输出信息到标准输出设备
-h<主机> 从指定主机获取URL,默认主机为“localhost”
-l<主机> 指定一个本地IP地址进行绑定
-p 端口号,默认为3128
-m<方法> 指定发送请求的方法,默认为“GET”
-u<用户名> 代理认证用户名
-p<密码> 代理认证密码
-u<用户名> WWW认证用户名
-p<密码> WWW认证密码

参考实例

显示可用的管理指令列表:

[root@linuxcool ~]# squidclient mgr:menu

从主机获取URL:

[root@linuxcool ~]# squidclient -h

绑定192.168.10.10:

[root@linuxcool ~]# squidclient -l 192.168.10.10

强制缓存重新加载URL:

[root@linuxcool ~]# squidclient - r

不输出信息到标准输出设备:

[root@linuxcool ~]# squidclient - s


squid命令 代理服务器守护进程

 

squid命令是使用最广泛的代理服务器软件,可以节省网络带宽,提高网站的访问速度,它对服务器硬件的内存要求比较高。

它支持FTP、Gopher和HTTP协议的数据对象。

语法格式: squid [参数]

常用参数:

-d<调试等级> 将指定调试等级的信息发送到标准错误设备
-f<配置文件> 使用指定的配置文件,而不使用默认配置文件
-k 向squid服务器发送指令
-s 启用syslog日志
-z 创建缓存目录
-C 不捕获致命信号
-D 不进行DNS参数测试
-N 以非守护进程模式运行
-X 强制进入完全调试模式

参考实例

创建缓存目录:

[root@linuxcool ~]# squid -z

不捕获致命信号:

[root@linuxcool ~]# squid -C

强制进入完全调试模式:

[root@linuxcool ~]# squid -X

启用syslog日志:

[root@linuxcool ~]# squid -s

关闭squid服务器:

[root@linuxcool ~]# squid -k shutdown


sshd命令 openssh服务器守护进程

 

sshd命令是opensshd软件套件中的服务器守护进程。

openssh套件在不安全的网络中为两台为信任的主机之间建立加密的数据通信,是rlogin、rsh等明文传输数据的通信工具的替代品。sshd指令是openssh套件中的核心程序,其他的指令(如,sftp-server、slogin、scp)等都是基于sshd命令的。

语法格式: sshd [参数]

常用参数:

-4 强制使用IPv4地址
-6 强制使用IPv6地址
-D 以非后台守护进程的方式运行服务器
-d 调试模式
-e 将错误发送到标准错误设备,而不是将其发送到系统日志
-f<配置文件> 指定服务器的配置文件
-g<登录过期时间> 指定客户端登录的过期时间(默认时间为120秒),如果在此期限内,用户没有正确认证,则服务器断开此客户端的连接
-h<主机key文件> 指定读取主机key文件
-i sshd以inetd方式运行
-o<选项> 指定sshd的配置选项
-p<端口> 指定使用的端口号
-q 静默模式,没有任何信息写入系统日志
-t 测试模式

参考实例

以调试模式运行sshd:

[root@linuxcool ~]# /usr/sbin/sshd -d

以测试模式运行sshd:

[root@linuxcool ~]# /usr/sbin/sshd -t 

强制使用IPv6地址:

[root@linuxcool ~]# sshd -6

查看sshd服务状态:

[root@linuxcool ~]# service sshd status

启动sshd服务:

[root@linuxcool ~]# service sshd start


ssh-keyscan命令 收集主机的ssh公钥

 

ssh-keyscan命令是一个收集大量主机公钥的实用工具。它的目的是创建和验证“ssh_known_hosts”文件。

ssh-keyscan命令仅支持ssh协议版本1,在ssh协议版本2无法使用。

语法格式: ssh-keyscan [参数]

常用参数:

-4 强制使用IPv4地址
-6 强制使用IPv6地址
-f<文件名> 从指定文件中读取“地址列表、名字列表”对
-p<端口> 指定连接远程主机的端口
-T<超时时间> 指定连接尝试的超时时间
-t<密钥类型> 指定要创建的密钥类型
-v 信息模式,打印调试信息

参考实例

收集主机ssh公钥,并输出调试信息:

[root@linuxcool ~]# ssh-keyscan -v 202.120.240.65

显示主机192.168.0.2的RSA主机密钥:

[root@linuxcool ~]# ssh-keyscan 192.168.0.2

显示主机192.168.0.2的DSA主机密钥:

[root@linuxcool ~]# ssh-keyscan -t dsa 192.168.0.2 

打印调试信息:

[root@linuxcool ~]# ssh-keyscan -v

强制使用IPv4地址:

[root@linuxcool ~]# ssh-keyscan -4


ssh命令 安全连接客户端

 

ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器,实现对服务器的远程管理。

语法格式: ssh [参数] [远程主机]

常用参数:

-1 强制使用ssh协议版本1
-2 强制使用ssh协议版本2
-4 强制使用IPv4地址
-6 强制使用IPv6地址
-A 开启认证代理连接转发功能
-a 关闭认证代理连接转发功能
-b<IP地址> 使用本机指定的地址作为对位连接的源IP地址
-C 请求压缩所有数据
-F<配置文件> 指定ssh指令的配置文件,默认的配置文件为“/etc/ssh/ssh_config”
-f 后台执行ssh指令
-g 允许远程主机连接本机的转发端口
-i<身份文件> 指定身份文件(即私钥文件)
-l<登录名> 指定连接远程服务器的登录用户名
-N 不执行远程指令
-o<选项> 指定配置选项
-p<端口> 指定远程服务器上的端口
-q 静默模式,所有的警告和诊断信息被禁止输出
-X 开启X11转发功能
-x 关闭X11转发功能
-y 开启信任X11转发功能

参考实例

登录远程服务器:

[root@linuxcool ~]# ssh 202.102.240.88

用test用户连接远程服务器:

[root@linuxcool ~]# ssh -l test 202.102.220.88

查看分区列表:

[root@linuxcool ~]# ssh 202.102.220.88 /sbin/fdisk -l

强制使用ssh协议版本1:

[root@linuxcool ~]# ssh -1

开启认证代理连接转发功能:

[root@linuxcool ~]# ssh -A


ss命令 显示活动套接字信息

 

ss是Socket Statistics的缩写。ss命令用来显示处于活动状态的套接字信息。它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

语法格式:ss [参数]

常用参数:

-n 不解析服务名称,已数字方式显示
-a 显示所有套接字
-l 显示处于监听状态的套接字
-o 显示计时器信息
-e 显示详细的套接字信息
-m 显示套接字的内存使用情况
-p 显示使用套接字的进程
-i 显示内部的TCP信息
-s 显示套接字使用概况
-4 仅显示ipv4的套接字
-6 仅显示ipv6的套接字
-0 显示PACKET套接字
-t 只显示TCP套接字
-u 只显示UDP套接字
-d 只显示DCCP套接字
-w 只显示RAW套接字
-x 只显示 Unix套接字
-D 将原始TCP套接字信息转储到文件

参考实例

显示TCP套接字:

[root@linuxcool ~]# ss -t -a 
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*
ESTAB 0 52 192.168.60.19:ssh 192.168.30.21:59321
LISTEN 0 128 *:websm *:*
LISTEN 0 128 [::]:ssh [::]:*

显示UDP套接字:

[root@linuxcool ~]# ss -u -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 0.0.0.0:bootpc 0.0.0.0:*
UNCONN 0 0 127.0.0.1:323 0.0.0.0:*
UNCONN 0 0 [::1]:323 [::]:*

显示套接字使用概况:

[root@linuxcool ~]# ss -s
Total: 185
TCP: 4 (estab 1, closed 0, orphaned 0, timewait 0)
Transport Total IP IPv6
RAW 1 0 1
UDP 3 2 1
TCP 4 2 2
INET 8 4 4
FRAG 0 0 0


talk命令 用于与其他使用者对谈

 

talk命令允许同一主机或不同主机上的两个用户进行交互式对话。talk命令在每个用户的显示器上打开发送窗口和接收窗口。这样每个用户在talk命令显示另一个用户正在输入的内容时能够在发送窗口输入。

语法格式: talk [参数]

常用参数:

person  预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入 person@machine.name
ttyname  如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息

参考实例

与现在机器上的使用者Rollaend对谈:

[root@linuxcool ~]# talk Rollaend  

等待Rollaend回应,若接受,则输入`talk jzlee`即可开始对谈,结束请按 ctrl+c:

[root@linuxcool ~]# talk Rollaend@linuxcool.com pts/2      


tcpdump命令 监听网络流量

 

tcpdump命令是一款sniffer工具,是linux上的抓包工具,嗅探器;它可以打印出所有经过网络接口的数据包的头信息。

tcpdump命令工作时先要把网卡的工作模式切换到混杂模式。所以tcpdump命令需要以root身份运行。tcpdump命令是linux下使用最广泛的网络协议分析工具。使用tcpdump命令时,必须精通TCP/IP协议工作原理。

语法格式: tcpdump [参数]

常用参数:

-a 尝试将网络和广播地址转换成名称
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出
-e 在每列倾倒资料上显示连接层级的文件头
-f 用数字显示网际网络地址
-F<表达文件> 指定内含表达方式的文件
-i<网络界面> 使用指定的网络截面送出数据包
-l 使用标准输出列的缓冲区
-n 不把主机的网络地址转换成名字
-N 不列出域名
-O 不将数据包编码最佳化
-p 不让网络界面进入混杂模式
-q 快速输出,仅列出少数的传输协议信息
-r<数据包文件> 从指定的文件读取数据包数据
-s<数据包大小> 设置每个数据包的大小
-S 用绝对而非相对数值列出TCP关联数
-t 在每列倾倒资料上不显示时间戳记
-tt 在每列倾倒资料上显示未经格式化的时间戳记
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型
-v 详细显示指令执行过程
-vv 更详细显示指令执行过程
-x 用十六进制字码列出数据包资料
-w<数据包文件> 把数据包数据写入指定的文件

参考实例

监视指定网络接口的数据包:

[root@linuxcool ~]# tcpdump -i eth1

监视指定主机的数据包:

[root@linuxcool ~]# tcpdump host linuxcool

截获主机192.168.10.10 和主机192.168.10.20 或192.168.10.30的通信:

[root@linuxcool ~]# tcpdump host 192.168.10.10 and \ (192.168.10.20 or 192.168.10.30 \)

抓取80端口的HTTP报文,以文本形式展示:

[root@linuxcool ~]# tcpdump -i any port 80 -A


telnet命令 远端登入

 

执行telnet指令开启终端机阶段作业,并登入远端主机。 telnet命令可以帮助你从这台路由器远程登陆到远端开启了telnet服务的设备,包括路由器、交换机、linux服务器等,并且配置当前路由器的telnet服务。

语法格式: telnet [参数]

常用参数:

-8 允许使用8位字符资料,包括输入与输出
-a 尝试自动登入远端系统
-b 使用别名指定远端主机名称
-c 不读取用户专属目录里的.telnetrc文件
-d 启动排错模式
-e 设置脱离字符
-E 滤除脱离字符
-f 此参数的效果和指定”-F”参数相同
-F 使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机
-k 使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名
-K  不自动登入远端主机
-l 指定要登入远端主机的用户名称
-L 允许输出8位字符资料
-n 指定文件记录相关信息
-r 使用类似rlogin指令的用户界面
-S 设置telnet连线所需的IP TOS信息
-x 假设主机有支持数据加密的功能,就使用它
-X 关闭指定的认证形态

参考实例

登录远程主机:

[root@linuxcool ~]# telnet 192.168.0.5

连接本地主机,端口号为23:

[root@linuxcool ~]# telnet localhost23


tracepath命令 追踪报文的路由信息

 

tracepath命令用来追踪并显示报文到达目的主机所经过的路由信息,能够发现路由中的MTU值。tracepath使用套接字API来实现其所有功能,不需要root权限。

语法格式: tracepath [参数] [域名]

常用参数:

-n 只显示ip地址
-b 同时显示ip地址和主机名
-l 设置初始化的数据包长度,默认为65535
-m 设置最大TTL值,默认为30
-p 设置要使用的初始目标端口

参考实例

追踪到达域名的主机路由信息:

[root@linuxcool ~]# tracepath www.linuxcool.com

追踪到达域名的主机路由信息(同时显示ip地址与主机名):

[root@linuxcool ~]# tracepath -b www.linuxcool.com

设置追踪报文路由的最大TTL值:

[root@linuxcool ~]# tracepath -m 20 www.linuxcool.com


usernetctl命令 操作指定的网络接口

 

usernetctl命令在用于被允许时操作指定的网络接口。在使用上和”ifup”、”ifon”命令有些类似。

语法格式:usernetctl [参数] [网络接口]

常用参数:

up 激活网络接口
down 禁用网络接口
report 报告网络接口

参考实例

激活网络接口:

[root@linuxcool ~]# usernetctl enp1s0 up

禁用网络接口:

[root@linuxcool ~]# usernetctl enp1s0 down

报告网络接口状态:

[root@linuxcool ~]# usernetctl enp1s0 report


uulog命令 显示UUCP记录文件

 

uulog 命令显示了日志文件的内容。该内容包含了 uucico 和 uuxqt 守护进程的活动。 每一个远程系统都有自己的日志文件,本地系统使用 uucp、uuto以及 uux 命令来与这些远程系统通信。

使用 uulog 命令显示用户和系统要求的 uucp、uuto 以及 uux 命令的摘要信息。所有这些事务都记录在 /var/spool/uucp/.Log 目录里的日志文件中。这些文件被命名为 DaemonName/SystemName,其中 DaemonName 目录是所涉及的守护进程的名字,SystemName 文件是为该守护进程正在连接的远程系统而命名的。

语法格式: uulog [参数]

常用参数:

-D或--debuglog 显示排错记录
-f或--follow 与-F参数类似,但仅显示与指定主机相关的记录
-I或--config 指定程序的配置文件
-n或--lines 显示记录文件中,从最后算起指定行数的数值
-s 仅显示记录文件中,与指定文件相关的记录
-S或--statslog 显示统计记录
-u或--suer 仅显示记录文件中,与指定用户相关的记录
-v或--version 显示版本信息
-X或--debug 设定排错层级
--help 显示帮助

参考实例

显示uucp log信息:

[root@linuxcool ~]# uulog


uux命令 在远端的UUCP主机上执行命令

 

uux可以在远端的UUCP主机上执行指令或是执行本机上的命令,但在执行时会使用远端电脑的文件。

uux命令是一种基本联网实用程序,在指定的基于 UNIX 的系统上运行指定的命令。同时不影响用户在本地系统上的工作。在运行指定命令之前,uux命令从指定系统中收集所有必要的文件。用户可以将命令输出指向特定系统的特定文件。基于安全性的考虑,许多安装程序允许 uux 命令只运行rmail命令。

语法格式: uux [参数]

常用参数:

-或-p或--stdin 直接从键盘读取要执行的指令
-a或--requestor 执行邮件地址,以便寄送状态信息
-b或--erturn-stdin 在屏幕上显示状态信息
-c或--nocopy 不用将文件复制到缓冲区
-C或--copy 将文件复制到缓冲区
-g或--grade 指定文件传送作业的优先顺序
-I或--config file 指定uux配置文件
-j或--jobid  显示作业编号
-l或--link 将本机上的文件连接到缓冲区
-n或--notification=no 无论发生任何状态,都不寄邮件通知用户
-r或--nouucico 不要立即启动uucico服务程序,仅将作业送到队列中,然后再执行
-s或--status 将完成状态保存为指定的文件
-v或--version 显示版本信息
-x或--debug 指定排错层级
-z或--notification=error 若发生错误,则以邮件来通知用户
--help 显示帮助

参考实例

在远程主机 uucp 执行命令:

[root@linuxcool ~]# uux hnlinux! date


vmkping 网络故障排除命令

 

Vmkping是VMware的Ping命令的特定版本。它使用的IP VMkernel去Ping另一个ESX主机的VMkernel端口,这意味着你可以通过vMotion网络而非管理网络发送ping包,此命令有助于解决VMotion和网络存储的问题。

语法格式:vmkping [参数] [地址]

常用参数:

-I 指定网卡接口、或指定的本机地址送出数据包
-i 设定间隔几秒发送一个vmkping包,默认一秒ping一次

参考实例

通过vmkl接口向10.10.10.1发送ICMP请求:

[root@linuxcool ~]# vmkping –I vmk1 10.10.10.1

确认ESXi主机与特定IP之间的网络连通性:

[root@linuxcool ~]# vmkping –I vmk1 10.10.10.1

测试是否能够访问10.10.10.10的3260端口:

[root@linuxcool ~]# vmkping –I vmk1 nc –z 10.10.10.10 3260

设定间隔3秒发送一个vmkping包:

[root@linuxcool ~]# vmkping –i 3 –I vmk1 10.10.10.1

显示帮助:

[root@linuxcool ~]# vmkping -h


xrdp命令 RDP连接Linux远程桌面

 

xrdp是一个远程桌面协议(RDP)服务器,与Windows NT/2000/2003服务器不同的是,xrdp不会向用户显示Windows桌面,而是X窗口桌面。它也可以作为VNC->RDP的桥接。

语法格式:xrdp [参数]

常用参数:

-n 在前台启动xrdp,而不是将其作为守护进程启动
-k 杀死正在运行的xrdp守护进程
-p 指定要监听的TCP端口
-f 在一个新的连接上分叉一个新的进程

参考实例

在前台启动xrdp,而不是将其作为守护进程启动:

[root@linuxcool ~]# xrdp -n

杀死正在运行的xrdp守护进程:

[root@linuxcool ~]# xrdp -k

指定要监听的TCP端口:

[root@linuxcool ~]# xrdp -p 33890


ypdomainname命令 显示主机的NIS的域名

 

ypdomainname命令的作用是显示由函数“getdomainname”返回的主机域名,使用这个命令也可以设置一个主机NIS域名。

语法格式:  ypdomainname [参数]

常用参数:

-v 详细信息模式

参考实例

显示本机的NIS域名:

[root@linuxcool ~]# ypdomainname -v

设置域名:

[root@linuxcool ~]# ypdomainname www.linuxcool.com

 

 

 

7:设备管理

 


accept命令 允许向目标打印机发送打印任务

 

accept命令属于CUPS套件,用于指示打印系统接受发往指定目标打印机的打印任务。

语法格式: accept [参数] [指定的打印机]

常用参数:

-E 当连接到服务器时强制加密
-U 指定连接服务器时使用的用户名
-h 指定连接服务器名和端口号

参考实例

允许向目标打印机发送打印任务:

[root@linuxcool ~]# accept printer01

选择目标打印机ip和端口:

[root@linuxcool ~]# accept -h  printer01:9100

使用指定用户连接打印机:

[root@linuxcool ~]# accept -U user1 -h 192.168.127.127:9100


acpid命令 电源高级接口配置

 

acpid命令向用户空间程序通知ACPI事件, acpid应该在系统引导期间启动,并且默认情况下将作为后台进程运行;它将打开一个事件文件(默认为/proc/acpi/event),并尝试读取代表ACPI事件的整行; 如果事件文件不存在,则acpid将尝试通过输入层和netlink连接到Linux内核; 当从这些来源之一接收到ACPI事件时,acpid将检查规则列表,并执行与事件匹配的规则; 如果存在锁定文件(默认情况下为/var/lock/acpid),则acpid将忽略所有传入的ACPI事件。

语法格式:acpid [参数]

常用参数:

-l 文件名 更改acpid写入的日志文件,默认值为/var/log/acpid
-e 文件名 此选项更改acpid从中读取事件的事件文件,默认值为/proc/acpi/event
-g 此选项更改acpid将事件发布到的UNIX域套接字的组所有权
-m 此选项更改acpid将事件发布到的UNIX域套接字的权限;默认值为0666
-c 此选项更改acpid在其中查找规则配置文件的目录;默认为/etc/acpi/events
-d 调试模式,默认不会写入日志

参考实例

使用-l参数修改写入日志文件:

[root@linuxcool ~]# acpid -l acpid.txt /var/log/

使用-d参数启用调试模式:

[root@linuxcool ~]# acpid -d

使用-g参数,更改权限组,授权于root组:

[root@linuxcool ~]# acpid -g root


add_drv命令 添加一个新的设备驱动程序到系统中

 

add_drv命令用于通知系统新安装的设备驱动程序。系统中的每个设备都有一个与之相关的名称。这个名称由设备的name属性表示。同样,设备也可能有一个与之相关联的驱动程序名称列表。这个列表由设备的兼容属性表示。

语法格式:add_drv [参数]

常用参数:

-v 显示详细信息
-p 指定设备的安全策略
-u 将驱动程序添加到系统里

参考实例

使用add_drv添加buffer驱动:

[root@linuxcool ~]# add_drv buffer

使用add_drv添加buffer驱动并显示详细的输出信息:

[root@linuxcool ~]# add_drv -v buffer

将驱动程序添加到系统:

[root@linuxcool ~]# add_drv -u buffer


aumix命令 设置音效装置

 

aumix命令用于设置音效装置。aumix(audio mixer)命令设置各项音效装置的信号强度以及指定播放与录音的装置。

语法格式: aumix [参数]

常用参数:

-d 指定音效装置的名称
-f 指定存储或载入设置的文件
-I 以图形界面方式来执行aumix
-q 显示所有频道的设置值
-S 将设置值保存至/HOME/.aumixrc

参考实例

以简单的图形界面来调整设置频道参数:

[root@linuxcool ~]# aumix

指定音效设备的名称:

[root@linuxcool ~]# aumix -1 -P -d test1


blockdev命令 调用区块设备控制程序

 

实用程序blockdev允许从命令行调用block设备ioctl, 以实现对设备的控制 。

语法格式:blockdev [参数] [设备]

常用参数:

-q 安静模式
-v 详细信息模式
--setro 只读
--setrw 只写
--getro 打印只读状态,“1”表示只读,“0”表示非只读
--getss 打印扇区大小。通常为521
--flushbufs 刷新缓冲区
--rereadpt 重新读取分区表

参考实例

设置设备为只读:

[root@linuxcool ~]# blockdev --setro /dev/hda4

读取设备是否为只读:

[root@linuxcool ~]# blockdev --getro /dev/hda4

设置设别为可读写:

[root@linuxcool ~]# blockdev --setrw /dev/hda4


cancel命令 取消已存在的打印任务

 

cancel指令用来取消已经存在的打印任务。

语法格式:cancle [参数] [打印任务号]

常用参数:

-a 取消所有打印任务
-E 当连接到服务器时强制使用加密
-U 指定连接服务器时使用的用户名
-h 指定连接的服务器名和端口号
-u 指定打印任务所属的用户

参考实例

取消4号任务:

[root@linuxcool ~]# cancle 4

使用加密模式:

[root@linuxcool ~]# cancle -E 4

取消所有打印任务:

[root@linuxcool ~]# cancle -a

指定4号打印任务所属的用户:

[root@linuxcool ~]# cancle -u username 4

指定连接服务器时使用的用户名:

[root@linuxcool ~]# cancle -U username 4


cdrecord命令 光盘刻录工具

 

cdrecord命令用于Linux系统下光盘刻录,它支持CD和DVD格式。linux下一般都带有cdrecord软件。cdrecord命令支持刻录音视频、数据等多种类型光盘。

语法格式: cdrecord [参数] [ISO文件]

常用参数:

-v 显示刻录光盘的详细过程
-eject 刻录完成后弹出光盘
speed=<刻录倍速> 指定光盘刻录的倍速
dev=<刻录机设备号> 指定使用“-scanbus”参数扫描到的刻录机的设备号
-scanbus 扫描系统中可用的刻录机

由于record命令是针对SCSI设备的,如果使用IDE刻录机则需要使用SCSI仿真。需要加载内核模块“ide-scsi.ko”或内核模块“ide-scsi.o”

参考实例

查看系统所有 CD-R(w) 设备:

[root@linuxcool ~]# cdrecord -scanbus
scsibus3:
3,0,0   300) 'NECVMWar' 'VMware SATA CD00' '1.00' Removable CD-ROM

指定参数用iso文件刻录一张光盘:

[root@linuxcool ~]# cdrecord -v -eject speed=8 dev=0,3,0 linuxcool.iso

擦写光驱:

[root@linuxcool ~]# cdrecord --dev=0,3,0 --blank=fast


cdrwtool命令 在CD-R CD-RW和DVD-R设备上执行操作

 

cdwrtool命令的作用是可以在CD-R、CD-RW或DVD-R设备上执行相应的操作。

cdwrtool命令执行的主要操作为是关闭媒体,将其格式化以便与PAKCET-CD设备一起使用,以及应用UDF文件系统。

CD-R光盘只能写入一次资料,而CD-RW光盘可以利用CD-RW光驱重复写入的动作,如果原先的资料不要,可以像磁盘一样,进行格式化之后,再刻录新的资料。

CD光盘与DVD光盘主要差别在容量。CD光盘最大容量一般不会超过800MB,DVD光盘容量根据具体型号进行区分在4.7GB至17GB之间。需要相应设备进行支持。

语法格式:cdrwtool [参数]

常用参数:

-d<设备> 指定要使用的设备,比如/dev/sr0
-i 打印光盘的轨道信息
-s 设置写入参数
-g 打印写入参数
-u<长度> 使UDF文件系统使用块的长度数
-m<偏移> 在块的偏移号格式化光盘
-b<模式> 使用fast或full模式格式化光盘
-f<文件名> 写入文件
-c<轨道> 关闭指定轨道
-r<轨道> 储备指定轨道
-v<版本> 指定使用的UDF版本。有效的版本是0x0201、0x0200、0x0150和0x0102。如果忽略,UDF版本是0x0150
-t<速度> 设置写入速度,默认是12x
-l<类型> 设置多会话列。无论是0、1或3
-w<模式> 设置写入模式。可以是mode1或mode2
-p<类型> 设置数据包类型。可以是0或1
-o<偏移> 设置写偏移

参考实例

在相关设备上写入/root/linuxcool.log文件:

[root@linuxcool ~]# cdrwtool -f /root/linuxcool.log

使用是指定模式格式化光盘:

[root@linuxcool ~]# cdrwtool -b fast

以指定的写入速度写入文件:

[root@linuxcool ~]# cdrwtool -f /root/linuxcool.log -t 8x


chcpu命令 配置CPU

 

chcpu命令的作用是可以修改CPU的状态。可以启用或禁用CPU,扫描新的CPU,将CPU调动从虚拟机管理程序(配置)或返回的CPU与超低层管理程序的模式,要求CPU解除配置。

cpu列表可以使用参数指定以逗号分隔。 列表可以包含单个CPU地址或地址范围。 例如0、5、7、9-11。该命令适用于地址为0、5、7、9、10和11的 cpu。chcpu命令是util-linux软件包的一部分,可从Linux Kernel Archive获得。

语法格式:chcpu [参数]

常用参数:

 -g 取消配置所有指定的CPU
 -d 禁用所有指定的CPU
 -e 启用所有指定的CPU
 -c 配置所有指定的CPU
 -r 触发CPU重新扫描
 -p<模式> 设置CPU调度模式,可用模式包括horizontal和vertical

参考实例

触发CPU重新扫描:

[root@linuxcool ~]# chcpu -r

启用所有指定的CPU:

[root@linuxcool ~]# chcpu -e 2,5,9

设置CPU调度模式:

[root@linuxcool ~]# chcpu -p horizontal


clock命令 调整 RTC 时间

 

clock命令的作用是调整 RTC 时间。RTC是电脑内建的硬件时间,执行这项指令可以显示现在时刻,调整硬件时钟的时间,将系统时间设成与硬件时钟之时间一致,或是把系统时间回存到硬件时钟。

语法格式: clock [参数]

常用参数:

-- -adjust 自动调整硬件时钟时间
-- -debug 详细显示指令执行过程,便于排错或了解程序执行的情形
-- -directisa 不通过设备文件/etc/rtc,直接对硬件时钟进行存取
-- -getepoch 输出硬件时钟的数值到标准输出
-- -hctosys 时钟同步,使系统时钟和硬件时钟同步
-- -set- -date 设置硬件时间
-- -show 显示硬件时钟到标准输出
-- -systohc 系统时间写入硬件时钟
-- -test 仅作测试,并不真的将时间写入硬件时钟或系统时间
-- -utc 把硬件时钟上的时间时为CUT,有时也称为UTC或UCT
-- -version 显示版本信息

参考实例

显示当前硬件时钟时间:

[root@linuxcool ~]# clock
2019年12月12日 星期四 15时11分07秒  -0.578708 秒

显示utc硬件时钟时间:

[root@linuxcool ~]# clock --utc
2019年12月12日 星期四 15时12分30秒  -0.442566 秒

同步时间:

[root@linuxcool ~]# clock --hctosys


cpuspeed命令 用户空间的CPU频率调节

 

cpuspeed命令的作用是可以监控系统的空闲百分比,降低或提高CPU的时钟速度和电压。在空闲时功耗降至最低,并在需要时最大限度地提高性能。默认情况下将管理所有CPU。

大多数linux系统支持内核内CPU频率动态调节。cpuspeed命令守护程序仅与“用户空间”频率缩放调节器结合使用。其他例如“动态”和“节能”,则依靠linux内核即时调整CPU频率,而无需任何用户空间协助。

RedHat和Fedora发行版在这两种情况下都使用统一的配置文件,以及一个cpuspeed初始化脚本,该脚本将根据需要配置cpuspeed或内核内CPU频率调节。

语法格式:cpuspeed [参数]

常用参数:

-d 通知进程,以守护进程本身在后台运行
-S [[]…] 只管理CPU核心的一个组
-w 不要把时间等待在IO空闲时间
-C 当AC适配器连接时以最高速度运行
-A<时间间隔> 设置在该AC适配器的状态将在十分之一秒被轮询的时间间隔,默认为50
-T<时间间隔> 设置在该温度将在十分之一秒被轮询的时间间隔,默认为10
-a 当交流适配器断开时,设定ACPI电源适配器状态文件,并告诉程序设置CPU为最低速度
-i<时间间隔> 设置空闲百分比测试和可能速度变化之间的时间间隔。默认值是20
-t<温度文件><最高温度> 设置ACPI温度文件和在其中的CPU将被设置为最低速度时的温度
-p 设置CPU核心空闲的百分比阀值。是空闲的百分比低于此CPU核心会被设置为尽可能高的速度。定是空闲的百分比高于该CPU核心的运行速度将减少,低于此CPU核心的运行速度将提高(默认值是10和25)
-m<最小速度> 设置一个CPU内核将不会被设置的最小速度,单位为kHz
-M<最大速度> 设置一个CPU内核将不会被设置的最大速度,单位为kHz
-r 在程序退出恢复以前的速度
-D 当AC适配器断开时,不要强制以最小速度运行

参考实例

用户空间的CPU频率调节:

[root@linuxcool ~]# cpuspeed

程序退出恢复以前的速度:

[root@linuxcool ~]# cpuspeed -r

设置一个指定的CPU最大速度:

[root@linuxcool ~]# cpuspeed -M 5000


cupsdisable命令 停止指定的打印机

 

cupsdisable命令用于停止指定的打印机。

使用cupsdisable命令停止打印机时,可以指定某个确定的打印机,也可以指定一类打印机。

语法格式: cupsdisable [参数] [打印机]

常用参数:

-E 当连接到服务器时强制使用加密
-U<用户名> 指定连接服务器时使用的用户名
-u<用户名> 指定打印任务所属的用户
-c 取消指定打印机的所有打印任务
-h<主机名:端口> 指定连接的服务器名和端口号
-r<原因> 停止打印机的原因

参考实例

停止打印机:

[root@linuxcool ~]# cupsdisable my_prienter

使用指定用户名连接打印机:

[root@linuxcool ~]# cupsdisable -U linuxcool my_prienter

连接指定的服务器和端口号:

[root@linuxcool ~]# cupsdisable -h prienter_serv:9100 my_prienter


cupsenable命令 启动指定的打印机

 

cupsenable命令用于启动指定的打印机。

使用cupsenable命令启动打印机的时候,可以指定某个确定的打印机,也可以指定一类打印机。

语法格式:cupsenable [参数] [打印机]

常用参数:

-E 当连接到服务器时强制使用加密
-U<用户名> 指定连接服务器时使用的用户名
-u<用户名> 指定打印任务所属的用户
-h<主机名:端口> 指定连接的服务器名和端口号

参考实例

启动打印机:

[root@linuxcool ~]# cupsenable my_prienter

使用指定的用户名连接打印机:

[root@linuxcool ~]# cupsenable -U linuxcool my_prienter

连接指定的服务器和端口号:

[root@linuxcool ~]# cupsenable -h prienter_serv:9100 my_prienter


dmidecode命令 获取有关硬件方面的信息

 

dmidecode命令的作用是以一种可读的方式显示机器的DMI(Desktop Management Interface)信息, 其输出的信息包括 BIOS、系统、主板、处理器、内存、缓存等等, 既可以得到当前的配置,也可以得到系统支持的最大配置,比如说支持的最大内存数等。

DMI就是帮助收集电脑系统信息的管理系统,DMI信息的收集必须在严格遵照SMBIOS规范的前提下进行。DMI设计适用于任何的平台和操作系统。由于DMI信息可以人为修改,因此里面的信息不一定是系统准确的信息。

语法格式: dmidecode [参数]

常用参数:

-d 从设备文件读取信息,输出内容与不加参数标准输出相同
-h 显示帮助信息
-s 只显示指定DMI字符串的信息
-t 只显示指定条目的信息
-u 显示未解码的原始条目内容
-- -dump-bin file 将DMI数据转储到一个二进制文件中
-- -from-dump FILE 从一个二进制文件读取DMI数据
-V 显示版本信息

参考实例

查看服务器信息:

[root@linuxcool ~]# dmidecode -t 1

查看系统序列号:

[root@linuxcool ~]# dmidecode -s system-serial-number

查看处理器信息:

[root@linuxcool ~]# dmidecode -t processor

显示未解码的原始条目内容:

[root@linuxcool ~]# dmidecode -u


dumkeys命令 显示键盘映射表

 

dumpkeys命令用于显示键盘映射表,输出的内容可以被loadkeys命令识别,改变映射关系.。loadkeys命令可以根据一个键盘定义表改变 linux 键盘驱动程序转译键盘输入过程。

语法格式:dumkeys [参数]

常用参数:

-i 驱动信息(键码范围、数量、状态键)
-l 详细驱动信息
-n 十六进制显示
-f 显示全部信息
-1 分行显示按键组合
-S 设定输出格式(0:预设 1:完整 2:分行 3简单)
--funcs-only 功能键信息
--keys-only 键组合信息
--compose-only 普通键信息

参考实例

显示功能键信息:

[root@linuxcool ~]# dumkeys --funcs-only

显示驱动信息:

[root@linuxcool ~]# dumkeys -i

十六进制显示键盘映射表:

[root@linuxcool ~]# dumkeys -n

显示键组合信息:

[root@linuxcool ~]# dumkeys --keys-only

显示普通键信息:

[root@linuxcool ~]# dumkeys --compose-only


esxcfg-addons命令 列出ESX主机所安装的Addons

 

esxcfg命令集分为网络管理类、存储管理类、系统管理类等几种类型,esxcfg-addons列出ESX主机所安装的Addons信息,是一种用来操作虚机上的Vsphere的命令。

语法格式:esxcfg-addons [参数]

常用参数:

-l 显示所有安装的Addons信息
-e 启动已经disabled的Addons

参考实例

显示所有安装的Addons信息:

[root@linuxcool ~]# esxcfg-addons -l

启动已经关闭的Addons:

[root@linuxcool ~]# esxcfg-addons -e

关闭已经启动的Addons:

[root@linuxcool ~]# esxcfg-addons -d

显示所有addons版本信息:

[root@linuxcool ~]# esxcfg-addons -v

查看帮助文档:

[root@linuxcool ~]# esxcfg-addons -help


esxcli命令 查询虚拟机信息

 

esxcli命令用途广泛,我们不能简单地将其归为单个命令。esxcli包括许多不同的命名空间,允许你控制ESXi提供的几乎所有设备。

语法格式:esxcli [命名空间] [参数]

常用参数:

hardware 查询虚拟机所对应的硬件信息
software 查询虚拟机所对应的软件信息
iscsi 监控并管理硬件iSCSI及软件iSCSI设置

参考实例

获取CPU信息(系列、型号以及缓存):

root@linuxcool:~# esxcli hardware cpu list

获取内存信息(可用内存以及非一致内存访问):

root@linuxcool:~# esxcli hardware memory get 

用于启用/禁用软件iSCSI initiator:

root@linuxcool:~# esxcli iscsi software

用于设置软硬件iSCSI适配器的发现、CHAP以及其他设置:

root@linuxcool:~# esxcli iscsi adapter

列出并修改网卡信息,比如名字、唤醒网卡以及速度:

root@linuxcool:~# esxcli network nic


hciconfig命令 配置蓝牙设备

 

hciconfig命令用于配置蓝牙设备,hciX 是系统中安装的蓝牙设备的名称,如果未提供hciX,hciconfig 会打印有关系统内安装的所有蓝牙设备的名称和基本信息;如果提供了hciX,但没有给出命令,则它只在设备hciX上打印基本信息。

语法格式:hciconfig [参数]

常用参数:

-a 显示蓝牙设备信息
up 开启蓝牙设备
down 关闭蓝牙设备
reset 重置蓝牙设备
pscan 启用页面扫描,禁用查询扫描

参考实例

使用-a参数显示蓝牙设备信息:

[root@linuxcool ~]# hciconfig -a

使用up参数,开启hci0蓝牙设备:

[root@linuxcool ~]# hciconfig hci0 up

使用down参数,关闭hci0蓝牙设备:

[root@linuxcool ~]# hciconfig hci0 down

使用reset参数,重置hci0蓝牙设备:

[root@linuxcool ~]# hciconfig hci0 reset


hcitool命令 蓝牙调试工具

 

hcitool命令用于配置蓝牙连接,并向蓝牙设备发送一些特殊命令。如果没有给定命令,或者使用了选项-h,hcitool会打印一些使用信息并退出。

语法格式:hcitool [参数]

常用参数:

lescan 扫描周围低功耗设备(BLE)
scan 远程扫描设备
-i [设备] dev 显示本地设备
name 从远程设备获取名称
info 从远程设备获取信息

参考实例

扫描周围低功耗设备(BLE):

[root@linuxcool ~]# hcitool lescan

远程扫描设备:

[root@linuxcool ~]# hcitool scan

显示本地hci0设备:

[root@linuxcool ~]# hcitool -i hci0 dev


hwinfo命令 硬件信息查询

 

hwinfo命令的英文全称为“Hardware Information”。这个命令极其方便和强大,使用该命令,我们不必在去计算机机身或者说明书上一个一个查找硬件信息了。

hwinfo是一个使用非常广泛的硬件信息查询命令,类似于lshw,它同样可以详细或概要地报告多个部件的硬件信息,但不同的是,它有时可以给出比lshw更多的信息。

很多检测硬件信息的命令行都需要使用 root 权限。所以在运行该命令前,您最好切换到管理员权限账户。

语法格式:hwinfo [参数]

常用参数:

--short 显示简略信息
--log 将信息输入到log文件中
--cpu 显示cpu信息
--usb 显示usb设备信息
--storage 显示硬盘信息

参考实例

显示硬件所有信息:

[root@linuxcool ~]# hwinfo

显示简要信息:

[root@linuxcool ~]# hwinfo --short

查看cup信息:

[root@linuxcool ~]# hwinfo --short --cpu

查看网卡信息:

[root@linuxcool ~]# hwinfo --short --netcard

查看硬盘信息:

[root@linuxcool ~]# hwinfo --short --storage

查看usb设备信息:

[root@linuxcool ~]# hwinfo --short --usb

将输出信息记录到文件中:

[root@linuxcool ~]# hwinfo --all --short --log hardware_info.log


loadkeys命令 改变linux键盘驱动程序

 

loadkeys命令可以根据一个键盘定义表改变 linux 键盘驱动程序转译键盘输入过程。

语法格式:loadkeys [参数] [文件]

常用参数:

-v 印出详细的资料,你可以重复以增加详细度
-q 不要显示任何讯息
-c  清除所有 composite 定义
-s 将定串定义表清除

参考实例

显示功能键:

[root@linuxcool ~]# loadkeys --funcs-only 

将定串定义表清除:

[root@linuxcool ~]# loadkeys -s 

清除所有 composite 定义:

[root@linuxcool ~]# loadkeys -c  

印出详细的资料,你可以重复以增加详细度:

[root@linuxcool ~]# loadkeys -v  

不要显示任何讯息:

[root@linuxcool ~]# loadkeys -q   


lpadmin命令 配置打印机和类

 

lpadmin命令用于配置CUPS套件中的打印机和类,也被用来设置打印服务器默认打印机。

语法格式: lpadmin [参数]

常用参数:

-c 将打印机加入类
-r 从类中删除打印机
-E 允许打印机接受打印任务
-u 设置打印机用户级的访问控制
-d 设置默认打印机

参考实例

添加一个名为printer的打印机:

[root@linuxcool ~]# lpadmin -p printer -E -v /dev/bus/usb/001/095 -P ./HP-LaserJet_1020.ppd


lpc命令 打印机控制程序

 

lpc命令是命令行方式打印机控制程序,有5个内置命令。

语法格式: lpc [参数]

常用参数:

?/help 显示帮助
exit/quit 退出打印机命令行
status 显示打印机状态

参考实例

进入lpc命令行:

[root@localhost ~]# lpc

显示打印机状态:

[root@localhost ~]# lpc --status

退出lpc命令行:

 [root@localhost ~]# lpc --exit


lpinfo命令 显示可用的设备或驱动程序

 

lpinfo命令可列出可用的打印设备和驱动。

其中需要注意的是,该命令参数很多,但是主要是-v和-m两个参数的使用。这两个参数的使用频率会远远高于其他参数,并且这两个参数也能解决大部分问题。

语法格式:lpinfo [参数]

常用参数:

-E 连接到服务器时强制加密
-U<用户名> 设置连接到服务器时使用的用户名
-l 显示设备或驱动程序的长列表
-h<服务器:端口> 连接备用服务器
-m 列出可用的驱动程序
-v 列出可用的设备
--language<语言> 指定语言
--timeout<超时时间> 当列出设备时指定超时时间

参考实例

显示可用的设备或驱的程序:

[root@linuxcool~]# lpinfo

列出可用的设备:

[root@linuxcool~]# lpinfo -v

列出可用的驱动程序:

[root@linuxcool~]# lpinfo -m


lpmove命令 将某个任务移动到另外一台打印机

 

lpmove命令属于CUPS打印命令系列。该命令可以将指定的作业或所有作业从源移动到目标。打印作业可以是作业ID号或旧目的地和作业ID。

CUPS(Common UNIX Printing System,即通用Unix打印系统)是FedoraCore3中支持的打印系统,它主要是使用IPP(Internet PrintingProtocol)来管理打印工作及队列,但同时也支持”LPD”(Line Printer Daemon)和”SMB”(ServerMessage Block)以及Socket等通信协议。

语法格式:lpmove [参数]

常用参数:

-E 连接到服务器时强制加密
-U 指定用户名
-h 服务器[:p端口号] 指定服务器

参考实例

指定新的打印机ID:

[root@linuxcool ~]# lpmove 123 newprinter

将旧打印机指定到新打印机:

[root@linuxcool ~]# lpmove oldprinter-123 newprinter

指定用户:

[root@linuxcool ~]# lpmove -U linuxcool


lp命令 打印文件或者修改排队的打印任务

 

lp命令用于打印文件,或者修改排队的打印任务。与lpr命令类似,lp命令既支持文件输入也支持标准输入。它与lpr的不同之处在于它有一个不同(稍微复杂点)的参数选项设置。

语法格式:lp [参数]

常用参数:

-E 与打印服务器连接时强制使用加密
-U 指定连接打印服务器时使用的用户名
-d 指定接收打印任务的目标打印机
-i 指定一个存在的打印任务号
-m 打印完成时发送E-mail
-n 指定打印的份数
-t 指定打印任务的名称
-H 指定打印任务开始的时间
-P 指定需要打印的页码

参考实例

要在连接在设备dlp0上的打印机lp0上打印文件/etc/motd:

[root@linuxcool ~]# lp /etc/motd 

要使用文件的一个副本打印/etc/motd文件的30个副本,并且要用邮件通知用户作业完成:

[root@linuxcool ~]# lp -c -m -n30 -dlp0:lpd0 /etc/motd 

要排队MyFile文件并返回作业编号:

[root@linuxcool ~]# lp myfile 


lscpu命令 显示CPU架构的有关信息

 

lscpu命令从sysfs和/proc/cpuinfo收集cpu体系结构信息,命令的输出比较易读,命令输出的信息包含cpu数量,线程,核数,套接字等。

语法格式:lscpu [参数]

常用参数:

-a 打印在线和离线的CPU
-b 仅打印在线CPU
-c 仅打印离线CPU
-h 打印帮助并退出
-V 打印当前版本号

参考实例

显示有关CPU架构的信息:

[root@linuxcool ~]# lscpu
Architecture:          x86_64
 CPU op-mode(s):        32-bit, 64-bit
 Byte Order:            Little Endian


lspci命令 显示当前设备所有PCI总线信息

 

lspci命令用于显示当前主机的所有PCI总线信息,以及所有已连接的PCI设备信息。 现在主流设备如网卡储存等都采用PCI总线

语法格式:lspci [参数]

常用参数:

-n 以数字方式显示PCI厂商和设备代码
-t 以树状结构显示PCI设备的层次关系
-b 以总线为中心的视图
-s 仅显示指定总线插槽的设备和功能块信息
-i 指定PCI编号列表文件,不使用默认文件
-m 以机器可读方式显示PCI设备信息

参考实例

显示当前主机的所有PCI总线信息:

[root@linuxcool ~]# lspci

以树状结构显示PCI设备的层次关系:

[root@linuxcool ~]# lspci -t


lspcmcia命令 显示扩展的PCMCIA调试信息

 

lspcmcia命令的作用是可以显示扩展的PCMCIA调试信息,是pccardctl ls命令的别名。

pccardctl命令用于监视和控制PCMCIA插槽的状态。 如果指定了插槽编号,则该命令只应用于一个插槽; 否则,所有插槽都将受到影响。 如果它是由非root用户执行,那么只有参考信息命令可访问。

语法格式:lspcmcia [参数] [插槽]

常用参数:

-v 显示详细信息
-vv 进一步提高详细程度

参考实例

显示扩展的PCMCIA调试信息:

[root@linuxcool ~]# lspcmcia
Socket 0 Bridge: [linuxcool_cardbus] (bus ID: 0000:03:01.0)

显示扩展的PCMCIA调试详细信息:

[root@linuxcool ~]# lspcmcia -v 0

显示更详细的扩展的PCMCIA调试信息:

[root@linuxcool ~]# lspcmcia -vv 0


lsscsi命令 列出SCSI设备及属性

 

lsscsi命令的作用是列出SCSI设备(或主机)及它们的属性。

lsscsi不是内置命令。需要安装lsscsi相应的包,安装完之后lsscsi命令就可以使用了。lsscsi命令能很方便的看出哪些是固态硬盘,哪些是SATA盘,哪些是FC盘。

如果H:C:T:L给出参数,那么就会作为一个过滤器,只匹配它被列出的设备。这里H是指Host,C是指Channel,T是指Id,L是指Lun。

语法格式:lsscsi [参数]

常用参数:

-g 显示SCSI通用设备文件名称
-k 显示内核名称而不是设备节点名
-d 显示设备节点的主要号码和次要号码
-H 列出当前连接到系统的SCSI主机而不是SCSI设备
-l 显示每一个SCSI设备(主机)的附加信息
-c 相对于执行cat /proc/scsi/scsi命令的输出
-p 显示额外的数据完整性(保护)的信息
-t 显示传输信息
-L 以“属性名=值”的方式显示附加信息
-v 当信息找到时输出目录名
-y<路径> 假设sysfs挂载在指定路径而不是默认的“/ sys”

参考实例

列出SCSI设备及它们的属性:

[root@linuxcool ~]# lsscsi

显示匹配“2:1:1:0”的SCSI设备:

[root@linuxcool ~]# lsscsi 2:0:0:0

显示SCSI设备的传输信息:

[root@linuxcool ~]# lsscsi -t


lsusb命令 显示USB设备列表

 

lsusb命令用于显示本机的USB设备列表,以及USB设备的详细信息。

lsusb命令显示的USB设备信息来自“/proc/bus/usb”目录下的对应文件。

语法格式:lsusb [参数]

常用参数:

-v 显示USB设备的详细信息
-s<总线:设备号> 仅显示指定的总线和(或)设备号的设备
-d<厂商:产品> 仅显示指定厂商和产品编号的设备
-t 以树状结构显示无理USB设备的层次
-V 显示命令的版本信息

参考实例

显示USB设备列表:

[root@linuxcool ~]# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse

以树状显示USB设备列表:

[root@linuxcool ~]# lsusb -t
/:  Bus 02.Port 1: Dev 1, class="root_hub", Driver=uhci_hcd/2p, 12M
|_ Port 1: Dev 2, If 0, class="Human" Interface Device, Driver=usbhid, 12M       |_ Port 2: Dev 3, If 0, class="Hub", Driver=hub/7p, 12M
/:  Bus 01.Port 1: Dev 1, class="root_hub", Driver=ehci-pci/6p, 480M

显示USB设备详细信息:

 [root@linuxcool ~]# lsusb -v


MAKEDEV命令 建立设备

 

MAKEDEV是一个脚本程序, 用于在 /dev 目录下建立设备, 通过这些设备文件可以 访问位于内核的驱动程序。

MAKEDEV 脚本创建静态的设备节点,通常位于/dev目录下。

语法格式:MAKEDEV [参数]

常用参数:

-v 显示出执行的每一个动作
-n 并不做真正的更新, 只是显示一下它的执行效果
-d 删除设备文件

参考实例

显示出执行的每一个动作:

[root@linuxcool ~]# ./MAKEDEV -v update

删除设备:

[root@linuxcool ~]# ./MAKEDEV -d device


mev命令 报告鼠标事件

 

mev命令的作用是可以报告鼠标事件。

mev命令是gpm计划的一部分。mev命令将它获得的鼠标控制台事件显示到标准输出。mev命令的默认是获取鼠标的任何事件,但是可以使用相关命令参数来设置,以便设定程序的行为。

语法格式:mev [参数]

常用参数:

-E emacs模式
-u 用户模式
-i 接受来自标准输入的命令
-m<数字> 最小修改掩码
-M<数字> 最大修改掩码
-f 里面的画面适合拖动事件
-p 显示指针拖动
-C<数字> 选择虚拟控制台
-d<数字> 选择默认的掩码
-e<数字> 选择eventMask

参考实例

报告鼠标事件:

[root@linuxcool ~]# mev

显示指针拖动:

[root@linuxcool ~]# mev -p

用户模式:

[root@linuxcool ~]# mev -u


mount命令 文件系统挂载

 

mount命令用于加载文件系统到指定的加载点。此命令的最常用于挂载cdrom,使我们可以访问cdrom中的数据,因为你将光盘插入cdrom中,Linux并不会自动挂载,必须使用Linux mount命令来手动完成挂载。

语法格式:mount [参数]

常用参数:

-t 指定挂载类型
-l 显示已加载的文件系统列表
-h 显示帮助信息并退出
-V 显示程序版本
-n 加载没有写入文件“/etc/mtab”中的文件系统
-r 将文件系统加载为只读模式
-a 加载文件“/etc/fstab”中描述的所有文件系统

参考实例

查看版本:

[root@linuxcool ~]# mount -V

启动所有挂载:

[root@linuxcool ~]# mount -a

挂载 /dev/cdrom 到 /mnt:

[root@linuxcool ~]# mount /dev/cdrom /mnt

挂载nfs格式文件系统:

[root@linuxcool ~]# mount -t nfs /123 /mnt  

挂载第一块盘的第一个分区到/etc目录 :

[root@linuxcool ~]# mount -t ext4 -o loop,default /dev/sda1 /etc


mouseconfig命令 设置鼠标相关参数

 

mouseconfig为鼠标设置程序,可自动设置相关参数,或者用户也可以利用所提供互动模式自行设置鼠标。mouseconfig是Red Hat Linux才有的命令。

语法格式:mouseconfig [参数] [鼠标类型]

常用参数:

--back 在设置画面上显示Back按钮,而取代预设的Cancel按钮
--device 指定硬件连接端口
--test 测试模式,不会改变任何设置
--noprobe 不要检测鼠标设备

参考实例

以交互模式配置鼠标:

[root@linuxcool ~]# mouseconfig -text

显示帮助以及所有支持的鼠标类型:

[root@linuxcool ~]# mouseconfig --help

在设置画面上显示Back按钮,而取代预设的Cancel按钮:

[root@linuxcool ~]# mouseconfig --back PS/2

指定硬件连接端口:

[root@linuxcool ~]# mouseconfig --device USB

不检测鼠标设备:

[root@linuxcool ~]# mouseconfig --noprobe


nproc命令 显示当前进程可用的CPU数目

 

nproc命令的作用是可以显示当前进程可用的CPU数目,该数目可能小于实际工作数。

在计算机系统上执行的每个进程都需要CPU执行预期的操作。 你的系统CPU可能有时会过载(由于系统上运行的进程的数量或种类),无论出于何种原因,想知道新进程的可用处理单元数量就要用到nproc命令。

语法格式:nproc [参数]

常用参数:

 -- -all 显示所拥有的CPU数目 
 -- -ignore=N  如果有可能,忽略N个处理器
-- -- help 显示帮助信息
-- -version 查看版本信息

参考实例

显示当前进程可用的CPU数目:

[root@linuxcool ~]# nproc
3

显示所有CPU数目:

[root@linuxcool ~]# nproc --all
6

忽略指定个数处理器:

[root@linuxcool ~]# nproc --ignore=2
1


pccardctl命令 PCMCIA卡控制工具

 

pccardctl命令的作用是可以监视和控制PCMCIA插槽的状态。

PCMCIA是专门用在笔记本或PDA、数码相机等便携设备上的一种接口规范(总线结构)。笔记本网卡通常都支持PCMCIA规范,而台式机网卡则不支持此规范。
PCMCIA插槽是笔记本电脑上最重要的设备扩展接口,可以用来插入传真卡/网卡/存储卡/声卡等等,PCMCIA的主要优势是可以带电插拔,配合适当软件后可以实现即插即用。

如果pccardctl命令由root用户执行,则所有命令均可用。如果它是由非特权用户执行的,则只能访问参考性命令。

语法格式:pccardctl[参数] [命令]

常用参数:

-V 显示版本信息并退出
-v 增加命令的详细程度
-vv 进一步增加命令的详细程度
status 显示当前的插槽状态
config 显示插槽配置,包括电源设置、中断和I/O设置及相关配置
ident 显示卡的识别信息,包括产品的识别字符串、制造商ID代码和功能ID码
info 作用与ident命令相同,但它的输出被格式化为一系列的Bourne-stype Shell变量
ls 显示有关系统中PCMCIA插槽和存在设备的扩展调试信息
suspend 关闭插槽并断电
resume 恢复插槽供电,并重新配置使用
eject 通知所有客户端,当前卡被弹出并切插槽电源
insert 通知所有客户端驱动程序,这个卡已经插入

参考实例

显示PCMCIA插槽和存在设备的扩展调试信息:

[root@linuxcool ~]# pccardctl ls
Socket 0 Bridge: [linuxcool_cardbus] (bus ID: 0000:03:01.0)

显示当前的插槽状态:

[root@linuxcool ~]# pccardctl status 0

关闭插槽并断电:

[root@linuxcool ~]# pccardctl suspend 0


raw命令 将原始字符设备绑定到块设备

 

raw用于将 Linux 原始字符设备绑定到块设备。可以使用任何块设备:在绑定时,设备驱动程序甚至不必可访问(以后可能会按需作为内核模块加载)。

raw在两种模式下使用:它要么设置原始设备绑定,要么查询现有绑定。设置原始设备时,/dev/raw/raw<N>是文件系统中现有原始设备节点的设备名称。绑定到的块设备可以按其主要和次要设备编号或路径名称/dev/<blockdev>指定为现有块设备文件的路径名称。

语法格式:raw [参数]

常用参数:

-q 查询已经存在的绑定
-a 查询所有绑定的原始设备
-h 查询帮助信息

参考实例

查询已经存在的绑定:

[root@linuxcool ~]# raw -q

查询所有绑定的原始设备:

[root@linuxcool ~]# raw -a

查询帮助信息:

[root@linuxcool ~]# raw -h


rcconf命令 Linux下运行等级服务配置工具

 

rcconf命令是Debian Linux下的运行等级服务配置工具,用以设置在特定的运行等级下系统服务的启动配置。

语法格式: rcconf [参数]

常用选项:

--help 打印帮助信息
--dialog 使用对话命令显示菜单
--notermcheck 不按照终端属性来设置窗口尺寸

参考实例

使用对话命令显示菜单:

[root@linuxcool ~]# rcconf --dialog 

不按照终端属性来设置窗口尺寸:

[root@linuxcool ~]# rcconf --notermcheck   

获取帮助信息:

[root@linuxcool ~]# rcconf --help 


rdev命令 查询、设置内核映像文件

 

rdev命令可以用来查询/设置内核映像文件的根设备,RAM 磁盘大小或视频模式。 不带任何参数的 rdev 命令将输出当前根文件系统的 /etc/mtab 文件行。

语法格式:rdev [参数]

常用参数:

-r 使得 rdev 作为 ramsize 运行
-R 使得 rdev 作为 rootflags 运行
-v 使得 rdev 作为 vidmode 运行
-h 提供帮助

参考实例

输出当前根文件系统的 /etc/mtab 文件行:

[root@linuxcool ~]# rdev

作为 ramsize 运行:

[root@linuxcool ~]# rdev -r

作为 rootflags 运行 :

[root@linuxcool ~]# rdev -R

使得 rdev 作为 vidmode 运行:

[root@linuxcool ~]# rdev -v


reject命令 拒绝向目标打印机发送打印任务

 

reject命令属于CUPS套件,用于指示打印系统拒绝发往指定目标打印机的打印任务。

语法格式: reject [参数] [指定的打印机]

常用参数:

-E 当连接到服务器时强制使用加密
-U 指定连接服务器时使用的用户名
-h 指定连接服务器名和端口号
-r 显示打印机拒绝作业的原因

参考实例

允许向目标打印机发送打印任务:

[root@linuxcool ~]# reject printer01

指定连接服务器时使用的用户名,服务器名,端口号:

[root@linuxcool ~]# reject -U linuxcool 192.168.127.127:9100 

显示打印机拒绝作业的原因:

[root@linuxcool ~]# reject -r printer01


rfkill命令 管理蓝牙和wifi

 

rfkill是一个内核级别的管理工具,可以打开和关闭设备的蓝牙和wifi。

rfkill是Linux下的一个标准的无线控制的虚拟设备,Linux也提供了rfkill的命令去查看以及控制所有的注册的无线设备。它们会在/dev/(PC的Linux)或者/sys/class(一般是Android)下生成相应的虚拟设备。

语法格式:

常用参数:

list 列出可用设备
block 关闭设备
unblock 打开设备

参考实例

列出所有可用设备:

[root@linuxcool ~]#rfkill list
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
2: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no

关闭编号0的设备:

[root@linuxcool ~]# rfkill block 0

打开编号0的设备:

[root@linuxcool ~]# rfkill unblock 0


sensors命令 检测服务器内部温度及电压

 

sensors命令用于检测服务器内部降温系统是否健康,可以监控主板,CPU的工作电压,风扇转速、温度等数据 。

语法格式:sensors

参考实例

检测cpu工作电压,温度等:

[root@linuxcool ~]# sensors 
coretemp-isa-0000 
Core 0:      +48.0°C  (high = +87.0°C, crit = +97.0°C)   
Core 1:      +46.0°C  (high = +87.0°C, crit = +97.0°C)   
Core 2:      +47.0°C  (high = +87.0°C, crit = +97.0°C)   
Core 3:      +46.0°C  (high = +87.0°C, crit = +97.0°C) 


setleds命令 设定键盘上方三个 LED 的状态

 

setleds即是英文词组“set leds”的合并,翻译为中文就是设置LED灯。setleds命令用来设定键盘上方三个 LED 灯的状态。在 Linux 中,每一个虚拟主控台都有独立的设定。

这是一个十分神奇的命令,竟然可以通过命令来控制键盘的灯的状态。那么下面我一起来学习一下这个命令吧。

语法格式:setleds [参数]

常用参数:

-F 设定虚拟主控台的状态
-D 改变虚拟主控台的状态和预设的状态
-L 直接改变 LED 显示的状态
+num/-num 将数字键打开或关闭
+caps/-caps 把大小写键打开或关闭
+scroll /-scroll 把选项键打开或关闭

参考实例

控制键盘灯num灯亮和灯灭:

[root@linuxcool ~]# setleds +num 
[root@linuxcool ~]# setleds -num

控制键盘的大小写键打开或关闭,键盘指示灯亮与灭:

[root@linuxcool ~]# setleds +caps 
[root@linuxcool ~]# setleds -caps

控制键盘的选项键打开或关闭,键盘指示灯亮与灭:

[root@linuxcool ~]# setleds +scroll 

对三灯的亮与灭的情况进行组合,分别设置为数字灯亮,大小写灯灭,选项键scroll灯灭:

[root@linuxcool ~]# setleds +num -caps -scroll 


setpci命令 配置PCI设备

 

setpci命令是一个查询和配置PCI设备的实用工具。 命令中使用的数字都是十六进制数。

由于setpci命令需要修改硬件的配置参数,所以必须具有“root”用户权限。

通常使用setpci命令配置PCI设备之前,为了防止操作系统出现问题,总是先使用“setpci -vD”命令查看setpci命令的操作过程。

语法格式:setpci [参数] [PCI设备/操作]

常用参数:

-v 显示指令执行的细节信息
-f 当没有任何操作需要完成时,不显示任何信息
-D 测试模式,并不真正将配置信息写入寄存器
-d 仅显示给定厂商和设备的信息
-s 仅显示指定总线、插槽上的设备或设备上的功能块信息

参考实例

是将设备0:14.0设备,PCI配置空间便宜量为0x60,写入新的字节变量6:

[root@linuxcool ~]# setpci -s 0:14.0 60.B=6

设置PCI设备的定时器:

[root@linuxcool ~]# setpci -d : latency_time=40

列出PCI设备并对其进行调节:

[root@linuxcool ~]# lspci
00:0f.0 VGA compatible controller: VMware SVGA II Adapter
[root@linuxcool ~]# setpci -s 00:0f.0 F4.B=FF
[root@linuxcool ~]# setpci -s 00:0f.0 F4.B=CC


wodim命令 将数据写入光盘

 

wodim命令的作用是可以将数据写入CD或DVD光盘介质。

wodim命令包含在cdrkit中,如果你在自己的系统中找不到wodim命令的话,那么只要安装cdrkit这个包就可以了。

对于可反复擦写的光盘来说,在烧录之前,可以使用相关命令先擦除光盘上已有的内容。

语法格式:wodim [参数] [轨道]

常用参数:

dev=<目标> 为CD/DVD刻录机设置SCSI目标,必须使用-scanbus参数获得,不同于Linux的设置号
gracetime=<宽限时间> 在开始写入之前设置宽限时间
timeout=<超时时间> 设置默认的SCSI命令超时设置
driver=<名称> 用户提供当地驱动程序名称
-v 显示详细信息
-s 不显示失败的SCSI命令的状态
-d<级别> 设置增量杂项调试级别
-setdropts 设置驱动程序特定的选项并退出
-checkdrive 检查驱动器是否存在
-inq 查询的驱动器,然后退出
-prcap 支持MMC兼容的打印驱动器驱动能力
-scanbus 扫描SCSI和IDE总线,然后退出
-reset 使用cdrecorder重置SCSI总线
-ignsize 忽略介质的已知尺寸
-useinfo 使用*.inf文件覆盖音频选项
speed=<速度> 设置驱动器的速度,直接跟数字
blank=<类型> 指定格式化光盘类型,fast为快速格式化,all为完全格式化
-format 格式化CD-RW/DVD-RW/DVD-RW光盘
formattype=<格式方法> 为DVD-RW光盘选择格式方法
fs=<大小> 设置fifo大小,为0表示禁用,默认值是4MB
ts=<大小> 为单个SCSI命令设置最大传输大小
-load 加载磁盘并退出
-lock 加载和锁定磁盘并退出
-eject 工作完毕之后弹出光盘
-toc 检索和显示TOC/PMA数据
-atip 检索和显示ATIP数据
-waiti 打开SCSI之前等待输入
-force 出现一些错误强制继续,消隐坏磁盘
-tao 在TAO模式中写入磁盘
-dao 在DAO模式中写入磁盘
-sao 在SAO模式中写入磁盘
-raw 在RAW模式中写入磁盘
-clone 在克隆写模式中写入磁盘
tsize=<长度> 在下一轨道中的有效数据长度
-raw96r 在RAW/RAW96R模式中写入磁盘
-raw16 在RAW/RAW16模式中写入磁盘
-raaw96p 在RAW/RAW96P模式中写入磁盘
-text 从*.inf或*.cue文件中写入CD-Text信息
-isosize 为下一个数据轨道使用iso9660文件系统大小

参考实例

先擦除光盘上已有的内容:

[root@linuxcool ~]# wodim -v dev=/dev/cdrw blank=fast

查看刻录设备的连接端口:

[root@linuxcool ~]# wodim -scanbus

一次性刻录/root/linuxcool.iso文件到光盘上:

[root@linuxcool ~]# wodim -scanbus -v dev=2,0,0 speed=24 /root/linuxcool.iso

格式化光盘:

[root@linuxcool ~]# wodim -scanbus -v dev=2,0,0 blank=all

 

 

8:备份压缩

 

 

 

ar命令 建立或修改备存文件

 

ar命令用于建立或修改备存文件,或是从备存文件中抽取文件。可集合许多文件,成为单一的备存文件。在备存文件中,所有成员文件皆保有原来的属性与权限。

语法格式:ar [参数]

常用参数:

-d  删除备存文件中的成员文件
-m  变更成员文件在备存文件中的次序
-p 显示备存文件中的成员文件内容
-q  将文件附加在备存文件末端
-r  将文件插入备存文件中
-t 显示备存文件中所包含的文件
-x  自备存文件中取出成员文件

参考实例

打包a.c b.c文件:

[root@linuxcool ~]# ar rv one.bak a.c b.c 

打包以.c结尾的文件(打包多个文件):

[root@linuxcool ~]# ar rv two.bak *.c 

显示打包文件的内容:

[root@linuxcool ~]# ar t two.bak

删除打包文件的成员文件:

[root@linuxcool ~]# ar d two.bak a.c b.c c.c 


bzcat命令 读取bzip2压缩文件的内容

 

相比较于gzip,bzip2有更好的压缩比,bzcat则是查看bzip2压缩文件后的内容。

语法格式:bzcat [命令]

参考实例

创建bzip2文件:

[root@linuxcool ~]# bzip2 -z test.txt 
[root@linuxcool ~]# ls
test.txt.bz2 

显示test.txt.bz2解压缩之后的文件内容:

[root@linuxcool ~]# bzcat test.txt.bz2 
 a b c d
 e f g h
 i j k l


bzip2recover命令 修复损坏的.bz2文件

 

bzip2recover命令用来修复损坏的.bz2文件 , bzip2是以区块的方式来压缩文件,每个区块视为独立的单位。因此,当某一区块损坏时,便可利用bzip2recover,试着将文件中的区块隔开来,以便解压缩正常的区块。通常只适用在压缩文件很大的情况。

语法格式:bzip2recover [参数]

常用参数:

-c 将解压或者解压文件写到标准输出
-d 解压
-z 强制压缩,而不管调用名称如何
-t 检查指定文件的完整性,但不要解压缩它们
-f 强制执行
-k 解压之后,保留源文件
-s 减少内存使用,用于压缩、解压缩和测试

参考实例

修复.bz2文件:

[root@linuxcool ~]# bzip2recover col.bz2

将1.c压缩到foo:

[root@linuxcool ~]# bzip2recover -c 1.c > foo.gz

解压foo:

[root@linuxcool ~]# bzip2recover -d foo.gz


bzip2命令 bz2文件的压缩程序

 

Linux系统中bzip2命令的英文是“bunzip2”,即.bz2文件格式的压缩程序; bzip2命令系统默认是没有安装的,需要安装bzip2库才可以使用此命令。

bzip2命令采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。

语法格式:bzip2 [参数] 文件系统

常用参数:

-c 将压缩与解压缩的结果送到标准输出
-d 执行解压缩
-f bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数
-k bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数
-s 降低程序执行时内存的使用量
-t 测试.bz2压缩文件的完整性
-v 压缩或解压缩文件时,显示详细的信息
-z 强制执行压缩

参考实例

压缩文件:

[root@linuxcool ~]# bzip2 a.txt

检查文件完整性:

[root@linuxcool ~]# bzip2 -t a.txt.bz2


compress命令 unix档案压缩命令

 

compress命令是一个相当古老的 unix 档案压缩指令,压缩后的档案会加上一个 .Z 延伸档名以区别未压缩的档案,压缩后的档案可以以 uncompress 解压。若要将数个档案压成一个压缩档,必须先将档案 tar 起来再压缩。由于 gzip 可以产生更理想的压缩比例,一般人多已改用 gzip 为档案压缩工具。

语法格式: compress [参数]

常用参数:

-c 输出结果至标准输出设备(一般指荧幕)
-f 强迫写入档案,若目的档已经存在,则会被覆盖 (force)
-v 将程序执行的讯息印在荧幕上 (verbose)
-b 设定共同字串数的上限,以位元计算,可以设定的值为 9 至 16 bits 。由于值越大,能使用的共同字串就 越多,压缩比例就越大,所以一般使用预设值 16 bits (bits)
-d 将压缩档解压缩
-V 列出版本讯息

参考实例

压缩文件:

[root@linuxcool ~]# compress abc.h

解压文件:

[root@linuxcool ~]# compress -d abc.h.Z   

按指定压缩比例进行压缩:

[root@linuxcool ~]# compress -b 7 abc.h   

强制压缩文件夹:

[root@linuxcool ~]# compress -rf /home/abc/   


dump命令 备份文件系统

 

dump命令用于备份文件系统 ,dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。

语法格式:dump [参数]

常用参数:

-0123456789 备份的层级
-b 指定区块的大小,单位为KB
-B 指定备份卷册的区块数目
-c 修改备份磁带预设的密度与容量
-d 设置磁带的密度。单位为BPI
-f 指定备份设备
-h 当备份层级等于或大于指定的层级时,将不备份用户标示为”nodump”的文件
-n 当备份工作需要管理员介入时,向所有”operator”群组中的使用者发出通
-s 备份磁带的长度,单位为英尺
-T 指定开始备份的时间与日期
-u  备份完毕后,在/etc/dumpdates中记录备份的文件系统,层级,日期与时间等
-w  与-W类似,但仅显示需要备份的文件
-W  显示需要备份的文件及其最后一次备份的层级,时间与日期

参考实例

备份文件到磁带:

[root@linuxcool ~]# dump -0 -u /dev/tape /home/

备份文件系统/boot到 SCSI 磁带设备:

[root@linuxcool ~]# dump 0f /dev/nst0 /boot

备份文件系统 / 到 SCSI 磁带设备:

[root@linuxcool ~]# dump 0f /dev/nst0/


gunzip命令 解压文件

 

gunzip命令用于解压文件,它是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为”.gz”。事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip命令单独完成。

语法格式:gunzip [参数]

常用参数:

-a或--ascii  使用ASCII文字模式
-c或--stdout或--to-stdout 把解压后的文件输出到标准输出设备
-f或-force  强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接
-h或--help 在线帮助。
-l或--list 列出压缩文件的相关信息
-L或--license 显示版本与版权信息
-n或--no-name 解压缩时,若压缩文件内含有远来的文件名称及时间戳记,则将其忽略不予处理
-N或--name 解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上
-q或--quiet  不显示警告信息
-r或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理
-S<压缩字尾字符串>或--suffix<压缩字尾字符串>  更改压缩字尾字符串
-t或--test 测试压缩文件是否正确无误
-v或--verbose 显示指令执行过程
-V或--version 显示版本信息

参考实例

解压文件:

[root@linuxcool ~]# gunzip ab.gz  

解压,显示详细执行过程:

[root@linuxcool ~]# gunzip -v 1.gz

指定后缀名解压:

[root@linuxcool ~]# gunzip -v -S "mygz" 1.mygz


gzip命令 压缩和解压文件

 

gzip命令的英文是“GNUzip”,是常用来压缩文件的工具,gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。

gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。

语法格式:gzip [参数]

常用参数:

-a 使用ASCII文字模式
-d 解开压缩文件
-f 强行压缩文件
-l 列出压缩文件的相关信息
-c 把压缩后的文件输出到标准输出设备,不去更动原始文件
-r 递归处理,将指定目录下的所有文件及子目录一并处理
-q 不显示警告信息

参考实例

把rancher-v2.2.0目录下的每个文件压缩成.gz文件:

[root@linuxcool ~]# gzip *

把上例中每个压缩的文件解压,并列出详细的信息:

[root@linuxcool ~]# gzip -dv *

递归地解压目录:

[root@linuxcool ~]# gzip -dr rancher.gz


lha命令 压缩或解压文件

 

lha是从lharc演变而来的压缩程序,文件经它压缩后,会另外产生具有”.lzh”扩展名的压缩文件。

语法格式: lha [参数] [文件]

常用参数:

-a 压缩文件,并加入到压缩文件内
-c 压缩文件,重新建构新的压缩文件后,再将其加入
-d 从压缩文件内删除指定的文件
-x 解开压缩文件
-t 检查备份文件内的每个文件是否正确无误

参考实例

压缩a.b文件,压缩后生成 abc.lhz文件:

[root@linuxcool ~]# lha -a abc.lhz a.b

压缩目录:

[root@linuxcool ~]# lha -a abc2 /home/linuxcool

解压文件到当前目录:

[root@linuxcool ~]# lha -xiw=agis abc  

列出压缩文件的相关信息:

[root@linuxcool ~]# lha -l abc.lhz

检查备份文件内的每个文件是否正确无误:

[root@linuxcool ~]# lha -t abc.lhz


unarj命令 解压.arj文件

 

unarj命令用于解压缩.arj文件。

语法格式:unarj [参数] [.arj压缩文件]

常用参数:

-e 解压缩.arj文件
-l 显示压缩文件内所包含的文件
-t 检查压缩文件是否正确
-x 解压缩时保留原有的路径

参考实例

解压缩.arj文件:

[root@linuxcool ~]# unarj -e test.arj

显示压缩文件内所包含的文件:

[root@linuxcool ~]# unarj -l test.arj

检查压缩文件是否正确:

[root@linuxcool ~]# unarj -t test.arj

解压缩时保留原有的路径:

[root@linuxcool ~]# unarj -x test.arj

把文件解压到当前路径:

[root@linuxcool ~]# unarj -ex test.arj


unzip命令 解压缩zip文件

 

unzip命令是用于.zip格式文件的解压缩工具 ,unzip命令将列出、测试或从zip格式存档中提取文件,这些文件通常位于MS-DOS系统上。

默认行为(就是没有选项)是从指定的ZIP存档中提取所有的文件到当前目录(及其下面的子目录)。一个配套程序zip(1L)创建ZIP存档;这两个程序都与PKWARE的PKZIP和PKUNZIP为MS-DOS创建的存档文件兼容,但许多情况下,程序选项或默认行为是不同的。

语法格式:unzip [参数] [文件]

常用参数:

-l 显示压缩文件内所包含的文件
-v 执行时显示详细的信息
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
-n 解压缩时不要覆盖原有的文件
-j 不处理压缩文件中原有的目录路径

参考实例

把/home目录下面的mydata.zip解压到mydatabak目录里面:

[root@linuxcool ~]# unzip mydata.zip -d mydatabak 

把/home目录下面的wwwroot.zip直接解压到/home目录里面:

[root@linuxcool ~]# unzip wwwroot.zip 

把/home目录下面的abc12.zip、abc23.zip、abc34.zip同时解压到/home目录里面:

[root@linuxcool ~]# unzip abc\*.zip 

查看把/home目录下面的wwwroot.zip里面的内容:

[root@linuxcool ~]# unzip -v wwwroot.zip 

验证/home目录下面的wwwroot.zip是否完整:

[root@linuxcool ~]# unzip -t wwwroot.zip  


uudecode命令 还原档案

 

uudecode命令将uuencode编码后的档案还原,uudecode只会将begin与end标记之间的编码资料还原,程序会跳过标记以外的资料。

语法格式:uuencode [参数]

常用参数:

h 列出指令使用格式
v 列出版本讯息

参考实例

将 file.uud 还原,而还原后的档名储存在 file.uud 档中:

[root@linuxcool ~]# uuencode file.uud

还原多个档案:

[root@linuxcool ~]# uuencode file1.uud file2.uud


zfore命令 强制添加.gz后缀

 

zfore命令强制为gzip格式的压缩文件添加“.gz”后缀。

语法格式:zfore [参数]

参考示例

指定为test.gzip添加“.gz”后缀

[root@linuxcool ~]# zfore test.gzip


zipinfo命令 查看压缩文件信息

 

zipinfo命令的全称为“zip information”,该命令用于列出压缩文件信息。执行zipinfo指令可得知zip压缩文件的详细信息。

语法格式:zipinfo [参数]

常用参数:

-1 只列出文件名称
-2 此参数的效果和指定”-1″参数类似,但可搭配”-h”,”-t”和”-z”参数使用
-h 只列出压缩文件的文件名称
-l 此参数的效果和指定”-m”参数类似,但会列出原始文件的大小而非每个文件的压缩率
-m 此参数的效果和指定”-s”参数类似,但多会列出每个文件的压缩率
-M 若信息内容超过一个画面,则采用类似more指令的方式列出信息
-s 用类似执行”ls -l”指令的效果列出压缩文件内容
-t 只列出压缩文件内所包含的文件数目,压缩前后的文件大小及压缩率
-T 将压缩文件内每个文件的日期时间用年,月,日,时,分,秒的顺序列出
-v 详细显示压缩文件内每一个文件的信息
-x<范本样式> 不列出符合条件的文件的信息
-z 如果压缩文件内含有注释,就将注释显示出来

参考实例

显示压缩文件信息:

[root@linuxcool ~]# zipinfo file.zip 
Archive: file.zip  486 bytes  3 files
-rw-r--r-- 2.3 unx    0 bx stor 24-May-10 18:54 a.c
-rw-r--r-- 2.3 unx    0 bx stor 24-May-10 18:54 b.c
-rw-r--r-- 2.3 unx    0 bx stor 24-May-10 18:54 c.c
3 files, 0 bytes uncompressed, 0 bytes compressed: 0.0%

显示压缩文件中每个文件的信息:

[root@linuxcool ~]# zipinfo -v file.zip 

只显示压缩包大小、文件数目:

[root@linuxcool ~]# zipinfo -h file.zip             
Archive:  file.zip
Zip file size: 907 bytes, number of entries: 3

生成一个基本的、长格式的列表(而不是冗长的),包括标题和总计行:

[root@linuxcool ~]# zipinfo -l file

查看存档中最近修改的文件:

[root@linuxcool ~]# zipinfo -T file | sort –nr -k 7 | sed 15q


zipsplit命令 分割压缩包

 

zipsplit命令用于将较大的“zip”压缩包分割成各个较小的“zip”压缩包。

语法格式:zipsplit [参数]

常用参数:

-n 指定分割后每个zip文件的大小
-t 报告将要产生的较小的zip文件的大小
-b 指定分割后的zip文件的存放位置

参考实例

分割每个文件为1k:

[root@linuxcool ~]# zipsplit -n 1k file.zip

指定分割后的zip文件的存放位置:

[root@linuxcool ~]# zipsplit -b 50 file.zip file1


zip命令 压缩文件

 

zip程序将一个或多个压缩文件与有关文件的信息(名称、路径、日期、上次修改的时间、保护和检查信息以验证文件完整性)一起放入一个压缩存档中。可以使用一个命令将整个目录结构打包到zip存档中。

对于文本文件来说,压缩比为2:1和3:1是常见的。zip只有一种压缩方法(通缩),并且可以在不压缩的情况下存储文件。(如果添加了bzip 2支持,zip也可以使用bzip 2压缩,但这些条目需要一个合理的现代解压缩来解压缩。当选择bzip 2压缩时,它将通货紧缩替换为默认方法。)zip会自动为每个要压缩的文件选择更好的两个文件(通缩或存储,如果选择bzip2,则选择bzip2或Store)。

语法格式:zip [参数] [文件]

常用参数:

-q 不显示指令执行过程
-r 递归处理,将指定目录下的所有文件和子目录一并处理
-z 替压缩文件加上注释
-v 显示指令执行过程或显示版本信息
-n<字尾字符串> 不压缩具有特定字尾字符串的文件

参考实例

将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:

[root@linuxcool ~]# zip -q -r html.zip /home/html

压缩文件 cp.zip 中删除文件 a.c:

[root@linuxcool ~]# zip -dv cp.zip a.c 

把/home目录下面的mydata目录压缩为mydata.zip:

[root@linuxcool ~]# zip -r mydata.zip mydata 

把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip:

[root@linuxcool ~]# zip -r abc123.zip abc 123.txt 

将 logs目录打包成 log.zip:

[root@linuxcool ~]# zip -r log.zip ./logs 


znew命令 将.Z压缩包重新转化.gz压缩包

 

znew命令用于将使用compress命令压缩的“.Z”压缩包重新转化为使用gzip命令压缩的“.gz”压缩包。

语法格式: znew [参数] [.Z压缩包]

常用参数:

-f 强制执行转换操作,即是目标“.gz”已经存在
-t 删除原文件前测试新文件
-P 使用管道完成转换操作,以降低磁盘空间使用

参考实例

生成“linuxidc.gz”,删除进程中的原始.Z文件:

[root@linuxcool ~]# znew linuxidc.Z 

强制执行转换操作,即是目标“.gz”已经存在:

[root@linuxcool ~]# znew -f linuxidc.Z

显示压缩的每个文件的名称和减少百分比等详细信息:

[root@linuxcool ~]# znew -v linuxidc.Z 

在删除原始文件之前测试新文件:

[root@linuxcool ~]# znew -t linuxidc.Z

确保znew使用管道进行转换以减少磁盘空间使用:

[root@linuxcool ~]# znew -P linuxidc.Z

 

 

 

9:其他命令

 

 


ab命令 Web服务器的性能测试工具

 

ab命令是Apache的Web服务器的性能测试工具,它可以测试安装Web服务器每秒种处理的HTTP请求。

语法格式:ab [参数]

常用参数:

-A 指定连接服务器的基本的认证凭据
-c 指定一次向服务器发出请求数
-C 添加cookie
-g 将测试结果输出为“gnuolot”文件
-H 为请求追加一个额外的头;
-i 使用“head”请求方式
-p 指定包含数据的文件
-q 不显示进度百分比
-T 使用POST数据时,设置内容类型头
-x 以表格方式输出时,设置表格的属性;
-y 以表格方式输出时,设置表格属性

参考实例

进行app接口的压测:

[root@linuxcool ~]# ab -n 400 -c 20 "http://www.xxx.com/api.php?sig=......"

进行post传参的压测:

[root@linuxcool ~]# ab -n 400 -c 20  -p parm.txt -T "application/x-www-form-urlencoded" 

服务器测试:

[root@linuxcool ~]# ab -n 400 -c 20 "https://www.linuxcool.com"


addr2line命令 函数地址解析工具

 

addr2line命令将地址翻译成文件名和行号。 给出一个可执行文件中的地址或一个可重定位对象中的偏移部分的地址,它使用调试信息来找出与之相关的文件名和行号。

语法格式:addr2line [参数] [地址]

常用参数:

-a 在函数名、文件和行号信息之前,显示地址,以十六进制形式
-b 指定目标文件的格式为bfdname
-e 指定需要转换地址的可执行文件名
-j 给出的地址代表指定section的偏移,而非绝对地址
-C 将低级别的符号名解码为用户级别的名字
-f 在显示文件名、行号输出信息的同时显示函数名信息
-p 使得该函数的输出信息更加人性化:每一个地址的信息占一行

参考实例

使用-f和-e参数,在显示文件名、行号输出信息的同时显示函数名信息:

[root@linuxcool ~]# addr2line -f -e android/obj/local/armeabi/libvitae.so

使用-a参数,在函数名、文件和行号信息之前,显示地址,以十六进制形式:

[root@linuxcool ~]# addr2line -a linuxcool

使用addr2line的一些参数来定位代码:

[root@linuxcool ~]# addr2line 0x00000000004005e7 -e test -f -C -s


aimanifest命令 修改自动安装程序使用的XML文件

 

aimanifest 命令可以创建一个新的 XML 清单或修改一个现有的清单。虽然 aimanifest 可以用于任何包含对 DTD 定义的有效 !DOCTYPE 引用的 XML 文件,但它旨在创建自动安装程序 (AI) 使用的衍生清单。

语法格式:aimanifest [参数]

常用参数:

-i 在添加新数据之前,不要清除数据
-r 返回到受影响节点的唯一路径
validate 验证XML数据

参考实例

添加新数据到清单列表:

[root@linuxcool ~]# aimanifest load -i linuxcool.xml

返回到受影响节点的唯一路径:

[root@linuxcool ~]# aimanifest add -r /home/linuxprobe true

验证清单里面的XML数据:

[root@linuxcool ~]# aimanifest validate


ansible命令 运维自动化工具

 

ansible是一款简单的运维自动化工具,只需要使用ssh协议连接就可以来进行系统管理,自动化执行命令,部署等任务。

语法格式:ansible [参数]

常用参数:

-m 要执行的模块,默认为command
-a 模块的参数
-u ssh连接的用户名,默认用root,ansible.cfg中可以配置
-f fork多少进程并发处理,默认为5个
-i 指定hosts文件路径,默认default=/etc/ansible/hosts
-M 要执行的模块路径,默认为/usr/share/ansible
-t 日志输出到该目录,日志文件名以主机命名

参考实例

使用command模块,显示所有主机当前文件和目录:

[root@linuxcool ~]# ansible all -a "ls"

列出将执行ls该命令的主机:

[root@linuxcool ~]# ansible all -a "ls" --list-hosts

指定host主机,测试网络状态:

[root@linuxcool ~]# ansible 192.168.1.100 -m ping


applypatch命令 安装或卸载补丁

 

applypatch 命令应用由 makepatch 程序生成的补丁包,它将执行以下操作,首先,它将广泛验证补丁包是否完整,是否在传输过程中被破坏;然后,它将应用一些启发式的方法来验证应用补丁的目录中是否包含了预期来源;如果检测到损坏或验证错误,applypatch会退出而不做更改。

语法格式:applypatch [参数]

常用参数:

-check 检查,但不执行
-retain 打补丁后保留原文件
-force 验证失败后继续
-quiet 安装无信息显示
-verbose 安装显示详细信息

参考实例

检查,但不执行:

[root@linuxcool ~]# applypatch -check

打补丁后保留原文件:

[root@linuxcool ~]# applypatch -retain

验证失败后继续:

[root@linuxcool ~]# applypatch -force


archiveadm命令 Solaris 归档文件实用程序

 

archiveadm 实用程序为用户提供了创建正在运行的 Oracle Solaris 系统的系统干归档映像的功能,用于系统克隆和恢复。 该实用程序还可用于检索创建后的存档信息,以及从存档中创建可启动媒体。

语法格式:archiveadm [参数]

常用参数:

-z 归档的区域名称或区域名称列表
-Z 从归档文件中排除的区域名称或区域名称列表
-D 从归档文件中排除一个或多个数据集
-r 创建适用于系统恢复的归档文件

参考实例

创建缺省归档文件:

[root@linuxcool ~]# archiveadm create linuxcool.tar.gz

创建排除数据集的归档文件:

[root@linuxcool ~]# archiveadm create -D /home linuxcool.tar.gz

区域归档文件:

[root@linuxcool ~]# archiveadm create -z zone linuxcool.tar.gz


archive命令 新闻组文件备存程序

 

archive会读取新闻组的文件,然后加以备存。archive备存时,会保存[源文件]中文件的目录阶层。

语法格式:archive [参数]

常用参数:

-a<备存目录> 指定备存的目录
-f 将阶层目录名称的阶层关系取消,以句点来取代斜线
-i<索引文件>  制作文件索引
-m 将文件复制到目的地,建立文件连接后,以连接取代原始的文件
-r   archive预设的标准错误输出为/var/errlog,-r参数可取消此功能

参考实例

指定目录进行备份:

[root@linuxcool ~]# archive -a ./linuxcool

将文件关联起来:

[root@linuxcool ~]# archive -i test.txt

取代文件:

[root@linuxcool ~]# archive -m test.txt


asradm命令 自动服务请求注册实用程序

 

asradm 实用程序由特权系统管理员使用来注册主机,以便在Oracle Sun系统的Oracle自动服务请求(ASR)中注册。当发生特定的硬件故障时,使用自动案例生成可以提高系统的可用性并加快诊断过程。

语法格式:asradm [参数]

常用参数:

-h 设置连接Internet的HTTPS代理主机
-u 设置代理的用户名
-p 设置代理的密码
-n 模拟发送事件消息

参考实例

设置连接Internet的HTTPS代理主机:

[root@linuxcool ~]# asradm set-proxy -h www.linuxcool.com

非交互式设置代理用户名和密码:

[root@linuxcool ~]# asradm register -u joe.admin@www.linuxcool.com -p password

查看模拟发送的消息内容:

[root@linuxcool ~]# asradm send -n audit


aulast命令 打印上次登录用户列表

 

aulast是一个程序,它打印出上次登录用户列表,类似于last和lastb命令。aulast 搜索审核日志或给定的审核日志文件,并显示根据审核日志中的时间范围登录(和注销)的所有用户的列表。可以给出用户和 tty 的名称,在这种情况下,aulast 将仅显示与参数匹配的条目。ttys 的名称可以缩写,因此 aulast 0 与最后 tty0 相同。

每次重新启动系统时,伪用户会登录。因此,上次重新启动将显示自创建日志文件以来所有重新启动的日志。

用户会注意到的主要区别是,从最旧到最新的身份验证打印事件,而最后打印从最新到最旧的记录。此外,每次分配 tty 或 pty 时,不会通知审核系统,因此您可能看不到指示用户及其 tty 的记录。

语法格式:aulast [参数]

常用参数:

--bad 报告错误登录
--extract 将用于创建显示报表的原始审核记录写入当前工作目录中的文件aulast.log
-f file 使用文件而不是审核日志进行输入
--proof 打印出用于确定报表上一行的审核事件序列号
--stdin 从 stdin 获得审计记录

参考实例

查看本月的登陆记录:

[root@linuxcool ~]# ausearch --start this-month --raw | aulast --stdin

打印出用于确定报表上一行的审核事件序列号:

[root@linuxcool ~]# ausearch --start this-month --raw | aulast --proof

直接从 stdin 获得审计记录,而不是使用ausearch进行日志搜索:

[root@linuxcool ~]# aulast --stdin


auvirt命令 显示与虚拟机相关的数据

 

auvirt命令显示在审核日志中发现的访客会话列表。如果指定了访客,则仅考虑与该访客相关的事件。若要指定访客,可以同时提供 UUID 或 VM 名称。

对于每个访客会话,该工具将打印一个带域名的记录、启动访客的用户、访客启动的时间以及访客停止的时间。

如果指定参数”--all-events”,将显示更详细的输出。在此模式下,将显示其他记录,用于访客的停靠点、资源分配、主机关闭和 AVC 和异常事件。第一个字段指示事件类型,可以具有以下值:启动、停止、res、avc、anom 和向下(用于主机关闭)。

默认情况下,auvirt 从系统审核日志文件中读取记录。但是,可以指定 --stdin和 --file参数来更改此行为。

语法格式:auvirt [参数]

常用参数:

--all-events 显示所有虚拟化相关事件的记录
--debug 将调试消息打印到标准输出
-f, --file file 从给定文件中读取记录,而不是从系统审核日志文件
-h, --help 打印帮助消息
--proof 在每个事件之后添加一行,其中包含用于计算事件的审核记录的所有标识符。每个标识符由 unix 时间、毫秒和序列号组成
--show-uuid 将访客的 UUID 添加到每个记录中
--stdin 从标准输入读取记录,而不是从系统审核日志文件读取记录
--summary 打印包含有关找到的事件的信息的摘要。摘要包含考虑的时间范围、来宾启动和停止数、资源分配数、AVC 和异常事件数、主机关闭数和失败操作数
-u, --uuid UUID 仅显示与访客相关的事件与给定的 UUID
-v, --vm name 仅显示与具有给定名称的访客相关的事件

参考实例

查看访客名为linuxcool的本月的所有记录:

[root@linuxcool ~]# auvirt --start this-month --vm linuxcool --all-events

从指定定文件中读取记录:

[root@linuxcool ~]# auvirt -f file

将所有访客的 UUID 添加到每个记录中,我们需要指定一个输出文件:

[root@linuxcool ~]# auvirt --show-uuid > file


bart命令 -文件完整性扫描和报告

 

bart 命令是一个基于规则的文件完整性扫描和报告工具,它使用加密强度的校验和和文件系统元数据来报告变化。

语法格式:bart [参数]

常用参数:

-i 指定要在全局范围内忽略的文件属性
-I 指定输入的文件列表
-n 防止计算所有的内容签名
-p 在“程序模式”下显示清单比较输出,该模式适合进行程序解析
-r rules_file 使用 rules_file 可指定要在目录中列出哪些文件和目录,并定义要标记哪些文件属性差异
-R root_directory 指定清单的根目录

参考实例

创建缺省清单但不计算校验和:

[root@linuxcool ~]# bart create -n

为指定子树创建清单:

[root@linuxcool ~]# bart create -R /home/linuxprobe

使用标准输入创建清单:

[root@linuxcool ~]# find /home/linuxprobe -print | bart create -I


bccmd命令 CSR BCCMD接口的实用程序

 

bccmd命令是将BlueCore命令发布给Cambridge Silicon Radio设备, 如果不带参数运行,将显示一个简短的帮助页面。

语法格式:bccmd [参数] [命令]

常用参数:

-t 指定通信传输
-d 指定要操作的特定设备
-b 选择bcsp传输速率

参考实例

获取BCSP蓝牙设备的本地时间:

[root@linuxcool ~]# bccmd -t BCSP clock

列出所有HCI设备的PS密钥:

[root@linuxcool ~]# bccmd -d HCI pslist

选择bcsp传输速率:

[root@linuxcool ~]# bccmd -b 100bps abc


bc命令 浮点运算

 

bc的英文全拼为“ Binary Calculator ”,是一种支持任意精度的交互执行的计算器语言。bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下。

语法格式:bc [选项]

常用参数:

-i 强制进入交互式模式
-l 定义使用的标准数学库
-w 定义使用的标准数学库
-q 打印正常的GNU bc环境信息

参考实例

算术操作高级运算bc命令它可以执行浮点运算和一些高级函数:

[root@linuxcool ~]# echo "1.212*3" | bc 
3.636

设定小数精度(数值范围):

[root@linuxcool ~]# echo "scale=2;3/8" | bc
.37

计算平方和平方根:

[root@linuxcool ~]# echo "10^10" | bc
10000000000
[root@linuxcool ~]# echo "sqrt(100)" | bc
10


bootctl命令 控制固件与systemd-boot引导管理器

 

bootctl能够检查 EFI 引导管理器状态、列出可用引导管理器、列出启动项, 还能够在当前系统上安装、更新、卸载 systemd-boot引导管理器。

语法格式:bootctl {参数]

常用参数:

--path= ESP(EFI System Partition)的挂载目录。若未指定,那么将依次检查 /efi, /boot, /boot/efi 目录。 建议尽可能将 ESP 挂载到 /boot 目录
-p,--print-path- 此选项用于改变 status 命令的行为, 让该命令仅显示 ESP(EFI System Partition) 的挂载目录之后 就立即退出
--no-variables 忽略固件中的引导管理器列表(存储在 EFI 变量中)
--no-pager 不将程序的输出内容管道(pipe)给分页程序
-h, --help 显示简短的帮助信息并退出
--version 显示简短的版本信息并退出

参考实例

显示简要的固件信息、本次启动所使用的引导管理器等信息:

[root@linuxcool ~ ]# bootctl status

更新所有已安装的 systemd-boot 引导管理器:

[root@linuxcool ~]# bootctl update

将所有已安装的 systemd-boot 从 ESP(EFI system partition) 中卸载,并且从EFI引导管理器启动顺序列表中删除对应的项:

[root@linuxcool ~]# bootctl remove

列出所有符合 Boot Loader Specification 规范的 可用启动项、引导管理器自动生成的启动项、任何其他找到的启动项:

[root@linuxcool ~]# bootctl list

设置默认启动项。ID 是一个启动项 ID 标识符。 set-oneshot 命令仅临时设置下次启动所使用的默认启动项,而 set-default 命令则是永久设置默认启动项:

[root@linuxcool ~]# bootctl set-default ID, set-oneshot ID


boot命令 启动系统内核或独立程序

 

boot 命令是用来引导装入并执行独立程序的过程;一般而言,操作系统内核是独立程序,但是任何独立的程序都是可以进行引导的。

语法格式:boot [参数]

常用参数:

dhcp 通过 DHCP 方式获取配置参数
prompt 导致 wanboot 进入其命令解释程序
rarp 网络引导
-F 结合使用 wanboot进行对比

参考实例

单用户模式下引导缺省内核:

[root@linuxcool ~]# boot –as

通过网络引导:

[root@linuxcool ~]# boot net:rarp

结合使用 wanboot进行对比:

[root@linuxcool ~]# boot cdrom -F wanboot -o dhcp,prompt


break命令 结束for while或until循环

 

break命令用于结束for,while或until循环,可指定退出几层循环。

语法格式:break [参数]

常用参数:

n 大于等于1的整数,用于指定退出几层循环

参考示例

break的可选参数n缺省值为1:

for((j=3;j>0;j--)); do   
  for((i=3;i>0;i--)); do   
    if((j==2)); then  
      break     
    fi   
printf "%s %s\n" ${i} ${j}  
  done 
done  
# 输出结果 3 3 2 3 1 3  

当n为2时: 退出两层循环,结束:

for((i=3;i>0;i--)); do   
  for((j=3;j>0;j--)); do    
   if((j==2)); then   
     break 2 
   fi   
printf "%s %s\n" ${i} ${j}
  done           
done  
# 输出结果 3 3   


builtin命令 执行bash内建命令

 

builtin命令用于执行指定的bash内建命令, builtin命令调用的bash内建命令优先于同名的外部命令及同名的shell函数。 返回该内建命令执行的返回值,除非传递的不是bash内建命令或该内建命令被禁用。

语法格式: builtin [参数]

常用参数:

shell-builtin 要调用的bash内建命令
arg 传递给bash内建命令的一到多个参数

参考实例

同名情况下的优先级顺序:builtin 内建命令 > 函数 > 内建命令 > 外部命令:

[root@linuxcool ~]# echo "the Great Wall" 
[root@linuxcool ~]# type -t echo 
[root@linuxcool ~]# echo(){printf "123\n" } 
[root@linuxcool ~]# echo 
[root@linuxcool ~]# type -t echo 
[root@linuxcool ~]# builtin echo -e "backslash \\" 

执行shell内部指令,输出当前系统下的命令别名 :

[root@linuxcool ~]# builtin alias 
[root@linuxcool ~]# alias cp='cp -i'  
[root@linuxcool ~]# alias l.='ls -d .* --color=tty'  
[root@linuxcool ~]# alias ll='ls -l --color=tty'  
[root@linuxcool ~]# alias ls='ls --color=tty'  
[root@linuxcool ~]# alias mv='mv -i'  
[root@linuxcool ~]# alias rm='rm -i'  
[root@linuxcool ~]# alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'  


catman命令 创建参考手册的格式化文件

 

catman实用程序基于输入文件创建在线手册的预格式化版本。通过此功能,可以轻松地在一组关联的计算机之间分发预格式化手册页,因为此功能使预格式化手册页的目录成为自包含目录,独立于未格式化的条目。

系统会检查每个手册页,并对预格式化版本缺失或过期的手册页进行重新创建。如果进行了任何更改,则 catman 将重新创建索引文件。

语法格式:catman [参数]

常用参数:

–c 基于 SGML 源在相应 man子目录中创建未格式化的 nroff 源文件
–n 不创建(或重新创建)索引文件
–p 模拟运行选项,即显示将执行的操作,而不实际执行
–t 在相应fmt子目录中创建经过troff处理的条目,而不是通过 nroff置入cat子目录

参考实例

如果有一个不以“−” 开头的参数,则将其作为要由catman处理的手册节的空格分隔列表。如果指定了此操作数,则仅处理列表中的手册节:

[root@linuxcool ~]# catman 1 2 3

不创建(或重新创建)索引文件:

[root@linuxcool ~]# catman -n

显示将执行的操作:

[root@linuxcool ~]# catman -p


chronyc命令 设置时间与时钟服务器同步

 

chrony是一个开源的自由软件,它能保持系统时钟与时钟服务器(NTP)同步,让时间保持精确。它由两个程序组成:chronyd和chronyc。

chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。

chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。

语法格式:chronyc [参数]

常用参数:

sources 时间同步源
sourcestats 时间同步源状态

参考实例

开启chrony服务:

[root@linuxcool ~]# systemctl enable chronyd.service

查看时间同步源:

[root@linuxcool ~]# chronyc sources -v

查看时间同步源状态:

[root@linuxcool ~]# chronyc sourcestats -v


cmatrix命令 代码雨风格屏幕保护

 

cmatrix命令是一个模拟黑客帝国风格的屏幕保护命令,使用它可以完成可定制的代码雨效果,它可以改变代码下落速度和颜色。

语法格式:cmatrix [参数]

常用参数:

-b 随机粗体
-u 刷新频率,0-9
-C 显示的颜色,支持green,red,blue,white,yellow,cyan,
       magenta and black

参考实例

更改屏保为随机粗体,红色字母:

[root@linuxcool ~]# cmatrix -b -C red

更改屏保为异步滚动:

[root@linuxcool ~]# cmatrix -a 

更改为彩虹模式,速度调为最快:

[root@linuxcool ~]# cmatrix -r -u 0


command命令 调用并执行指定的命令

 

command命令调用指定的指令并执行,命令执行时不查询shell函数。command命令只能够执行shell内部的命令。

当系统内定义了与linux命令相同的函数时,使用command命令忽略shell函数,而执行相应的linux命令。

语法格式: command [参数] [命令]

常用参数:

-p 使用正确的路径搜索命令
-v 不执行命令,但搜索命令和打印不执行命令
-V 不执行命令,而是搜索命令并打印命令搜索的精细度

参考实例

忽略fdisk函数,调用该命令:

[root@linuxcool ~]# command fdisk -l

使用command命令调用执行echo命令:

[root@linuxcool ~]# command echo Linuxcool
Linuxcool

使用正确的路径搜索命令:

[root@linuxcool ~]# command -p fdisk


continue命令 结束本次循环

 

continue主要用途在于结束本次循环,继续执行下一个for,while或until循环;可指定从第几层循环继续执行。

语法格式:continue

常用参数:

n 大于等于1的整数,用于指定从第几层循环继续执行

参考实例

continue的可选参数n缺省值为1:

for((i=3;i>0;i--)); do 
  for((j=3;j>0;j--)); do    
    if((j==2)); then  
      continue 
    fi   
printf "%s %s\n" ${i} ${j} 
  done   
done   
# 输出结果 3 3 3 1 2 3 2 1 1 3 1 1  

当n为2时: 跳到外层for循环继续执行:

for((i=3;i>0;i--)); do  
  for((j=3;j>0;j--)); do   
   if((j==2)); then      
     continue 2   
   fi    
printf "%s %s\n" ${i} ${j} 
  done
done 
# 输出结果 3 3 2 3 1 3  


dc命令 一个任意精度的计算器

 

dc命令的作用是进行计算,它支持无限精度运算,也可以定义和调用宏。

通常情况下,dc命令从命令行界面读取数据,如果指定了文件名,那么命令将从指定的文件中读取数据。计算的结果将结果输出到命令行界面,并且所有的错误信息将都在这里输出。

语法格式: dc [参数] [文件]

常用参数:

 -e<脚本> 增加脚本中的命令到程序的命令设置
 -f<脚本文件> 增加脚本文件中的命令到程序的命令设置
P 弹出堆栈最顶端的值 
p 输出堆栈最顶端的值
n 弹出堆栈最顶端的值,然后关闭,不显示一个换行符
f 显示堆栈的所有内容
+
--
*
/
% 余数
^ 指数
v 开方

参考实例

运算18*18的值:

[root@linuxcool ~]# dc
18
18
*
p
324
q

计算36的开方的值:

[root@linuxcool ~]# dc
36
v
p
6
q

进行一次综合运算:

[root@linuxcool ~]# dc
7
8
*
p
56
3 2 ^ p
9
2 / p
4
f
4
56
+p
60
q


declare命令 声明shell变量

 

declare命令用于定义shell变量,但declare定义的变量仅能在当前shell环境中起作用,切换shell环境后将无效。

语法格式: declare [参数] [目录]

常用参数:

-a 声明数组变量
-f 仅显示函数
-F 不显示函数定义
-i 先计算表达式,把结果赋给所声明变量
-p 显示给定变量的定义的方法和值,当使用此选项时,其他的选项将被忽略
-r 定义只读变量
-x 将指定的Shell变量转换成环境变量

参考实例

显示已定义的变量:

[root@linuxcool ~]# declare 

定义新的Shell变量:

[root@linuxcool ~]# declare var1=“hello”

使用“-i”定义新的变量:

[root@linuxcool ~]# declare -i var2=100+200

使用“-p” 显示变量var1和var2的定义:

[root@linuxcool ~]# declare -p var1 var2

显示所有的环境变量:

[root@linuxcool ~]# declare -x


dirs命令 显示Shell目录堆栈中的记录

 

dirs命令用于显示Shell目录中的堆栈记录。不加选项时显示当前的Shell命令堆栈中的所有目录,显示时左边为最新加入的目录。

语法格式:dirs [参数]

常用参数:

-c 删除目录堆栈中的所有记录
-l 以完整格式显示堆栈中的目录。显示用户宿主目录时,列出完整路径,而不是“~”
-n 显示右起第n个目录(n从0计数)
+n 显示左起第n个目录 (n从0计数)
-p 以每行一个记录的方式列出堆栈中多有记录
-v 以每行一个记录的方式列出堆栈中所有记录,并在每行加上序号(从0开始编号)

参考实例

显示Shell目录堆栈中的记录:

[root@linuxcool ~]# dirs

显示Shell目录堆栈内容,每行一个记录:

[root@linuxcool ~]# dirs -p 

显示Shell目录堆栈内容,每行一个记录,并加序号:

[root@linuxcool ~]# dirs -v

删除Shell目录堆栈中的记录:

[root@linuxcool ~]# dirs -c 


docker-compose命令 容器集群的快速编排工具

 

docker-compose命令是Docker官方的开源项目,负责实现对Docker容器集群的快速编排,docker-compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。

语法格式:docker-compose [参数]

常用参数:

-f file file指定Compose模板文件,默认为docker-compose.yml,可以多次指定
-p project-name project-name指定项目名称,默认将使用所在目录名称作为项目名
up 启动容器,终端运行
-d 后台运行容器
images 列出镜像
down 停止和删除容器、网络、卷、镜像
start 启动项目中容器,后台运行
logs 查看项目中容器日志
stop 停止项目中容器
restart 重启项目中容器

参考实例

启动并后台运行容器:

[root@linuxcool ~]# docker-compose up -d

列出镜像:

[root@linuxcool ~]# docker-compose images

查看项目中容器日志:

[root@linuxcool ~]# docker-compose logs -f

停止项目中容器:

[root@linuxcool ~]# docker-compose stop


eval命令 重新运算求出参数

 

eval命令用于重新运算求出参数的内容。eval可读取一连串的参数,然后再依参数本身的特性来执行。

语法格式: eval [参数]

参考实例

连接单个命令:

[root@linuxcool ~]# eval enable

连接多个命令:

[root@linuxcool ~]# eval enable;ls


exportfs命令 管理NFS服务器共享的文件系统

 

exportfs命令需要参考配置文件“/etc/exportfs”。也可以直接在命令行中指定要共享的NFS文件系统。

语法格式: export [参数] [目录]

常用参数:

-a 全部挂载或者全部卸载
-r 重新挂载
-u 卸载某一个目录
-v 显示共享目录

参考实例

输出NFS共享目录:

[root@linuxcool ~]# exportfs -a

导出目录/usr/tmp给django主机,且允许客户端发送不安全的文件锁请求 :

[root@linuxcool ~]# exportfs -o insecure_locks django:/usr/tmp 

卸载到/usr/linuxprobe目录:

[root@linuxcool ~]# exportfs -u /usr/linuxcool

卸载所有导出列表:

[root@linuxcool ~]# exportfs -au 

显示共享目录:

[root@linuxcool ~]# exportfs -v


factor命令 分解因数

 

factor命令用于分解因数。

factor是Ubuntu自带的分解质因数的指令,速度飞快。系统自带的factor没用gmp,不支持2^128(大概40位)以上的数,如果自己编译coreutils使其支持gmp,就可以开始算任意位的数了。

语法格式:factor [参数]

常用参数:

number 40位以内的整数
pf 主因子方法
pcf 主成分因子

参考实例

60的分解因数:

[root@linuxcool ~]# factor 60
60:2 2 3 5

1987的分解因数(没有返回更多因子,这是因为 1987 是一个 质数):

[root@linuxcool ~]# factor 1087
1987:1987

连续分解多个数字:

[root@linuxcool ~]# factor
60
60:2 2 3 5
1987
1987:1987

分解最大位数(40位):

[root@linuxcool ~]# factor 170150000000000000000000000000000000000
factor: ‘170150000000000000000000000000000000000’ is too large


fc命令 编辑并执行历史命令

 

EXTENDED_HISTORY环境变量影响fc命令的执行,如果变量设置为ON,则记录时间,否则不记录时间。

语法格式: fc [参数]

常用参数:

-e<文本编辑器> 指定用来编辑命令的文本编辑器,默认是vi
-l 列出第一条和最后一天命令范围内的历史命令,如果不跟命令范围则默认显示最近使用过的16条历史命令
-n 显示历史命令时不显示命令序号
-r 反序显示所有历史命令
-s<命令名> 从历史命令中当前位置往前找到指定命令,并执行

参考实例

显示历史命令列表(默认打印最近的16条历史命令):

[root@linuxcool ~]# fc -l

指定使用ex文本编辑器编辑命令:

[root@linuxcool ~]# fc -e ex

显示历史命令列表但不显示命令序号:

[root@linuxcool ~]# fc -n

反序显示所有历史命令:

[root@linuxcool ~]# fc -r

从历史命令中找到find命令,并执行:

[root@linuxcool ~]# fc -s find


gdbserver命令 调试远程服务器

 

使用gdbserver命令可以允许在不同的主机上运行GDB来进行程序调试。

语法格式:gdbserver [参数]

常用参数:

--debug 启用一般的调试输出
--attach 指定进程号

参考实例

使用串行端口进行程序调试:

[root@linuxcool ~]# gdbserver /dev/coml emacs gdb.txt

使用TCP连接进行程序调试:

[root@linuxcool ~]# gdbserver host:2345 emacs gdb.txt


gpg命令 加密工具

 

gpg是加密和数字签名的免费工具,大多用于加密信息的传递。除了仅用密码加密外,gpg最大的不同是提供了“公钥/私钥”对。利用你的“公钥”别人加密信息不再需要告诉你密码,随时随地都能发送加密信息。而这种加密是单向的,只有你的“私钥”能解开加密。数字签名又是另一大使用方向。通过签名认证,别人能确保发布的消息来自你,而且没有经过修改。 

语法格式:gpg [参数]

常用参数:

-c 指定加密文件
-o 指定解密文件
--gen-key 生成密钥对
--list-keys 查看已有的密钥

参考实例

对称加密myfile文件:

[root@linuxcool ~]# gpg -c myfile

解密对称加密的文件:

[root@linuxcool ~]# gpg -o mydecrypt -d myfile.gpg

生成密钥对:

[root@linuxcool ~]# gpg --gen-key

查看已有的密钥:

[root@linuxcool ~]# gpg --list-keys


grub-crypt命令 对口令进行加密

 

grub-crypt命令的作用是对口令进行加密。grub-crypt命令支持对口令进行MD5和SHA加密,默认情况下是对口令进行SHA-512加密。

SHA是Secure Hash Algorithm的简写,中文为安全散列算法,是美国国家安全局 设计,美国国家标准与技术研究院发布的一系列密码散列函数。由于SHA-1已经不太安全,目前SHA-2各版本已成为主流。

语法格式:grub-crypt [参数]

常用参数:

-- -md5 使用MD5加密口令
-- -sha-256 使用SHA-256加密口令
-- -sha-512 使用SHA-512加密口令(默认)

参考实例

使用默认模式对口令进行加密:

[root@linuxcool ~]# grub-crypt 
Password: 
Retype password: 5476c925d9944226ce156be12bf3ce38889d141194c55794e6017c2e8e60d600fa01d19d6b371fa1921d0036dddc8708bc36d64dd9fc0350b839b8121a889ff2

使用MD5对口令进行加密:

[root@linuxcool ~]# grub-crypt --md5
Password:
Retype password: 
aa422445d1ae1263fe3ad6f508e4c53b

使用SHA-256对口令进行加密:

[root@linuxcool ~]# grub-crypt --sha-256
Password:
Retype password:
2b222ddcb1abfdd10ae57a759bf34a0e872220cf17ded40b82a42b321fcb585e


hash命令 显示与清除命令运行时查询的哈希表

 

hash命令负责显示与清除命令运行时系统优先查询的哈希表(hash table)。

当执行hash命令不指定参数或标志时,hash命令向标准输出报告路径名列表的内容。此报告含有先前hash命令调用找到的当前shell环境中命令的路径名。而且还包含通过正常命令搜索进程调用并找到的那些命令。

语法格式: hash [参数] [目录]

常用参数:

-d 在哈希表中清除记录
-l 显示哈希表中的命令
-p<指令> 将具有完整路径的命令加入到哈希表中
-r 清除哈希表中的记录
-t 显示哈希表中命令的完整路径

参考实例

显示哈希表中的命令:

[root@linuxcool ~]# hash -l 

删除哈希表中的命令:

[root@linuxcool ~]# hash -r 

向哈希表中添加命令:

[root@linuxcool ~]# hash -p /usr/sbin/adduser myadduser 

在哈希表中清除记录:

[root@linuxcool ~]# hash -d

显示哈希表中命令的完整路径:

[root@linuxcool ~]# hash -t


history命令 显示与操纵历史命令

 

history命令用于显示用户以前执行过的历史命令,并且能对历史命令进行追加和删除等操作。

如果你经常使用Linux命令,那么使用history命令可以有效地提升你的效率。

语法格式: history [参数] [目录]

常用参数:

-a 将当前shell会话的历史命令追加到命令历史文件中,命令历史文件是保存历史命令的配置文件
-c 清空当前历史命令列表
-d 删除历史命令列表中指定序号的命令
-n 从命令历史文件中读取本次Shell会话开始时没有读取的历史命令
-r 读取命令历史文件到当前的Shell历史命令内存缓冲区
-s 将指定的命令作为单独的条目加入命令历史内存缓冲区。在执行添加之前先删除命令历史内存缓冲区中最后一条命令
-w 把当前的shell历史命令内存缓冲区的内容写入命令历史文件

参考实例

显示最近的10条命令:

[root@linuxcool ~]# history 10  

将本次登录的命令写入历史文件中:

[root@linuxcool ~]# history -w

将命令历史文件中的内容读入到目前shell的history记忆中 :

[root@linuxcool ~]# history -r  

将当前Shell会话的历史命令追加到命令历史文件中:

[root@linuxcool ~]# history -a  

清空当前历史命令列表:

[root@linuxcool ~]# history -c 


ifplugstatus命令 检查网线是否已插到在网络接口

 

ifplugstatus命令可以查看所有网络接口的状态,或是指定网络接口的状态。

这个命令Ubuntu没有预装,通过下面的命令来安装
sudo apt-get install ifplugd。

语法格式:ifplugstatus

参考实例

显示接口状态:

[root@linuxcool ~]# ifplugstatus
lo:link beat detected
wlan0:link beat detected
eth0:unplugged

查看上面的快照, 它显示了所有接口的状态。在这里, 检测到链接信号意味着已将其插入。在我们的系统中, lo和wlan0已插入, 而eth0未插入。


jobs命令 显示shell的作业信息

 

jobs命令主要用于显示系统中的任务列表及其运行状态。

该命令可以显示任务号及其对应的进程号,其中,任务号是以普通用户的角度进行的,而进程号则是从系统管理员的角度来看的。一个任务可以对应一个或者多个进程号。

语法格式: jobs [参数] [目录]

常用参数:

-l 显示作业列表时包括进程号
-n 显示上次使用jobs后状态发生变化的作业
-p 显示作业列表时仅显示其对应的进程号
-r 仅显示运行的(running)作业
-s 仅显示暂停的(stopped)作业

参考实例

显示当前的作业列表:

[root@linuxcool ~]# jobs 

显示当前的作业号以及对应的进程号:

[root@linuxcool ~]# jobs -l

仅显示运行的作业:

[root@linuxcool ~]# jobs -r

仅显示暂停的作业:

[root@linuxcool ~]# jobs -s

显示上次使用jobs后状态发生变化的作业:

[root@linuxcool ~]# jobs -n 


jot命令 创建数字列表

 

jot命令可以创建一系列数字。给定数字总数及起始数字即可。可帮助您根据您提供的值创建数字列表,作为起始编号和要在其后查看的值的数量。

通过jot执行计算的语法,并使用jot命令在Ubuntu命令行中执行高效数学运算。 不过可能首先需要安装Athena-jot才能在Ubuntu上使用jot命令。

语法格式:jot [参数]

常用参数:

x 打印x个数值
y 数字y之后
z 在数字y之后反转打印x个数字,直到数字z

参考实例

在数字2之后打印6个数值:

[root@linuxcool ~]# joy 6 2
2
3
4
5
6
7

在数字10之后反转打印8个数字,直到数字2:

[root@linuxcool ~]# joy 8 10 2
10
9
8
7
5
4
3
2

从第1天(y值)开始打印12月份的9天(x值):

[root@linuxcool ~]# $ for i in `jot 9 1`; do echo December$i; done
december1
december2
december3
december4
december5
december6
december7
december8
december9


killall5命令 向所有进程发送信号

 

killall5是SystemV killall命令。它向所有进程发送一个信号,除了内核线程和它自己会话中的进程,所以它不会杀死运行脚本的shell。

语法格式:killall5 [参数]

常用参数:

-o 省略具有该进程id的进程

参考实例

杀死除1122外外的所有进程:

[root@linuxcool ~] # killall5 -o 1122


lessecho命令 展开元字符

 

lessecho是一个简单地在标准输出上重复其参数的程序,但是任何包含空格的参数都要用引号括起来。

语法格式:lessecho [参数]

常用参数:

-ox 指定“x”作为左引号字符
-cx 将“x”指定为右引号字符
-pn 指定“n”作为一个整数作为左引号字符
-dn 将“n”指定为右引号字符,作为整数
-mx 指定“x”为元字符
-nn 指定“n”为元字符,作为整数
-ex 指定“x”作为metachars的转义字符
-fn 指定“n”作为metachars的转义字符,作为整数
-a -a指定引用所有参数,默认情况下,只引用包含空格的参数

参考实例

在文件中指定“x”作为左引号字符:

[root@linuxcool ~]# lessecho -ox

指定“n”作为一个整数作为左引号字符:

[root@linuxcool ~]# lessecho -pn

指定“x”为元字符:

[root@linuxcool ~]# lessecho -mx


lslogins命令 显示系统中现有用户的相关信息

 

lslogins命令会展示出系统中现有用户的相关信息,-u标记可用来标识只展示用户的账户。

该命令检查wtmp和btmp日志,/etc/shadow(如果需要)和 /etc/passwd并输出所需数据。

语法格式:lslogins [参数]

常用参数:

-a, --acc-expiration 显示有关上次密码更改日期和账户到期日
--btmp-file btmp的备用路径
-c, --colon-separate 用冒号代替换行符
-e, --export 以NAME=VALUE格式输出数据
-f, --failed 显示有关用户上次失败登录尝试的数据
-G, --supp-groups 显示有关补充组的信息
-L, --last 显示包含有关用户上次登录会话的信息的数据
-l, --logins 仅显示登录名(用户)中指定登录名的用户的数据名称或用户名)
-o, --output 指定要打印的输出列
-p, --pwd 显示与按密码登录相关的信息
-r, --raw 原始输出(无列)
-u, --user-accs 显示用户帐户

参考实例

展示出系统中现有用户的相关信息:

[root@linuxcool ~]# lslogins -u linuxcool

显示与按密码登录相关的信息:

[root@linuxcool ~]# lslogins -u linuxcool -p

显示有关补充组的信息:

[root@linuxcool ~]# lslogins -u linuxcool -G


metamail命令 处理非文字E-mail的程序

 

metamail命令负责处理非文字E-mail的程序。该命令可以通过参数设置邮件内容类型,寄信人地址,邮件管理程序名称,邮件主题,文件名等信息。

语法格式:metamail [参数]

常用参数:

-b 邮件只有内文,没有表头
-B 在背景显示信息
-d metamail在调用其他程序显示信息前,不需向用户确认
-e 删除内文前端的空白行
-f<寄信人地址> 不要读取邮件表头中的寄信人地址,而去读取选项中的设置
-h 使用metamail的邮件管理程序名称
-p 将显示内容送给more指令处理之后,再送到输出设备

参考实例

设置邮件内容只有内文,没有表头:

[root@linuxcool ~]# metamail -b

将显示内容送给more指令处理之后,再送到输出设备:

[root@linuxcool ~]# metamail -p 

删除内文前端的空白行:

[root@linuxcool ~]# metamail -e


mkinitrd命令 建立ramdisk映像文件

 

mkinitrd命令建立要载入ramdisk的映像文件,以供Linux开机时载入ramdisk。

这个是重新封包核心的命令,例如你自己修改了一个设备的驱动,如果这个驱动要加入核心级别的话,就需要对核心进行重新封包,把新加的配置编译到核心内部去!

语法格式: mkinitrd [参数]

常用参数:

-f 若指定的映像问家名称与现有文件重复,则覆盖现有的文件
-v 执行时显示详细的信息
--version 显示版本信息

参考实例

显示版本信息:

[root@linuxcool ~]# mkinitrd  text.img --version

执行时显示详细的信息:

[root@linuxcool ~]# mkinitrd  text.img -v

建立test.img文件,并显示详细信息,如有同名则覆盖:

[root@linuxcool ~]# mkinitrd -v -f text.img $(uname -r)


mkisofs命令 建立ISO 9660映像文件

 

mkisofs命令用来将指定的目录与文件做成ISO 9660格式的映像文件,以供刻录光盘。

语法格式: mkisofs [参数]

常用参数:

-a或--all 把备份文件加到映像文件中
-h 显示帮助
-quiet 执行时不显示任何信息
-x<目录> 指定的目录将不会放入映像文件中

参考实例

以静默的形式将test.bin制作成test.iso文件:

[root@linuxcool ~]# mkisofs -quiet test/test.bin /test.iso


mkpasswd命令 生成用于用户的新密码

 

mkpasswd是make password的简写。mkpasswd命令的作用是可以生成应用用户的新密码,选择将其应用于用户。

mkpasswd命令使用前需要安装expect包。

语法格式:mkpasswd [参数] [用户]

常用参数:

-c 定义在密码中小写字母字符的最小数目,默认值是2
-C 定义在密码中大写字母字符的最小数目,默认值是2
-s 定义在密码中特殊字符的最小数目,默认值是1
-p 指定程序来设置密码。默认情况下,如果存在使用/etc/yppasswd,否则使用/bin/passwd
-d 定义密码的最小数目,默认值是2
-l 定义口令的长度,默认值为9
-v 导致密码设置互动可见

参考实例

生成随机密码同时制定长度为20:

[root@linuxcool ~]# mkpasswd -l 20

生成指定数字位数的密码:

[root@linuxcool ~]# mkpasswd -d 3

为用户更改随机密码:

[root@linuxcool ~]# echo mkpasswd -l 10 | passwd --stdin xiaoming


msgcat命令 合并多个邮件目录

 

msgcat命令合并多个邮件目录。msgcat程序连接并合并指定的PO文件。它找到两个或多个指定的PO文件共有的消息。通过使用 -- 多选项,可以在打印消息之前请求更大的通用性。相反,在打印消息 (即’-less-than = 2’只打印唯一消息)之前,可以使用-less-than 选项来指定较少的通用性。

语法格式:msgcat [参数]

常用参数:

-f 从文件获取输入文件列表
-D 将目录添加到列表以进行输入文件搜索
-o 将输出写入指定文件
--use-first 对每条消息使用第一个可用的翻译,不要合并
-E 在输出中使用C转义符,没有扩展字符
-s 生成排序输出

参考实例

从文件获取输入文件列表:

[root@linuxcool ~]# msgcat -f linuxcool.txt

将输出写入指定文件:

[root@linuxcool ~]# msgcat -o linuxcool.txt

生成排序输出:

[root@linuxcool ~]# msgcat -s


msgen命令 创建英文邮件目录

 

msgen命令用于创建英文邮件目录。输入文件是最后输入的英文邮件或者一个邮件模板。该命令可以快速生成邮件模板。

语法格式:msgen [参数]

常用参数:

-D, --directory 将目录添加到列表以进行输入文件搜索
如果输入文件为-,则读取标准输入
-o, --output-file 将输出写入指定文件
--color 始终使用颜色和其他文本属性
-e, --no-escape 不在输出中使用转义符(默认)
-E, --escape 在输出中使用转义符,没有扩展字符
--force-po 即使为空也写入邮件模板
-i, --indent 缩进输出样式
--strict 严格的统一输出样式

参考实例

将目录添加到列表以进行输入文件搜索:

[root@linuxcool ~]# msgen -D /directory

将输出写入指定文件:

[root@linuxcool ~]# msgen -o file

对于需要特定输出样式的,需要在输出中使用转义符:

[root@linuxcool ~]# msgen -E


mutter命令 GTK2窗口管理器

 

mutter命令是一款面向非技术用户的最小化X窗口管理器,它被设计成可以与GNOME桌面很好地集成。mutter缺少一些传统UNIX或其他技术用户所期望的功能;在GNOME或单机版中使用其他可用的窗口管理器。

语法格式:mutter [参数]

常用参数:

--sm-disable 禁止连接到会话管理器
-r 替换正在运行的窗口管理器
--sm-client-id=ID 指定会话管理 ID
-d, --display=DISPLAY 要使用的 X Display
--display-server 以完整显示服务器方式运行,而不是以嵌套方式
--sync 使 X 调用同步
--wayland 作为 wayland 混成管理器运行
--nested 作为嵌套混成器运行

参考实例

禁止连接到会话管理器:

[root@linuxcool ~]# mutter --sm-disable

替换正在运行的窗口管理器:

[root@linuxcool ~]# mutter -r

以完整显示服务器方式运行,而不是以嵌套方式:

[root@linuxcool ~]# mutter --display-server


named-checkzone命令 检查和转换

 

named-checkzone命令可以进行区域文件有效性检查和转换,必须指定区域名称和区域文件名称。

语法格式:named-checkzone [参数]

常用参数:

-q 安静模式
-d 启用调试
-c <类别> 指定区域的类别

参考实例

对区域文件/var/named/192.168.0.rev进行有效性检查和转换:

[root@linuxcool ~]# named-checkzone 0.168.192.in-addr.arpa /var/named/192.168.0.rev
zone0.168.192.in-addr.arpa/IN: loaded serial 1268360612
OK

对区域文件/var/named/sh.com.hosts进行有效性检查和转换:

[root@linuxcool ~]# named-checkzone sh.com /var/named/sh.com.hosts
zonesh.com/IN: sh.com/MX 'mail.sh.com' is a CNAME (illegal)
zonesh.com/IN: loaded serial 1268360234
OK


nmtui命令 修改静态IP地址

 

文本用户界面工具nmtui可用于在终端窗口中配置接口。

通过nmtui提供的GUI界面,可以编辑连接,启动连接,设置主机名。

语法格式:nmtui

常用选项:

Edit a connection 编辑连接
Activate a connection 激活连接
Set system hostname 设置主机名

参考实例

安装nmtui:

[root@linuxcool ~]# yum install NetworkManager-tui

进入图形化界面:

[root@linuxcool ~]# nmtui


ntp-keygen命令 生成NTP主机密钥

 

ntp-keygen命令的作用是可以生成NTP主机密钥(公钥和私钥)。

公钥和私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密。如果用私有密钥对数据进行加密,只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种加密叫作非对称加密。

常用的非对称加密算法有:ElGamal、RSA、DH等。

语法格式:ntp-keygen [参数]

常用参数:

-M 生成MD5密钥
-H 生成RSA主机密钥
-S<签名密钥> 生成指定类型的签名密钥,类型可以是RSA或DSA
-i<发行人名称> 设置发行人名称
-s<主题名称> 设置主题名称
-P 生成计算机私有证书
-p<密码> 加密生成一个包含有密码和DES-CBC算法的私有数据文件
-q<密码> 为读取文件的密码设置密码
-m<模块尺寸> 设置初期模块尺寸(256~2048位)。默认大小为512
-e 写入身份密钥
-T 生成一个受信任的证书
-d 启用调试
-G 为GQ识别方案生成参数和密钥,来淘汰任何可能存在的
-g 使用现有GQ参数为GQ识别方案生成密钥。如果GQ参数还不存在,先创建它们
-I 生成用于IFF识别方案的参数,来淘汰任何可能存在的
-V<数字> 为MV识别方案生成参数和密钥
-c<方案> 选择证书信息摘要/签名加密方案,可以是RSA-MD2、RSA-MD5、RSA-SHA、RSA-SHA1、RSA-MDC2、RSA-RIPEMD160、RSA-SHA或RSA-SHA1

参考实例

加密生成一个包含有密码和DES-CBC算法的私有数据文件:

[root@linuxcool.com~]# ntp-keygen -p linuxcool

生成RSA类型的NTP主机密钥:

[root@linuxcool.com~]# ntp-keygen -S RSA

生成受信任的证书:

[root@linuxcool.com~]# ntp-keygen -T


pdbedit命令 samba的用户管理命令

 

pdbedit命令用于管理存储在sam数据库中的用户账户,只能由root运行。pdbedit工具使用passdb模块化接口,与使用的用户数据库种类无关(目前有基于smbpasswd、ldap、nis+和tdb,可以在不改变工具的情况下添加更多的用户数据库)。

pdbedit的使用方法主要有五种:添加用户账号、删除用户账号、修改用户账号、列出用户账号、导入用户账号。

语法格式:pdbedit [参数]

常用参数:

-a 新建Samba账户
-r 修改Samba账户
-x 删除Samba账户
-L 列出Samba用户列表,读passdb.tdb数据库文件
-v 列出Samba用户列表详细信息
-P 设置用户访问密码

参考实例

新建Samba账户:

[root@linuxcool ~]# pdbedit -a linuxcool

修改Samba账户:

[root@linuxcool ~]# pdbedit -r linuxprobe

删除Samba账户:

[root@linuxcool ~]# pdbedit -x linuxcool

列出Samba用户列表详细信息:

[root@linuxcool ~]# pdbedit -Lv


php命令 PHP语言的命令行接口

 

php命令是流行的Web开发语言PHP的命令行接口,可以使用PHP语言开发基于命令行的系统管理脚本程序。

使用的通用目的脚本语言,特别适合Web开发,可以嵌入到HTML中。

语法格式: php [参数]

常用参数:

-q 安静模式,HTTP头输出(只有CGI)
-g<名称> 在脚本中使变量为全局变量
-f<文件> 解析和执行文件
-a 运行PHP交互方式
-b<地址:端口> 为外部FASTCGI服务器模式(CGI)绑定路径
-r<代码> 运行PHP代码,而无需使用脚本标记“<?..?>”
-e 为调试器/分析器生成扩展信息
-n 没有php.ini文件将被使用
-z<文件> 加载Zend扩展文件
-H 从外部工具隐藏脚本名称(文件)和参数
--rf 显示有关函数名都信息
-l 只进行语法检查
--rc 显示有关类名的信息
--re 显示有关扩展名的信息
--ri 名字显示
--ini 显示配置文件名
-C 不chdir到脚本的目录
-c<路径|文件> 在指定目录路径中查找php.ini文件,或使用指定的文件
-i PHP信息和配置
-T<总数> 测量脚本重复次数的执行时间
-m 在模块中显示编译
-s 输出HTML语法高亮显示源代码
-F<文件> 对每个输入行解析和执行文件
-E<代码> 处理所有的输入行后运行PHP代码
-B<代码> 处理输入行之前运行PHP代码
-w 输出源,注释和空白
-R<代码> 对每一个输入行运行PHP代码
-v 查看版本

参考实例

查看PHP版本:

[root@linuxcool ~]# php -v
PHP 5.3.3 (cli) (built: Mar 22 2017 12:27:09)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

对/root/mm.php文件进行语法检查:

[root@linuxcool ~]# php -l /root/mm.php

显示PHP信息和配置:

[root@linuxcool ~]# php -i

写入文本Hello Linux到标准输出:

[root@linuxcool ~]# php -r 'echo "Hello Linuxn";'
Hello Linux


pigz命令 解压缩文件

 

pigz命令可以用来解压缩文件,最重要的是支持多线程并行处理,解压缩比gzip快。 pigz时间上比gzip快60%,同时CPU消耗则是gzip的好几倍,当然pigz的CPU使用率也是100%了

在对压缩效率要求较高、但对短时间内CPU消耗较高不受影响的场景,使用pigz非常合适。

语法格式: pigz [参数] [文件]

常用参数:

-b 更改block size的大小
-p 设置线程数
-S 使用后缀.sss而不是.gz(用于压缩)
-d 或unpigz可以将压缩文件恢复为原始文件

参考实例

可以结合tar使用, 压缩命令:

[root@linuxcool ~]# tar -cvf - dir1 dir2 dir3 | pigz -p 8 > output.tgz

解压命令:

[root@linuxcool ~]# pigz -p 8 -d output.tgz

如果是gzip格式,也支持用tar解压:

[root@linuxcool ~]# tar -xzvf output.tgz


popd命令 从shell目录堆栈中删除记录

 

用于从Shell目录堆栈中删除记录,如果不加任何选项,popd命令先删除Shell目录堆栈栈顶的记录,再把当前目录切换到新的Shell目录堆栈顶的目录。

语法格式:popd [参数]

常用参数:

-n 将右起第n个目录删除(n从0开始计数)
+n 将左起第n个目录删除(n从0开始计数)

参考实例

显示Shell目录堆栈内容,每行一个:

[root@linuxcool ~]# dirs -v
0 /sbin
1 /etc
2 /var/log

从shell目录堆栈中删除/sbin:

[root@linuxcool ~]# popd
/etc /var/log

显示当前的工作目录:

[root@linuxcool ~]# pwd
etc

从目录堆栈中删除栈顶目录:

[root@linuxcool ~]# popd
/var/log

从目录堆栈中删除从右起第2个目录:

[root@linuxcool ~]# popd -2


printf 命令 shell 输出

 

printf 命令模仿 C 程序库(library)里的 printf() 程序。

printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。默认printf不会像 echo 自动添加换行符,我们可以手动添加 \n。

语法格式: printf [格式控制字符串] [参数]

常用参数

\a 警告字符,通常为ASCII的BEL字符
\n 换行
\r 回车
\0ddd 表示1到3位的八进制值字符
\ddd 表示1到3位数八进制值的字符。仅在格式字符串中有效

参考实例

字符串输出:

[root@linuxcool ~]# printf "Hello, Shell\n" 
Hello, Shell 

接下来,我来用一个脚本来体现printf的强大功能:

[root@linuxcool ~]# 
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234  
printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543  
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876 

执行脚本,输出结果如下所示:

[root@linuxcool ~]# 
姓名     性别   体重kg 
郭靖     男      66.12 
杨过     男      48.65 
郭芙     女      47.99 

%s %c %d %f都是格式替代符

%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。

%-4.2f 指格式化为小数,其中.2指保留2位小数。

格式控制字符串为双引号:

[root@linuxcool ~]# printf "%d %s\n" 1 "abc" 

格式控制字符串为单引号:

[root@linuxcool ~]# printf '%d %s\n' 1 "abc"  

没有引号也可以输出:

[root@linuxcool ~]# printf %s abcdef 


protoize命令 添加函数原型

 

protoize命令属于gcc套件,用于为C语言源代码文件添加函数原型,将GNU-C代码转换为ANSI-C代码。protoize命令依赖gcc命令对C语言源代码进行扫描,并且搜集使用的函数信息。

使用protoize命令进行基本转换包括重写大多数函数定义和函数声明以指定参数的类型。

protoize命令可以选择在源文件的开头插入原型声明,以使它们可用于函数定义之前的所有调用。或者也可以在调用未声明函数的块中插入具有块范围的原型声明。

语法格式 : protoize [参数] [文件]

常用参数:

-B<目录> 在指定目录而不是常用目录(通常为/ usr / local / lib)中查找文件
-C 重命名文件以.C而不是.c结尾
-c<编译选项> 运行gcc生成.X文件时,使用
COMPILATION-OPTIONS作为选项
-d<目录> 设置需要转换代码的目录
-G 添加显示的全局声明
-i<字符串> 使用字符串缩进旧式参数声明
-k 保留.X文件
-l 添加显示的本地声明
-N 不生成.save文件
-n 不做任何真正的改变
-q 安静模式
-x 转换代码时排除的文件
-v 打印版本号

参考实例

为C语言源代码文件添加函数原型:

[root@linuxcool ~]# protoize test.c

设置需要转换代码的目录:

[root@linuxcool ~]# protoize -d /root test.c

安静模式自动添加函数原型:

[root@linuxcool ~]# protoize -q test.c


pstack命令 显示每个进程的栈跟踪

 

pstack是一个shell脚本,用于打印正在运行的进程的栈跟踪信息,它实际上是gstack的一个链接,而gstack本身是基于gdb封装的shell脚本.。

此命令可显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。可以使用 pstack 来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的 PID。

语法格式: pstack

参考实例

显示每个进程的栈跟踪:

[root@linuxcool ~]# pstack 4551

将监听进程的栈跟踪信息写入文件pstack.log:

[root@linuxcool ~] pstack 31440 >> pstack.log


pushed命令 向shell目录堆栈中添加记录

 

pushed命令用于将目录加入堆栈中,加入记录到目录栈顶部,并切换到该目录,如果不加任何参数, 则会将位于记录栈最上面的两个目录对换位置。

语法格式:pushed [参数] [目录]

常用参数:

-n 将右起第n个目录移到堆栈顶(n从0开始计数)
+n 将左起第n个目录移到堆栈顶(n从0开始计数)

参考实例

显示Shell默认的目录堆栈:

[root@linuxcool ~]# dirs
/var/log

向Shell目录堆栈中添加目录/etc:

[root@linuxcool ~]# pushed /etc

显示Shell目录堆栈内容,每行一个记录,并加序号:

[root@linuxcool ~]# dirs -v
0 /sbin
1 /etc
2 /var/log

将第一个记录移到堆栈顶:

[root@linuxcool ~]# pushed -1
/etc /var/log /sbin


pv命令 管道查看器

 

pv命令是Pipe Viewer 的简称,由Andrew Wood 开发。意思是通过管道显示数据处理进度的信息。这些信息包括已经耗费的时间,完成的百分比(通过进度条显示),当前的速度,全部传输的数据,以及估计剩余的时间。

语法格式: pv [参数] [文件]

常用参数:

-p 显示进度条
-t 显示任务已经进行的时长
-e 显示剩余多长时间完成
-r 显示当前传输速率
-a 显示平均传输速率
-b 显示传输的字节数
-F 设置输出格式为format
-n 显示进度百分比
-q 不输出任何信息
-W 在传输第一个字节之前不显示任何内容

参考实例

显示与操作有关的有用信息,包括已经传输了的数据量,花费的时间,传输速率,进度条,进度的百分比,以及剩余的时间:

[root@linuxcool ~]# pv /media/himanshu/1AC2-A8E3/fNf.mkv > ./Desktop/fnf.mkv 

使用 -n 选项来允许 pv 命令显示整数百分比,在标准错误输出上每行显示一个数字,用来替代通常的可视进度条:

[root@linuxcool ~]# pv -n /media/himanshu/1AC2-A8E3/fNf.mkv > ./Desktop/fnf.mkv 

列出存储池中具有特定名称的物理卷,请输入以下命令:

[root@linuxcool ~]# pv –list –attr pv_name=hdisk7

列出存储池中具有特定名称的物理卷,请输入以下命令:

[root@linuxcool ~]# pv –list –attr pv_name=hdisk7
 POOL_NAME: testsp
 TIER_NAME : tier1
 FG_NAME : fg2
 PV_NAME     SIZE(MB)    STATE        UDID
 hdisk7      10240       ONLINE                3E213600A0B80006E25060000D2E64F755F420F1828    FAStT03IBMfcp


pwdhash命令 密码哈希生成器

 

pwdhash命令的作用是可以在LDIF密码字段中生产可以使用的密码哈希值。

哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。

在密码学中,hash算法的作用主要是用于消息摘要和签名,换句话说,它主要用于对整个消息的完整性进行校验。

语法格式:pwdhash [参数] [密码]

常用参数:

-H 显示摘要信息
-s<方案> 指定要使用的密码方案,比如MD5、SHA1、SHA256、SHA512、SSHA、SSHA256或SSHA512
-c<密码><密码2> 对密码进行比较
-D<配置目录> 从ns-slapd配置直接进入密码模式

参考实例

产生密码linuxcool的哈希值:

[root@linuxcool ~]# pwdhash linuxcool

以密码方案MD5产生密码linuxcool的哈希值:

[root@linuxcool ~]# pwdhash -s MD5 linuxcool

对密码linuxcool和linux产生的哈希值进行比较:

[root@linuxcool ~]# pwdhash -c linuxcool linux


python命令 解释器、交互式、面向对象的编程语言

 

Python是一种解释型的、交互式的、面向对象的编程语言,它结合了非凡的功能和非常清晰的语法。Python Library Reference记录了内置的和标准的类型、常量、函数和模块。

语法格式:python [参数]

常用参数:

-c 直接运行python语句
-v 会输出每一个模块引用信息
-i 运行完python脚本文件以后打开一个python环境
-m 将模块按照脚本执行

参考实例

直接运行python语句:

[root@linuxcool ~]# python -c "print 'Hello world'"

查看python所有模块应用的信息:

[root@linuxcool ~]# python -v

运行完python脚本文件以后打开一个python环境:

[root@linuxcool ~]# python -i main.py

将模块按照脚本执行,实现一个简单的下载服务器:

[root@linuxcool ~]# python -m SimpleHTTPServer 80


rake命令 ruby程序构建

 

rake是一个简单的ruby构建程序,其功能类似于常规make命令。

rake具有以下特性:1、rakefile(rake的makefile版本)完全用标准的Ruby语法定义。没有要编辑的XML文件。不用担心奇怪的Makefile语法;2、用户可以使用先决条件指定任务;3、rake支持规则模式来合成隐式任务;4、灵活的文件管理器,像数组一样,但知道操纵文件名和路径。

语法格式:rake [参数]

常用参数:

-T 显示任务(匹配可选模式)与描述,然后退出
-C 将Task和FileTask放在顶级命名空间中
-I 在所需模块的搜索路径中包含LIBDIR
-q 不要将消息记录到标准输出

参考实例

显示任务与描述:

[root@linuxcool ~]# rake -T

在所需模块的搜索路径中包含LIBDIR:

[root@linuxcool ~]# rake -I

不要将消息记录到标准输出:

[root@linuxcool ~]# rake -q


redis-benchmark命令 Redis基准性能测试

 

redis-benchmark命令可以为Redis做基准性能测试,它提供了很多选项帮助开 发和运维人员测试Redis的相关性能。

语法格式:redis-benchmark [参数]

常用参数:

-h 服务端IP
-p 服务器端口
-a redis密码
-c 客户端连接数量
-n 请求总数

参考实例

使用默认配置对127.0.0.1:6379运行基准测试:

[root@linuxcool ~]# redis-benchmark

对192.168.1.1使用20个并行客户端,总共10万个请求:

[root@linuxcool ~]# redis-benchmark -h 192.168.1.1 -p 6379 -n 100000 -c 20

仅使用SET测试,用大约100万个键填充127.0.0.1:6379:

[root@linuxcool ~]# redis-benchmark -t set -n 1000000 -r 100000000

基准127.0.0.1:6379,用于生成CSV输出的几个命令:

[root@linuxcool ~]# redis-benchmark -t ping,set,get -n 100000 --csv

对特定命令行进行基准测试:

[root@linuxcool ~]# redis-benchmark -r 10000 -n 10000 eval 'return redis.call("ping")' 0

用10000个随机元素填充列表:

[root@linuxcool ~]# redis-benchmark -r 10000 -n 10000 lpush mylist rand_int


redis-cli命令 redis客户端管理工具

 

Redis是一个开放源码(BSD授权)的内存数据结构存储,用作数据库、缓存和消息中介。同时是一个高性能的key-value数据库。

redis-cli命令是redis-server的命令行客户端。

语法格式:redis-cli [参数]

常用参数:

-h 服务器主机名称
-p 服务器端口
-a 连接到服务器时使用的密码
-r 执行指定命令N次
-n 数据库编号
--csv 以csv格式输出

参考实例

使用默认端口,连接redis服务器:

[root@linuxcool ~]# redis-cli -h 127.0.0.1

通过指定端口连接redis:

[root@linuxcool ~]# redis-cli -h 192.168.1.1 -p 6380

使用密码认证连接:

[root@linuxcool ~]# redis-cli -h 127.0.0.1 -p 6379 -a myPassword


redis-server命令 redis服务端程序启动

 

Redis是一个开放源码(BSD授权)的内存数据结构存储,用作数据库、缓存和消息中介。redis-server命令是一个启动Redis服务器的命令行。redis-sentinel命令是一个与redis-server命令的符号链接,它意味着--sentionel选项。

语法格式:redis-server [参数]

常用参数:

--port 配置端口
--slaveof 将当前服务器转变为指定服务器的从属服务器
--loglevel 配置日志级别
--sentinel 以哨兵模式运行

参考实例

启动redis,加载默认配置文件:

[root@linuxcool ~]# redis-server

启动redis并配置端口:

[root@linuxcool ~]# redis-server --port 7777 --slaveof 127.0.0.1 8888

配置日志类级别:

[root@linuxcool ~]# redis-server /etc/myredis.conf --loglevel verbose

以哨兵模式运行:

[root@linuxcool ~]# redis-server /etc/sentinel.conf --sentinel


rmmod命令 删除模块

 

rmmod即“remove module”的简称,rmmod命令用于删除模块。 执行rmmod命令,可删除不需要的模块。Linux操作系统的核心具有模块化的特性,因此在编译核心时,不需要吧全部功能都放入核心,可以将这些功能编译成一个个单独的模块,待有需要时再分别载入它们。

语法格式:rmmod [参数] [模块名称]

常用参数:

-a 删除所有目前不需要的模块
-s 把信息输出至syslog常驻服务,而非终端机界面
-v 显示指令执行的详细信息
-f 强制移除模块,使用此选项比较危险
-w 等待着,知道模块能够被除时再移除模块

参考实例

卸载模块pppoe并显示执行信息:

[root@linuxcool ~]# rmmod -v pppoe

卸载bridge模块:

[root@linuxcool ~]# rmmod bridge

卸载bridge模块并将错误信息写入syslog:

[root@linuxcool ~]# rmmod -s bridge

孤立正在使用的bridge模块,知道不被使用:

[root@linuxcool ~]# rmmod -w bridge

删除正在使用的bridge模块(-f可以删除正在使用的模块,非常危险,慎用):

[root@linuxcool ~]# rmmod -f bridge


script命令 记录终端交互会话过程

 

script命令可以用作交互终端会话过程的记录,保留用户输入和系统输出的全过程。以备之后查询与学习,对于初学者、保留工作记录和准备写材料的人而言,这是一个非常有用的工具

在下述语法中,输出文件是用于存储所有的上机会话过程。如果未指定输出文件,所有的会话过程将会写到当前工作目录的默认文件typescript中。

语法格式:script [参数] [文件]

常用参数:

-a 把会话记录附加到typescript文件或指定的文件后面,保留先前的内容
-c 运行指定的命令而非交互shell
-q 安静运行模式

参考实例

一个简单的会话过程记录:

[root@linuxcool ~]# script
 Script started, file is typescript
[root@linuxcool ~]# date
 Mon Sep 23 21:07:14 CST 2019
[root@linuxcool ~]# uname -r
 3.10.0-123.el7.x86_64
[root@linuxcool ~]# exit
 exit
 Script done, file is typescript
[root@linuxcool ~]# cat typescript
 Script started on Mon 23 Sep 2019 09:07:09 PM CST
[root@linuxcool ~]# date
 Mon Sep 23 21:07:14 CST 2019
[root@linuxcool ~]# uname -r
 3.10.0-123.el7.x86_64
[root@linuxcool ~]# exit
 exit
 Script done on Mon 23 Sep 2019 09:07:23 PM CST


seq命令 打印数字序列

 

seq命令用于以指定增量从首数开始打印数字到尾数,即产生从某个数到另外一个数之间的所有整数,并且可以对整数的格式、宽度、分割符号进行控制。

语法格式: seq [参数]

常用参数:

-f 格式
-s 字符串
-w 在列前添加0 使得宽度相同

参考实例

产生5以内的整数:

[root@linuxcool ~]# seq 5

产生98~101之间的整数,并且要求数字之间的分隔符为”:::”:

[root@linuxcool ~]# seq -s ":::" -f "%03g" 98 101


setsid命令 新会话中运行程序

 

setsid命令子进程从父进程继承了:SessionID、进程组ID和打开的终端。子进程如果要脱离这些,代码中可通过调用setsid来实现。

命令行或脚本中可以通过使用命令setsid来运行程序实现。setsid帮助一个进程脱离从父进程继承而来的已打开的终端、隶属进程组和隶属的会话。

语法格式:setsid [参数]

常用参数:

-c 将控制终端设置为当前控制终端
-f 总是 fork
-w 等待程序退出,并使用相同的返回

参考实例

在新的会话中运行程序及命令:

[root@linuxcool ~]# setsid ping www.linuxprobe.com
[root@linuxcool ~]# ps -ef |grep www.linuxprobe.com
root 31094 1 0 07:28 ? 00:00:00 ping www.linuxprobe.com
root 31102 29217 0 07:29 pts/4 00:00:00 grep www.linuxprobe.com


shift命令 移动位置参数

 

shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本)。

对于某个命令行参数,其参数个数可以不固定,但是可以通过$*或$@进行循环操作。若用户要求Shell在不知道变量个数的情况下,还能逐个处理参数,也就是在$1之后是$2,$2之后是$3。在未运行shift命令之前$1是可用的,当使用shift命令之后,原来的$2会变成$1,并且原有的$1变得不可用,通过$#命令获得的参数个数也会少1。

语法格式:shift [参数]

常用参数:

n 整数

参考实例

依次读取输入的参数并打印参数个数:

run.sh 内容如下:

#!/bin/bash
while [ $# != 0 ];do
echo "第一个参数为:$1,参数个数为:$#"
shift
done 
输入如下命令运行:run.sh a b c d e f 
结果显示如下:第一个参数为:a,参数个数为:6
第一个参数为:b,参数个数为:5
第一个参数为:c,参数个数为:4
第一个参数为:d,参数个数为:3
第一个参数为:e,参数个数为:2
第一个参数为:f,参数个数为:1 

把参数进行左移3个:

#!/bin/bash
echo -e "./t.sh arg1 arg2 arg3 arg4 arg5 arg6"
str1="${1},${2},${3}"
echo "str1=$str1"
shift 3
str2=$@
echo "str2=$str2"
sh t.sh 1 2 3 4 5 6 7
str1=1,2,3

将参数从左到右逐个移动:

[root@linuxcool ~]# cat shift.sh
#!/bin/bash
while [ $# -ne 0 ]
do
echo "第一个参数为: $1 参数个数为: $#"
shift
done
[root@linuxcool ~]# sh shift.sh Lily Lucy Jake Mike
第一个参数为: Lily 参数个数为: 4
第一个参数为: Lucy 参数个数为: 3
第一个参数为: Jake 参数个数为: 2
第一个参数为: Mike 参数个数为: 1


shopt命令 设置控制shell行为变量的开关

 

shopt命令可以设置哪些控制着Shell行为特性的变量的开关值,以达到控制Shell行为的目的。当执行命令shopt不带任何参数时,将列出由shopt控制的那些特性及其状态。

语法格式:shopt [参数]

常用参数:

-s 不带选项时,显示所有打开的选项。如果后边跟上相应的选项,则打开此选项
-u 不带选项时,显示所有未打开的选项。如果后边跟上相应的选项,则打开此选项
-p 显示所有选项

参考实例

显示所有的配置选项:

[root@linuxcool ~]# shopt -p 

查看打开的配置选项:

[root@linuxcool ~]# shopt -s

查看关闭的配置选项:

[root@linuxcool ~]# shopt -u


shuf命令 产生随机的排列

 

shuf命令将输入的内容随机排列并输出。 shuf命令当没有文件或文件为-时,读取标准输入。

语法格式: shuf [参数]

常用参数:

-e 将每个ARG视为输入行
-i 将数字范围LO(最低)到HI(最高)之间的作为输入行
--help 显示帮助信息并退出

参考实例

模拟硬币抛掷,获取前10个结果:

[root@linuxcool ~]# shuf -r -n 10 -e "正面" -e "反面"
反面
正面
正面
正面
反面
反面
反面
正面
正面
正面

模拟体彩超级大乐透:

[root@linuxcool ~]# shuf -i 1-35 -n 5|sort -n && shuf -i 1-12 -n 2|sort -n
4
17
20
29
31
6
11


slappasswd命令 设置LDAP管理员密码

 

slappasswd命令的作用是可以生成LDAP管理员密码。

slappasswd命令支持多种加密方案如:CRYPT、MD5、SMD5、SSHA和SHA。

其中最常用的是:MD5全称为Message Digest algorithm 5,信息摘要算法。SHA全称为Secure Hash Algorithm,安全散列算法。而SHA算法中SHA256相对安全。

语法格式:slappasswd [参数]

常用参数:

-h<加密方案> 指定加密方案,它支持{CRYPT}、{MD5}、{SMD5}、{SSHA}和{SHA}等方式,默认值是{SSHA}
-v 启用详细信息模式
-g 生成随机密码
-s<> 生成哈希密码
-u 生成RFC2307值(默认)
-c crypt-salt-format 生成{CRYPT}密码

参考实例

生成SSHA方案密码:

[root@linuxcool ~]# slappasswd

生成随机密码:

[root@linuxcool ~]# slappasswd -g

生成哈希密码:

[root@linuxcool ~]# slappasswd -s linuxcool


slrn命令 新闻组阅读程序

 

slrn是一个很容易使用的新闻组阅读程序,提供全屏幕的图形操作界面,让用户能轻松地阅读与管理新闻组。

语法格式:slrn [参数]

常用参数:

C 使用彩色模式
create 第一次连上某台新闻组服务器时,必须使用此参数,以便下载服务器中的组清单,并保存在指定的newsrc文件中
help 显示帮助
version 显示版本信息

参考实例

启用彩色模式:

[root@linuxcool ~]# slrn C

显示帮助信息:

[root@linuxcool ~]# slrn help

显示版本信息:

[root@linuxcool ~]# slrn version

 


smbtree命令 基于文本的SMB网络浏览器工具

 

smbtree命令是一款文本模式的smb浏览器程序,它类似于Windows电脑上的 “网络邻居”;它打印出一棵树,上面有所有已知的域、这些域中的服务器和服务器上的共享。

语法格式:smbtree [参数]

常用参数:

-b 通过以广播方式发送请求来查询网络节点,而不是查询本地主浏览器
-D 只打印广播或主浏览器已知的所有域的列表
-d 调试模式
-s 指定的文件包含配置细节
-S 只打印在广播中响应或主浏览器已知的所有域和服务器的列表

参考实例

通过以广播方式发送请求来查询网络节点,而不是查询本地主浏览器:

[root@linuxcool ~]# smbtree -b

只打印广播或主浏览器已知的所有域的列表:

[root@linuxcool ~]# smbtree -D

只打印在广播中响应或主浏览器已知的所有域和服务器的列表:

[root@linuxcool ~]# smbtree -S


sndconfig命令 设置声卡

 

sndconfig命令用于设置声卡。该命令支持PnP设置,可自动检测并设置PnP声卡。

PnP全称Plug-and-Play,译文为即插即用。PnP的作用是自动配置低层计算机中的板卡和其他设备,然后告诉对应设备都做了什么。PnP的任务是把物理设备和软件设备驱动程序相配合,并操作设备,在每个设备和它的驱动程序之间建立通信信道。然后,PnP分配下列资源给设备和硬件:I/O地址、IRQ、DMA通道和内存段。

语法格式:sndconfig [参数]

常用参数:

-- -noprobe  不自动检测PnP声卡
-- -noautoconfig  不自动设置PnP的声卡
-- -help  显示帮助

参考实例

设置不自动检查声卡模式:

[root@linuxcool ~]# sndconfig --noautoconfig   

设置为不自动设置PnP的声卡:

[root@linuxcool ~]# sndconfig --noautoconfig   


sshpass命令 用于非交互的ssh 密码验证

 

sshpass命令用于非交互的 ssh 密码验证。可以在命令行直接使用密码来进行远程连接和远程拉取文件。使用前提:对于未连接过的主机。而又不输入yes进行确认,需要进行sshd服务的优化。

语法格式:sshpass [参数]

常用参数:

-p 指定密码
-f 指定文件

参考实例

安装sshpass:

[root@linuxcool ~]# yum install -y epel-release
[root@linuxcool ~]# yum install -y sshpass
[root@linuxcool ~]# sshpass -V

基本使用方法:

[root@linuxcool ~]# sshpass -p "password" ssh username@ip

当远程主机端口不再是22默认端口时候:

[root@linuxcool ~]# sshpass -p "password" ssh -p 8443 username@ip

直接远程连接某台主机:

[root@linuxcool ~]# sshpass -p xxx ssh root@192.168.11.11

本地执行远程机器的命令:

[root@linuxcool ~]# sshpass -p xxx ssh root@192.168.11.11 "ethtool eth0"

远程连接指定ssh的端口:

[root@linuxcool ~]# sshpass -p 123456 ssh -p 1000 root@192.168.11.11

从密码文件读取文件内容作为密码去远程连接主机:

[root@linuxcool ~]# sshpass -f xxx.txt ssh root@192.168.11.11

从远程主机上拉取文件到本地:

[root@linuxcool ~]# sshpass -p '123456' scp root@host_ip:/home/test/t ./tmp/


stratis命令 管理linux存储

 

stratis 是一个具有与 ZFS 和 Btrfs 相似功能的卷管理文件系统。同时又是一个易于使用的 Linux 存储工具。

语法格式:stratis [参数]

常用参数:

fs 创建文件系统
list 列出文件系统
pool 列出文件系统的池
snapshot 创建文件系统快照

参考实例

安装stratis:

[root@linuxcool ~]# dnf install stratis-cli stratisd

创建文件系统:

[root@linuxcool ~]# stratis fs create mypool myfs1

创建一个文件系统作为现有文件系统的快照:

[root@linuxcool ~]# stratis fs snapshot mypool myfs1 myfs1-experiment

以列出系统中的池:

[root@linuxcool ~]# stratis pool list

列出池中的文件系统:

[root@linuxcool ~]# stratis fs list mypool


strip命令 从特定文件中去除一些符号信息和调试信息

 

strip命令通过除去绑定程序和符号调试程序使用的信息,降低扩展公共对象文件格式(XCOFF)的对象文件的大小。

strip不仅仅可以针对可执行文件, 还能针对目标文件和动态库等。

在实际的开发中, 经常需要对动态库.so进行strip操作, 减少占地空间。而在调试的时候(比如用addr2line), 就需要符号了。因此, 通常的做法是:strip前的库用来调试, strip后的库用来实际发布, 他们两者有对应关系。 一旦发布的strip后的库出了问题, 就可以找对应的未strip的库来定位。

语法格式:strip [参数]

常用参数:

-e 在对象文件的可选头中设置 F_LOADONLY 标志
-E 复位(关闭)对象文件的可选头中的 F_LOADONLY 位
-H 除去对象文件头、不论什么可选的头以及全部段的头部分
-l (小写 L)从对象文件里除去行号信息。
-r 除了外部符号和静态符号条目,将所有符号表信息除去
-t 除去大多数符号表信息,但并不除去函数符号或行号信息
-V 打印 strip 命令的版本
-x 除去符号表信息,但并不除去静态或外部符号信息

参考实例

要除去 a.out 文件里的符号表和行号信息,请输入:

[root@linuxcool ~]# strip a.out

要除去 a.out 文件里的对象文件头,请输入:

[root@linuxcool ~]# strip -H a.out

要除去 lib.a 中的 32 位和 64 位符号表,请输入:

[root@linuxcool ~]# strip -X 32-64 lib.a


svnadmin命令 管理SVN版本库

 

使用svnadmin命令可以管理subversion版本库,比如创建、升级、检验、修复,以及产生即时副本等。

语法格式:svnadmin [参数]

常用参数:

dump 将文件系统的内容,移植到“转存”格式输出到标准输出
lslocks 显示所有锁的描述
rmlocks 无条件删除锁
verify 检验版本库中的数据

参考实例

创建版本库,指定版本库目录为/etc/subversion:

[root@linuxcool~]# svnadmin create /etc/subversion

将文件系统的内容,以可移植“转存”格式输出到标准输出:

[root@linuxcool ~]# svnadmin dump /etc/subversion

检验挂起的版本库号:

[root@linuxcool ~]# svnadmin verify /etc/subversion


tcpreplay命令 性能或功能测试

 

tcpreplay 是一种pcap包的重放工具,它可以将用ethreal、wireshark工具抓下来的包原样或经过任意修改后重放回去。它允许你对报文做任意的修改(主要是指对2层、3层、4层报文头),指定重放报文的速度等,这样tcpreplay就可以用来复现抓包的情景以定位bug,以极快的速度重放从而实现压力测试。

语法格式:tcpreplay [参数] [文件]

常用参数:

-A -vA “nnt”表示以tcpdump风格输出报文信息,并且不打印时间戳、主机名、端口服务名称。注意不要使用-c参数来指定打印的数据报文的个数,这样发送出去的报文也会变少
-c 双网卡回放报文必选参数,后面紧跟cache文件名,该文件为tcpprep根据对应的pcap文件构造出来
-i 双网卡回放报文必选参数,指定主接口
-K 重写从网卡发送报文的源MAC地址
-O 没有测试使用

参考实例

将 ftp.pcap 文件进行 tcpprep 操作,制作 cache 文件:

[root@linuxcool ~]# tcpprep -an client -i ftp.pcap -o ftp.cache –v

重放 tftp 服务器上抓到的报文 * a、在 tftp 服务器上使用 ethereal 抓包,存为 tftp.pcap 文件。 b、将 pcap 文件进行 tcpprep 的操作,制作 cache 文件:

[root@linuxcool ~]# tcpreplay -c ftp.cache -i eth0 -j eth1 ftp.pcap -R –v 


test命令 检查条件是否成立

 

test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。

test 命令期望在命令行中找到一个参数,当 shell 没有为变量赋值时,则将该变量视为空。这意味着在处理脚本时,一旦脚本寻找的参数不存在,则 test 将报告该错误。

语法格式:test  [表达式]

常用参数:

-eq (=) 等于则为真
-ne (!=) 不等于则为真
-gt (>) 大于则为真
-ge (>=) 大于等于则为真
-lt (<) 小于则为真
-le (<=) 小于等于则为真

参考实例

判断两个数是否相等:

[root@linuxcool ~]# 
num1=100 
num2=100 
if test $[num1] -eq $[num2] then     
echo '两个数相等!' 
else     
echo '两个数不相等!' 
fi 

比较两个数大小:

[root@linuxcool ~]# 
num1=101
num2=100 
if test $[num1] -ge $[num2] then     
echo '两个数相等!' 
else     
echo '两个数不相等!' 
fi 

判断两个字符串是否相等:

[root@linuxcool ~]# 
num1="W3Cschool" 
num2="W3Cschool" 
if test num1=num2 then     
echo '两个字符串相等!' 
else     
echo '两个字符串不相等!' 
fi 

判断文件是否存在:

[root@linuxcool ~]# 
cd /bin 
if test -e ./bash then     
echo '文件已存在!' else     
echo '文件不存在!' 
fi 

另外,Shell还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为:”!”最高,”-a”次之,”-o”最低。例如:

[root@linuxcool ~]# 
cd /bin 
if test -e ./notFile -o -e ./bash then     
echo '有一个文件存在!' else     
echo '两个文件都不存在' 
fi 


times命令 显示进程累计时间

 

打印出shell及其子进程累计使用的用户时间和系统时间。

总是返回成功。

语法格式:times [参数]

参考实例

显示进程累计时间:

[root@linuxcool ~]# times
0m0.037s 0m0.009s
0m0.010s 0m0.024s


tmux命令 终端复用软件

 

Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权.

使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机。

语法格式: tmux [参数]

常用参数:

Ctrl+b 激活控制台
? 列出所有快捷键;按q返回
Ctrl+z 挂起当前会话
r 强制重绘未脱离的会话
s 选择并切换会话;在同时开启了多个会话时使用

参考实例

安装tmux软件:

[root@linuxcool ~]# brew install tmux
[root@linuxcool ~]# sudo apt-get install tmux
[root@linuxcool ~]# yum install -y tmux
[root@linuxcool ~]# yum install libevent libevent-devel ncurses-devel
[root@linuxcool ~]# tar -zvxf tmux-2.3.tar.gz # 
[root@linuxcool ~]# cd tmux-2.3
[root@linuxcool ~]# ./configure
[root@linuxcool ~]# make && make install


trap命令 指定采取的动作

 

trap命令用于指定在接收到信号后将要采取的动作,常见的用途是在脚本程序被中断时完成清理工作。当shell接收到sigspec指定的信号时,arg参数(命令)将会被读取,并被执行。

语法格式:trap [参数]

常用参数:

-l 让shell打印一个命令名称和其相对应的编号的列表
-p 打印与每一个信号有关联的命令的列表
缺省 每个接收到的sigspec信号都将会被重置为它们进入shell时的值
-f 阻止中断信号

参考实例

清理临时文件:

[root@linuxcool ~]$ trap "rm -f $WORKDIR/work1$ $WORKDIR/dataout$; exit" 2

忽略信号:

[root@linuxcool ~]$ trap '' 2

恢复信号的默认操作:

[root@linuxcool ~]$ trap 2

阻止中断操作信号:

[root@linuxcool ~]$ tail -f /var/log/test


troff命令 格式化打印机和字符终端的文本

 

troff格式化打印机和字符终端的文本,是 Unix 历史上最重要的软件之一。

像 roff,nroff 和 groff 一样,troff 是由 Jerome Saltzer 在 20 世纪 60 年代中期为麻省理工学院的 CTSS 操作系统编写的名为 RUNOFF 的文本格式化程序的后代。名称 RUNOFF 来自短语“运行文档”,意思是最终确定文档,或准备发布或演示文稿。

虽然其他排版软件包如 LaTeX 多年来已经得到了广泛的应用,但 troff 仍然在 Unix 中广泛使用,并且是人类的默认类型格式化程序。

语法格式:troff [参数]

常用参数:

-a 生成排版输出的ASCII近似值
-b 使用每条警告或错误消息打印回溯, 此回溯应有助于追踪错误原因
-c 禁用颜色输出(在兼容模式下始终禁用)
-C 启用兼容模式
-E 禁止troff的所有错误消息
-i 在处理完所有命名输入文件后读取标准输入
-z 抑制格式化输出

参考实例

指定要优化格式的文件:

[root@linuxcool ~]# troff file

输出原格式文件:

[root@linuxcool ~]# troff -z file

禁用颜色输出:

[root@linuxcool ~]# troff -c file


unexpand命令 空白字符转换

 

unexpand命令用于将给定文件中的空白字符(space)转换为制表符(TAB),并把转换结果显示在标准输出设备(显示终端)。

语法格式:unexpand [参数]

常用参数:

-a 转换文件中所有的空白字符
-first-only 仅转换开头的空白字符
-t<N> 指定TAB所代表的N个(N为整数)字符数,默认N值是8

参考实例

转换test.txt文件中所有的空白字符 :

[root@linuxcool ~]# unexpand -a text.txt


users命令 显示当前登录的用户

 

users命令用于显示当前登录系统的所有用户的用户列表。每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。

语法格式:users [参数]

常用参数:

-help 显示命令的帮助信息
-version 显示命令的版本信息

参考示例

显示当前登录系统的所有用户:

[root@linuxcool ~]# users
root root


vdfuse命令 挂载分区文件工具

 

vdfuse命令是VirtualBox软件挂载VDI分区文件的一个工具,VirtualBox是一款能创建虚拟机的开源软件,vdi是它的默认磁盘格式。

语法格式:vdfuse [参数]

常用参数:

-h 帮助
-r 只读
-t 类型 (VDI, VMDK, VHD, or raw; default: auto)
-f 镜像文件
-a 允许所有用户读取
-w 允许所有用户都写
-g 前台运行
-v 输出反馈
-d debug模式

参考示例

挂载.vdi文件:

[root@linuxcool ~]# sudo vdfuse -f /path/to/file.vdi /path/to/mountpoint


vgreduce命令 删除物理卷

 

vgreduce命令通过删除LVM卷组中的物理卷来减少卷组容量。不能删除LVM卷组中剩余的最后一个物理卷。

语法格式:vgreduce [参数]

常用参数:

-a 如果命令行中没有指定要删除的物理卷,则删除所有的空物理卷
-removemissing 删除卷组中丢失的物理卷,使卷组恢复正常状态

参考示例

从卷组”vg2000″中移除物理卷/dev/sdb2:

[root@linuxcool ~]# vgreduce vg2000 /dev/sdb2
Removed "/dev/sdb2" from volume group "vg2000"


vgrename命令 重命名卷组

 

在Linux下使用新硬盘安装系统,安装好以后再挂载原来的硬盘,分区格式全为系统默认分区,系统默认使用的是lvm格式,并且默认的卷都是 VolGroup00。我们此时就需要使用vgrename命令来重命名卷组,来解决重名的冲突。

语法格式:vgrename [参数]

常用参数:

-d 启用调试模式
-t 启用测试模式

参考实例

重命名卷组/dev/vg1为/dev/vg2:

[root@linuxcool ~]# vgrename /dev/vg1 /dev/vg2
  Volume group "vg1" successfullyrenamed to "vg2"

重命名卷组vg1为vg2:

[root@linuxcool ~]# vgrename vg1 vg2
  Volume group "vg1" successfully renamed to "vg2"


vgscan命令 扫描并显示卷组

 

vgscan命令查找系统中存在的LVM卷组,并显示找到的卷组列表。vgscan命令仅显示找到的卷组的名称和LVM元数据类型,要得到卷组的详细信息需要使用vgdisplay命令。

语法格式:vgscan [参数]

常用参数:

-d 调试模式
--ignorerlockingfailure 忽略锁定失败的错误

参考实例

扫描系统中所有的卷组:

[root@linuxcool ~]# vgscan


volname命令 显示设备卷名称

 

volname命令用于显示指定的“ISO-9660”格式的设备的卷名称,通常这种格式的设备为光驱。

语法格式:volname [参数]

常用参数:

device 设备文件名:指定要显示卷名称的设备。

参考实例

显示默认设备的卷标:

[root@linuxcool ~]# volname

显示指定设备的卷标:

[root@linuxcool ~]# volname /dec/sbd4
[root@linuxcool ~]# volname /linuxcool/test.iso


wait命令 等待指令

 

wait命令用来等待指令的指令,直到其执行完毕后返回终端。该指令常用于shell脚本编程中,待指定的指令执行完成后,才会继续执行后面的任务。该指令等待作业时,在作业标识号前必须添加备份号”%”。

语法格式:wait [参数]

常用参数:

22 或%1 进程号 或 作业号

参考实例

等待作业号为1的作业完成后再返回:

[root@linuxcool ~]# wait %1
[root@linuxcool ~]# find / -name password


wall命令 输出信息

 

wall命令用于向系统当前所有打开的终端上输出信息。通过wall命令可将信息发送给每位同意接收公众信息的终端机用户,若不给予其信息内容,则wall命令会从标准输入设备读取数据,然后再把所得到的数据传送给所有终端机用户。

语法格式:wall [参数]

常用参数:

messge 消息:指定广播消息

参考实例

传讯息”test” 给每一个使用者:

[root@linuxcool ~]# wall test

广播消息:

[root@linuxcool ~]# wall this is a test line

Broadcast message from root (pts/1) (Fri Dec 20 11:36:51 2013):

this is a test line


wget命令 文件下载

 

wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。

语法格式: wget [参数]

常用参数:

-V –-version 显示wget的版本后退出
-h –-help 打印语法帮助
-b, –-background 启动后转入后台执行
-e –-execute=COMMAND

参考实例

使用wget下载单个文件:

[root@linuxcool ~]# wget http://www.Linuxcool.com/testfile.zip

下载并以不同的文件名保存:

[root@linuxcool ~]# wget -O test.zip http://www.Linuxcool.com

wget限速下载:

[root@linuxcool ~]# wget --limit-rate=300k http://www.linuxcool.com/test.zip

使用wget断点续传:

[root@linuxcool ~]# wget -c http://www.linuxcool.com/test.zip

使用wget后台下载:

[root@linuxcool ~]# wget -b http://www.linuxcool.com/test.zip

Continuing in background, pid 1840.
Output will be written to `wget-log'.


whatis命令 查询命令执行功能

 

whatis命令是用于查询一个命令执行什么功能,并将查询结果打印到终端上。

whatis命令在用catman -w命令创建的数据库中查找command参数指定的命令、系统调用、库函数或特殊文件名。whatis命令显示手册部分的页眉行。然后可以发出man命令以获取附加的信息。whatis命令等同于使用man -f命令。

语法格式: whatis [参数]

常用参数:

其他命令 显示该命令的执行功能

参考实例

ls命令执行情况:

[root@linuxcool ~]# whatis ls
ls                   (1)  - list directory contents
ls                   (1p)  - list directory contents

cp命令执行情况:

[root@linuxcool ~]# whatis cp
cp                   (1)  - copy files and directories
cp                   (1p)  - copy files

chown命令执行情况:

[root@linuxcool ~]# whatis chown
chown                (1)  - change file owner and group
chown                (1p)  - change the file ownership
chown                (2)  - change ownership of a file
chown                (3p)  - change owner and group of a file

man命令执行情况:

[root@linuxcool ~]# whatis man
man                  (1)  - format and display the on-line manual pages
man                  (1p)  - display system documentation
man                  (7)  - macros to format man pages
man                 (rpm) - A set of documentation tools: man, apropos and whatis.
man-pages           (rpm) - Man (manual) pages from the Linux Documentation Project.
man.config [man]     (5)  - configuration data for man


write命令 发送信息

 

write命令用于向指定登录用户终端上发送信息。通过write命令可传递信息给另一位登入系统的用户,当输入完毕后,键入EOF表示信息结束,write命令就会将信息传给对方。如果接收信息的用户不只登入本地主机一次,你可以指定接收信息的终端机编号。

语法格式: write [参数]

常用参数:

用户 指定要接受信息的登录用户
登陆终端 指定接收信息的用户的登录终端

参考实例

传信息给Rollaend:

[root@linuxcool ~]#write Rollaend

传信息给Rollaend、Rollaend的连线有pts/2:

[root@linuxcool ~]#write Rollaend pts/2


xargs命令 过滤器

 

xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者 stdin 并将其转换成特定命令的命令参数。

xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs的默认命令是 echo,空格是默认定界符。这意味着通过管道传递给 xargs的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。xargs是构建单行命令的重要组件之一。

语法格式: xargs [参数]

常用参数:

-n 多行输出
-d 自定义一个定界符
-I 指定一个替换字符串{}
-t 打印出 xargs 执行的命令
-p 执行每一个命令时弹出确认

参考实例

多行输出:

[root@linuxcool ~]#cat test.txt | xargs -n3

自定义一个定界符:

[root@linuxcool ~]#echo "nameXnameXnameXname" | xargs -dX

name name name name

指定一个替换字符串{}:

[root@linuxcool ~]#cat arg.txt | xargs -I {} ./sk.sh -p {} -l
-p aaa -l
-p bbb -l
-p ccc -l

打印出 xargs 执行的命令:

[root@linuxcool ~]#ls | xargs -t -I{} echo {}

执行每一个命令时弹出确认,当你需要非常准确的确认每一次操作时:

[root@linuxcool ~]#find . -maxdepth 1 -name "*.log" | xargs -p -I{} rm {}


xconfigurator命令 设置XFree86

 

这是Red Hat公司遵循GPL规则所开发的程序,它具有互动式操作界面,您可以轻易地利用方向键和空格键等,设置显卡和显示器,并选择欲使用的画面分辨率与色彩深度,最后保存配置文件XF86Config。

语法格式:xconfigurator [参数]

常用参数:

--card 设置显卡的型号,可用”--help”参数查询型号列表
--expert 启用专家模式,增加用户得以自行选择的项目而非由程序完全自动检测
--help 在线帮助
--kickstart 启用全自动模式

参考实例

设置显卡的型号:

[root@linuxcool ~]# xconfigurator card

设置显示器的型号:

[root@linuxcool ~]# xconfigurator monitor

设置水平扫描频率:

[root@linuxcool ~]# xconfigurator hsync "1024 768"


xlsatoms命令 列出原子成分

 

xlsatoms命令用于列出X服务器内部所有定义的原子成分,每个原子成分都有自身的编号。可利用参数设置列表范围,或直接指定欲查询的成分名称。

语法格式: xlsatoms [参数]

常用参数:

-display<显示器编号> 指定X Server连接的显示器编号,该编号由”0″开始计算,依序递增
-format<输出格式> 设置成分清单的列表格式,您可使用控制字符改变显示样式
-name<成分名称> 列出指定的成分
-range<列表范围> 设置成分清单的列表范围

参考示例

显示编号为0的显示器的所有定义的原子成分

[root@linuxcool ~]# xlsatoms -display0


xlsclients命令 列出应用程序

 

xlsclients命令用来列出显示器中的客户端应用程序。

语法格式:xlsclients [参数]

常用参数:

-a 列出所有显示器的客户端应用程序信息
-display<显示器编号> 指定X Server连接的显示器编号,该编号由”0″开始计算,依序递增
-l 使用详细格式列表
-m<最大指令长度> 设置显示指令信息的最大长度,单位以字符计算。

参考示例

列出所有显示器的客户端应用程序信息 :

[root@linuxcool ~]# xlsclients -a

显示编号为0的显示器的应用程序信息:

[root@linuxcool ~]# xlsclients -display0


xz命令 POSIX 平台开发工具

 

XZ Utils 是为 POSIX 平台开发具有高压缩率的工具。它使用 LZMA2 压缩算法,生成的压缩文件比 POSIX 平台传统使用的 gzip、bzip2 生成的压缩文件更小,而且解压缩速度也很快。

最初 XZ Utils 的是基于 LZMA-SDK 开发,但是 LZMA-SDK 包含了一些 WINDOWS 平台的特性,所以 XZ Utils 为以适应 POSIX 平台作了大幅的修改。XZ Utils 的出现也是为了取代 POSIX 系统中旧的 LZMA Utils。

语法格式: xz [参数]

常用参数:

z, --compress 强制压缩
-t, --test 测试压缩文件的完整性
-l, --list 列出有关.xz文件的信息
-k, --keep 保留(不要删除)输入文件
-f, --force 强制覆盖输出文件和(解)压缩链接
-c, --stdout, --to-stdout 写入标准输出,不要删除输入文件
-0 … -9 压缩预设; 默认为6; 取压缩机和
使用7-9之前解压缩内存使用量考虑在内!
-e, --extreme 尝试通过使用更多的CPU时间来提高压缩比
-T, --threads=NUM 最多使用NUM个线程; 默认值为1
set to 0 设置为0,使用与处理器内核一样多的线程
-q, --quiet 抑制警告; 指定两次以抑制错误
-v, --verbose 冗长; 指定两次更详细
-h, --help 显示这个简洁的帮助并退出
-H, --long-help 显示更多帮助(还列出了高级选项)
-V, --version 显示版本号并退出

参考实例

压缩一个文件 test.txt,压缩成功后生成 test.txt.xz, 原文件会被删除:

[root@linuxcool ~]$ xz test.txt
[root@linuxcool ~]$ ls test.txt*
test.txt.xz

解压 test.txt.xz 文件,并使用参数 -k 保持原文件不被删除:

[root@linuxcool ~]$ xz -d -k test.txt.xz
[root@linuxcool ~]$ ls test.txt*
test.txt.xz test.txt

参数 -H 比使用参数 --help 显示的内容更详细:

[root@linuxcool ~]$ xz -H  | more

借助 xargs 命令并行压缩多文件:

[root@linuxcool ~]find /var/log -type f -iname "*.log" -print0 | xargs -P4 -n16 xz -T1


zabbix_agentd命令 Zabbix客户端守护程序

 

zabbix_agentd 是一个用于监控各种服务器参数的守护进程。

zabbix_agentd是安装到被监控服务器上,zabbix_agentd又是一个跨平台工具,zabbix_server便可以和zabbix_agentd通信来获取数据。

语法格式:zabbix_agentd [参数]

常用参数:

-c 配置文件路径
-p 打印出所有的item
-t 测试指定item key

参考实例

列出所有的items:

[root@linuxcool ~]# zabbix_agentd -p

测试指定的key:

[root@linuxcool ~]# zabbix_agentd -t system.uptime -c zabbix_agentd.conf

启动zabbix_agentd:

[root@linuxcool ~]# zabbix_agentd -c zabbix_agentd.conf


zabbix_get命令 zabbix获取数据实用工具

 

zabbix_get 是一个命令行工具,用于从 Zabbix 代理获取数据。

zabbix_get 是在server端用来检查agent端的一个命令,在添加完主机或者触发器后,不能正常获得数据,可以用zabbix_get来检查能否采集到数据,以便判断问题症结所在。

语法格式:zabbix_get [参数]

常用参数:

-s 指定客户端主机名或者IP
-p 客户端端口,默认:10050
-I 指定源IP
-k 想要获取的key

参考实例

获取主机的负载数据:

[root@linuxcool ~]# zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg1]"

获取主机名:

[root@linuxcool ~]# zabbix_get -s 127.0.0.1 -p 10050 -I 127.0.0.1 -k "system.hostname"

获取监控nginx状态:

[root@linuxcool ~]# zabbix_get -s 127.0.0.1 -p 10050 -k nginx.status[active]


zabbix_proxy命令 zabbix代理守护进程

 

zabbix_proxy是一个从设备收集监控数据并将其发送到Zabbix服务器的守护进程。

zabbix_proxy 收集被监控端的数据,先缓存到本地然后把数据传给zabbix_server,因为zabbix_proxy基本上是在收集数据,而不像server一样要处理数据,所以zabbix_proxy对硬件的要求相对不高。

语法格式:zabbix_proxy [参数]

常用参数:

-c 配置文件路径
-f 在前台运行Zabbix代理
-R 根据运行时选项执行管理功能

参考实例

启动zabbix_proxy服务:

[root@linuxcool ~]# zabbix_proxy -c zabbix_proxy.conf

在前台运行zabbix_proxy服务:

[root@linuxcool ~]# zabbix_proxy -c zabbix_proxy.conf -f

根据运行时选项执行管理功能:

[root@linuxcool ~]# zabbix_proxy -c zabbix_proxy.conf -R config_cache_reload


zabbix_sender命令 zabbix发送器工具

 

zabbix_sender 是一个命令行工具,用于向 Zabbix 服务器或代理发送监控数据;在Zabbix服务器上,应该用相应的键创建一个Zabbix trapper类型的项目;请注意,输入的值只接受来自该项目的 Allowed hosts 字段中指定的主机。

语法格式:zabbix_sender [参数]

常用参数:

-c 配置文件路径
-z zabbix_server服务器IP地址
-p zabbix_server服务器端口,默认:10051
-s 主机名
-I 源IP
-k 监控项的key值
-o key数值
-v 详细模式

参考实例

将文件data_values.txt中的值发送到IP为192.168.0.100的Zabbix服务器,文件中定义了主机名和键值:

[root@linuxcool ~]# zabbix_sender -z 192.168.0.100 -i data_values.txt

发送342.45作为监视主机的mysql.quests项的值,使用监控主机和代理配置文件中定义的Zabbix服务器:

[root@linuxcool ~]# zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k mysql.queries -o 342.45

使用代理配置文件中定义的zabbix服务器,发送342.45作为Monitored Host主机的mysql.quests项的值:

[root@linuxcool ~]# zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -s "Monitored Host" -k mysql.queries -o 342.45


zabbix_server命令 zabbix服务器守护进程

 

zabbix_server是Zabbix软件的核心守护进程;获取数据、配置主机、发送邮件等等众多事情都是由zabbix_server完成。

语法格式:zabbix_server [参数]

常用参数:

-c 配置文件路径
-n 将数据转为nodeid
-R 执行管理功能,配置缓存

参考实例

启动zabbix_server服务器守护进程:

[root@linuxcool ~]# zabbix_server -c zabbix_server.conf

转为node模式:

[root@linuxcool ~]# zabbix_server -c zabbix_server.conf -n 15

配置缓存,配置缓存:

[root@linuxcool ~]# zabbix_server -c zabbix_server.conf -R config_cache_reload


zic命令 时区编辑器

 

zic是时区编辑器。zic命令从文件中读取文本输入,文件的名字是用命令行指定的;然后生成时间转换信息文件,此文件由输入指定。如果文件名 是 -- ,从标准输入中读取。

语法格式:zic [参数]

常用参数:

-d 在指定的目录中生成时间转换信息文件,而不是下面的标准的目录名
-l 用给定的时区作为本地时间
-p 当处理 POSIX 格式的时区环境变量时,使用给定的时区规则
-L 从指定名字的文件中读闰秒信息
-v 当出现在数据文件中的年超出了可表示的值的年的范围时提出申诉
-s 限定在输出文件中存储的时间值无论被作为有符号或无符号均是同一个值
-y 当检测年的类型时,使用给定的命令

参考实例

首先运行zic命令:

[root@linuxcool ~]# zic

创建时间:

Rule US 1967 1973 - Apr lastSun 2:00 1:00 D

创建时区:

Zone Australia/Adelaide 9:30 AusCST 1971 Oct 31 2:00

描述闰秒的文件中的行有以下格式:

Leap 1974 Dec 31 23:59:60 + S

 

 

 

 

Linux 系统中 apt、yum、dnf 和 pkg 包管理命令介绍

 

大多数现代的类 Unix 操作系统都提供了一种中心化的机制用来搜索和安装软件。软件通常都是存放在存储库中,并通过包的形式进行分发。不同的Linux发行版使用不同的包管理工具,目前主流Linux发行版中主要是apt、yum、dnf 和 pkg 包管理命令为主。

 

本指南旨在快速地介绍下在多种 Linux 发行版中使用不同包管理命令进行查找、安装和升级软件包的基础知识,并帮助您将这些内容在多个系统之间进行交叉对比。

 

简要概述

 

大多数包系统都是围绕包文件的集合构建的。包文件通常是一个存档文件,它包含已编译的二进制文件和软件的其他资源,以及安装脚本。包文件同时也包含有价值的元数据,包括它们的依赖项,以及安装和运行它们所需的其他包的列表。

 

虽然这些担保理系统的功能和优点大致相同,但打包格式和工具却因平台而异:

 

操作系统格式工具
Debian deb aptapt-cacheapt-getdpkg
Ubuntu deb aptapt-cacheapt-getdpkg
CentOS rpm yum
Fedora rpm dnf
FreeBSD Ports, txz makepkg

 

Debian 及其衍生版,如 Ubuntu、Linux Mint 和 Raspbian,它们的包格式是 。deb。APT 这款先进的担保理工具提供了大多数常见的操作命令:搜索存储库、安装软件包及其依赖项,并管理升级。在本地系统中,我们还可以使用 dpkg 程序来安装单个的 deb 文件,APT 命令作为底层 dpkg 的前端,有时也会直接调用它。

 

最近发布的 debian 衍生版大多数都包括了 apt 命令,它提供了一个简洁统一的接口,可用于通常由 apt-get 和 apt-cache 命令处理的常见操作。这个命令是可选的,但使用它可以简化一些任务。

 

 

 

CentOS、Fedora 和其它 Red Hat 家族成员使用 RPM 文件。在 CentOS 中,通过 yum 来与零丁的包文件和存储库进行交互。

 

在最近的 Fedora 版本中,yum 已经被 dnf 取代,dnf 是它的一个现代化的分支,它保存了大部分 yum 的接口。

 

FreeBSD 的二进制包系统由 pkg 命令管理。 FreeBSD 还提供了 Ports 集合,这是一个存在于当地的目录结构和工具,它允许用户获取源码后使用 Makefile 直接从源码编译和安装包。

 

 

 

更新包列表

 

大多数系统在当地都会有一个和远程存储库对应的包数据库,在安装或升级包之前最好更新一下这个数据库。另外,yum 和 dnf 在执行一些操作之前也会自动检查更新。当然你可以在任何时候对系统进行更新。

 

系统敕令
Debian / Ubuntu sudo apt-get update
  sudo apt update
CentOS yum check-update
Fedora dnf check-update
FreeBSD Packages sudo pkg update
FreeBSD Ports sudo portsnap fetch update

 

 

 

更新已安装的包

 

在没有包系统的情况下,想确保机器上所有已安装的软件都保持在最新的状态是一个很艰巨的任务。你将不得不跟踪数百个不同包的上游更改和平安警报。虽然包管理器并不能解决升级软件时遇到的所有问题,但它确实使你能够使用一些命令来维护大多数系统组件。

 

在 FreeBSD 上,升级已安装的 ports 可能会引入破坏性的改变,有些步骤还必要进行手动配置,所以在通过 portmaster 更新之前最好阅读下 /usr/ports/UPDATING 的内容。

 

系统命令阐明
Debian / Ubuntu sudo apt-get upgrade 只更新已安装的包
  sudo apt-get dist-upgrade 可能会增加或删除包以满足新的依赖项
  sudo apt upgrade 和 apt-get upgrade 类似
  sudo apt full-upgrade 和 apt-get dist-upgrade 类似
CentOS sudo yum update  
Fedora sudo dnf upgrade  
FreeBSD Packages sudo pkg upgrade  
FreeBSD Ports less /usr/ports/UPDATING 使用 less 来查看 ports 的更新提示(使用上下光标键滚动,按 q 退出)。
  cd /usr/ports/ports-mgmt/portmaster && sudo make install && sudo portmaster -a 安装 portmaster 然后使用它更新已安装的 ports

 

搜索某个包

 

大多数发行版都提供针对包集合的图形化或菜单驱动的工具,我们可以分类浏览软件,这也是一个发现新软件的好办法。然而,查找包最快和最有效的办法是使用命令行工具进行搜索。

 

系统命令说明
Debian / Ubuntu apt-cache search search_string  
  apt search search_string  
CentOS yum search search_string  
  yum search all search_string 搜索所有的字段,包含描述
Fedora dnf search search_string  
  dnf search all search_string 搜索所有的字段,包含描述
FreeBSD Packages pkg search search_string 通过名字进行搜索
  pkg search -f search_string 通过名字进行搜索并返回完整的描述
  pkg search -D search_string 搜索描述
FreeBSD Ports cd /usr/ports && make search name=package 通过名字进行搜索
  cd /usr/ports && make search key=search_string 搜索评论、描述和依赖

 

 

 

查看某个软件包的信息

 

在安装软件包之前,我们可以通过仔细阅读包的描述来获得很多有用的信息。除了人类可读的文本之外,这些内容通常包含像版本号这样的元数据和包的依赖项列表。

 

系统命令说明
Debian / Ubuntu apt-cache show package 显示有关包的当地缓存信息
  apt show package  
  dpkg -s package 显示包的当前安装状态
CentOS yum info package  
  yum deplist package 列出包的依赖
Fedora dnf info package  
  dnf repoquery --requires package 列出包的依赖
FreeBSD Packages pkg info package 显示已安装的包的信息
FreeBSD Ports cd /usr/ports/category/port && cat pkg-descr  

 

 

 

从存储库安装包

 

知道包名后,通常可以用一个敕令来安装它及其依赖。你也可以一次性安装多个包,只需将它们全部列出来即可。

 

系统命令阐明
Debian / Ubuntu sudo apt-get install package  
  sudo apt-get install package1 package2 ... 安装所有列出来的包
  sudo apt-get install -y package 在 apt 提示是否继续的地方直接默认 yes
  sudo apt install package 显示一个彩色的进度条
CentOS sudo yum install package  
  `sudo yum install package1 package2... 安装所有列出来的包
  sudo yum install -y package 在 yum 提示是否继续的地方直接默认 yes
Fedora sudo dnf install package  
  `sudo dnf install package1 package2... 安装所有列出来的包
  sudo dnf install -y package 在 dnf 提示是否继续的地方直接默认 yes
FreeBSD Packages sudo pkg install package  
  sudo pkg install package1 package2 ... 安装所有列出来的包
FreeBSD Ports cd /usr/ports/category/port && sudo make install 从源码构建安装一个 port

 

从当地文件系统安装一个包

 

对于一个给定的操作系统,有时有些软件官方并没有提供相应的包,那么开发人员或供应商将需要提供包文件的下载。你通常可以通过 web 浏览器检索这些包,或者通过命令行 curl 来检索这些信息。将包下载到目标系统后,我们通常可以通过单个命令来安装它。

 

在 Debian 派生的系统上,dpkg 用来处置单个的包文件。如果一个包有未满足的依赖项,那么我们可以使用 gdebi 从官方存储库中检索它们。

 

 

 

在 CentOS 和 Fedora 系统上,yum 和 dnf 用于安装单个的文件,并且会处理必要的依赖。

 

系统命令阐明
Debian / Ubuntu sudo dpkg -i package.deb  
  sudo apt-get install -y gdebi && sudo gdebi package。deb 安装 gdebi,然后使用 gdebi 安装 package.deb 并处理缺失的依赖
CentOS sudo yum install package.rpm  
Fedora sudo dnf install package.rpm  
FreeBSD Packages sudo pkg add package.txz  
  sudo pkg add -f package.txz 即使已经安装的包也会重新安装

 

 

 

删除一个或多个已安装的包

 

由于担保理器知道给定的软件包提供了哪些文件,因此如果某个软件不再需要了,它通常可以干净利落地从系统中清除这些文件。

 

系统命令说明
Debian / Ubuntu sudo apt-get remove package  
  sudo apt remove package  
  sudo apt-get autoremove 删除不必要的包
CentOS sudo yum remove package  
Fedora sudo dnf erase package  
FreeBSD Packages sudo pkg delete package  
  sudo pkg autoremove 删除不必要的包
FreeBSD Ports sudo pkg delete package  
  cd /usr/ports/path_to_port && make deinstall 卸载 port

 

 

 

apt 命令

 

Debian 家族刊行版的管理员通常熟悉 apt-get 和 apt-cache。较少为人所知的是简化的 apt 接口,它是专为交互式使用而设计的。

 

传统命令等价的 apt 命令
apt-get update apt update
apt-get dist-upgrade apt full-upgrade
apt-cache search string apt search string
apt-get install package apt install package
apt-get remove package apt remove package
apt-get purge package apt purge package

 

虽然 apt 通常是一个特定操作的快捷方式,但它并不能完全替代传统的工具,它的接口可能会随着版本的不同而发生变化,以提高可用性。如果你在脚本或 shell 管道中使用担保理命令,那么最好还是坚持使用 apt-get 和 apt-cache

 

 

 

获取帮助

 

除了基于 web 的文档,请记住我们可以通过 shell 从 Unix 手册页(通常称为 man 页面)中获得大多数的命令。比如要阅读某页,可以使用 man

 

  1. man page

 

在 man 中,你可以用箭头键导航。按 / 搜刮页面内的文本,使用 q 退出。

 

系统命令说明
Debian / Ubuntu man apt-get 更新当地包数据库以及与包一起工作
  man apt-cache 在当地的包数据库中搜索
  man dpkg 和单独的包文件一起工作以及能查询已安装的包
  man apt 通过更简洁,用户友好的接口进行最基本的操作
CentOS man yum  
Fedora man dnf  
FreeBSD Packages man pkg 和预先编译的二进制包一起工作
FreeBSD Ports man ports 和 Ports 集合一起工作

 

 

 

 

 

dumpkeys命令用于显示键盘映射表,输出的内容可以被loadkeys命令识别,改变映射关系.。loadkeys命令可以根据一个键盘定义表改变 linux 键盘驱动程序转译键盘输入过程。

 

 

 

语法格式

 

dumkeys [参数]

 

 

 

 

 

常用参数:

 

 

 

-i 驱动信息(键码范围、数量、状态键)
-l 详细驱动信息
-n 十六进制显示
-f 显示全部信息
-1 分行显示按键组合
-S 设定输出格式(0:预设 1:完整 2:分行 3简单)
--funcs-only 功能键信息
--keys-only 键组合信息
--compose-only 普通键信息

 

 

 

参考实例

 

 

 

显示功能键信息:

 

[root@linux265 ~]# dumkeys --funcs-only

 

显示驱动信息:

 

[root@linux265 ~]# dumkeys -i

 

十六进制显示键盘映射表:

 

[root@linux265 ~]# dumkeys -n

 

显示键组合信息:

 

[root@linux265 ~]# dumkeys --keys-only

 

显示普通键信息:

 

[root@linux265 ~]# dumkeys --compose-only

 

 

 

ex命令

 

Linux ex命令用于在Ex模式下启动vim文本编辑器。

 

ex执行效果如同vi -E,使用语法及参数可参照vi指令,如要从Ex模式回到普通模式,则在vim中输入":vi"或":visual"指令即可。

 

语法

 

ex [选项][参数]

 

参数说明:

 

    +数字:从文件指定的数字行开始显示
  • -b:使用二进制模式编辑文件
  • -c 指令:编辑完第一个文件后执行指定的指令
  • -d :编辑多个文件时,显示差异部分
  • -m :不允许修改文件
  • -n :不使用缓存
  • -oN:其中 N 为数字
  • -r :列出缓存,并显示恢复信息
  • -R :以只读的方式打开文件
  • -s :不显示任何错误信息
  • -V :显示指令的详细执行过程
  • --help :显示帮助信息
  • --version :显示版本信息

 

实例

 

在ex 指令后输入文件名按回车键后,即可进入ex 编辑模式,如编辑testfile文件,使用的命令格式如下:

 

ex testfile

 

输出的信息如下:

 

"testfile" 5L, 95C

 

"testfile"表示文件名,5L表示5 行,95 表示字节数

 

进入ex 模式。输入"visual"回到正常模式

 

它的操作与vim 中是一样的,此时如果在":"后输入"visual"后按回车键,将进入到vi 指令全屏界面;如果输入"q",则退出编辑器。

 

 

 

 

 

fsck.ext2命令

 

 

 

Linux fsck.ext2命令用于检查文件系统并尝试修复错误。

 

当ext2文件系统发生错误时,可用fsck.ext2指令尝试加以修复。

 

语法

 

fsck.ext2 [-acdfFnprsStvVy][-b <分区第一个磁区地址>][-B <区块大小>][-C <反叙述器>][-I <inode缓冲区块数>][-l/L <损坏区块文件>][-P <处理inode大小>][外围设备代号]

 

参数

 

  • -a 自动修复文件系统,不询问任何问题。
  • -b<分区第一个磁区地址> 指定分区的第一个磁区的起始地址,也就是Super Block。
  • -B<区块大小> 设置该分区每个区块的大小。
  • -c 检查指定的文件系统内,是否存在有损坏的区块。
  • -C<反叙述器> 指定反叙述器,fsck.ext2指令会把全部的执行过程,都交由其逆向叙述,便于排错或监控程序执行的情形。
  • -d 详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -f 强制对该文件系统进行完整检查,纵然该文件系统在慨略检查下没有问题。
  • -F 检查文件系统之前,先清理该保存设备块区内的数据。
  • -I<inode缓冲区块数> 设置欲检查的文件系统,其inode缓冲区的区块数目。
  • -l<损坏区块文件> 把文件中所列出的区块,视为损坏区块并将其标示出来,避免应用程序使用该区块。
  • -L<损坏区块文件> 此参数的效果和指定"-l"参数类似,但在参考损坏区块文件标示损坏区块之前,会先将原来标示成损坏区块者统统清楚,即全部重新设置,而非仅是加入新的损坏区块标示。
  • -n 把欲检查的文件系统设成只读,并关闭互动模式,否决所有询问的问题。
  • -p 此参数的效果和指定"-a"参数相同。
  • -P<处理inode大小> 设置fsck.ext2指令所能处理的inode大小为多少。
  • -r 此参数将忽略不予处理,仅负责解决兼容性的问题。
  • -s 检查文件系统时,交换每对字节的内容。
  • -S 此参数的效果和指定"-s"参数类似,但不论该文件系统是否已是标准位顺序,一律交换每对字节的内容。
  • -t 显示fsck.ext2指令的时序信息。
  • -v 详细显示指令执行过程。
  • -V 显示版本信息。
  • -y 关闭互动模式,且同意所有询问的问题。

 

 

 

 

 

fsck.minix命令

 

Linux fsck.minix命令用于检查文件系统并尝试修复错误。

 

当minix文件系统发生错误时,可用fsck.minix指令尝试加以参考。

 

语法

 

fsck.minix [-aflmrsv][外围设备代号]

 

参数

 

  • -a 自动修复文件系统,不询问任何问题。
  • -f 强制对该文件系统进行完整检查,纵然该文件系统在慨略检查下没有问题。
  • -l 列出所有文件名称。
  • -m 使用类似MINIX操作系统的警告信息。
  • -r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式。
  • -s 显示该分区第一个磁区的相关信息。
  • -v 显示指令执行过程。

 

 

 

fwhios命令

 

Linux fwhios命令用于查找并显示用户信息。

 

本指令的功能有点类似finger指令,它会去查找并显示指定帐号的用户相关信息。不同之处在于fwhois指令是到Network Solutions的WHOIS数据库去查找,该帐号名称必须有在上面注册才能寻获,且名称没有大小写的差别。

 

语法

 

fwhios [帐号名称]

 

 

 

MAKEDEV命令

 

MAKEDEV是一个脚本程序, 用于在 /dev 目录下建立设备, 通过这些设备文件可以 访问位于内核的驱动程序。

 

MAKEDEV 脚本创建静态的设备节点,通常位于/dev目录下。 

语法格式

MAKEDEV [参数]  

常用参数:

 

-v 显示出执行的每一个动作
-n 并不做真正的更新, 只是显示一下它的执行效果
-d 删除设备文件

 

参考实例

 显示出执行的每一个动作:

[root@linux265 ~]# ./MAKEDEV -v update

删除设备:

[root@linux265 ~]# ./MAKEDEV -d device

 

 

 

badblocks命令

 

badblocks就是一个检查磁盘装置中损坏区块的命令,执行该命令时只须指定所要检查的磁盘装置,及此装置的磁盘区块数。

 

 

语法格式

badblocks [参数]  

常用参数:

 

-b 指定磁盘的区块大小,单位为字节
-o 将检查的结果写入指定的输出文件
-s 在检查时显示进度
-v 执行时显示详细的信息
-w 在检查时,执行写入测试

 

参考实例

 通过命令扫描硬盘:

[root@linux265 ~]# badblocks -s -v /dev/sdnx

其中n表示硬盘设备名,x表示硬盘对应的分区号,例如需要检查”/dev/sda2″:

[root@linux265 ~]# badblocks -s -v /dev/sda2 Checking blocks 0 to 30681000 Checking for bad blocks (read-only test): 306809600674112/ 306810000000 30680964 30680
965 30680966 30680967 30680968 30680969 30680970 30680971 30680972 30680973 ... done Pass completed, 37 bad blocks found.其中,“37 bad blocks found”表示硬盘存在37个坏块。

以4096字节为一个“block”,每一个“block”检查1次, 将结果输出到“hda-badblocks-list.1”文件中,由第51000 block开始,到63000 block结束:

[root@linux265 ~]# badblocks -b 4096 -c 1 /dev/hda1 -o hda-badblocks-list.1 63000 51000

扫描硬盘的损坏扇区或区块并写入到临时文件夹下的bad-blocks.txt文件中:

[root@linux265 ~]# badblocks -v -o /dev/sdb > /tmp/bad-blocks.txt

如果找到了坏道,可以进行写入扫描进行修复。写入扫描遇到坏道的时候会自动重映射。写入扫描会覆盖原有数据,所以请先备份。写入扫描速度很低,所以应该只扫描只读扫描时候发现错误的部分:

[root@linux265 ~]# badblocks -w -s /dev/sdb END START

将END和START换成结束和开始的块的编号就可以了。

 

 

 

 

 

 

 

mcd命令

 

Linux mcd为mtools工具指令,可在MS-DOS文件系统中切换工作目录。若不加任何参数,则显示目前所在的磁盘与工作目录。

 

语法

 

mcd [msdosdirectory]

 

实例

 

变更目前工作目录到 a: emp 中。

 

mcd a: emp

 

传回目前工作目录。

 

mcd

 

 

 

 

 

mmd命令

 

Linux mmd命令用于在MS-DOS文件系统中建立目录。

 

mmd为mtools工具指令,模拟MS-DOS的md指令,可在MS-DOS的文件系统中建立目录。

 

语法

 

mmd [目录...]

 

 

 

mmount命令

 

Linux mmount命令用于挂入MS-DOS文件系统。

 

mmount为mtools工具指令,可根据[mount参数]中的设置,将磁盘内容挂入到Linux目录中。

 

语法

 

mmount [驱动器代号][mount参数]

 

参数

 

  • [mount参数]的用法请参考 mount指令。

 

 

 

 

 

mrd命令

 

Linux mrd命令用于删除MS-DOS文件系统中的目录。

 

mrd为mtools工具指令,模拟MS-DOS的rd指令,可删除MS-DOS的目录。

 

语法

 

mrd [目录...]

 

 

 

mshowfat 命令

 

mshowfat命令用于显示MS-DOS文件在FAT中的记录。

 

mshowfat为mtools工具指令,可显示MS-DOS文件在FAT中的记录编号。 

语法格式

mshowfat [参数]  

常用参数:

 

[文件…] 执行操作的文件相对路径或者绝对路径

 

参考实例

 查看文件”test.txt”的FAT信息:

[root@linux265 ~]# $ mshowfat test.txt

 

 

 

 

 

netconfig命令

 

Linux netconfig命令用于设置网络环境。

 

这是Slackware发行版内附程序,它具有互动式的问答界面,让用户轻易完成网络环境的设置。

 

语法

 

netconfig

 

 

 

SVGATextMode命令

 

Linux SVGATextMode命令用于加强文字模式的显示画面。

 

SVGATextMode可用来设置文字模式下的显示画面,包括分辨率,字体和更新频率等。

 

语法

 

SVGATextMode [-acdfhmnrsv][-t <配置文件>][模式]

 

参数

 

  • -a  如果新显示模式的屏幕大小与原先不同时,SVGATextMode会执行必要的系统设置。
  • -c  维持原有的VGA时脉。
  • -d  执行时会显示详细的信息,供排错时参考。
  • -f  不要执行配置文件中有关字体载入的指令。
  • -h  显示帮助。
  • -m  允许1x1的方式来重设屏幕大小。
  • -n  仅测试指定的模式。
  • -r  通知或重设与屏幕大小相关的程序。
  • -s  显示配置文件中所有可用的模式。
  • -t<配置文件>  指定配置文件。
  • -v  SVGATextMode在配置新的显示模式时,预设会先检查垂直与水平的更新更新频率是否在配置文件所指定的范围内,如果不在范围内,则不设置新的显示模式。
  • 模式]  [模式]参数必须是配置文件中模式的名称。

 

 

 

 

 

uuencode命令

 

Linux uuencode命令用于将uuencode编码后的档案还原。

 

早期在许多 unix 系统的传送协定只能传送七位元字元,并不支援二进位档案,像中文文字档就有用到八位元,所以无法完整地送到另一架机器上。 uuencode 指令,可以将二进位档转换成七位元的档案,传送到另一架机器上再以 uudecode 还原。最常见的是用在以电子邮件传送二进位档。uuencode 编码后的资料都以 begin 开始,以 end 作为结束。

 

语法

 

compress[必要参数][选择参数][目录或者文件]

 

参数说明:

 

必要参数:

 

 

选择参数:

 

  • h 显示帮助信息
  • v 显示版本信息

 

实例

 

还原档案

 

# uuencode test.uud

 

 

 

whois命令

 

Linux whois命令用于查找并显示用户信息。

 

whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。

 

语法

 

whois [帐号名称]

 

实例

 

显示指定用户信息

 

# whois root //查找root用户信息

 

查询域名描述信息

 

# whois .Lx138.COm Whois Server Version 2.0 Domain names in the .com and .net domains can now be registered with many different competing registrars. Go to http://www.internic.net for detailed information. ...省略部分内容

 

查询域名信息

 

# whois Lx138.COm The Registry database contains ONLY .COM, .NET, .EDU domains and Registrars. Domain Name ..................... Lx138.COm Name Server ..................... dns15.hichina.com dns16.hichina.com Registrant ID ................... hc937242545-cn ...省略部分内容

 

查询域名信息省略法律声明

 

# whois -H Lx138.COm ...省略内容

 

指定端口查询

 

# whois -p 80 Lx138.COm ...省略内容

 

 

 

来源地址:
https://www.linuxcool.com/

https://linux265.com/

https://www.runoob.com/ 

 

posted @ 2021-12-08 21:33  一代肝帝  阅读(367)  评论(0)    收藏  举报