阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 25040阅读
  • 187回复

[交流乐园]Linux基础命令

级别: 码农
发帖
181
云币
189
记录一下Linux的常用命令 p~noM/*2r  
[ 此帖被一生有你llx在2018-10-20 22:53重新编辑 ]
本帖最近评分记录: 4 条评分 云币 +4
yixiusdc 云币 +1 你是我偶像 04-25
xchm 云币 +1 ECS云服务器2折起,1年¥293起  https://dwz.cn/qxEL96bj 03-04
光山居士 云币 +1 阿里云1888元代金券 https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=ffsbbyn0 02-22
拼团优惠 云币 +1 阿里云通用代金券1888元礼包领取地址:http://t.cn/RBIvmMG 2018-11-11
级别: 码农
发帖
181
云币
189
只看该作者 沙发  发表于: 2018-10-18
ReView组件
Arch &3yD_P_3  
     Arch指令主要用于显示当前主机的硬件结构类型,我们可以看到它输出的结果有:i386、i486、mips、alpha等。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 nu'M 39{  
SR DXfkoI  
1、语法 ;|UF)QGa2  
    arch  [选项] Q>n|^y6  
-eX5z  
2、选项列表 8T(e.I  
    --help     ,\qs4&  
        显示此命令的帮助信息 {dmj/6Lc  
    --version ar:+;.n  
        显示命令的版本信息 7EXI6jGJ|  
F^hBtfz  
3、实例 hGiz)v~  
点击(此处)折叠或打开 H"qOSf{  
=+AS/Jq  
[root@localhost ntop-4.0.1]# arch a{[x4d,z  
i686 //可以看到当前是32位的i686机器 'Y]mOD^ p  
[root@localhost ntop-4.0.1]# arch --help .|/~op4;  
用法:arch [选项]... C:Hoq(  
输出机器的体系结构。 o`Ta("9^  
--help        显示此帮助信息并退出 H/Llj.-jg  
--version        显示版本信息并退出 [ :zO}r:  
请向bug-coreutils@gnu.org 报告arch 的错误 Sv  &[f}S  
GNU coreutils 项目主页: ;&ASkI  
GNU 软件一般性帮助: yrR1[aT  
请向 报告arch 的翻译错误 X,LD   
要获取完整文档,请运行:info coreutils 'arch invocation' 3\Xbmq8}  
[root@localhost ntop-4.0.1]# arch --version vBog0KD);s  
arch (GNU coreutils) 8.4 %*\es7m}  
Copyright (C) 2010 Free Software Foundation, Inc. $jg*pmR-  
许可证:GPLv3+:GNU 通用公共许可证第3 版或更新版本。 AZmb!}m+d  
本软件是自由软件:您可以自由修改和重新发布它。 rta:f800z  
在法律范围内没有其他保证。 8H_l:Z[:i  
由David MacKenzie 和Karel Zak 编写。 ;6!Pwb;hY  
[root@localhost ntop-4.0.1]# H=\3Jj(4  
` P9XqWr  
级别: 码农
发帖
181
云币
189
只看该作者 板凳  发表于: 2018-10-18
ReView组件
lspci EbdfV-E  
    lspci是一种实用程序,用于在系统中显示有关pci总线的信息以及连接到它们的设备。 U\R}`l  
    默认情况下,它显示了一个简单的设备列表。使用下面描述的选项可以请求更详细的输出或其他程序用于解析的输出。 zA1lca0HK  
    如果要报告PCI设备驱动程序或lspci本身中的bug,请使用选项“lspci-vvx”或更好的“lspci-vvxxx”的输出(不过,可能会有警告)。 w.0qp)}  
    输出的某些部分,特别是在高度冗长的模式下,只有经验丰富的PCI黑客才能理解Proba-Bly。有关字段的确切定义,请参阅PCI规范或head er.h和/usr/include/linux/pci.h文件。 |Z*J/v'@p  
    在许多操作系统上,对PCI配置空间的某些部分的访问仅限于root用户,因此对于普通用户来说,lspci的功能是有限的。然而,lspci尽力显示尽可能多的可用信息,并将所有其他信息标记为<访问拒绝>文本 =|YxDas  
    该命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 8:/e GM  
IqD_GL)Ms  
1、语法 a(0*um(  
    lspci  [选项] dS<C@(  
    lspci命令中,我们经常会看到一些“[]:[].[]”这样格式的数字,例如“00:01.0”,这一个参数是总线编号,第二个是插槽编号,第三个是功能编号,它们都是十六进制的数字。 xa pq*oj  
?G -e](]^<  
2、选项列表 <NuUW9+  
    1)基础显示模式 R<=zCE`:  
    -m %y%j*B!%  
        以向后兼容并且机器可读的方式转储设备信息 - h9?1vc7  
    -mm (4Zts0O\  
        以机器可读的方式转储设备信息,以便脚本解析 4'LB7}WG  
    -t `^4vT3e  
        以树形结构显示pci设备的层次关系,包含所有总线、桥梁、设备和它们之间的连接 q2et|QCru  
    2)显示选项 m2v'WY5u  
    -n p^'3Odd|O  
        显示pci设备的厂商和设备代码 /)>s##p*  
    -v [NTtz <i@  
        显示所有设备的详细信息 H[='~%D  
    -vv Yl.0aS  
        以更加详细的方式显示设备信息 ryFxn|4  
    -k |USX[j m\  
        显示处理每个设备的内核驱动程序以及能够处理该设备的内核模块。默认情况下,当-v以正常的输出模式打开时。(目前只在内核2.6或更高版本的Linux上工作。) !1G."fo  
    -x -P]sRl3O;  
        显示配置空间标准部分的十六进制转储(CardBus桥的前64字节或128字节)。 U\sHx68  
    -xxx dH^<t,v  
        显示整个PCI配置空间的十六进制转储。当您试图读取配置空间的某些部分时,只有当几个PCI设备崩溃时,它才可用,而且只适合root用户。(这种行为可能没有违反PCI标准,但至少非常愚蠢)。然而,这样的设备很少见,所以您不必太担心 z$kenhFG/  
    -xxxx ;JRs?1<='  
        显示扩展(4096字节)PCI配置空间在PCI-X2.0和PCIExpress总线上可用的十六进制转储 T0]*{k(FR  
    -b ;Yg{zhJX~  
        以总线为中心的视图。显示由pci总线上的卡看到的所有irq编号和地址。注意,不是有内核看到的 //4Xq8y  
    -D "^1L'4'S  
        始终显示PCI域号。默认情况下,lspci在只有域0的机器上略过它们。 +r<0zh,n.  
     3)解析ID为名称的选项 4NdN< #Lr  
    -n nM0[P6p  
        将PCI供应商和设备代码显示为编号,而不是在PCI ID列表中查找它们。 V,[d66H=N  
    -nn 59Gk3frk(  
        显示pci供应商和设备的代码和名字 $]q8, N|1  
    -q O1`9Y}G(r  
        如果在本地pci.id文件中找不到设备,则使用DNS查询中央PCI ID数据库。如果DNS查询成功,结果将缓存在~/.pciids-cache中,即使-q不再给出,也会在后续运行中识别。请在自动脚本中使用此开关时要小心,以避免数据库服务器超载。 2~t[RY  
    -qq tu5*Qp\  
        和“-q”一样,但是本地缓存被重置 ]J#9\4Sq  
    -Q lbuAE%  
        查询中央数据库,即使是本地也有缓存数据可查。如果您怀疑显示的条目是错误的,请使用此方法。 !Lh^oPT"I  
    4)选择设备的选项 t&(PN%icD  
    -s [域]:[总线]:[插槽].[功能] (X?/"lC)  
        只显示指定域中的设备(如果您的计算机有几个主机桥接器,它们可以共享公共总线编号空间,或者每个设备可以自己寻址PCI域;域编号为0到ffff)、总线编号(0到ff)、插槽编号(0至1f)、函数编号(0至7)。地址可以省略或设置为“*”,这两者都意味着“任何值”。所有数字都是十六进制的。例如,“0:”表示总线0上的所有设备,“0”表示设备0在任何总线上的所有功能,“0.3”在所有总线上选择设备0的第三功能,“4”仅显示每个设备的第四个功能。 wGZR31  
    -d [厂商:设备] e0$=!QlPr  
        显示指定厂商和设备的信息,厂商号和设备号都是十六进制。 R+7oRXsu  
    5)其他选项 po}F6m8bX  
    -i Glpe/At  
        指定pci设备编号文件,默认文件是/usr/share/hwdata/pci.ids U. @*`Fg  
    -p %~QO8q_7  
        使用指定文件作为PCI ID的映射文件,默认使用/lib/Module/kernel_version/Modes.pcimap RAp=s  
    -M SM^-Z|d?  
        调用总线映射模式,它对所有pci设备,包括配置错误的桥后面的设备进行彻底扫描。此选项只在直接硬件访问模式下提供有意义的结果,通常需要根权限。请注意,总线。。程序只扫描pci域0。 k}#;Uy=5  
    6)PCI设备访问选项 <u=4*:QE  
    -A _fwb!T}$  
        库支持多种方法来访问PCI硬件。默认情况下,它使用第一个可用的访问方法,但您可以使用此选项覆盖此决定。你可以使用“-A help”来先看可用的方法 FP Jd|  
    -O = ]K*8O <  
        库的行为由多个命名参数控制。此选项允许设置任何参数的值。使用“-Ohelp“获取已知参数及其默认值的列表。 g38&P3/  
    -H1 ys#i@  
        通过Intel配置机制1直接访问硬件 8O"U 0  
    -H2 8L1ohj  
        通过Intel配置机制2直接访问硬件  ]@M5&  
    -F ?r2#.W  
        与其访问真正的硬件,不如从先前运行的lspci-x生成的给定文件中读取设备及其配置寄存器的值列表,这对于分析用户提供的错误报告非常有用,因为您可以任何方式显示硬件配置,而不需要使用更多转储请求来干扰用户。 g%k`  
    -G e hA;i.n  
        提高库的调试级别 n\ Hs@.  
8#D:H/`'  
3、关于选项的说明 dHk{.n^p  
    1)关于“–m”选项 )=DGdI Et  
    如果您打算自动处理lspci的输出,请使用本节中描述的机器可读的输出格式之一(-m、-vm、-vmm)。所有其他格式都可能在lspci的不同版本之间发生变化。所有的数字都是以十六进制打印的。如果要处理数字ID而不是名称,请添加-n开关. Q_vW3xz  
在简单格式中,每个设备都在一行上进行描述,这些参数被格式化为适合传递给shell脚本的参数,即由空格分隔的值,必要时引用和转义。其中一些参数是位置:槽、类、供应商名称、设备名称、子系统名称和子系统名称(如果设备没有子系统,最后两个参数是空的);其余的参数是选项 5p +ZD7jK  
    2)关于“-vmm”选项 P%MfCpyj  
    详细的输出是由空行分隔的记录序列,每条记录用一行来描述一个设备,每一行包含一个‘tag:value’对。标记和值由单个制表符分隔。记录或记录中的行都不按任何特定顺序排列。标记区分大小写。下面是已经定义的tag: Rl6\#C*  
    Slot,设备所在的插槽名称 :h1pBEiH  
    Class,类名 emW:C-/h/@  
    Vendor,厂商名 9Ok9bC'?8@  
    Device,设备名 D\H/   
    SVendor,子系统供应商名字 n$:IVX"2b  
    SDevice,子设备名字 hwqbi "o  
    PhySlot,设备所在的物理插槽 {>bW>RO)  
    Rev,修序号 Ux2U*a ;  
    ProgIf,编程接口 #pHs@uvO  
    Driver,当前正在处理设备的内核驱动程序 $M:3XAN  
    Module,内核模块的报告 fKtV '/X;Q  
1h7+@#<:a  
4、实例 5TUNX^AW  
    1)以机器可读的方式显示 gip/(/NX  
[root@localhost ntop-4.0.1]# lspci -m 9,]5v +  
00:00.0 "Host bridge" "Intel Corporation" "440FX - 82441FX PMC [Natoma]" -r02 "" "" X#w%>al  
00:01.0 "ISA bridge" "Intel Corporation" "82371SB PIIX3 ISA [Natoma/Triton II]" "" "" -]:G L>b  
00:01.1 "IDE interface" "Intel Corporation" "82371AB/EB/MB PIIX4 IDE" -r01 -p8a "" "" 90xk$3(  
00:02.0 "VGA compatible controller" "InnoTek Systemberatung GmbH" "VirtualBox Graphics Adapter" "" "" 7P7b8 ]  
nmjm<Bu  
~ np,_yI  
    2)显示设备代码和名字 N:"C+ a(  
[root@localhost ntop-4.0.1]# lspci –nn ^ZTGJ(j7~  
//设备代码0600, 厂商代码8086:1237 y]e>E  
00:00.0 Host bridge [0600: Intel Corporation 440FX - 82441FX PMC [Natoma [8086:1237 (rev 02) j 6ut}Uq  
00:01.0 ISA bridge [0601: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II [8086:7000 bqx0d=Z~[  
00:01.1 IDE interface [0101: Intel Corporation 82371AB/EB/MB PIIX4 IDE [8086:7111 (rev 01) @uH#qg7  
4l8BQz}sb  
Jg$xO@.  
    3)以树形结构显示 +{53a_q  
[root@localhost ntop-4.0.1]# lspci –t Qju`e Eo  
//总线编号,插槽,功能编号 W >(vYU  
-[0000:00-+-00.0 pe&UQ C^  
           +-01.0 (ozb%a#B  
           +-01.1 nF)uTk  
           +-02.0 efz&@|KR  
=wq;@'U  
N6Z{BLZ  
    4)显示指定位置的设备信息 {w^uWR4f  
[root@localhost ntop-4.0.1]# lspci -s 0000:01.0 l|/:Ot  
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II P(omfD4  
KbxR Lx]w  
Rn+4DcR  
    5)显示指定厂商和设备号的设备信息 } PeZO!K  
[root@localhost ntop-4.0.1]# lspci -d 8086:1237 Cef:tdk7  
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma (rev 02) 2)/NFZ  
eR!G[Cw-  
级别: 码农
发帖
181
云币
189
只看该作者 地板  发表于: 2018-10-18
ReView组件
lsusb G{c#\?12C  
    显示本机的usb设备列表,可以显示出usb的详细信息,包括设备的读取速度和描述符。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 ( v#pj8aE  
=3ADT$YHd  
1、语法 h{]#ag5`  
    lsusb  [选项]  U w Eiz  
C}CKnkMMD  
2、选项列表 d(L{!mm  
    -v t=dO  
        告诉lsusb详细显示所示设备的详细信息。这包括设备当前速度的配置描述符。如果可用,类描述符将显示USB设备类,包括集线器、音频、HID、通信和芯片卡。 ^,7=X8Su  
    -s [[bus]:][devnum] 7U:=~7GH  
        显示指定总线和设备号的设备信息,总线和设备号用十进制标识。格式:lsusb –s 00:01 |f NMs  
    -d [vendor]:[product] FDLd&4Ex  
        显示指定厂商和产品编号的设备,用十六进制表示编号。格式:lsusb –d 8086: D@vMAW  
    -D |< N frz  
        显示指定设备文件的设备信息,例如:lsusb –D /proc/bus/usb/001/001。只有root用户才可以使用这个选项 !A[S6-18%-  
    -t %ejeyc  
        以树状结构显示 f9'] jJ+  
    -V H`D f  
        指令版本信息 Vj!WaN_  
|s`Kd-'|q  
    如果指定的设备没有被找到,那么返回一个非0值。/usr/share/hwdata/usb.ids文件中记录了所有的USB设备节点的信息,包括制造商、产品号、类、子类、协议等等。 v>at/ef  
v&2+'7]w r  
3、实例 <|V'pim  
    1)直接显示简单的设备信息 !Mil?^  
    [root@localhost ntop-4.0.1]# lsusb S.]MOB dt  
    //总线号      设备号          厂商ID Ws>i)6[  
    Bus 001      Device 001:   ID 1d6b:0001 Linux Foundation 1.1 root hub qT 0_L  
    2)显示详细信息 (txt8q  
    [root@localhost ntop-4.0.1]# lsusb -v =kO@Gk?  
    Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub x@ 6\Ob  
    Device Descriptor:      //设备描述符 J=P;W2L  
    bLength                18 6JWGu/A  
    bDescriptorType         1 D1! {S7  
      … b_mWu@$  
    Hub Descriptor:         //集线器描述符 r\bq[9dX>  
    bLength              11 J=V yyUB  
     … kDg{ >mf  
    Hub Port Status:       //集线器端口状态 IrUi E q  
       Port 1: 0000.0100 power x cnt?%%M  
       Port 2: 0000.0100 power 8L{$v~+  
      … !*8#jy  
    Device Status:     0x0003   //设备状态 @LHtt/&  
    Self Powered j aD!  
    Remote Wakeup Enabled >&[3  
    3)显示指定总线上的设备 Kv1vx*>  
    [root@localhost ntop-4.0.1]# lsusb -s 001:001 -g<cinNSp  
    Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub w0$R`MOR+  
    4)显示指定厂商的设备信息 sxt`0oE  
    [root@localhost ntop-4.0.1]# lsusb -d 1d6b:001 }`4K)(>4nG  
    Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub ,?fN#gc :  
    5)以树状结构显示 j]#wrm  
    [root@localhost ntop-4.0.1]# lsusb -t tgK x4  
    Bus#  1 2!{N[*)  
    `-Dev#   1 Vendor 0x1d6b Product 0x0001
[ 此帖被一生有你llx在2018-10-18 21:23重新编辑 ]
级别: 码农
发帖
181
云币
189
只看该作者 4楼 发表于: 2018-10-18
ReView组件
eject ]7#^])>  
     eject指令允许在软件控制下弹出可移动媒体(通常是光盘、软盘、磁带或Jaz或ZIP磁盘)。该命令还可以控制一些由某些设备支持的自动弹出功能的多光盘转换器,并关闭一些光盘驱动器的盘。 gp#bQ  
qP7&LtU  
    对应于name的设备被弹出。名称可以是一个设备文件或挂载点,可以是一个完整的路径,也可以是前面省略的“/dev”、“/media”或“/mnt”。如果未指定名称,则使用默认名称“cdrom”。 hW0,5>[7%  
v`z=OHc  
    根据设备是CD ROM、SCSI设备、可移动软盘还是磁带,有四种不同的弹出方法。默认情况下,弹出将按顺序尝试所有四种方法,直到成功为止。如果该设备目前已安装,则在弹出前将其卸载。 *eJhd w*  
~ERRp3Ee ?  
    此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 IQ(]66c ,  
~|aeKtCs(.  
1、语法 MFc=B`/X  
    eject  -h XPc9z}/(e  
    eject [-vnrsfmqp]  [] 7|h3.  
    eject [-vn]  -d w*&n(zJF>  
    eject [-vn]  -a  on|off|1|0 [] *sc0,'0  
    eject [-vn]  -c  slot [] Q7 0**qm  
    eject [-vn]  -i  on|off|1|0 []   zVc7q7E  
    eject [-vn]  -t  [] eI/\I:G{f  
    eject [-vn]  -T  [] }\PE {  
    eject [-vn]  -x   [] 4'}_qAT  
    eject [-vn]  -X  [] '?vgp  
    eject -V 1A`?y& Ll  
_Cv[`e.  
2、选项列表 i#M a -0#  
    -h | --help #o;CmB  
        显示简单的帮助文档 \V"P maP\  
    -V | --version Q C\,  
        显示命令版本信息,然后退出 7tf81*e  
    -v | --verbose QigoRB!z#9  
        执行指令的时候显示详细信息,可以在命令行看到指令在干什么 .^)C:XiW  
    -d | --default +}`O^#<qLX  
        显示默认的设备名字(cdrom) Dvq*XI5  
    -a on|1|off|0 ?|Q5]rhs  
        这个选项控制自动弹出模式,只有某些设备才支持。如果是能这个开关,设备在关闭的时候会自动弹出。 J1c&"Oh  
    -c | --changerslot :C|>y4U&(s  
        使用此选项,可以从ATAPI/IDE CD-ROM转换器中选择CD插槽。使用此特性需要Linux2.0或更高版本。当一个更改请求工作的时候,无法使用CD-ROM驱动器(挂载的数据CD或播放音乐CD)。还请注意,转换器的第一个插槽称为0,而不是1。 t_zY0{|P  
    -i on|1|off|0 S}v{^vR  
        此选项可以锁定弹出按钮,使其不工作。当启用时,当按下按钮时,驱动器将不会弹出。这是有用的,当您携带笔记本电脑在一个袋子或箱子,不希望它弹出,如果该按钮是无意中按下。 R>e3@DQ~  
    -t | --trayclose v'bd.eqw  
        有了这个选项,驱动器被赋予一个CD-ROM托盘关闭命令。并非所有设备都支持此命令。 X#Dhk6  
    -T | --traytoggle #8Id:56  
        如果CD-ROM托盘已经打开,那么它将关闭;如果CD-ROM托盘已经关闭,那么它将弹出。并非所有设备都支持此命令,因为它使用了上面的CD-ROM托盘关闭命令。 11@2;vw  
    -x | --cdspeed G0 nH Z6  
        使用此选项,CDROM驱动器可以进行选择速度。速度参数是一个指示所需速度的数字(例如,8表示8X速度),或0表示最大数据速率。并非所有设备都支持此命令,而且您只能指定驱动器能够达到的速度。每次媒体更改时,此选项将被清除。此选项可以单独使用,也可以与-t和-c选项一起使用。 jy__Y=1}  
    -X | --listspeed yZ?_q$4kEI  
        显示cdrom的可用速度。使用此选项,将探测CD-ROM驱动器以检测可用的速度。输出一个速度列表,可用作-x选项的参数。这只适用于Linux2.6.13或更高版本,在以前的版本上只报告最高速度。还请注意,某些驱动器可能无法正确报告速度,因此选项不适用于它们。 iu6WGm R  
    -n | --noop } ^GV(]K  
        显示所选的设备,但是不执行任何操作 Q:fUM[  
    -r | --cdrom QqFfR#  
        弹出 cdrom设备 xo)?XFM2  
    -s | --scsi RESGI}u  
        弹出SCSI设备 32-3C6f@oZ  
    -f | --floppy >;'1k'  
        弹出 floppy设备 &6|^~(P?  
    -q | --tape R/Dy05nloe  
        弹出 磁带设备 XvzV lKL  
    -p | --proc $ Op/5j  
        允许使用/proc/mounts代替/etc/mtab 9h,yb4jPP  
    -m | --no-umount k+Ma_H`  
        此选项允许eject与自动挂载可移动媒体的设备驱动程序一起工作,因此这些设备必须总是已挂载的。该选项告诉eject不要尝试卸载给定的设备,即使它是根据/etc/mtab或/proc/挂载安装的。 W-]yKSob  
X$9D0;L  
3、example 9J;H.:WH  
    弹出默认设备 pqQdr-aR=  
        eject WfjUJw5x"s  
    弹出一个名字为cdrom的设备或者挂载点 h'YcNkM 2>  
        eject cdrom 73sAZa|  
    使用设备名来弹出 seD+~Y\z  
        eject /dev/cdrom ZV<y=F*~f  
    使用挂载点弹出  RoM*Qjw  
        eject /mnt/cdrom ,tR'0&=  
    弹出第4个IDE设备 piiQ  
        eject hdd @%@^5  
    弹出第一个SCSI设备 "6NNId|Y  
        eject sda K[|P6J   
    使用SCSI分区名称弹出 4#7@KhK}  
        eject sda4 2,e|,N"zN  
    在多盘交换机上选择第5盘 K?OX  
        eject –v –c4 /dev/cdrom z Q|x>3   
    打开声音放映机CD-ROM上的自动弹出功能 x#gmliF  
        eject –a on /dev/sbpcd l<K.!z<-:8  
?>\]%$5o  
4、说明 V_d%g<n4  
     eject指令执行成功之后会返回0,如果失败就返回1。 \ -iUuHP  
    eject指令只适用于支持四种弹出方法中的一种或多种方法的设备。这包括大多数光盘驱动器(IDE、SCSI和专有)、一些SCSI磁带驱动器、Jaz驱动器、ZIP驱动器(并行口、SCSI和IDE版本)和LS 120可移动软盘。用户还报告说,在Sun SPARC和Apple Macintosh系统上,软盘驱动器也取得了成功。如果弹出无法工作,很可能是对设备的内核驱动程序的限制,而不是弹出程序本身的限制。 l'{goyf  
    -r、-s、-f和-q选项允许控制用于弹出的方法。可以指定多个方法。如果没有指定这些选项,则会尝试所有四个选项(在大多数情况下,这很好)。 .idl@%  
    eject并不总是能够确定设备是否已安装(例如,它是否有多个名称)。如果设备名称是一个符号链接,弹出将跟随该链接并使用它所指向的设备。 [ MXXY  
    如果eject确定该设备可以具有多个分区,则它将尝试在弹出之前卸载该设备的所有已安装分区。如果卸载失败,程序将不会尝试弹出媒体。 I8%'Z>E(  
    你可以弹出一张音频CD。如果驱动器是空的,一些CDROM将拒绝打开托盘。有些设备不支持托盘关闭命令。 .Zt/e>K&  
如果启用了自动弹出功能,则在运行此命令后,驱动器将始终弹出。并不是所有的linux内核CDROM驱动程序都支持自动弹出模式,无法找到自动弹出模式的状态。  iIEIGQx  
    您需要适当的权限才能访问设备文件。要弹出某些设备(例如SCSI设备),需要以root或setuidroot的形式运行。 jeBj   
    用于查找设备的启发式方法(给定名称)如下所示。如果名称以尾随斜杠结尾,则删除它(这是为了支持使用shell文件名完成生成的文件名)。如果名称以“.”或“/”开头,则尝试将其作为设备文件或挂载点打开。如果失败,它会尝试将‘/dev/’、‘/media/’、‘/mnt/’、‘/dev/cdroms’、‘/dev/rdsk/’、‘/dev/dsk/’和最后‘./’放在名称前面,直到找到可以打开的设备文件或挂载点。        安装设备的程序检查/etc/mtab。如果失败,它还会检查/etc/fSTAB以查找当前未挂载设备的挂载点。 Gc!{%x  
    建议创建符号链接,如/dev/cdrom或/dev/zip,以便eject可以使用容易记住的名称来确定合适的设备。 hE#8_34%s  
    要保存类型,可以为特定设置工作的弹出选项创建shell别名。 dvWlx]'  
PaeafL65=  
5、实例 BH*]OXW\  
     1)没有指定设备类型,直接弹出cdrom。此种情况下会依次尝试所有的方式,直到弹出为止。 ZXDMbMD  
    [root@localhost ~]# eject –v     //使用-v来显示指令执行的过程 &+{xR79+&  
    eject: using default device `cdrom' S_-mmzC(  
    eject: device name is `cdrom' l45F*v]^  
    eject: expanded name is `/dev/cdrom' b2f2WY |z>  
    eject: `/dev/cdrom' is a link to `/dev/sr0' >)Z2bCe  
    eject: `/dev/sr0' is not mounted I%|s  
    eject: `/dev/sr0' is not a mount point xs`gN  
    eject: checking if device "/dev/sr0" has a removable or hotpluggable flag zw9ULQ$#  
    eject: `/dev/sr0' is not a multipartition device R#bV/7Ol  
    eject: trying to eject `/dev/sr0' using CD-ROM eject command  //尝试第一种弹出方式 >Ez}r(QQ^  
    eject: CD-ROM eject command failed E :g ArQ  
    eject: trying to eject `/dev/sr0' using SCSI commands   //尝试第二种弹出方式 ?iO^b.'I#  
    eject: SCSI eject succeeded H.~+{jTr  
     2)使用“-r”选项,弹出cdrom CMjPp`rA  
    [root@localhost ~]# mount    //查看是否有光盘挂载 ?gP/XjToMg  
    /dev/mapper/VolGroup-lv_root on / type ext4 (rw) K{h]./%  
    … vKLG9ovlY  
    /dev/sr0 on /media/VBox_GAs_5.2.16 type iso9660 (ro,nosuid,nodev,uhelper=udisks,uid=0,gid=0,iocharset=utf8,mode=0400,dmode=0500) XxQ2g&USk  
N5]68Fu'({  
    [root@localhost ~]# eject -v –r    //弹出光盘 -* j;  
    eject: using default device `cdrom' <sG>[\i  
    … Qnc S&  
    eject: trying to eject `/dev/sr0' using CD-ROM eject command 5d;K.O  
    eject: CD-ROM eject command succeeded
级别: 码农
发帖
181
云币
189
只看该作者 5楼 发表于: 2018-10-18
ReView组件
hwclock   6g)21Mh#  
t6j|q nfw  
    hwclock是一种访问硬件时钟的工具,可以显示当前时间,将硬件时钟设置为指定的时间,将硬件时钟设置为系统时间,以及从硬件时钟设置系统时间。您还可以定期运行hwlock以插入或删除硬件时钟中的时间,以补偿系统漂移(如果继续运行,则该时钟始终以一定的速率获得或丢失时间)。 IRLT -  
V7.EDE2A3  
    该命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 x.!%'{+ {  
#=h~Lr'UH  
1、语法 60*=Bs%b  
    hwclock  [functions]  [options] ~R3@GaL1  
rZ<@MV|d  
2、选项列表 4]B(2FR[8  
    下面的选项告诉hwclock指令该执行那个函数 iCx}v[;Ol  
    -r | --show 2\_}81 hM  
        读取硬件时钟并在标准输出上打印时间。显示的时间总是本地时间,即使您将硬件时钟保持在协调的世界时间。请参见-UTC选项。 E` BL3+kQ  
    --set gW RSS=8%  
        将硬件时钟设置为-date选项指定的时间 W EZ)7H  
    -s | --hctosys 2 g,UdG  
        从硬件时钟设置系统时间。还将内核的时区值设置为由TZ环境变量和/或/usr/share/zoneinfo指示的本地时区,正如tzset(3)所解释的那样。内核时区值的过时的tz_dsttime字段被设置为DST_NONE。(有关此字段过去的含义的详细信息,请参阅日期的settimeofday(2)。 ? 3Td>x  
这是在系统启动脚本中使用的一个很好的选项 (wkeo{lx  
    -w | --systohc bNi\+=v<Ys  
        将硬件时钟设置为当前的系统时间 ;V@o 2a  
    --systz f/aSqhAW  
        根据当前时区设置内核的时区并重置系统时间,系统时间仅在启动后的第一次调用时重置。本地时区被认为是TZ环境变量和/或/usr/share/zoneinfo所指示的,tzset(3)将解释它们。内核时区值的过时tz_dsttime字段设置为DST_NONE。(有关此字段过去的含义的详细信息,请参阅日期的settimeofday(2)。这是-hctosys的另一个选项,它不读取硬件时钟,并且可以在最近2.6内核的系统启动脚本中使用,因为您知道系统时间包含硬件时钟时间。如果硬件时钟已经在协调时,则不会重置。 }Til $TT%H  
    --adjust !A qSG-  
        从硬件时钟中增加或减去时间,以说明自上次时钟设置或调整以来的系统漂移。请参阅下面的讨论 NLRgL'+F  
    --getepoch r1f##  
        将内核的硬件时钟时纪元打印到标准输出。这是在AD中引用硬件时钟中的零年值的年份数。正在使用的约定是,硬件时钟中的年份计数器包含1952年以来的完整年份数,然后是内核的硬件计数器时代值必须是1952年。每当hwlock读取或设置硬件时钟时,就会使用这个纪元值。epoch只有在Alpha机器上有。 >yiK&LW^?  
    --setepoch 7vZznN8e  
        将内核的硬件时钟纪元值设置为--epoch选项指定的值。 h{#Hwp  
    -v | --version ;.+sz(:hm  
        在标准输出上显示hwclock的版本 P`0}( '"U  
    --date=date_string ~"xc 3(h  
        如果指定-set选项,则需要此选项。否则,将忽略该选项。这将指定设置硬件时钟的时间。选项是date指令的参数。例如:hwclock --set --date="9/22/96 16:45:05"。参数在本地时间,即使您将硬件时钟保持在协调的世界时间。请参见-UTC选项。 #!qa#.Yi  
    --epoch=year ,ir(~g+{g  
        指定硬件时钟时***始的年份,即在AD中,硬件时钟的年份计数器中的零值所指的进入AD的年份数。它与-setepoch选项一起使用,以设置内核的硬件时钟时代概念,或者指定用于直接ISA访问的时代。例如: 8tJB/P w`S  
    hwclock --setepoch --epoch=1952 4CCtLHb  
7b7@"Zw*  
    下面的选项配合函数使用  Em?bV(  
    -u | --utc | --localtime lcO;3CrJ!  
        指示硬件时钟分别保持在协调的世界时间或本地时间。您可以选择是否将时钟保持在协调世界协调时或本地时间,但时钟中没有显示任何信息。这是你所选择的,所以这个选项就是你如何将信息提供给时钟。如果您指定了这些选项中的一个错误的(或者没有指定,并且选择了错误的默认值),那么硬件时钟的设置和查询都将被搞砸。如果您没有指定-utc或-localtime,则默认值以最后一次使用hwlock设置时钟时指定的值为准(即,hwlock成功地使用-set、-system ohc或-调整器选项运行),如adjtime文件中所记录的。如果adjtime文件不存在,则默认值为本地时间。 nB>C3e  
    --noadjfile jOV,q%)^,:  
        禁用/etc/adjtime.hwlock提供的工具,不使用此选项读取或写入该文件。在使用此选项时,必须指定-UTC和--localtime RDGefxv  
    --adjfile=ilename +es|0;Z4yP  
        覆盖默认的/etc/adjtime文件 F|nJ3:v  
    -f | --rtc=filename O7vJ`K(!  
        重写默认/dev文件名,在许多平台上为/dev/rtc,但可能是/dev/rtc0、/dev/rtc1,等等。 hhRUC&Y%V  
    --directisa  $I}7EI  
        只有在ISA机器或Alpha上才有意义(粗略地说,它实现了足够多的ISA机器来实现hwlock的目的)。对于其他机器,它没有作用。这个选项告诉hwlock使用显式I/O指令来访问硬件时钟。如果没有这个选项,hwlock就会尝试。若要使用/dev/rtc设备(假定它由RTC设备驱动程序驱动),如果它无法打开设备(用于读取),它将使用显式I/O指令。 I54`}Npp  
    --badyear O(pa;&"  
        表示硬件时钟无法存储超出1994-1999年范围的年份。在一些BIOSes(几乎所有在4/26/94至5/31/95之间制造的BIOSes)中都存在一个问题,在这些BIOSes中,它们无法处理1999年之后的年份。如果试图将世纪价值设置为小于94(或95 in)的值。在某些情况下,实际设置的值为94(或95),因此,如果您有这些机器中的一台,则hwlock不能在1999年之后设置,也不能以正常的方式使用时钟的值作为真正的时间。为了弥补这一点(没有BIOS更新,这肯定更好),请始终使用-如果您有这些机器中的一台,就使用-坏年份。在adjtime文件中假设日期是过去一年内的日期。要想让它发挥作用,你最好每年至少运行一次hwclock --set或hwlock –systohc。虽然hwlock在读取硬件时钟时忽略了年份值,但当它设置时钟时,它会设置年份值,将其设置为1995、1996、1997或1998,无论哪个年份在闰年周期中所处的位置与真正的年份相同。这样,硬件时钟就会插入。如果你让硬件时钟在没有设置的情况下运行一年以上,这个方案可能会失败,最后你可能会损失一天。 hUR>NUK@8  
    --srm xYSNop3_  
        此选项等价于--epoch=1900,用于使用srm控制台指定alphad上最常见的历元。 4TX~]tEyky  
    --arc ?9W2wqN>o  
        此选项等价于--epoch=1980,用于使用ARC控制台指定ALPHS上最常见的历次(但Ruffans有1900年)。 O7,)#{  
    --jensen | --funky-toy m}`!FaB #  
        这两个选项指定了您拥有的Alpha机器的类型。如果您没有Alpha,则它们是无效的,如果有,它们通常是不必要的,因为hwlock应该能够自行确定运行在什么上,至少在安装/proc时是这样的。(如果您发现您需要这些选项之一使hwlock工作,请与维护人员联系,看看程序是否可以改进以自动检测您的系统。‘hwlock --debug’和‘cat/proc/cpuinfo’的输出可能会引起人们的兴趣。) 9\ f%+?p  
    --jensen代表运行在Jensen模式。 'Sk-L 5  
    --funky-toy意味着在您的机器上,必须使用UF位而不是硬件时钟中的UIP位来检测时间转换。选项名中的“toy”是指机器一年中的时间 3FetyW l'  
    --test !I)wI~XF)5  
        测试程序,不改变任何设置 T*pcS'?'  
    --debug >_esLsPWh]  
        显示大量关于hwlock内部正在做什么的信息,其中一些功能是复杂的,这个输出可以帮助您理解程序是如何工作的。 L JW0UF|  
$<DcbJW  
3、说明 Z2@_F7cXt  
    一般在操作系统中都会有两个时钟,硬件时钟是主板上的定时器时钟,系统时钟是系统的内核时钟,它们相互不影响。 ku*H*o~  
    1)硬件时钟 u /6b.hDO  
    这个时钟,运行独立于任何控制程序运行在CPU中,甚至当机器关闭。在ISA系统中,这个时钟被指定为ISA标准的一部分。控制程序可以读取或设置这个时钟为整秒,但控制程序也可以检测1秒时钟的边缘,因此该时钟实际上具有无限的精度。 0vYHx V  
NLnfCY-h  
    这种时钟通常被称为硬件时钟、实时时钟、RTC、BIOS时钟和CMOS时钟。硬件时钟以其大写的形式被hwlock所发明,因为其他所有的名称都不适合误导。例如,一些非ISA系统有几个实时时钟。一个非常低功耗的I2C或SPI时钟芯片可以与备用电池一起作为硬件时钟,以初始化一个功能更好的集成实时时钟,用于大多数其他用途。 u"hv _ml  
'jnR<>N  
    2)系统时钟 dAba'|Y  
    这是由Linux内核内的时钟保持的时间,由计时器中断驱动。(在ISA机器上,计时器中断是ISA标准的一部分)。它只有在linux在机器上运行时才有意义。系统时间是从1970年世界协调时(UTC)1月1日00:00开始的秒数(或者更简洁地说,是1969年以来的秒数)。不过,系统时间不是整数,它实际上是无限的。系统时间是重要的时间。Linux系统中硬件时钟的基本目的是在Linux不运行时保持时间。在Linux启动时,将系统时间从硬件时钟初始化,然后不再使用硬件时钟。请注意,在设计ISA的DOS中,硬件时钟是唯一的实时时钟。 Fm-D>PR  
Q95`GuI@  
    重要的是,当系统运行时,系统时间不存在任何不连续性,比如使用date命令来设置它。但是,在系统运行时,您可以对硬件时钟做任何您想做的事情,而下一次Linux启动时,它将使用硬件时钟的调整时间进行设置。 HuB\92u  
{)K H%  
    Linux内核维护系统的本地时区的概念。但是不要被误导-几乎没有人关心内核认为它在哪个时区。相反,关心时区的程序(可能因为他们想为您显示本地时间)几乎总是使用更传统的方法。确定时区:它们使用“tz”环境变量或“/usr/share/zoneinfo”目录,如tzset(3)的手册页所解释的那样。时区值是错误的,vFAT文件系统会在文件上报告并设置错误的时间戳。 4;;K1< 1  
Tup2;\y  
    当您使用”--hctosys”选项设置系统时间时,hwlock将内核时区设置为“tz”或“/usr/share/zoneinfo”所指示的值。 _-6IB>  
r P1FM1"M  
    时区值实际上由两部分组成:1)字段“tz_minutesWest”表示本地时间(未根据DST进行调整)滞后于UTC;2)字段“tz_dsttime”,指示当前在本地有效的夏令时(DST)约定的类型。第二个字段不在Linux下使用,始终为零。 Lnk(l2~U  
D:Rr|m0Tk  
    3)hwclock如何访问硬件时钟 -5X*y4#  
    hwlock使用多种不同的方法来获取和设置硬件时钟值,最常见的方法是对设备特殊文件“/dev/rtc”执行I/O操作,假定该文件是由rtc设备驱动程序驱动的。然而,这种方法并不总是可用的。首先,rtc驱动程序是linux中比较新的一种。此外,虽然有一些版本的rtc驱动程序可以在decalpha上工作,但似乎有大量的alpha无法工作(常见的症状是时钟挂起)。此外,最近的linux系统对rtc有更多的通用支持,甚至支持不止一个的系统,所以您可能需要通过指定/dev/rtc 0或/dev/rtc 1来覆盖默认值。 z\g6E/%%  
Ul{{g$  
    在旧系统中,访问硬件时钟的方法取决于系统硬件。 F<9S,  
p3`odmbN  
    在ISA系统中,hwlock通过对端口0x70和0x71进行I/O操作,可以直接访问构成时钟的“CMOS存储器”寄存器。它使用实际的I/O指令,因此只有在超级用户有效用户ID的情况下才能这样做。(对于jensen Alpha,hwlock无法执行这些I/O指令,因此它使用设备文件“/dev/port”,它提供了与I/O子系统几乎一样低的接口)。这是一种非常糟糕的访问时钟的方法,因为用户空间程序通常不应该进行直接I/O和禁用中断。但是在ISA和Alpha系统中,这是唯一的方式。 ca6kqh"  
$C.;GUEQ  
    在m68k系统上,hwlock可以通过控制台驱动程序访问时钟,通过设备文件“/dev/tty1”访问时钟。 Bk44 wz2 X  
hO?RsYJ.F  
    hwlock尝试使用文件“/dev/rtc”。如果内核没有编译“/dev/rtc”,或者它无法打开“/dev/rtc”,那么hwlock将返回到另一种方法(如果可用的话)。在ISA或Alpha计算机上,您可以强制hwclock使用CMOS寄存器的直接操作,而无需通过指定“--directisa”选项。 S!oG|%VuB#  
DMXm$PU4V  
    4)校准功能adjust %pd-{KR  
    硬件时钟通常不是很精确,但是它的许多不准确是完全可以预测的,它每天得到或失去相同的时间。这被称为系统漂移。hwlock的“调整”功能允许您进行系统校正以纠正系统漂移。它的工作方式如下:hwlock保存了一个文件“/etc/adjtime”,它保存了一些历史信息。 ;}W-9=81  
c|hT\1XR,  
    假设您从没有adjtime文件开始,发出hwlock-set命令将硬件时钟设置为真实的当前时间。hwlock创建adjtime文件,并在其中记录当前时间,作为最后一次校准时钟。5天后,时钟增加了10秒,因此您可以发出另一个“hwlock --set”命令来设置它。返回10秒。hwlock更新adjtime文件,显示当前时间作为最后一次校准时钟,并以系统漂移速率记录每天2秒。24小时过去,然后发出“hwlock --adjust”命令。hwlock查阅adjtime文件,看到时钟离开时每天增加2秒。一个人呆了整整一天。所以它从硬件时钟中减去2秒。然后,它记录当前时间作为最后一次调整时钟的时间。又过了24小时,你又发出了另一个“hwclock --adjust”指令。hwclock做了同样的事情:减去2秒,用当前时间更新adjtime文件,这是最后一次调整时钟。 aK+jpi4?  
     n 97pxD_74  
    每次您校准时钟(使用--set或—systohc)时,hwlock根据上次校准的时间、上次调整后的时间、在任何中间的调整中假定的漂移率以及时钟当前的关闭量,重新计算系统漂移率。在hwclock使用的任何时候,都会出现少量的误差,因此它不会进行小于1秒的调整。稍后,当您再次请求调整时,累积漂移将超过1秒钟,而hwlock则会进行调整。 $-#|g  
*f ;">(`o*  
    在系统启动时,在“hwlock --hctosys”之前进行hwlock的调整是很好的,并且在系统通过cron运行时也可以定期进行调整。 |,)=-21&;  
虽然adjtime文件的命名仅仅是为了控制时间调整的历史记录,但它实际上包含了hwlock在从一个调用到下一个调用时记忆信息时使用的其他信息。adjtime文件的格式是ASCII: "54t7  
    第1行的3个数字数字,用空格隔开,分别代表:a)系统漂移率,每天以秒为单位,浮点小数点;b)自1969年世界协调时以来最近调整或校准的秒数,小数整数;c)零(与时钟(8)兼容)为十进制整数。 @!np 0#  
    第2行一个数字,代表自1969年世界协调时以来最近一次校准产生的秒数。如果还没有校准,或者已知任何先前的校准都是没有意义的,那么值就是0(例如,因为在校准之后,硬件时钟已经被找到,不包含有效时间)。这是一个十进制整数。 o?]N2e&(  
    第3行是“utc”或“local”。指示硬件时钟是设置为协调世界时间还是设置为本地时间。 }]BH "  
MpCK/eiC  
    5)内核如何自动同步硬件时钟 OF_g0Zu  
    在某些系统中,您应该注意到硬件时钟保持同步的另一种方式。Linux内核有一种模式,它每11分钟将系统时间复制一次到硬件时钟。这是一个很好的模式,当您使用一些复杂的东西,比如NTP来保持系统时间同步时。(NTP是一种保持系统时间同步的方法,它可以与网络上的某个时间服务器或连接到您的系统的无线电时钟保持同步。参见RFC 1305)。 G[4$@{  
*wu:fb2[(  
    这个模式(我们称之为“11分钟模式”)是关闭的,直到有东西打开它。ntp守护进程xntpd就可以打开它。您可以通过运行任何东西来关闭它,包括“hwlock --hctosys”,它以老式的方式设置系统时间。 m]"13E0*x  
TDY2 M  
    如果你的系统以11分钟的模式运行,不要使用“hwlock --adjust”或“hwlock-hctosys”。在启动时使用“hwlock --hctosys”来获得一个合理的系统时间是可以接受的,直到您的系统能够运行为止。从外部源设置系统时间并启动11分钟模式 S#[w).7  
nMT"Rp  
SSH 1Ge5|  
4、实例 PgMU|O7To  
1)不使用任何参数,直接查看硬件时钟 =_)yV0  
[root@localhost ntop-4.0.1]# hwclock knb 9s`wR  
2018年08月23日 BK/_hNz  
星期四 15时01分28秒  -0.577410 seconds IizPu4|  
eY'< UO  
2)设置硬件时钟 W[4 V#&Z  
[root@localhost ntop-4.0.1]# hwclock --set --date="0904"    //设置硬件时钟,需要date参数来配合使用 B3 NDx+%m  
[root@localhost ntop-4.0.1]# hwclock ]ur_G`B  
2018年09月04日 o1^Rx5  
星期二 09时04分09秒  -0.479386 seconds 1Vi3/JM @  
/UP1*L  
3)将硬件时钟设置成本地时间格式 l'm\ *=3  
[root@localhost ntop-4.0.1]# hwclock --localtime Spm7kw  
2018年09月04日 d:&=|kKw  
星期二 01时05分46秒  -0.462990 seconds hwj:$mR  
7AouiL 2-W  
4)将硬件时钟设置成系统时间 ra]lC7<H  
[root@localhost ntop-4.0.1]# date      //查看当前系统时间 ,B8u?{O  
2018年 09月 04日 JC#M,j2  
星期二 12:25:15 CST v3I-i|L<)  
[root@localhost ntop-4.0.1]# hwclock –w  //将硬件时钟设置为系统时间 Y)*:'&~2e  
[root@localhost ntop-4.0.1]# hwclock     //查看硬件时钟 .tQeOZW'  
2018年09月04日 `-)Hot)  
星期二 12时25分48秒  -0.263687 seconds `~;`q  
级别: 码农
发帖
181
云币
189
只看该作者 6楼 发表于: 2018-10-18
ReView组件
du Y$0K}`{  
    以块为单位,显示当前目录下,所有目录、文件、子目录的磁盘使用情况。总结每个文件的磁盘使用情况,对目录进行递归处理 on.m '-s  
    此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 s8+{##"1 q  
nj=nSD  
1、语法 Q`!<2i;  
   du  [选项]  [目录] `N;O6 wZ  
'k9 Qd:a}  
2、选项列表 ) ^ 7- qy  
    --help 3B5 `Y  
        帮助 icN#8\E  
    --version iJSyi;l|  
        显示命令版本信息 WQBpU?O  
    -a | --all M5c *vs  
        显示所有的文件大小,包含目录、文件、子目录。默认情况下不显示文件的大小 A \-r%&.  
    --apparent-size !~`aEF3  
        打印表观大小,而不是磁盘使用量;虽然表观大小通常较小,但由于(“稀疏”)文件中的漏洞、内部碎片、间接块等原因,它可能更大。 xG:7AGZ$[  
    B | --block-size=SIZE plgiQr #  
        设置显示时的块大小 @<z#a9  
    -b | --bytes O4T_p=Xc  
        等价于“--apparent-size --block-size=1” !Q{~f;L  
    -c | --total {jo"@&2S  
        产生一个总和统计 %:Y'+!bX  
    -D | --dereference-args | -H [-2Tj)P C  
        只引用命令行中列出的符号链接 Y*YV/E.  
    --files0-from=F )w0K2&)A  
        总结文件F中指定的以NUL结尾的文件名的磁盘使用情况;如果F是“-”,则从标准输入中读取名称 W{nDmG`yp  
    -h | --human-readable k!{h]D0  
        以更加易读的方式来显示 _F3= H]P  
    --si FmhN*ZXr #  
        和“-h“一样,只是显示单位是1000,而不是1024 crU]P $a  
    -k ]Ab$IK Y  
        相当于—block-size=1k yTh60U  
    -m 0b+End#mp  
        相当于—block-size=1M 9On(b|mT  
    -l | --count-links Z'_EX7r  
        如果是硬链接,那么记录次数 vR'rYDtU@  
    -L | --dereference ^\FOMGai  
        取消引用所有符号链接 &u0on) E  
    -P | --no-dereference zN>tSdNkI-  
        不要跟随任何符号链接,这是默认的 z5 :53,`D'  
    -0 | --null W)2ZeH*  
        以0字节(而不是换行符)结束每一行输出 5Cl;h^R|m  
    -S | --separate-dirs Q9sxI}D )R  
        不包括子目录的大小 k[/`G5  
    -s | --summarize D]hwG0Chd  
        只显示每个参数的总数 e*pYlm  
    -x | --one-file-system p"o_0 {8  
        跳过不同文件系统上的目录 pLsJa?}R  
    -X | --exclude-from=FILE FWuk@t[<O  
        排除与文件中任何模式匹配的文件 jmva0K},SE  
    --exclude=PATTERN j/w*2+&v  
        排除匹配模式的文件 u;=a=>05IR  
    --max-depth=N |H4f&& Wd  
        只有目录层数少于N,才打印目录(或文件)的总数(或带有-all);“--max-depth=0 “等价于 ” --summarize “ );*#s~R  
    --time lvIdYf$?  
        显示最后修改的时间 @ \JoICz  
    --time=WORD 1n EW'F  
        将时间显示为指定的内容而不是修改时间,可以是:atime、access、use、ctime或status。 N.|uPq$R  
    --time-style=STYLE ^:,I #]  
        使用指定的格式显示时间,时间格式可以是full-iso,long-iso,iso,+FORMAT (-esUOB.  
Ap9 %5:]  
    该指令显示的值的单位是“--block-size”、“DF_BLOCK_SIZE”、“BLOCK_SIZE”,、BLOCKSIZE”这是四个值中第一个可用的值。 除了第一个值是用户设定的,其他3个都是环境变量。如果这四个值没有可用的,那么默认是1024(如果设置了POSIXLY_CORRECT,那么就是512)。 :DR}lOi`  
显示的单位可能是:KB,1000;K,1024;MB,100*100;M,1024*1024。 Bey|f/ <  
+BkmI\  
3、实例 Fq #;  
1)查看home目录总大小 !&@!:=X,  
[root@192 ~]# du /home -s cj9<!"6  
2320472    /home i2 m+s;  
2)使用“--time”选项,显示最后的修改时间 _J -3{a  
[root@192 ~]# du /home --time S_Ug=8r4  
4    2010-11-12 08:54    /home/test01/.gnome2 $+p4X# _  
4    2010-08-18 23:43    /home/test01/.mozilla/extensions 9e'9$-z  
V] 0~BV  
3)使用“-m”选项,以Mb为单位显示 Q*l_QnfG  
[root@192 ~]# du /home -m 9{XC9 \~  
1    /home/test01/.gnome2               //不够1M的,按照1M处理 H\@@iK=  
1    /home/test01/.mozilla/extensions D+69U[P_A  
Y+ea  
4)指定“--time“的显示 Bd-@@d.H<  
[root@localhost ~]# du /weijie/ --time=use              //最后使用时间 +6+!M_0wA  
12    2018-10-08 09:11    /weijie/www.baidu.com =U_O;NC  
4    2018-10-08 09:11    /weijie/testftp g=_@j`  
56    2018-10-13 08:40    /weijie/ o2r)K AA  
[root@localhost ~]# du /weijie/ --time=status            //状态改变时间 V j"B/@  
12    2018-10-03 10:09    /weijie/www.baidu.com 3v7*@(y  
4    2018-10-02 09:34    /weijie/testftp oJbMUEQQq  
56    2018-10-03 10:09    /weijie/
级别: 码农
发帖
181
云币
189
只看该作者 7楼 发表于: 2018-10-18
ReView组件
df 9ER!K  
    显示磁盘分区上的磁盘使用状况,可以显示出文件系统名称、大小、挂载点等信息。df显示包含每个文件名参数的文件系统上可用的磁盘空间。如果不给出文件名,则显示所有当前挂载的文件系统上可用的空间。默认情况下,磁盘空间显示在1K的块中,除非设置了环境变量POSIXLY_RIDER,在这种情况下使用512个字节块。 jMV9r-{*+  
    如果参数是包含已挂载文件系统的磁盘设备节点的绝对文件名,df将显示该文件系统上的可用空间,而不是包含设备节点的文件系统(始终是根文件系统)。这样做的各种系统都需要非常不可移植的文件系统结构知识。 94CHxv  
    此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 QRL+-)DMc  
t<DZW#  
1、语法 [d^ [Y:I'\  
df  [OPTION]...  [FILE]... )'3V4Z&  
B65"jy  
2、选项列表 Wn kIi,<  
    --help X<*-d6?gD`  
        帮助 &hco3HfW  
    --version S+* g  
        显示命令版本信息 li7"{+ct  
    -a | --all $FM: 8^  
        显示所有的文件系统,包含虚拟文件系统 5%K(tRc|  
    [文件] %%h0 H[5*  
        显示指定文件所在的文件系统信息 4;D>s8dgG  
    -B | --block-size=SIZE P'<D0   
        设置显示时的块大小 WLkfo6Nw  
    --direct 7LrWS83  
        显示文件的统计信息,而不是挂载点 XRx^4]c  
    --total p/WE[8U  
        产生一个总和 }*>xSb1  
    -h | --human-readable uJ9 hU`h  
        以更加易读的方式来显示 FNy-&{P2  
    -H | --si |Zm'!-_  
        以更加易读的方式显示,但是使用1000为一个单位,而不是1024 U0fr\kM  
    -i | --inodes O Zn40"`  
        显示inode信息 e4<[|B!O  
    -k ]rM HO  
        等价于”--block-size=1k” D wtvtglqV  
    -l | --local ]7:*A7/!.  
        显示本地文件系统 <F6LC_  
    --no-sync ,/Usyb,`  
        在获取使用信息之前,不唤醒同步 oF {u  
    --sync *DS>#x@3*i  
        在获取信息之前唤醒同步 gl>%ADOB@  
    -P | --portability -![>aqWmj1  
        使用POSIX输出格式 T'${*NVn  
    -t | --type=TYPE dk[MT'DV  
        显示指定类型的文件系统信息 8h'*[-]70u  
    -T | --print-type ,cCBAO ueO  
        显示文件系统类型 +5xk6RP   
    -x | --exclude-type=TYPE i{2ny$55h  
        不显示指定的文件系统 1|/-Ff"1@  
:/~TV   
    该指令显示的值的单位是“--block-size”、“DF_BLOCK_SIZE”、“BLOCK_SIZE”,、BLOCKSIZE”这是四个值中第一个可用的值。 除了第一个值是用户设定的,其他3个都是环境变量。如果这四个值没有可用的,那么默认是1024(如果设置了POSIXLY_CORRECT,那么就是512)。 vH)V\V  
显示的单位可能是:KB,1000;K,1024;MB,100*100;M,1024*1024。 rPXy(d1<`S  
*9)yN[w  
3、实例 .g8db d  
1)使用“-h”选项,以方便阅读的方式显示文件系统信息 :=e"D;5  
[root@localhost ~]# df –h D5$| vv1  
//文件系统名字                      大小    已用    可用   使用百分比   挂载点 &E0L 2gbI  
Filesystem                        Size    Used   Avail Use%        Mounted on ^udl&>  
/dev/mapper/VolGroup-lv_root   25G     13G    11G    56%         / -&QTy  
tmpfs                               811M    292K  810M   1%          /dev/shm \?~cJMN  
/dev/sda1                          485M    33M    427M   8%          /boot V8-*dE  
2)使用“-T”选项,显示出文件系统的类型 ~d"9?K^#  
[root@localhost ~]# df –T ?*dt JL  
//文件系统名字                      类型       大小         已用        可用   使用百分比   挂载点 6O| rI>D  
Filesystem                       Type      1K-blocks    Used       Available Use% Mounted on H-/w8_} KG  
/dev/mapper/VolGroup-lv_root ext4      25552764     13364332  10890412   56%   / n?}7vz;  
tmpfs                             tmpfs     829656       292        829364     1%    /dev/shm ,KFF[z  
/dev/sda1                         ext4     495844       32996      437248     8%    /boot 5KC Zg'h  
3)使用“-B”选项,指定显示时的块大小是2048kb。注意结果可以和上面对比一下 sM6o(=>  
[root@localhost ~]# df –B 2048 @r3,|tkrz  
//文件系统名字                      类型       大小         已用        可用   使用百分比   挂载点 nXAGwU8a  
Filesystem                       Type      2K-blocks    Used       Available Use% Mounted on ]:}x 4O#  
/dev/mapper/VolGroup-lv_root ext4      12776382    6682164    5445208     56%   / @YHt[>*S  
tmpfs                             tmpfs     414828      146         414682      1%    /dev/shm NEW0dF&)  
/dev/sda1                         ext4     247922       16498     218624       8%    /boot G0b##-.'^  
4)使用“-t”选项,指定显示“ext4”类型的文件系统信息 >gf,8flgj  
[root@localhost ~]# df –t ext4 -muP.h/  
//文件系统名字                      类型       大小         已用        可用   使用百分比   挂载点 8 Az|SJ<  
/dev/mapper/VolGroup-lv_root ext4      25552764     13364332  10890412   56%   / rbc7CPq_^  
/dev/sda1                               ext4     495844       32996      437248     8%    /boot
级别: 码农
发帖
181
云币
189
只看该作者 8楼 发表于: 2018-10-20
ReLinux基础命令
cal !112u#V  
        cal指令可以显示一个日历信息,如果没有指定选项和参数,那么就会显示当前的月份。 ', P_a,\  
        此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 V<Co!2S  
1、语法 oQK,#>rv  
        cal [-smjy13]  [[[day] month] year]   SS!b`  
2、选项列表 w}0rDWuR[  
        -V (g0U v.*  
                显示命令版本信息 <z8z\4Hz  
        -1 N*SUA4bnuM  
                显示一个月的日历信息,这是默认值 Zx^R-9  
        -3 OlX#1W]  
                显示上个月、这个月、下个月的日历信息 SXx4^X  
        -s Oar%LSkPRz  
                将星期日作为第一天来显示 <4P.B?-/t  
        -m 8\rAx P}=  
                将星期一作为一周的第一天,默认星期日是第一天 j+[oZfH  
        -j \?[m%$A  
                显示儒略历(显示的是从1月1日起,到当前的天数) &n]]OPo  
        -y [~ !9t9+~  
                显示当年的日历信息 m O"Rq5  
       一个参数指定要显示的年份(1-9999);请注意,必须指定完整的年份:“cal 98”将不显示1998年的日历。两个参数表示月份(1-12)和年份。三个参数表示日期(1-31)、月份和年份,如果在终端上显示日历,则会突出显示日期。如果没有参数,则显示当前月份的日历。一年从1月1日开始。一周的第一天由地区决定。 |y&vMx~t  
3、实例 IwR=@Ne8  
1)显示儒略历日历 UaBNoD  
        [root@localhost ~]# cal –j      //这里显示的不是“日”,而是一年的第几天 )3^#CD  
                 九月2018         ~!6 I.u  
        日  一  二  三  四  五  六 Y mm*p,`  
                        244 DTl&V|h$  
        245 246 247 248 249 250 251 ik5"9b-\<  
        252 253 254 255 256 257 258 et<@3wyd]  
        259 260 261 262 263 264 265 d?><+!a  
        266 267 268 269 270 271 272 ~?B\+6<V  
        273 ;}'Z2gZ B  
        2)将“星期日”作为第一天显示,显示最近3个月 !, {-q)'D  
        [root@localhost ~]# cal -3 -s KN~Repcz@  
              八月 2018                      九月2018                    十月 2018     @%!Gj{   
        日  一 二  三  四 五  六      日  一  二 三  四  五六    日 一 二  三  四 五 六 z8 K#G%,:  
                    1  2  3   4                            1                1   2   3  4  5  6 2[Xe:)d  
        5  6  7   8  9  10 11           2   3   4  5   6  7  8      7  8   9  10 11 12 13 USH>`3  
        12 13 14 15 16 17 18          9   10 11 12 13 14 15       14 15 16 17 18 19 20 orhze Oi\  
        19 20 21 22 23 24 25      16  17 18 19 20 21 22      21 22 23 24 25 26 27 =Ds&ArG  
        26 27 28 29 30 31          23 24 25 26 27 28 29    28 29 30 31         JC9OL.Ob  
                                            30                                       SDO~g~NTp  
        [root@localhost ~]# :|Bzbn=N2  
3)将星期一作为一个星期的第一天 ]0g1P-&,U  
        [root@localhost ~]# cal -m w[J.?v&^  
              九月2018     #-/_J?  
        一 二 三 四 五 六日 *oAnG:J+M  
                        1  2 CFeAKjG  
        3  4  5  6  7  8  9 Rk}=SB-  
        10 11 12 13 14 15 16 i~tps  
        17 18 19 20 21 22 23 e*o:ltP./  
        24 25 26 27 28 29 30
[ 此帖被一生有你llx在2018-10-20 23:00重新编辑 ]
级别: 码农
发帖
181
云币
189
只看该作者 9楼 发表于: 2018-10-20
ReLinux基础命令
bc !4(X9}a  
    bc是一种算数语言,其语法和c语言类似,可以交互执行。通过命令行选项可以获得一个标准的数学库。如果请求,在处理任何文件之前定义数学库。BC从处理所有文件的代码开始。命令行中列出的文件按所列顺序排列。在处理完所有文件后,BC从标准输入中读取。所有代码都在读取时执行。(如果文件包含停止处理器的命令,BC将永远不会从标准输入中读取。 &pCNOHi|  
    此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 J\BTrN7  
hw@ `Q@  
1、语法 a}Dx"zl;  
    bc  [ -hlwsqv ]  [long-options]  [  file ... ] 2k}" 52  
R*l#[D5A  
2、选项列表 @nuMl5C-`  
    -h | --help ^11y8[[  
        帮助信息 \Tc<27-  
    -v | --version p6MjVu  
        显示命令版本信息 CBqeO@M  
    -l | --mathlib &.zG?e.  
        定义标准数学库 !&$uq|-  
    -i | --interactive 0~(K@U>#  
        强制交互 O M]d}}=Y  
    -w | --warn T=EHue$  
        显示POSIX的警告信息 Rd?8LLz  
    -s | --standard g69^D  
        使用POSIX标准来处理 k//l~A9m  
    -q | --quiet &DX&*Xq2  
        不显示欢迎信息 \i*QKV<  
M x/G^yO9  
3、说明  T\(w}  
  1)数据 jvI!BZ  
  bc中最基本的元素是数字。数字是任意精度的数字。这种精度既包括整数部分,也包括分数部分。所有的数字在内部用十进制表示,所有的计算都用十进制来表示。(此版本截断除法和乘运算的结果。)数字有两个属性:长度和小数位。长度是数字中有效位的总数,小数位是小数点之后的的有效位数。例如,0.000001的长度是6,小数位是6;1935.000的长度是7,小数位是3。 @B@`V F  
  2)变量 r9nyEzk  
  数字存储在两种类型的变量中,简单变量和数组。变量名称以字母开头,后面跟着任意数量的字母、数字和下划线。所有字母都必须小写。(全字母-数字名是扩展名。在POSIX bc中,所有名称都是一个小写字母。)变量的类型在上下文中是明确的,因为所有数组变量名称后面都会有方括号([])。 78=a^gRB  
有四个特殊的变量:scale、ibase、obase和last。scale定义了一些操作在小数点之后是如何使用数字的,默认值是0。ibase和obase定义输入和输出数字的转换基。默认值都是基数10。last(扩展)是一个变量。它是最后打印的数字的值。所有这些变量可能都有分配给它们的值,以及表达式中使用的值。 _ (U|Kpi  
  3)注释 !CBvFl/v  
  bc中的注释以字符“/*”开头,以字符“*/”结尾。注释可以从任何地方开始,并显示为输入中的单个空格。(这会导致注释分隔其他输入项。例如,在变量名的中间找不到注释。)注释包括注释开始和结束之间的任何的新行(行尾)。 |6cz r  
为了支持bc脚本的使用,添加了行注释作为扩展。行注释从“#”字符开始,继续到行的结束。行结束字符不是注释的一部分,而是正常处理的。 kM0TQX)$m  
如果命令行上的任何文件无法打开,bc将报告该文件不可用并终止。 X]Aobtz  
eHQS\n  
4、关于表达式 h U3!  
  这些数字由表达式和语句操作。由于语言设计为交互式,所以语句和表达式会尽快执行。没有“主”程序,而是在遇到时执行代码。 | ODi[~y  
一个简单的表达式只是一个常量。BC使用变量ibase指定的当前输入基将常量转换为内部十进制数。(函数中有一个例外。)ibase的有效值为2到16,将超出此范围之后,分配给ibase的值可能是2或16。输入数字可能包含字符0-9和A-F。(注:它们必须是大写字母,小写字母是变量名称。)无论ibase的值是多少,单数数字总是有该数字的值。(即A=10。)对于多位数字,bc将所有大于或等于ibase的输入数字更改为IBASE-1的值。这使得FFF始终输入的最大3位数。 Jv,*rQH  
  完全表达式类似于许多其他高级语言。由于只有一种数字,所以没有混合类型的规则。相反,有关于表达式精度的规则。每个表达式都有一个精度。这是从原始数字的精度、所执行的操作以及在许多情况下变量scale的值导出的。变量scale的有效值为0到可由c语言整数表达的最大值。 '7oWN,-  
  在以下合法表达式的描述中,“expr”指的是一个完整的表达式,“var”指的是一个简单的或数组变量。除非特别提到,结果的精度是所涉及的表达式的最大精度。 u8w4e!rKo6  
      普通表达式 =t/ "&[r  
m-< "`:+  
    -expr    结果是对表达式的否定。 n A<#A  
    ++var    变量增加1,而新值是表达式的结果 M$jU-;hRH  
    --var    变量减1,而新值是表达式的结果 tdCD!rV`{  
    var++    表达式的结果是变量的值,然后变量增加1 H%peE9>$  
    var--    表达式的结果是变量的值,然后变量减1 U,tl)(!@Q-  
    expr * expr        表达式的结果是这两个表达式的乘积 n$*e(  
    expr + expo        表达式的结果是这两个表达式的和 ;R_H8vp  
    expr – expr        表达式的结果是这两个表达式的差 Z[, A>tJ  
    expr / expr        表达式的结果是这两个表达式的商。结果的精度是变量scale的值。 JO3x#1~;_  
    expr % expr        表达式的结果是“余数” %Kk MWl&:  
    expr ^ expr        表达式的结果是n次方,第二个表达式必须是整数。如果指数是负数,那么结果的精度是scale pV^(8!+  
  (expr)    强制对表达式进行计算 ]8m_+:`=  
    var = expr        变量就是表达式的值 kKFhbHUZa  
    var <op>= expr        相当于“var=var<op>expr”,例如”var -= expr” 等价于“var=var-expr” J7RO*.O&Iq  
|z+K]R8_  
    关系表达式 tO@n3"O  
    关系表达式是一种特殊的表达式,计算结果总是0或1。如果关系为真,则计算为1;如果关系为假,则结果是0.。这些表达式可能出现在任何合法表达式中。(POSIX bc要求关系表达式仅用于if、while和语句,并且只能在其中进行一次关系测试。) ,rU>)X  
    expr1 < expr2 1v?|n8  
    expr1 <= expr2 k"L?("~   
    expr1 > expr2 >jBa  
    expr1 >= expr2 ]\.3<^  
    expr1 == expr2 q83!PI  
    expr1 != expr2 ev LZ<|  
    expr1 && expr2 &^I2NpT  
    expr1 || expr2 A7hWAq  
    !expr gK6_vS4K)  
VGVb3@  
4#fgUlV  
     运算符的优先级如下,从上到下依次增加: {S Oy-  
    || n a3st*3V_  
        左结合 "%?$BoJR0  
    && ,WKWin  
        左结合 7_^JgA|Kk7  
    ! ]iHSUP  
        不结合 <`P7^ 'z!  
    关系运算符 3yXSv1  
        左结合 <W2 YG6^i  
    赋值运算符 r/e} DYL&  
        右结合 H2iC? cSR  
    +和- <AN=@`+  
        左结合 G,,7.%eib=  
    *、/、% d+iV19#i  
        左结合 Frd`u .I  
    ^ -SeHz.` N  
        右结合 >713H!uj  
    一元运算符 - 5W4Tp% Lda  
        不结合 6qYK"^+xu  
    ++和-- p8bAz  
        不结合 ` & {  
])vWvNx  
    选择此优先级是为了使符合POSIX的bc程序能够正确运行。这将导致关系运算符和逻辑运算符在与赋值表达式一起使用时有一些不寻常的行为。例如下面的表达式: 37U$9]  
a = 3<5 ^a #  
  大多数C程序员会假设这会将“3<5”(值1)的结果赋给变量“a”,这在bc中所做的是将值3赋给变量“a”,然后比较3到5。在使用关系运算符和逻辑运算符与赋值运算符时,最好使用括号。 @Z[XV"w|  
  在bc中还提供了一些特殊的表达式。这些表达式与用户定义的函数和标准函数有关。它们都以“名称(参数)”的形式出现。有几个标准函数: eZ`x[g%1  
  1)length(expr),计算表达式结果的有效位数。 +h?Rb3=S  
  2)read(),Read函数(一个扩展)将从标准输入中读取一个数字,而不管该函数发生在何处。注意,这可能会导致标准输入中的数据和程序混合出现问题。这个函数的最佳使用是在一个已经编写好的程序中,这个程序需要用户输入,但绝不允许从用户输入程序代码。读函数的值是从标准输入中读取的数字,使用转换基的变量ibase的当前值。 {Hr P;)  
  3)scale ( expr ),这个函数的值是expr表达式中小数点之后的位数。 E!]d?t3b  
  4)sqrt ( expression ),函数的结果是表达式的开方值。 p/4}SU  
+|c1G[Jh  
5、关于语句 <HMmsw  
     语句(在大多数代数语言中)提供表达式计算的顺序。在bc中,语句被“尽快”执行。执行发生在遇到的换行符的时候,并且有一个或多个完整的语句。由于这种立即执行,换行符在bc中非常重要。事实上,分号和换行符都用作语句分隔符。如果换行符放置不当,将导致语法错误。因为换行符是语句分隔符,所以可以使用反斜杠字符隐藏换行符。(<nl>)在bc中显示为空格而不是新行。语句列表是由分号和换行符分隔的一系列语句。 ki<4G  
     1)表达式 %YV3-W8S0  
     这条语句做两件事之一。如果表达式以“<变量><赋值>.”开头,则被认为是赋值语句。如果表达式不是赋值语句,则计算表达式并将表达式打印到输出。在打印数字之后,将打印换行符。例如,“a=1”是一个赋值语句和“(a=1)”是一个具有内嵌赋值的表达式。输出基obase的有效值是2~BC_BASE_MAX。对于基数2至16,通常采用书写数字的方法。对于大于16的基数,bc使用多字符数字方法将每个较高的基数打印成以10为基数的数据。由于数字具有任意精度,一些数字可能无法在一条输出线上打印。这些长数字将被分割,以“\”作为一行上的最后一个字符,每行打印的最大字符数为70个。由于bc的交互性,打印一个数字会导致最后将打印值赋值给特殊变量“last”的副作用。这允许用户恢复打印的最后一个值,而不必重新键入打印数字的表达式。将last变量赋值为“最后一个值”是合法的,并将最后一个打印的值用指定的值覆盖。新赋值将保持不变,直到打印下一个数字或将另一个值分配给“last”为止。 ^QbaMX  
     2)字符串 bG&vCH;}%  
  字符串被打印到输出。字符串以双引号开始,包含所有字符直到下一个双引号字符。所有字符都是字面意思,包括任何换行符。字符串后不打印换行符。 cjyb:gAO  
     3)打印列表 whb,2=gIE  
  print语句(扩展)提供了另一种输出方法。“list”是由逗号分隔的字符串和表达式的列表。每个字符串或表达式都按列表的顺序打印。不打印终止换行符。表达式的将被计算出值,最后将其值打印并分配给变量“last”。打印语句中的字符串将打印到输出中,并可能包含特殊字符。特殊字符以反斜杠字符“\”开始。bc识别的特殊字符是“a”(警报或钟)、“b”(反斜杠)、“f”(表单提要)、“n”(换行符)、“r”(回车)、“q”(双引号)、“t”(制表符)和“\”(反斜杠)。反斜杠后面的任何其他字符都将被忽略。 ^ygh[.e,  
     4)语句列表 H;kk:s'  
     这是复合语句。它允许将多个语句组合在一起执行。 MgG_D6tDM  
     5)if (表达式)  statement 1  [else statement 2] y>iote~  
     if语句根据表达式的值决定执行statement 1或statement 2。如果表达式为非零,则执行statement 1。如果存在statement 2,且表达式的值为0的时候执行statement 2。 P d)<Iw^<  
  6)while ( expression )  statement (rB?@:zN  
     while语句将在表达式为非零时执行语句。它在每次执行语句之前计算表达式。循环的终止是由零表达式值或break语句的执行引起的。 m[E#$JZtG  
     7)for ( [expression1] ; [expression2] ; [expression3] )  statement h6uv7n~4  
     for语句控制语句的重复执行。表达式1是在循环之前计算的。表达式2是在每次语句执行之前计算的。如果表达式2为非零,则计算语句;如果为零,则终止循环。每次执行语句后,计算表达式3。在重新计算表达式2之前,如果未找到表达式1或表达式3,则不会在计算值的点上对其进行任何计算。 8B"my\  
     8)break n.tJ-l5[  
     break语句用来强制退出,通常用在for语句或者while语句中。 5l,Q=V^@l  
     9)continue 8iKupaaOX  
     continue语句用来结束本次循环。 UukHz}(E  
     10)halt }\wTV*n`X  
     halt语句会导致bc程序退出。 ` 8OA:4).  
     11)return =[x @BzH  
     函数返回0. zbyJ5~  
     12)return expr &.`/ln  
     返回表达式的值。 &XH{,fv$  
     13)伪语句,这些语句不会执行,他们在编译的时候才会起作用。下面列出伪语句 W y%'<f  
           a)limits,打印由于bc版本而产生的限制 u[yUUYe  
           b)quit,遇到quit指令的时候就会退出bc,无论它出现在什么地方。例如“if (0 == 1) quit”就会导致退出bc vddh 2G  
           c)warranty,打印较长的授权通知 ?~fuMy B  
6、函数 Tt*n.HA  
      1)函数 b{i7FRR>o4  
      bc中的函数总是计算一个值并将其返回给调用者。函数定义是“动态的”,在输入中遇到定义之前,函数是未定义的。然后使用该定义,直到遇到相同名称的另一个定义函数。然后,新定义取代旧的定义。函数定义方式如下: F2k)hG*|{  
           define name ( parameters ) { newline @o6^"  
            auto_list  statement_list } e Zb8x  
函数的调用很简单“name(parameters)”。 RiNKUk{-  
     2)参数 ({l!'>?  
     参数是数字或数组。在函数定义中,可以有0个或者多个参数,通过逗号分隔开。所有参数都是通过值参数调用的。数组是通过符号“name[]在参数定义中指定的。在函数调用中,实参是数字参数的完整表达式。相同的符号。数组的定义和传值使用相同的符号。命名数组通过值传递给函数。由于函数定义是动态的,因此在调用函数时会检查参数号和类型。参数数量或类型的不匹配都会导致运行时错误。对未定义函数的调用也会出现运行时错误。 +ziQ]r2g  
     3)auto_list .f~x*@  
“auto_list”是供“本地”使用的变量的可选列表。auto_list的语法(如果存在)是“autoname,…;”。(分号是可选的。)每个名称都是自动变量的名称。数组可以使用与参数相同的表示法来指定。这些变量的值在函数开始时被推入堆栈中。然后将变量初始化为零,并在函数的整个执行过程中使用。在函数退出时,这些变量被弹出,以便恢复这些变量的原始值(在函数调用时)。这些参数实际上是自动变量,它们被初始化为函数调用中提供的值。自动变量不同于传统局部变量,因为如果函数A调用函数B,B可以使用相同的名称访问函数A的自动变量,除非函数B调用它们为自动变量。由于自动变量和参数被推到堆栈上,bc支持递归函数。 8 ?+t+m[  
     4)函数体 \/ 8 V|E  
      函数体是一系列bc语句的列表。同样,语句用分号或换行符分隔。返回语句导致函数的终止和值的返回。返回语句有两个版本。第一个形式“return”将值0返回给调用表达式。第二种形式“return (表达式)”计算表达式的值并将该值返回给调用表达式。在每个函数的末尾有一个隐含的“return (0)”。这允许一个函数终止并返回0,而不需要显式返回语句。 oN/T>&d  
      函数还会改变变量ibase的用法。函数体中的所有常量都将在函数调用时使用ibase的值进行转换。在函数执行过程中,ibase的更改将被忽略,但标准函数读取除外,后者将始终使用ibase的当前值来转换数字。 Vg^@6zU  
     当前版本的bc,在函数中添加了几个扩展。首先,定义的格式稍微放松了一些。标准要求开始大括号与定义关键字在同一行,所有其他部分必须在下面的行上。这个版本的bc将允许之前的任何数目的换行符。在函数的开头支撑之后,例如,下面的定义是合法的: 5Zdxn>  
    define  d  (n)  { return  (2*n); } l|onH;g\  
    define  d  (n) &:ib>EB03=  
            { return  (2*n); } .Lc<1s  
     5)void类型 *=O~TY<](  
  函数可以定义为void。空函数不返回值,因此可能不会在任何需要值的地方使用。空函数在输入行调用时不会产生任何输出。关键字void放在关键字定义和函数名称之间。例如,请考虑下面的例子 |K%nVcR=  
    define  py (y)  { print "--->", y, "<---", "0; } Z*Qra4GBl]  
    define  void  px (x)  { print "--->", x, "<---", "0; } QX$i ]y%S  
    py(1) |Skxa\MI  
    --->1<--- 1*!`G5c,}  
    0                   //由于py不是void,因此有默认返回值,因此这里打印了它的返回值, 5$ra4+k0  
    px(1) 8}0O @ wq  
    --->1<---           //px是void类型,最后不会打印返回值 Y=#g_(4*  
此外,还为数组添加了按变量调用。为了申明一个数组变量,函数中的数组参数是这样定义的“*name[]” 。 2Hp#~cE+.  
l'2a?1/q  
7、数学库 [|\JIr=of5  
     1)如果使用“-l”选项调用bc,则预加载一个数学库,并将默认精度设置为20。数学库中有一下的函数: XdDy0e4{%<  
  s(x),计算x的正弦值,x是弧度值。 O)tZ`X;  
  c(x),计算x的余弦值,x是弧度值。 TCd1JF0  
  a(x),计算x的反正切值,返回弧度。 ~X/1%  
  l(x),计算x的自然对数。 Y M_\ ZK:  
  e(x),e的x次方。 uW8LG\Z>D5  
  j(n,x),从n到x的阶数。 x@I(G "  
     2)例子 LI&+5`  
  下面的句子可以将“pi”的值赋值给shell变量pi i 7fQj, q  
pi = $(echo  "scale=10; 4*a(1)"  |  bc  -l) d2x|PpmH  
  下面的句子就是数学库中e的次方定义方式 tCk;tu!d  
        scale = 20 x"Hi!h)v  
        /* Uses the fact that e^x = (e^(x/2))^2 <Cvlz^K[  
            When x is small enough, we use the series: )k.[Ve  
            e^x = 1 + x + x^2/2! + x^3/3! + ... WJ9=hr  
        */ ]Xur/C2A  
        define e(x) { 1r?<1vh:z  
            auto  a, d, e, f, i, m, v, z XM$HHk}L;  
E0<9NF Qr7  
            /* Check the sign of x. */ O/9dPod  
            if (x<0) { _91g=pM   
                m = 1 1Z +3=$P  
                x = -x 2z7+@!w/  
            } lEBt<  
DHO6&8S  
            /* Precondition x. */ 5'/Ney9N  
            z = scale; ?q(7avS9  
            scale = 4 + z + .44*x; Y. ]FVq  
            while (x > 1) { ec: ?Q0  
                f += 1; +s:!\(BM  
                x /= 2; Lt+ Cm$3  
            } GNzk Vy:u  
L\Uf+d:&}G  
            /* Initialize the variables. */ C:/O]slH  
            v = 1+x nk,X6o9%  
            a = x njveZav  
            d = 1 hHsCr@i  
            for (i=2; 1; i++) { J#7\R':}zl  
                e = (a *= x) / (d *= i) c(. 2D  
                if (e == 0) { \0iF <0oy  
                    if (f>0) while (f--)  v = v*v; NDW6UFd>1  
                    scale = z nc#}-}`5  
                    if (m) return (1/v); _-$"F>  
                return (v/1); EELS-qA  
                } W3s>+yU  
                v += e 4k5X'&Q  
            } bT<if@h-  
        } (+d7cln  
Hn5:*;N  
     下面的语句实现一个计算支票簿余额的简单程序 96UL](l(`  
        scale=2 QS:dr."k  
        print "\nCheck book program!\n" j:# wt70  
        print "  Remember, deposits are negative transactions.\n" #Hl0>"k ,  
        print "  Exit by a 0 transaction.\n\n" K,{P b?  
        print "Initial balance? "; bal = read() QFMR~6 ?  
        bal /= 1 F.2<G.9  
        print "\n" a>x3UVf_  
        while (1) { q(sEN!^L`  
            "current balance = "; bal InnjZ>$  
            "transaction? "; trans = read() h+)XLs  
            if (trans == 0) break; 'NyIy:  
            bal -= trans h.PVRAwk  
            bal /= 1 !"~x.LX \  
        } ]v&)mK]n=o  
        quit e P]L  
tHAr9  
     下面的语句采用递归的方式计算x的阶乘 7e[3Pu_/X  
        define f (x) { w U".^ +  
            if (x <= 1) return (1); IE7%u 92  
            return (f(x-1) * x); H9}z0VI  
        } Fk(nf9M%  
coa+@g,w7#  
8、readline和libedit选项 /J''`Tf  
     可以编译GNU bc(通过一个配置选项)来使用GNU readline输入编辑器库或bsd libedit库。这允许用户在将行发送到bc之前进行编辑。它还允许保存以前键入的行的历史记录。当选择此选项时,bc还有一个特殊变量。变量“history”是保留的历史记录行数。对于readline,值-1表示不限制历史记录的行数,0将禁用历史记录功能,默认值为100。
级别: 码农
发帖
181
云币
189
只看该作者 10楼 发表于: 2018-10-20
ReLinux基础命令
9、差别 IEj=pI   
  这个版本的bc是从POSIX P 1003.2/D11草案中实现的,包含了与草案和传统实现相比的一些区别和扩展,它不是以传统的方式使bc(1)实现的,这个版本是一个解析和运行程序字节代码转换的单一进程。这里有一个“无文档”选项(-c),它导致程序将字节码输出到标准输出,而不是运行它。它主要用于调试解析器和准备数学库。差异的一个主要来源是扩展,下面列出一些差异和扩展: ?ISv|QpC  
     1)LANG环境变量,此版本在处理lang环境变量和从lc_开始的所有环境变量时不符合POSIX标准。 |+h8g@;Z  
     2)名字,传统和POSIX bc都有用于函数、变量和数组的单字母名称。它们被扩展为以字母开头的多字符名称,可以包含字母、数字和下划线字符。 m&I5~kD  
     3)字符串,字符串不允许包含NUL字符。POSIX表示所有字符都必须包含在字符串中。 d{FD.eI 0  
     4)last,POSIX bc中没有last变量。 L9bIdiB7  
     5)比较,POSIX bc只允许在if语句、while语句和for语句的第二个表达式中进行比较。 dk@j!-q^  
     6)if语句,POSIX bc中if语句没有else。 ] RLEyDB  
     7)for语句,POIX bc中要求for语句中的3个表达式都必须具备。 =JDa[_lpN  
     8)&&,||,!,POSIX bc中没有逻辑运算。 Op 0Qpn  
     9)read,POSIX bc没有read功能。 PvkHlb^x%  
     10)打印语句,POSIX bc没有打印语句。 R1j)0b6cQ%  
     11)continue语句,POSIX bc没有continue语句。 ptCAtEO72  
     12)return,POSIX bc要求return的表达式加括号。 rvwfQ'14  
     13)数组参数,POSIX bc不(目前)完全支持数组参数。POSIX语法允许函数定义中的数组,但没有提供将数组指定为实际参数的方法。(这很可能是语法上的疏忽。)传统的bc实现只通过值数组参数进行调用。 (cpaMn@)g  
     14)函数,POSIX bc要求函数开头的大括号和define关键字在同一行,语句在下一行。 <uL0 M`u3  
     15)=+, =-, =*, =/, =%, =^。POSIX bc不要求定义这些“旧样式”赋值操作符。此版本可能允许这些“旧样式”赋值。使用限制语句查看安装的版本是否支持它们。如果它确实支持“旧样式”赋值运算符,则“a=-1”语句将使a减少1,而不是将a设置为值-1。 `7o(CcF6H  
     16)数字中的空格,bc的其他实现允许数字空格。例如,“x=1 3”将值13赋值给变量x。相同的语句将导致bc版本中的语法错误。 V+MhS3VD  
     17)错误和执行,在程序中发现语法和其他错误时,此实现与其他实现的代码不同。如果在函数定义中发现语法错误,则错误恢复机制将尝试查找语句的开头并继续解析函数。一旦在函数中发现语法错误,该函数将不可调用并变为未定义。交互执行代码中的语法错误将使当前执行块失效。执行块由在完整语句序列之后出现的行尾终止。例如 8pE0ANbq  
     a = 1 ufc_m4PN  
     b = 2 m L,El2  
这个语句有两个执行块,而下面的语句 6JZ$; x{j  
     {a = 1 .=% ,DT"  
     b = 2} EVE<LF?  
只有一个执行块。任何运行时错误都会终止当前的执行块,而警告则不会。 X!=*<GF)  
     18)中断,在交互会话期间,SIGINT信号(通常由终端上的“ctrl+c“生成)将导致当前执行块的执行中断。它将显示一个“运行时”错误,指示哪个功能被中断。在所有运行时结构被清除后,将打印一条消息通知用户bc准备好接收更多的输入。所有先前定义的函数都保留定义,所有非自动变量的值是中断点的值。在清理过程中,所有自动变量和函数参数都会被移除。对于一个非交互式会话,SIGINT信号将终止bc的整个运行。 otSF8[  
{WYmO1  
10、限制 K26x,m]p  
     下面列出当前bc程序的一些限制,有一些限制可能已经被用户修改过。 U.0bbr  
  1)BC_BASE_MAX,最大输出基设置为999。最大输入基为16。 eK_Yt~dj  
  2)BC_DIM_MAX,这是当前分布的65535以内的任意限制,每个机器可能都不一样。 @ZFU< e$!  
  3)BC_SCALE_MAX,小数点前后的位数都由INT_MAX限制。 n?z^"vv$i  
  4)BC_STRING_MAX,字符串中的字符字数由INT_MAX限制。 F?!  
  5)exponent,指数运算中的指数值由LONG_MAX限制。 Kj`sq":Je0  
  6)variable names,当前对每个简单变量、数组和函数名字的限制32767。 /c9%|<O%  
QnPgp(d <  
11、环境变量 %\n&iRwDF  
     下面的环境变量由bc程序来控制 .jps6{  
  1)POSIXLY_CORRECT,和“-s”选项一样。 jpW(w($XL  
  2)BC_ENV_ARGS,这是另一种获取bc参数的机制。格式与命令行参数相同。这些参数是先处理的,因此环境参数中列出的任何文件在任何命令行参数文件之前都会被处理。这允许用户设置“标准”选项和文件,以便在每次调用环境变量中的文件通常包含用户希望在每次运行bc时定义的函数定义。 Df L>fk  
  3)BC_LINE_LENGTH,这应该是一个整数,指定数字输出行中的字符数。这包括用于长数字的反斜杠和换行符。,如果值是0,将禁用多行功能。此变量的任何其他值如果小于3,则将行长设置为70。 z,#3YC{'  
Q`4]\)Dp  
12、实例 h1uD>heGl  
     1)简单计算 !&=%#i  
        [root@192 ~]# bc g0~3;y  
        bc 1.06.95      //欢迎语句 OJH:k~]0!  
        Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. QW_QizR>|  
        This is free software with ABSOLUTELY NO WARRANTY. oL 69w1  
        For details type `warranty'. +iL,8eW  
        12+23    //输入加法表达式,回车 68v59)0U  
        35       //得到结果 [va7+=[1=  
        100/25   //输入除法表达式,回车 WP-'gC6K=  
        4         //得到结果 )xMP  
        quit     //退出指令 :/ yR  
        [root@192 ~]# ->S6S_H/+&  
     2)执行for循环语句 yt-F2Z&  
        for(i=0; i<3; i++){print "hello\n"}   //这是一个打印语句 w'b|*_Q4Q  
        hello m#oZu {  
        hello ZdJer6:Z}  
        hello ecI[lB  
     3)从文件读取内容并且执行bc vs )1Rm  
pdrF/U+  
        [root@localhost /]# cat test.c                 //查看文件的内容,里面全是bc语句 Y=6b oT  
        /*define 3 functions add,sub,mul*/ G)E#wh_S^  
        define add(x,y){ Y_) aoRjB  
            return x+y; 1wqsGad+;  
        } #^bkM)pc  
        define sub(x,y){ Qs*6wF  
            return x-y; W,^(FR.  
        } AjQ^ {P  
        define mul(x,y){ }0({c~z\  
            return x*y; h4GR:`  
        } srN>pO8u~  
        /*for statement*/ wghz[qe  
        for(i=0;i<3;i++){ E&/D%}Wl  
            print "bc test ",i,"\n"; ;NrkX?Y  
        } QPH2TXw  
        /*print statement*/ I!)gXtJA"  
        print "10+5=",add(10,5),"\n" cs?@Ri=g  
        print "10-5=",sub(10,5),"\n" $o"PQ!z  
        print "10&5=",mul(10,5),"\n" G~{xTpL  
        /*quit bc program*/ 9 GdrJ~h  
        quit bT@7&  
        [root@localhost /]# bc test.c                   //bc程序从文件获取到代码,然后执行 s q_N!  
        bc 1.06.95 dQ8}mH!  
        Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. nFl=D=50-  
        This is free software with ABSOLUTELY NO WARRANTY. 1:%m >4U  
        For details type `warranty'. ,~Y5vnaOQ  
        bc test 0 W 9Z.X!h  
        bc test 1 bp6 La`+  
        bc test 2 |n;gGR\  
        10+5=15 [H#I:d-+\  
        10-5=5 : 5@cj j  
        10&5=50
级别: 码农
发帖
181
云币
189
只看该作者 11楼 发表于: 2018-10-20
ReLinux基础命令
chkconfig uLhamE)  
      启动或者关闭系统服务,设置服务的运行级别,该指令并不会立刻启动或者停止服务,而是在开机的时候发生效果。 pb E`Eq  
}(M<sEK~  
      chkconfig提供了一个简单的命令行工具,用于维护/etc/rc[0-6].d目录层次结构,使系统管理员不必直接操作这些目录中的许多符号链接。这个     chkconfig的实现受到IRIX操作系统中的chkconfig命令的启发。但是,这个版本没有在/etc/rc[0-6].d层次结构之外维护配置信息,而是直接管理/etc/rc[0-6].d中的符号链接。这将留下所有有关在单个位置启动服务init的配置信息。 %7 J  
@[ :sP  
      chkconfig有五个不同的功能:添加用于管理的新服务、从管理中删除服务、列出服务的当前启动信息、更改服务的启动信息以及检查特定服务的启动状态。 &g) `  
G0]q(.sOy  
      当chkconfig后面只有一个服务名称的时候,它会检查服务是否配置为在当前运行级中启动。如果是,则chkconfig返回true;否则返回false。“--level”选项可以用来使chkconfig查询指定运行级下的服务状态,而不是当前的运行级。当使用“--list”参数运行chkconfig或根本没有参数时,将显示所有服务及其当前配置的清单。 #0xvxg%{  
4eaC18?  
      如果在服务名称之后指定了on、off、reset或resetpriorities之一,则chkconfig将更改指定服务的启动信息。on和off标志将分别导致服务在被更改的运行级别中启动或停止。reset标志将服务的所有运行级别的on/off状态重置为init脚本文件中指定的样子,重置的时候会有一个询问。而resetpriorities标志则会直接将服务的on/off状态重置为init脚本中指定样子。默认情况下,on和off选项只影响运行级别2、3、4和5,而reset和resetpriorities影响所有运行级别。请注意,对于每个服务,每个运行级都有一个开始脚本或一个停止脚本。当切换runlevel时,init将不会重新启动已经启动的服务,也不会重新停止未运行的服务。 YLobBtXc9  
g s'bv#4yd  
      chkconfig还可以通过xinetd.d配置文件管理xinetd脚本,xinetd服务只支持on、off、--list。 w0*6GCP  
um3 M4>K  
      chkconfig支持一个“--type”参数,当几个服务共享名字的情况下,这个选项就有效。支持该选项的服务可以是sysv和xinetd。 z=ppNP0  
f+I*aBQ  
      此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 te:"1:e  
5>A3;P  
1、语法 2s 6Vy  
      chkconfig [--list]  [--type type][name] h Qu9ux  
      chkconfig --add  name lc5NC;JR  
      chkconfig --del  name WUa-hm2:  
      chkconfig - -override  name bjQfZT(  
      chkconfig [--level levels]  [--type type]  name   n:<avl@o<  
      chkconfig [--level levels]  [--type type]  name uN`ACc)ESi  
8sbS7*#  
2、选项列表 4 &|9304<H  
      --help dOiy[4s  
            帮助信息 Y$Uvt_  
      --version ;H\,w /E9  
            显示命令版本信息 ~Kb(`Px@  
      --list 服务名 mZM5aTQ3  
            此选项列出chkconfig所知道的所有服务,以及它们是在每个运行级别中停止还是启动。如果指定了名称,则仅显示有关服务名称的信息。 Ak}l6{ ..  
      --add 服务名 9MXauTKI  
            增加服务。当添加新服务时,chkconfig确保服务在每个运行级别上都有一个启动项或一个杀死项。如果任何运行级缺少这样的条目,chkconfig将按照init脚本中的默认值创建适当的条目。请注意,“INIT INFO”部分中的默认条目优先于initscript中的默认运行级别;如果存在任何必需的启动或要求停止条目,则将调整脚本的开始和停止优先级,以考虑这些依赖项。 wk5a &  
      --del 服务名 e|4jT7L}  
            将服务从chkconfig管理中删除,与它相关的/etc/rc[0-6].d中的任何符号链接都被删除。 R jAeN#,?  
      --level [levels] [name] [on|off|reset] np>*O}r*  
            设置指定服务在指定运行级别的开机状态,级别可以是0~6。例如: chkconfig –level 35 vsftpd on 5Cz:$-+  
      --override name ;G\rhk  
            如果/etc/chkconfig.d/name文件现在存在,并且与基础配置脚本不同,则更改服务名称的配置文件,而不使用基础配置。 BO[A1'>  
R/^ rh  
3、关于运行级别 dG)A-qbV  
      每个应该由chkconfig管理的服务都需要在其init.d脚本中添加两行或者多行注释。第一行告诉chkconfig默认应该在什么运行级别启动服务,以及启动和停止优先级级别。如果服务在默认情况下不应该在任何运行级别中启动,则应该使用“-”来代替runlevel列表。第二行包含服务的描述,并且可以通过反斜杠继续扩展多行。例如random.init中有三行注释 iySmNI  
            # chkconfig: 2345 20 80 h2BD?y  
            # description: Saves and restores system entropy pool for \ 75v*&-  
            # higher quality random number generation. D l"y|  
这意味着随机脚本应该在级别2、3、4和5中启动,它的开始优先级应该是20,它的停止优先级应该是80。 P4N{lQ.>  
gXfAz,  
      chkconfig还支持从左到右的“-”分隔符,并将优先于可用的“chkconfig:”行应用它们。例如下面的: iu1iO;q  
            ### BEGIN INIT INFO a\MU5%}\  
            # Provides: foo QR8F'7S  
            # Required-Start: bar };KmMpBn  
            # Defalt-Start: 2 3 4 5 8vP d~te  
            # Default-Stop: 0 1 6 p,1RRbyc  
            # Description: Foo init script tx.YW9xD  
            ### END INIT INFO )1]C%)zn  
在这种情况下,“foo”的启动优先级将被更改,它将高于“bar”启动优先级。在添加依赖项时必须小心,因为它们可能导致许多脚本的启动和停止优先级发生巨大变化。 c9ZoO;  
/3c1{%B\  
4、实例 +V7p?iEY  
1)查看所有服务 ~O|0.)71]  
      [root@localhost ~]# chkconfig --list VtmUK$k}I  
      NetworkManager    0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭 M1g|m|H7  
          … CRx:3u!:  
      基于 xinetd 的服务: -0Q!:5EC  
          chargen-dgram:    关闭 U$J]^-AS  
          chargen-stream:   关闭 q6DhypB  
          … jjbw.n+1  
2)查看指定服务 N0Y!  
      [root@localhost ~]# chkconfig --list vsftpd LTCjw_<7  
      vsftpd         0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:启用  6:关闭 :kUH>O  
3)设置ftp服务在3和5这两个级别启动 <0vvlOL5  
      [root@localhost ~]# chkconfig --level 35 vsftpd on    //级别3和5启动 ht-6_]+ME  
      [root@localhost ~]# chkconfig --list vsftpd             //查看是否设置成功  OkQSqL  
      vsftpd         0:关闭  1:关闭  2:关闭  3:启用  4:关闭  5:启用  6:关闭 4 I~,B[|  
级别: 码农
发帖
181
云币
189
只看该作者 12楼 发表于: 2018-10-21
ReLinux基础命令
date CjO/q)vV  
      以给定的格式显示当前的日期,或者设置系统时间。 'Oq}BVR&  
      此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 PCFm@S@Q  
Ru sa &#[  
1、语法 VR_1cwKBM  
      date  [选项]。 eR3!P8t  
      date  [+格式]。 zL> nDnL 4  
      date  -u  [参数] ^beW*O!  
      参数格式[MMDDhhmm[[CC]YY][.ss]],分别对应(月、日、时、分、年前两位、年后两位、秒) jsL'O;K/  
9t)t-t#P;  
2、选项和格式列表 {^ N = hI  
      --help d2 d^XMe!  
            帮助信息 @5kN L~2  
      --version LxG :?=O.  
      显示命令版本信息 *Fq Nzly  
            -f | --file=DATEFILE ;)o%2#I  
            和“--date”一样,文件的每一行都设置一次 J|K~a?&vN  
      -d | --date=STRING jCy2bE  
            显示字符串代表的时间,注意不是当前时间 Z &PwNr/  
      -r | --reference=FILE ]5} =r  
            显示文件的最后修改时间 2Ejs{KUj  
      -R | --frc-2822 =JEnK_@?K\  
            以rfc-2822的方式输出日期和时间, ^%C.S :  
      --rfc-3339=TIMESPEC E]+W^ VG  
            以rfc-3339的方式输出日期和时间,精度可以是date、seconds、ns,日期和时间用一个空格隔开 zf^!Zqn[8z  
      -s |  --set=STRING  EI+.Q  
            用指定字符串设置时间 f)*}L?  
      -u |  --utc, --universal gBrIqM i5  
            输出或者设置通用时间 r{Xh]U&>k  
o6svSS  
      格式 ww[STg  
      %a S6K aw  
            当前locale 的星期名缩写(例如: 日,代表星期日) a-O9[?G/x  
      %A 8;+t.{  
            当前locale 的星期名全称 (如:星期日 cT."  
      %b %M ~X:A;4  
            当前locale 的月名缩写 (如:一,代表一月) 4R^'+hy|?  
      %B o%CBSm]  
            当前locale 的月名全称 (如:一月) iT I W;Cv  
      %c qxE~Moht  
            当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25) Kf(% aDYq  
      %C .w&{2,a3  
            世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20) LkJ3 :3O  
      %d hcM 0?=  
            按月计的日期(例如:01) pcL02W|J  
      %D &oNy~l o  
            按月计的日期;等于%m/%d/%y TN` pai0  
      %e 7CNEP2}:R  
            按月计的日期,添加空格,等于%_d O4( Z%YBe  
      %F <udp:s3#T  
            完整日期格式,等价于 %Y-%m-%d ()XL}~I{!A  
      %g u9'4q<>&  
            ISO周数年的最后两位数 AnIENJ  
      %G X%39cXM C  
            ISO周数年份 Z+Z`J; ,  
      %H l6a,:*_  
            小时(00-23) 2Xgn[oI{  
      %I }LQ&AIRN  
            小时(00-12) R1A!ob  
      %j IOt!A  
            按年计的日期(001-366) d0IHl!X  
      %k ~9 K4]5K-  
            小时,00~23 Ks9"U^bPs  
      %l 3 u-j`7  
            小时,1~12 AVHn7olG  
      %m oZP:}= F  
            月份(01-12) R6CxNPRJ  
      %M 1+Ja4`o,iS  
            分(00-59) PK!=3fK4\F  
      %n .(nq"&u-*  
            新的一行 SIzW3y[  
      %N jb fMTb4  
            十亿分之一秒 =DvnfT<  
      %p qD Nqd  
            当前locale 下的”上午”或者”下午”,未知时输出为空 RG#  
      %P I6h{S}2  
            和“%p”一样,但是输出小写字母 X~%Wg*Hm  
      %r 2'_Oi-&  
            当前locale 下的 12 小时时钟时间 (如:11:11:04 下午) x)nBy)<  
      %R  /dBQ*f5  
            24 小时时间的时和分,等价于 %H:%M nBZqhtr  
      %s |OuZaCJG  
            从1970-01-01 00:00:00开始的秒数 (m~MyT#S  
      %S o+q4Vg9&  
            秒(00-60) ;]+kC  
      %t x1?p+  
            tab字符 >"N\ZC^  
      %T 'I*F(4x  
            时间,等于%H:%M:%S 3-~_F*%ST  
      %u jHTaG%oh  
            一个星期的一天,1是星期一。(1~7) 9e1gjC\c  
      %U FHqa|4Ie  
            一年中的第几周,以周日为每星期第一天(00-53) UYGl  
      %V Q->'e-\E<"  
            ISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53) =}u;>[3  
      %w U/wY;7{)#  
            一个星期的一天,0是周日. (0~6) )"=BbMfhu  
      %x x(}@se  
            当前locale 下的日期描述 (如:12/31/99) VqbMFr<k  
      %X U~!97,|ic  
            当前locale 下的时间描述 (如:23:13:48) c{s<W}3Ds  
      %y Y -7x**I  
            年份最后两位数位 (00-99) l4v)tV~  
      %Y y/4 4((O  
            年 Uw<Lt"ls.  
      %z OCY7Bls4  
            +hhmm格式的数字时区,例如“-0400 qm@c[b  
      %:z N y7VIh|  
            +hh:mm格式的数字时区,例如“-04:00 1h"0B  
      %::z %U-KQI0  
            +hh:mm:ss格式的数字时区,例如“-04:00:00 “ c|hKo[r)  
      %:::z VDCrFZ!]  
            数字时区,使用“:”达到必要的精度,例如“-04, +05:30“ qA Jgz7=c  
      %Z %ktU 51o  
            时区的缩写,例如EDT <),FI <~  
]%"Z[R   
3、说明 OKxPf]~4E  
      默认情况下,使用数字0来填补数字时间中的空缺。当然也可以指定其他方式:“%-“,不填补;”%_“,使用空格填补;”%0“,使用0;”%^“使用大写字母;”%#“,使用相反的字母 I`p44}D3  
      “--date=String“是一种自由格式,是一种方便读取的日期字符串,例如“Sun,2月29日16:21:42-0800”或“2004-02-29 16:21:42:42”,甚至是“下星期四”。日期字符串可能包含指示日历日期、时间、时区、周中日、相对时间、相对日期和数字的项。空字符串表示一天的开始。日期字符串可以包含指示日历日期、时间、时区、星期数、相对时间、相对日期和数字的项。日期字符串格式比这里容易记录的要复杂,但是在info文档中有完整的描述。 \[ +ZKj:  
N;;!ObVHnP  
4、实例 -QI1>7sl  
1)不适用任何参数,直接显示日期和时间 71w  
      [root@localhost ~]# date @;JT }R H-  
      2018年 09月 05日 星期三 11:48:58 CST     //注意,这里显示的是CST时间 `+k&]z$m  
2)显示UTC时间 gj$gqO`B  
      [root@localhost ~]# date -u //_v"dqP{)  
      2018年 09月 05日 星期三 03:51:53 UTC 8.'%wOU @A  
3)设置CST日期时间 52{jq18&  
      [root@localhost ~]# date -s 2018-9-4   //这里可以看到支持的日期格式。如果没有设置时间,那么默认就是0点0分 xa5I{<<U  
      2018年 09月 04日 星期二 00:00:00 CST rM_8piD  
      [root@localhost ~]# date -s 20180905 /J wQ5  
      2018年 09月 05日 星期三 00:00:00 CST &HT P eB  
      [root@localhost ~]# date -s 2018/9/6 Cq}LKiu  
      2018年 09月 06日 星期四 00:00:00 CST !NZFo S~  
      [root@localhost ~]# date -s 11:56     //修改时间 E.}T.St  
      2018年 09月 05日 星期三 11:56:00 CST +f;z{)%B  
      [root@localhost ~]# date -s 11:54:40 ;, 'eO i  
      2018年 09月 05日 星期三 11:54:40 CST M)i2)]F S  
4)显示当前是一年中的第几周,第几天 ){5  $8  
      [root@localhost ~]# date +第%U周第%j天 \;$j "i&  
      第35周第248天 ;_1D-Mf  
5)显示12小时制度下的时间 .y#@~H($  
      [root@localhost ~]# date +%r s)8g4Yc*  
      下午 12时02分48秒 GyRU/0'BME  
      [root@localhost ~]# date +%p%H:%M:%S     //这里可以使用多个格式组合,达到上面的效果 yLipuMNV  
      下午12:03:24 o%RyE]pw,  
6)显示当前日期  G\ru%  
      [root@localhost ~]# date +%x k 32 Jz.\B  
      2018年09月05日 C[|jJ9VE,  
      [root@localhost ~]# date +%F ?.,..p  
      2018-09-05 BQ2DQ7q  
      [root@localhost ~]# date +%Y-%m-%d    //多格式拼接 u4rGe!  
      2018-09-05
级别: 码农
发帖
181
云币
189
只看该作者 13楼 发表于: 2018-10-22
ReLinux基础命令
last q)te/J@  
        显示以前登录过的用户信息,last指令会搜索/var/log/wtmp文件(或者是经过-f选项指定的文件),然后列出文件中所有的用户信息。如果执行last指令时提示“last /var/log/wtmp∶ NO such file or directory”,则需要使用指令touch /var/log/wtmp手工创建此文件 h K;9XJAf  
        lastb指令用来显示登录失败的用户信息,其用法和last一样,对应的日志文件是/var/log/btmp -Pt.  
        此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 ]8@s+ N  
J>Pc@,y  
1、语法 Cm@rX A/  
        last  [-R]  [-num]  [ -n num ]  [-adFiowx]  [ -f file ]  [ -t YYYYMMDDHHMMSS ]  [name...]  [tty...] 6$/Z.8  
        lastb  [-R]  [-num]  [ -n num ] [ -f file ]  [-adFiowx]  [name...]  [tty...] >x?x3#SX  
?#s9@R1  
2、选项列表 rebnV&-  
        -f 文件名 <<'%2q5  
                指定登录的日志文件(默认是/var/log/wtmp) eJbZA&:  
        -num >AK9F. _z  
                指定last显示多少行信息 f/xQy}4+~E  
        -n num t 57MKDn  
                和“-num”一样 FEY_(70  
        -R =hRo#]{(K  
                不显示主机名字 ncGt-l<9  
        -a H4B|c42  
                在最后一列显示主机名 6v"WI@b4  
        -d W&~\@j]!D  
                将非本地登录的用户ip转换成主机名 Es<& 6  
        -F 0<i8 ;2KD  
                显示所有的登录和注销时间和日期 cMs8D  
        -o =kzuU1s  
                读取旧的日志文件 lA{JpH_Y8s  
        -w P2Jo^WS  
                显示用户名和域名 `T\_Wje(  
        -x o$QC:%[#  
                显示系统关机信息和运行级别的变化信息 :6gRoMb]  
        -t [YYYYMMDDHHMMSS] 2Tp @;[!3  
                显示指定时间的登录信息 5GK> ~2c(  
        [name] ^'%Q>FVb  
                显示指定用户的登录信息 jn +*G<NJ  
        [tty] ^HhV ?Iqg  
                显示指定终端的登录信息,last tty1 = last 1 qnb#~=x^  
~4+ICCbH  
3、实例 r2%Qk  
1)显示最近登录的5条信息 VTUSM{TC  
        [root@localhost ~]# last -5    //也可以使用last –n 5 ++sbSl)Q  
        //登录用户  登录终端   主机名            登录时间             注销时间  持续时间 S awf]/  
        root     pts/0        :0.0             Tue Sep  4 13:10   still logged in   xX?9e3(  
        root     pts/0        :0.0             Wed Aug 22 15:07 - 13:09 (12+22:02)   G %A!yV  
        root     pts/1        :0.0             Wed Aug 22 07:46 - 13:10 (13+05:23)   BZQ"[-V{  
        root     pts/0        :0.0             Wed Aug 22 07:43 - 11:02  (03:18)     U?%T~!  
        root     tty1         :0               Wed Aug 22 07:20   still logged in    wtmp begins Wed Aug  8 18:02:52 2018 ){LU>MW{&  
2)显示用户weijie和root在8月9号的登录信息 f AY(ro9Q(  
        [root@localhost ~]# last -t 20180909090000 weijie  //可以看到用户weijie在9.9之前没有登录 A vww @$  
        wtmp begins Wed Aug  8 18:02:52 2018 b*(, W  
MQe|\SMd  
        [root@localhost ~]# last -t 20180909090000 root  //用户root在9.9之前登录过几次 w5 #;Lm  
        root     pts/0        :0.0             Wed Aug  8 20:19 - down   (00:05)     u4tv= +jh  
        root     tty1         :0               Wed Aug  8 20:19 - down   (00:06)     D GL=\  
        root     pts/1        :0.0             Wed Aug  8 18:16 - 20:16  (01:59)     URbHVPCPb  
        root     pts/0        :0.0             Wed Aug  8 18:08 - 20:15  (02:06)     XU<XK9EA  
        root     tty1         :0               Wed Aug  8 18:04 - 20:16  (02:11)    wtmp begins Wed Aug  8 18:02:52 2018 >Hu3Guik]  
3)显示终端tty1的登录信息 d]USk&8  
        [root@localhost ~]# last 1    //等同于last tty1 mBxMDnh  
        root     tty1         :0               Wed Aug 22 07:20   still logged in   q[Tl#*P?y  
        root     tty1         :0               Tue Aug 21 17:34 - down   (02:24)     O7%8F Y  
        …   6?ky~CV  
        wtmp begins Wed Aug  8 18:02:52 2018 Q\W)}  
L&KL]n  
级别: 码农
发帖
181
云币
189
只看该作者 14楼 发表于: 2018-10-23
ReLinux基础命令
service ?%%vQ ?  
      service可以控制系统服务(打开、关闭、重启)。service在尽可能可预测的环境中运行SystemV init脚本,删除大多数环境变量并将当前工作目录设置为根目录。脚本参数位于“/etc/init.d/script”中的System V init脚本。受支持的命令值取决于调用的脚本,服务将命令和选项传递给init脚本。 C?MKb D=K  
      所有脚本至少应该支持start命令和stop命令。作为特例,如果命令是“--full-restart”,脚本将运行两次,首先使用stop命令,然后使用start命令。“service  --status-all”按照字母顺序运行所有的init脚本,执行status命令。用户可以在/etc/init.d/目录下找到服务的脚本文件。 1NG[   
      只有环境变量LANG和TERM传递给init脚本文件。 FjI1'Ah\  
      此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 UV</Nx)3  
`Ba?4_>k  
1、语法 s0CDp"uJY  
      service SCRIPT COMMAND [OPTIONS] hQz1zG`z7  
      service --status-all Lo Y*,Aa&  
      service --help | -h | --version
pV!WZ Ufg  
_PQk<QZ  
2、选项列表 Z 0v&AD=  
      -h | --help Zlt,Us`  
            帮助信息 JV8*;n%}-  
      -V | --version |N3#of(  
            显示命令版本信息 Q~n%c7  
      --status-all )nq(XM7  
            显示所有的服务状态 yn20*ix{  
      --full-restart jLY$P<u?%P  
            重启服务,运行两次,先停止后开启 yMmUOIxk\  
      [service_name  cmd] k'sPA_|  
            控制服务。例如service vsftpd start。cmd可以是start、stop、restart c+O:n:L  
5^CWF|  
3、实例 R((KAl]dL  
      1)查看所有服务当前的运行状态 W59xe&l  
      [root@localhost ~]# service --status-all \.GA" _y  
      abrt-ccpp hook is installed 8wEJyAu2  
      abrtd (pid  2031) 正在运行... w4&\-S#  
      abrt-dump-oops 已停 \C2HeA\#SW  
      acpid (pid  1507) 正在运行..     CHjm7  
      … +1\t 0P24  
      2)查看指定服务(vsftpd)的运行状态 [By|3 bI  
      [root@localhost ~]# service vsftpd status ^X"x,8}&V  
      vsftpd (pid 30818) 正在运行... jR+k x:+  
      3)停止指定服务(vsftpd) O*n@!ye  
      [root@localhost ~]# service vsftpd stop E}#&2n8Y  
      关闭 vsftpd:                                              [确定] LY#V)f  
      [root@localhost ~]# service vsftpd status }^b  
      vsftpd 已停
发表主题 回复主题
« 返回列表
«12345678910»
共13页
上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: 43 - 16 = ?
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)