zoukankan      html  css  js  c++  java
  • linux常用命令(一)

     最近在虚拟机上,玩了一下Linux感觉好多命令都不会,偶尔会的几个命令也都忘记了,真是杯具,书到用时方恨少。赶紧在此记录一下,以备用时查询,请各路好友莫怪莫怪。

    shutdown命令

     shutdown [-cfFhknr(参数名称)] [-t 秒数] 时间 [警告信息]

      具体各参数功能:

      -c 取消前一个shutdown命令。值得注意的是,当执行一个如“shutdown -h 11:10”的命令时,只要按“Ctrl+C”键就可以中断关机的命令。若是执行如“shutdown -h 11:10 & ” 的 命 令 将 shutdown转到后台时,则需要使用shutdown -c将前一个shutdown命令取消。

      -f 重新启动时不执行fsck(注:fsck是Linux下的一个检查和修复文件系统的程序)。

      -F 重新启动时执行fsck。

      -h 将系统关机,在某种程度上功能与halt命令相当。

      -k 只是送出信息给所有用户,但并不会真正关机。

      -n 不调用init程序关机,而是由shutdown自己进行(一般关机程序是由shutdown调用init来实现关机动作),使用此参数将加快关机速度,但是不建议用户使用此种关机方式。

      -r shutdown之后重新启动系统。

      -f<秒数> 送出警告信息和关机信号之间要延迟多少秒。警告信息将提醒用户保存当前进行的工作。

      [时间] 设置多久时间后执行shutdown命令。时间参数有hh:mm或+m两种模式。hh:mm格式表示在几点几分执行shutdown命令。例如 “shutdown 10:45”表示将在10:45执行shutdown。+m表示m分钟后执行shutdown。比较特别的用法是以now表示立即执行shutdown。 值得注意的是这部分参数不能省略。

      [警告信息] 要传送给所有登入用户的信息。

    重启命令示例:
    1、reboot
    2、shutdown -r now 立刻重启(root用户使用)
    3、shutdown -r 10 过10分钟自动重启(root用户使用)
    4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
    如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启

    关机命令:
    1、halt   立刻关机
    2、poweroff  立刻关机
    3、shutdown -h now 立刻关机(root用户使用)
    4、shutdown -h 10 10分钟后自动关机
    如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启

    Linux中通过SSH查看主机信息的命令

    查看操作系统版本

    head -n 1 /etc/issue

    查看Linux内核版本

    uname -a

    查看CPU利用率

    vmstat 8

    查看内存信息

    cat /proc/meminfo

    查看内存大小

    grep MemTotal /proc/meminfo

    查看内存占用率

    free -m

    查看系统负载

    cat /proc/loadavg

    查看在线时间

    cat /proc/uptime

    查看主机名

    hostname


      名称:cat
      使用权限:所有使用者
      使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName
      说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
      参数:
      -n --number 1 开始对所有输出的行数编号
      -b --number-nonblank -n 相似,只不过对于空白行不编号
      -s --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
      -v --show-nonprinting
      范例:
      cat -n textfile1 > textfile2 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
      cat -b textfile1 textfile2 >> textfile3 textfile1 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3

      名称:cd
      使用权限:所有使用者
      使用方式:cd [dirName]
      说明:变换工作目录至 dirName 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home directory (也就是刚 login 时所在的目录).另外,"~" 也表示为 home directory 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录。
      范例:跳到 /usr/bin/:
      cd /usr/bin

      跳到自己的 home directory:
      cd ~

      跳到目前目录的上上两层:
      cd ../..

      指令名称:chmod
      使用权限:所有使用者
      使用方式:chmod [-cfvR] [--help] [--version] mode file...
      说明:Linux/Unix 的档案存取权限分为三级:档案拥有者,群组,其他。利用 chmod 可以藉以控制档案如何被他人所存取。
      把计:
      mode:权限设定字串,格式如下:[ugoa...][[+-=][rwxX]...][,...],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group),o 表示其他以外的人,a 表示这三者皆是。
      + 表示增加权限,- 表示取消权限,= 表示唯一设定权限。
      r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
      -c:若该档案权限确实已经更改,才显示其更改动作
      -f:若该档案权限无法被更改也不要显示错误讯息
      -v:显示权限变更的详细资料
      -R:对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
      --help:显示辅助说明
      --version:显示版本
      范例 :将档案 file1.txt 设为所有人皆可读取:
      chmod ugo+r file1.txt

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

      将档案 file1.txt file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入:
      chmod ug+w,o-w file1.txt file2.txt

      将 ex1.py 设定为只有该档案拥有者可以执行:
      chmod u+x ex1.py

      将目前目录下的所有档案与子目录皆设为任何人可读取:
      chmod -R a+r *

      此外chmod也可以用数字来表示权限如 chmod 777 file
      语法为:chmod abc file
      其中a,b,c各为一个数字,分别表示User,Group,Other的权限。

      r=4,w=2,x=1
      若要rwx属性则4+2+1=7
      若要rw-属性则4+2=6
      若要r-x属性则4+1=7

      范例:
      chmod a=rwx file
      和
      chmod 777 file
      效果相同
      chmod ug=rwx,o=x file
      和
      chmod 771 file
      效果相同
      若用chmod 4755 filename可使此程式具有root的权限

      指令名称:chown
      使用权限:root
      使用方式:chmod [-cfhvR] [--help] [--version] user[:group] file...

      说明:Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。
      把计:
      user:新的档案拥有者的使用者 IDgroup:新的档案拥有者的使用者群体(group)-c:若该档案拥有者确实已经更改,才显示其更改动作-f:若该档案拥有者无法被更改也不要显示错误讯息-h:只对于连结(link)进行变更,而非该 link 真正指向的档案-v:显示拥有者变更的详细资料-R:对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)--help:显示辅助说明--version:显示版本
      范例:
      将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie:
      chown jessie:users file1.txt

      将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport:
      chmod -R lamport:users *

      名称:cp
      使用权限:所有使用者
      使用方式:
      cp [options] source dest
      cp [options] source... directory
      说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。
      把计:
      -a 尽可能将档案状态,权限等资料都照原状予以复制。
      -r source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
      -f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
      范例:
      将档案 aaa 复制(已存在),并命名为 bbb:
      cp aaa bbb

      将所有的C语言程式拷贝至 Finished 子目录中:
      cp *.c Finished

      名称:cut
      使用权限:所有使用者
      用法:cut -cnum1-num2 filename
      说明:显示每行从开头算起 num1 num2 的文字。
      范例:
      shell>> cat example
      test2
      this is test1
      shell>> cut -c0-6 example ## print 开头算起前 6 个字元
      test2
      this i

      用法:find
      使用说明:
      将档案系统内符合 expression 的档案列出来。你可以指要档案的名称,类别,时间,大小,权限等不同资讯的组合,只有完全相符的才会被列出来。
      find 根据下列规则判断 path expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression
      expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。
      -mount, -xdev:只检查和指定目录在同一个档案系统下的档案,避免列出其它档案系统中的档案
      -amin n:在过去 n 分钟内被读取过
      -anewer file:比档案 file 更晚被读取过的档案
      -atime n:在过去 n 天过读取过的档案
      -cmin n:在过去 n 分钟内被修改过
      -cnewer file :比档案 file 更新的档案
      -ctime n:在过去 n 天过修改过的档案
      -empty:空的档案-gid n or -group name:gid n 或是 group 名称是 name
      -ipath p, -path p:路径名称符合 p 的档案,ipath 会忽略大小写
      -name name, -iname name:档案名称符合 name 的档案。iname 会忽略大小写
      -size n:档案大小 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。-type c:档案类型是 c 的档案。
      d: 目录
      c: 字型装置档案
      b: 区块装置档案
      p: 具名贮列
      f: 一般档案
      l: 符号连结
      s: socket
      -pid n:process id n 的档案

      你可以使用 ( ) 将运算式分隔,并使用下列运算。
      exp1 -and exp2
      ! expr
      -not expr
      exp1 -or exp2
      exp1, exp2
      范例:
      将目前目录及其子目录下所有延伸档名是 c 的档案列出来。
      # find . -name "*.c"
      将目前目录其其下子目录中所有一般档案列出
      # find . -ftype f
      将目前目录及其子目录下所有最近 20 分钟内更新过的档案列出
      # find . -ctime -20

      名称:less
      使用权限:所有使用者
      使用方式:
      less [Option] filename
      说明:
      less 的作用与 more 十分相似,都可以用来浏览文字档案的内容,不同的是 less 允许使用者往回卷动
      以浏览已经看过的部份,同时因为 less 并未在一开始就读入整个档案,因此在遇上大型档案的开启时,会比一般的文书编辑器( vi)来的快速。
      范例:


      指令名称:ln
      使用权限:所有使用者
      使用方式:ln [options] source dist,其中 option 的格式为:
      [-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
      [--help] [--version] [--]

      说明:Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种:硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统。

      ln source dist 是产生一个连结(dist) source,至于使用硬连结或软链结则由参数决定。

      不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

      -f:链结时先将与 dist 同档名的档案删除-d:允许系统管理者硬链结自己的目录-i:在删除与 dist 同档名的档案时先进行询问-n:在进行软连结时, dist 视为一般的档案-s:进行软链结(symbolic link)-v:在连结之前显示其档名-b:将在链结时会被覆写或删除的档案进行备份-S SUFFIX:将备份的档案都加上 SUFFIX 的字尾-V METHOD:指定备份的方式--help:显示辅助说明--version:显示版本
      范例:
      将档案 yy 产生一个 symbolic link:zz
      ln -s yy zz
      将档案 yy 产生一个 hard link:zz
      ln yy xx

      名称:locate
      使用权限:所有使用者
      使用方式: locate [-q] [-d ] [--database=]
      locate [-r ] [--regexp=]
      locate [-qv] [-o ] [--output=]
      locate [-e ] [-f ] <[-l ] [-c]
      <[-U ] [-u]>
      locate [-Vh] [--version] [--help]
      说明:
      locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的资料库,之后当寻找时就只需查询这个资料库,而不必实际深入档案系统之中了。在一般的 distribution 之中,资料库的建立都被放在 contab 中自动执行。
      一般使用者在使用时只要用
      # locate your_file_name
      的型式就可以了。 参数:
      -u
      -U
      建立资料库,-u 会由根目录开始,-U 则可以指定开始的位置。
      -e

      将排除在寻找的范围之外。
      -l
      如果 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料。
      -f
      将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案放在资料库中。
      -q
      安静模式,不会显示任何错误讯息。
      -n
      至多显示 个输出。
      -r
      使用正规运算式 做寻找的条件。
      -o
      指定资料库存的名称。
      -d
      指定资料库的路径
      -h
      显示辅助讯息
      -v
      显示更多的讯息
      -V
      显示程式的版本讯息 范例:

      locate chdrv:寻找所有叫 chdrv 的档案
      locate -n 100 a.out:寻找所有叫 a.out 的档案,但最多只显示 100
      locate -u:建立资料库
    名称:ls
      使用权限:所有使用者
      使用方式:ls [-alrtAFR] [name...]
      说明:显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)
      -a 显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)
      -l 除档案名称外,亦将档案型态,权限,拥有者,档案大小等资讯详细列出
      -r 将档案以相反次序显示(原定依英文字母次序)
      -t 将档案依建立时间之先后次序列出
      -A -a ,但不列出 "." (目前目录) ".." (父目录)
      -F 在列出的档案名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
      -R 若目录下有档案,则以下之档案亦皆依序列出
      范例:
      列出目前工作目录下所有名称是 s 开头的档案,愈新的排愈后面:
      ls -ltr s*
      将 /bin 目录以下所有目录及档案详细资料列出:
      ls -lR /bin
      列出目前工作目录下所有档案及目录;目录于名称后加 "/", 可执行档于名称后加 "*":
      ls -AF

      名称:more
      使用权限:所有使用者
      使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
      说明:类似 cat ,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示, b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h
      参数:-num 一次显示的行数
      -d 提示使用者,在画面下方显示 [Press space to continue, q to quit.] ,如果使用者按错键,则会显示 [Press h for instructions.] 而不是
      -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
      -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
      -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
      -c -p 相似,不同的是先显示内容再清除其他旧资料
      -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
      -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
      +/ 在每个档案显示前搜寻该字串(pattern,然后从该字串之后开始显示
      +num 从第 num 行开始显示
      fileNames 欲显示内容的档案,可为复数个数
      范例:
      more -s testfile 逐页显示 testfile 之档案内容,如有连续两行以上空白行则以一行空白行显示。
      more +20 testfile 从第 20 行开始显示 testfile 之档案内容。

      名称:mv
      使用权限:所有使用者
      使用方式:
      mv [options] source dest
      mv [options] source... directory
      说明:将一个档案移至另一档案,或将数个档案移至另一目录。
      参数:-i 若目的地已有同名档案,则先询问是否覆盖旧档。
      范例:
      将档案 aaa 更名为 bbb:
      mv aaa bbb
      将所有的C语言程式移至 Finished 子目录中:
      mv -i *.c

      名称:rm
      使用权限:所有使用者
      使用方式:rm [options] name...
      说明:删除档案及目录。
      把计:
      -i 删除前逐一询问确认。
      -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
      -r 将目录及以下之档案亦逐一删除。
      范例:
      删除所有C语言程式档;删除前逐一询问确认:
      rm -i *.c
      将 Finished 子目录及子目录中所有档案删除:
      rm -r Finished

      名称:rmdir
      使用权限:于目前目录有适当权限的所有使用者
      使用方式: rmdir [-p] dirName
      说明: 删除空的目录。
      参数: -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
      范例:
      将工作目录下,名为 AAA 的子目录删除:
      rmdir AAA

      在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录, BBB 亦予删除。
      rmdir -p BBB/Test

      名称:split
      使用权限:所有使用者
      使用方式:split [OPTION] [INPUT [PREFIX]]说明:
      将一个档案分割成数个。而从 INPUT 分割输出成固定大小的档案,其档名依序为 PREFIXaa, PREFIXab...PREFIX 预设值为 `x。若没有 INPUT 档或为 `-,则从标准输入读进资料。
      匡兜:
      -b, --bytes=SIZE
      SIZE 值为每一输出档案的大小,单位为 byte
      -C, --line-bytes=SIZE
      每一输出档中,单行的最大 byte 数。
      -l, --lines=NUMBER
      NUMBER 值为每一输出档的列数大小。
      -NUMBER
      与 -l NUMBER 相同。
      --verbose
      于每个输出档被开启前,列印出侦错资讯到标准错误输出。
      --help
      显示辅助资讯然后离开。
      --version
      列出版本资讯然后离开。
      SIZE 可加入单位: b 代表 512, k 代表 1K, m 代表 1 Meg
      范例:
      PostgresSQL 大型资料库备份与回存:
      因 Postgres 允许表格大过你系统档案的最大容量,所以要将表格 dump 到单一的档案可能会有问题,使用 split进行档案分割。
      % pg_dump dbname | split -b 1m - filename.dump.

      重新载入
      % createdb dbname
      % cat filename.dump.* | pgsql dbname

      名称:touch
      使用权限:所有使用者
      使用方式:
      touch [-acfm]
      [-r reference-file] [--file=reference-file]
      [-t MMDDhhmm[[CC]YY][.ss]]
      [-d time] [--date=time] [--time={atime,access,use,mtime,modify}]
      [--no-create] [--help] [--version]
      file1 [file2 ...]

      说明:
      touch 指令改变档案的时间记录。 ls -l 可以显示档案的时间记录。
      参数:
      a 改变档案的读取时间记录。
      m 改变档案的修改时间记录。
      c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
      f 不使用,是为了与其他 unix 系统的相容性而保留。
      r 使用参考档的时间记录, --file 的效果一样。
      d 设定时间与日期,可以使用各种不同的格式。
      t 设定档案的时间记录,格式与 date 指令相同。
      --no-create 不会建立新档案。
      --help 列出指令格式。
      --version 列出版本讯息。
      范例:
      最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。
      touch file
      touch file1 file2
      将 file 的时间记录改为 5 6 18 3 ,公元两千年。时间的格式可以参考 date 指令,至少需输入 MMDDHHmm ,就是月日时与分。
      touch -c -t 05061803 file
      touch -c -t 050618032000 file
      将 file 的时间记录改变成与 referencefile 一样。
      touch -r referencefile file

      将 file 的时间记录改成 5 6 18 3 ,公元两千年。时间可以使用 am, pm 或是 24 小时的格式,日期可以使用其他格式如 6 May 2000
      touch -d "6:03pm" file
      touch -d "05/06/2000" file
      touch -d "6:03pm 05/06/2000" file

      名称:at
      使用权限:所有使用者
      使用方式:at -V [-q queue] [-f file] [-mldbv] TIME
      说明:at 可以让使用者指定在 TIME 这个特定时刻执行某个程式或指令,TIME 的格式是 HH:MM其中的 HH 为小时,MM 为分钟,甚至你也可以指定 am, pm, midnight, noon, teatime(就是下午 4 点锺)等口语词。
      如果想要指定超过一天内的时间,则可以用 MMDDYY 或者 MM/DD/YY 的格式,其中 MM 是分钟,DD 是第几日,YY 是指年份。另外,使用者甚至也可以使用像是 now + 时间间隔来弹性指定时间,其中的时间间隔可以是 minutes, hours, days, weeks
      另外,使用者也可指定 today tomorrow 来表示今天或明天。当指定了时间并按下 enter 之后,at 会进入交谈模式并要求输入指令或程式,当你输入完后按下 ctrl+D 即可完成所有动作,至于执行的结果将会寄回你的帐号中。
      把计:
      -V:印出版本编号
      -q:使用指定的伫列(Queue)来储存,at 的资料是存放在所谓的 queue ,使用者可以同时使用多个 queue, queue 的编号为 a, b, c... z 以及 A, B, ... Z 52
      -m:即使程式/指令执行完成后没有输出结果, 也要寄封信给使用者
      -f file:读入预先写好的命令档。使用者不一定要使用交谈模式来输入,可以先将所有的指定先写入档案后再一次读入
      -l:列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l)
      -d:删除指定 (使用者也可以直接使用 atrm 而不用 at -d)
      -v:列出所有已经完成但尚未删除的指定
      例子:
      三天后的下午 5 点锺执行 /bin/ls:
      at 5pm + 3 days /bin/ls

      三个星期后的下午 5 点锺执行 /bin/ls:
      at 5pm + 2 weeks /bin/ls

      明天的 17:20 执行 /bin/date:
      at 17:20 tomorrow /bin/date
      1999 年的最后一天的最后一分钟印出 the end of world !
      at 23:59 12/31/1999 echo the end of world !

      名称:cal
      使用权限:所有使用者
      使用方式:cal [-mjy] [month [year]]
      说明:
      显示日历。若只有一个参数,则代表年份(1-9999),显示该年的年历。年份必须全部写出:``cal 89\ 将不会是显示 1989 年的年历。使用两个参数,则表示月份及年份。若没有参数则显示这个月的月历。
      1752 9 月第 3 日起改用西洋新历,因这时大部份的国家都采用新历, 10 天被去除,所以该月份的月历有些不同。在此之前为西洋旧历。
      匡兜:
      -m:以星期一为每周的第一天方式显示。
      -j:以凯撒历显示,即以一月一日起的天数显示。
      -y:显示今年年历。

    梦想还是要的,万一实现了呢!
  • 相关阅读:
    2031 HDOJ 进制转换
    计算机视觉实验之直方图均衡化和对数变换
    sublime text3创建文件时生成头部注释
    浏览器调试出错
    css世界-读书笔记
    redis中Bitmaps位图应用场景
    redis中hyperloglog基数统计
    redis中Zset有序集合类型常用命令
    redis中set集合类型常用命令
    redis中hash哈希类型常用命令
  • 原文地址:https://www.cnblogs.com/cgli/p/2043712.html
Copyright © 2011-2022 走看看