Linux常用命令

ls命令

  ls命令(List Directory Contents)用于列出目录内容,包括文件和文件夹。
  image_1b648r6ie19dubcg8bp11461p9mm.png-83.1kB
  
  ls -l命令以详情模式(long listing fashion)列出目录内容。
  image_1b648sad750a112a6af17im1min13.png-127.5kB

  其中第1列代表文件的属性,可取值如下:
  - 普通文件
  d 目录
  l 连接
  b 块特殊问价
  c 字符特殊文件
  p 命名管道(FIFO)
  
  之后的9列以每3列为一组,按顺序分别表示文件或目录的所有者、组、其他用户的访问权限,r代表可读,w代表可写,x代表可执行,如果是“-”,代表没有对应的权限。
  第一个alan代表该文件或目录属于用户alan,第二个alan代表该文件或目录属于用户组alan。
  4096代表文件大小为4096字节,后面的时间代表最后修改时间,最后的是文件或者目录的名称。
  
  ls -a命令(all)列出当前目录下所有文件及目录,包括隐藏文件。
  image_1b648mk90196r1k6p11o61og81eo29.png-40.2kB
  
  ls -R命令(recursive)用于递归地显示文件:
  image_1b65hsorjk2s9h32p6e6i1mad9.png-64.1kB
  

cd命令

  cd命令(change directory)用于切换当前目录,其参数是要切换到的目录,可以是相对路径,也可以是绝对路径。
  “cd ~”会改变工作目录为用户的家目录,“cd /”会改变工作目录为根目录,“cd ..”从当前工作目录切换到(当前工作目录的)父目录。

pwd命令

  pwd命令(print working directory)用于显示当前工作目录的全路径。
  image_1b649nf6iu3g1bg31e3b1ti6rpu1g.png-9.1kB
  

mkdir命令

  mkdir命令(make directory)用于在当前路径下创建目录。如果目录已经存在了,那么它就会返回一个错误信息,提示文件夹已经存在。
  注意:目录只能在用户拥有写权限的目录下才能创建。
  

rmdir命令

  rmdir命令(remove directory)用于删除目录,但是只能删除空目录,不常用,通常使用rm命令。
  

rm命令

  rm命令既可以删除目录,也可以删除文件。常用选项如下:
  -f :强制删除(force),忽略不存在的文件,不会出现警告消息
  -i :交互删除(interactive),在删除前会询问用户是否操作
  -r :递归删除(recursive),递归地删除目录及目录下的文件,最常用于目录删除,它是一个非常危险的选项。
  

touch命令

  touch命令用于将文件的访问和修改时间更新为当前时间。touch命令只会在文件不存在的时候才会创建它。如果文件已经存在了,它会更新时间戳,但是并不会改变文件的内容。
  touch命令可以用来在用户拥有写权限的目录下创建不存在的文件。
  

cp命令

  cp命令(copy)用于复制文件,可以复制单个文件,也可以把多个文件一次性地复制到一个目录下。用法为:

  cp 源路径(可以有多个) 目的路径

  常用选项如下:
  -a :将文件的特性一起复制
  -p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
  -i :若目标文件已经存在时,在覆盖时会先询问操作的进行
  -r :递归持续复制,用于目录的复制行为
  -u :目标文件与源文件有差异时才会复制
  
  例如,以下命令用于将上级目录下的文件夹2和3复制到当前目录:

cp -r ../2 ../3 .

  image_1b65i00r8g8id3lvh1c001vkum.png-14kB
  

mv命令

  mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。其语法为:

mv [选项] 源文件列表 目标文件

  源文件被移至目标文件有两种不同的结果:
  1. 如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
  2. 如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。
  mv命令的有如下选项:

--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。 
--strip-trailing-slashes:删除源文件中的斜杠“/”;
-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
--target-directory=<目录>:指定源文件要移动到目标目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

vi命令

  vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。
  
  vi命令语法为:

vi [选项] 参数

  其中参数是文件名列表,多个文件名之间使用空格隔开,如果文件不存在会先创建文件。
  vi命令常用选项如下:

+<行号>:从指定行号的行开始显示文本内容;
-b:以二进制模式打开文件,用于编辑二进制文件和可执行文件;
-c<指令>:在完成对第一个文件编辑任务后,执行给出的指令;
-d:以diff模式打开文件,当多个文件编辑时,显示文件差异部分;
-l:使用lisp模式,打开“lisp”和“showmatch”; 
-m:取消写文件功能,重设“write”选项;
-M:关闭修改功能; 
-n:不使用缓存功能; 
-o<文件数目>:指定同时打开指定数目的文件;
-R:以只读方式打开文件; 
-s:安静模式,不显示指令的任何错误信息。

  vi有三种工作模式:命令模式、文本编辑模式和最后行模式。
  1.命令模式:命令模式是启动vi后进入的工作模式,并可转换为文本编辑模式和最后行模式。在命令模式下,从键盘上输入的任何字符都被当作编辑命令来解释,而不会在屏幕上显示。如果输入的字符是合法的vi命令,则vi就会完成相应的动作;否则vi会响铃警告。
  2.文本编辑模式:文本编辑模式用于字符编辑。在命令模式下输入i(插入命令)、a(附加命令)等命令后进入文本编辑模式,此时输入的任何字符都被vi当作文件内容显示在屏幕上。按Esc键可从文本编辑模式返回到命令模式。
  3.最后行模式:在命令模式下,按“:”键进入最后行模式,此时vi会在屏幕的底部显示“:”符号作为最后行模式的提示符,等待用户输入相关命令。命令执行完毕后,vi自动回到命令模式。
  
  vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号“:”开头输入。常用内置命令如下:

Ctrl+u:向文件首翻半屏; 
Ctrl+d:向文件尾翻半屏; 
Ctrl+f:向文件尾翻一屏; 
Ctrl+b:向文件首翻一屏; 
Esc:从编辑模式切换到命令模式; 
ZZ:命令模式下保存当前文件所做的修改后退出vi; 
:行号:光标跳转到指定行的行首; 
:$:光标跳转到最后一行的行首; 
x或X:删除一个字符,x删除光标后的,而X删除光标前的; 
D:删除从当前光标到光标所在行尾的全部字符; 
dd:删除光标行正行内容; 
ndd:删除当前行及其后n-1行;
nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;
p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;
P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;
/字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示; 
?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示; 
a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作; 
a:在当前字符后添加文本; 
A:在行末添加文本; 
i:在当前字符前插入文本; 
I:在行首插入文本; 
o:在当前行后面插入一空行; 
O:在当前行前面插入一空行; 
:wq:在命令模式下,执行存盘退出操作; 
:w:在命令模式下,执行存盘操作; 
:w!:在命令模式下,执行强制存盘操作; 
:q:在命令模式下,执行退出vi操作; 
:q!:在命令模式下,执行强制退出vi操作(不存盘退出); 
:e文件名:在命令模式下,打开并编辑指定名称的文件;
:n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;
:f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例; 
:set number:在命令模式下,用于在最左端显示行号; 
:set nonumber:在命令模式下,用于在最左端不显示行号;
u:撤销
CTRL+r:取消撤销

cat命令

  cat命令用于连接文件并打印到标准输出设备上,cat经常用来显示文件的内容。其语法为:

cat [选项] 参数

  其中参数为要显示的文件列表。常用选项如下:

-n或-number:有1开始对所有输出的行数编号;
-b或--number-nonblank:和-n相似,只不过对于空白行不编号;
-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A:显示不可打印字符,行尾显示“$”; 
-e:等价于"-vE"选项; 
-t:等价于"-vT"选项.

  下面的例子展示了如何显示文件1和3,或者同时显示这两个文件:
  
  image_1b65r3ffp19iv1vd4i5bga1aiq13.png-47.7kB
  
  也可以使用下面的语句将文件1和3合并后放入文件4中:
  
  image_1b65r7hbohp81h261l0k585183u1g.png-33.9kB
  
  另外,tac命令用于以逆行序输出文件:
  
  image_1b65u1qi67qunqq17ac1fqh11gk2a.png-37.8kB
  
  
  注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。
  

more命令

  more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。
  该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:
  –More–(XX%)
  
  可以用下列不同的方法对提示做出回答:
  按Space键:显示文本的下一屏内容。
  按Enier键:只显示文本的下一行内容。
  按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
  按H键:显示帮助屏,该屏上有相关的帮助信息。
  按B键:显示上一屏内容。
  按Q键:退出rnore命令。
  
  例如,我现在执行一条more命令用于显示文件5的内容:

more 5

  image_1b65rkjhi155a1kn91hbhf821u9d1t.png-35.6kB
  
  more命令常用选项如下:
  

-<数字>:指定每屏显示的行数; 
-d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
-c:不进行滚屏操作。每次刷新这个屏幕; 
-s:将多个空行压缩成一行显示; 
-u:禁止下划线; 
+<数字>:从指定数字的行开始显示。

head命令

  head命令用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。常用选项如下:

-n<数字>:指定显示头部内容的行数; 
-c<字符数>:指定显示头部内容的字符数; 
-v:总是显示文件名的头信息;
-q:不显示文件名的头信息。

tail命令

  tail命令类似于head命令,只不过tail命令是用于输入文件中的尾部内容,默认在屏幕上显示指定文件的末尾10行。常用选项如下:

--retry:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用; 
-c<N>或——bytes=<N>:输出文件尾部的N(N为整数)个字节内容;
-n<N>或——line=<N>:输出文件的尾部N(N为整数)行内容。
-q或——quiet或——silent:当有多个文件参数时,不输出各个文件名;
-s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数;
-v或——verbose:当有多个文件参数时,总是输出各个文件名; --help:显示指令的帮助信息;
--version:显示指令的版本信息。

  注意:如果表示字节或行数的N值之前有一个”+”号,则从文件开头的第N项开始显示,而不是显示文件的最后N项。N值后面可以有后缀:b表示512,k表示1024,m表示1048576(1M)。
  

find命令

  find命令用于在指定目录下查找文件。任何位于选项之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
  
  例如,在当前目录下的子目录2和子目录6下查找文件名为3的文件或目录:
  
  image_1b662esfbsbbf9k18sc17nt1sh12n.png-26.9kB
  
  find命令通常用法示例如下:
  
  列出当前目录及子目录下所有文件和文件夹

find . 

  在/home目录下查找以.txt结尾的文件

find /home -name "*.txt"

  同上,但忽略大小写

find /home -iname "*.txt"

  当前目录及子目录下查找所有以.txt和.pdf结尾的文件

find . \( -name "*.txt" -o -name "*.pdf" \) 
或 
find . -name "*.txt" -o -name "*.pdf" 

  找出/home下不是以.txt结尾的文件

find /home ! -name "*.txt"

  根据文件类型进行搜索

find . -type 类型参数

  类型参数列表:
  f 普通文件
  l 符号连接
  d 目录
  c 字符设备
  b 块设备
  s 套接字
  p Fifo

  基于目录深度搜索,例如向下最大深度限制为3

find . -maxdepth 3 -type f

  搜索出深度距离当前目录至少2个子目录的所有文件

find . -mindepth 2 -type f

  
  根据文件时间戳进行搜索

find . -type f 时间戳

  UNIX/Linux文件系统每个文件都有三种时间戳:
  访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
  修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。
  变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。

  例如,搜索最近七天内被访问过的所有文件

find . -type f -atime -7

  搜索恰好在七天前被访问过的所有文件

find . -type f -atime 7

  搜索访问时间超过10分钟的所有文件

find . -type f -amin +10

   
   
  删除当前目录下所有.txt文件,例如删除当前目录下所有.txt文件

find . -type f -name "*.txt" -delete

 
  其他技巧,例如列出所有长度为零的文件

find . -empty

whereis命令

  whereis命令用于定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
  whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
  和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis或者locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。
  但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis或者locate查找文件时,有时会找到已经被删除的数据。或者有些文件刚刚建立,却无法查找到,原因就是因为数据库文件没有被更新。
  
  例如,查找ls命令所对应程序的位置:
  
  image_1b6643nld1fkh1q04h4i1q7u1qje34.png-11.5kB
  
  whereis命令常用选项如下:

-b:只查找二进制文件; 
-B<目录>:只在设置的目录下查找二进制文件;
-f:不显示文件名前的路径名称; 
-m:只查找说明文件; 
-M<目录>:只在设置的目录下查找说明文件; 
-s:只查找原始代码文件; 
-S<目录>只在设置的目录下查找原始代码文件; 
-u:查找不包含指定类型的文件。

ln命令

  ln命令用来为文件创建连接。例如,可以通过下面的命令创建一个指向当前目录下文件1的连接one:

ln 1 one

  image_1b664fcl45l6da51hv1tql1es23h.png-44.9kB
  
  注意:连接类型分为硬连接和符号连接(或软连接)两种,符号连接相当于windows下的快捷方式,硬连接相当于将文件复制了一份,并且在文件中建立了连接。默认的连接类型是硬连接。如果要创建符号连接必须使用”-s”选项。 符号链接文件不是一个独立的文件,它的许多属性依赖于源文件,所以给符号链接文件设置存取权限是没有意义的。
  

useradd命令

  useradd命令用于创建新的系统用户,用户创建好后,可以使用passwd命令设定用户密码。usermod命令用于修改用户的基本信息,userdel命令用于删除用户。使用useradd创建的账号保存在/etc/passwd下。(注意不要随便修改passwd文件)
  useradd命令语法为:

useradd <选项> username

  常用选项如下:

-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;
-d<登入目录>:指定用户登入时的启始目录; 
-D:变更预设值; 
-e<有效期限>:指定帐号的有效期限; 
-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号; 
-g<群组>:指定用户所属的群组; 
-G<群组>:指定用户所属的附加群组; 
-m:自动建立用户的登入目录; 
-M:不要自动建立用户的登入目录; 
-n:取消建立以用户名称为名的群组; 
-r:建立系统帐号; 
-s<shell>:指定用户登入后所使用的shell; 
-u<uid>:指定用户id。

  示例:
  新建用户并声明加入组:

useradd –g sales jack –G company,employees //-g:加入主要组、-G:加入次要组

  新建一个用户,并设置用户id

useradd caojh -u 544

  注意:设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特殊用户,一般0到499之间的值留给bin、mail这样的系统账号。
  
  ubuntu下命令useradd username不会再/home目录下建立文件夹username,而命令adduser username可以。也可以使用useradd -m username达到相同的效果。
  
  删除一个用户时,一般分为两个步骤,一是使用userdel username删除对应用户,二是使用rm -rf username删除/home下的生成的此用户登入目录。
  

groupadd命令

  groupadd命令用于创建一个新的工作组。对应的,groupmod命令用于更改群组识别码或名称,groupdel命令用于删除指定的工作组。

su命令

  su命令(switch user)用于切换当前用户到其他用户身份。一般切换之后如果要切换回来,使用exit命令。
  

chmod命令

  chmod命令用来变更文件或者目录的权限。在前面说过,可以通过ls -l命令查看当前目录下所有文件的权限,例如:
  
  image_1b69dvsa215p0e86jh7156vjdv9.png-17.7kB
  
  现在对于文件c来说,其所属用户alan拥有对该文件的读、写权限,和其所属用户alan同组的用户拥有对该文件的读、写权限,其他用户仅拥有对该文件的读权限。
  chmod修改文件或者目录权限的方法为:令读、写、执行权限分别对应值4、2、1,分别对文件拥有者、文件拥有者同组用户、其他用户所拥有的权限值进行求和,将分别得到的三个求和结果排列起来,用于表示他们对该文件的权限。例如,以下命令用于将文件c的权限设置为,文件拥有者可读可写可执行(4+2+1),文件拥有者同组用户可读可写(4+2+0),其他用户可读(4+0+0):

chmod 764 c

  image_1b69ehv741rru1h81t5v16i5hu4m.png-15.5kB
  

chown命令

  chowm命令用于改变某个文件或者目录的所有者或者所属组,用户可以用用户名或者用户ID表示,组也可以用组名或者组ID表示。
  chown命令的语法为:

chown <选项> 用户:组 文件

  例如,下面的命令用于将目录a的所有者和所属组修改为testuser1和testuser1:

chown testuser1:testuser1 a

  image_1b69f5ens1shc10ce20i11r11cv513.png-46.8kB

wc命令

  wc命令(word count)用来计算文件的字节数,字数和行数。常用选项如下:

-c或--bytes或——chars:只显示Bytes数; 
-l或——lines:只显示列数; 
-w或——words:只显示字数。

  默认情况下会同时显示字节数,字数和行数,例如:
  
  image_1b69k1vfvgp31fae13a5d1kj59.png-26kB

grep命令

  grep命令(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。例如:在文件c中搜索内容“opq”:
  
  image_1b69m3sn625hdnm1p0n18be1c03m.png-34.5kB
  
  grep命令常用选项如下:
  

-a 不要忽略二进制数据。 
-A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。 
-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。 
-c 计算符合范本样式的列数。 
-C<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。 
-e<范本样式> 指定字符串作为查找文件内容的范本样式。 
-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。 
-f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。 
-F 将范本样式视为固定字符串的列表。 
-G 将范本样式视为普通的表示法来使用。 
-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。 
-H 在显示符合范本样式的那一列之前,标示该列的文件名称。 
-i 胡列字符大小写的差别。 
-l 列出文件内容符合指定的范本样式的文件名称。 
-L 列出文件内容不符合指定的范本样式的文件名称。 
-n 在显示符合范本样式的那一列之前,标示出该列的编号。 
-q 不显示任何信息。 
-R/-r 此参数的效果和指定“-d recurse”参数相同。 
-s 不显示错误信息。 
-v 反转查找。 
-w 只显示全字符合的列。 
-x 只显示全列符合的列。 
-y 此参数效果跟“-i”相同
-o 只输出文件中匹配到的部分。

  可以在多个文件中查找,文件名用空格分隔开即可。
  

管道命令

  linux中的管道命令用符号“|”表示,它只能处理经由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入。如下图所示:
  
  image_1b69me98e1u8a5dsidp13v74s913.png-114.7kB
  
  【指令1】正确输出,作为【指令2】的输入 然后【指令2】的输出作为【指令3】的输入 ,【指令3】输出就会直接显示在屏幕上面了。
  通过管道之后,【指令1】和【指令2】的正确输出不显示在屏幕上面。
  注意:管道命令只处理前一个命令正确输出,不处理错误输出;管道命令右边命令,必须能够接收标准输入流命令才行。
  

输出重定向命令

  linux使用符号“>”或者“>>”重定向输出,“>”是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其内容覆盖;“>>”是将输出内容追加到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响。此外,“2>”可以将错误信息进行重定向,例如:
  
  image_1b69mrai9d3e1m5g143p1b0812cs1t.png-58.8kB
  

ps命令

  ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
  ps命令语法为:

ps <选项>

  通常的用法为:

ps -ef

  用于以全格式查看所有进程,其显示结果的含义分别为:
  1.UID 用户ID
  2.PID 进程ID
  3.PPID 父进程ID
  4.C CPU占用率
  5.STIME 开始时间
  6.TTY 开始此进程的TTY—-终端设备
  7.TIME 此进程运行的总时间
  8.CMD 命令名
  
  还有一个非常重要的用法:

ps -ef|grep 进程名

  用于查看指定进程的详细信息,例如进程id等,然后可以配合kill命令杀死进程。
  

tar命令

  tar命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。
  首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
  为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。
  tar命令语法为:

tar <选项> 参数

  常用选项如下:

-c:建立新的备份文件; 
-x:从备份文件中还原文件; 
-t:列出备份文件的内容; 
-z:通过gzip指令处理备份文件;
-f<备份文件>:指定备份文件; 
-v:显示指令执行过程; 
-r:添加文件到已经压缩的文件; 
-u:添加改变了和现有的文件到已经存在的压缩文件; 
-j:支持bzip2解压文件; 

  参数为要打包的文件或者目录。
  
  通常tar命令的使用情况及用法:

tar -xvf filename.tar //解压*.tar文件
tar -zxvf filename.tar.gz //解压*.tar.gz文件
tar -jxvf filename.tar.bz2  //解压*.tar.bz2

tar -cvf jpg.tar *.jpg //将所有的jpg文件打包为jpg.tar(仅打包,不压缩)
tar -zcvf log.tar.gz *.log //将所有的log文件打包后并用gzip压缩为log.tar.gz
tar -jcvf log.tar.gz *.log //将所有的log文件打包后并用bzip2压缩为log.tar.gz

df命令

  df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

-a或--all:包含全部的文件系统; 
--block-size=<区块大小>:以指定的区块大小来显示区块数目; 
-h或--human-readable:以可读性较高的方式来显示信息; 
-H或--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes-i或--inodes:显示inode的信息; 
-k或--kilobytes:指定区块大小为1024字节; 
-l或--local:仅显示本地端的文件系统; 
-m或--megabytes:指定区块大小为1048576字节; 
--no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值; 
-P或--portability:使用POSIX的输出格式; 
--sync:在取得磁盘使用信息前,先执行sync指令; 
-t<文件系统类型>或--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息; 
-T或--print-type:显示文件系统的类型; 
-x<文件系统类型>或--exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息; 
--help:显示帮助; 
--version:显示版本信息。

du命令

  du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。

-a或-all 显示目录中个别文件的大小。 
-b或-bytes 显示目录或文件大小时,以byte为单位。 
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。 
-k或--kilobytes 以KB(1024bytes)为单位输出。 
-m或--megabytes 以MB为单位输出。 
-s或--summarize 仅显示总计,只列出最后加总的值。 
-h或--human-readable 以KMG为单位,提高信息的可读性。 
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。 
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。 
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。 
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。 
--exclude=<目录或文件> 略过指定的目录或文件。 
-D或--dereference-args 显示指定符号链接的源文件大小。 
-H或--si 与-h参数相同,但是KMG是以1000为换算单位。 
-l或--count-links 重复计算硬件链接的文件。

curl命令

  curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。

-a/--append 上传文件时,附加到目标文件
-A/--user-agent <string>    设置用户代理发送给服务器
-anyauth    可以使用“任何”身份验证方法
-b/--cookie <name=string/file>  cookie字符串或文件读取位置
     --basic    使用HTTP基本验证
-B/--use-ascii  使用ASCII /文本传输
-c/--cookie-jar <file>  操作结束后把cookie写入到这个文件中
-C/--continue-at <offset>   断点续转
-d/--data <data>    HTTP POST方式传送数据
     --data-ascii <data>    以ascii的方式post数据
     --data-binary <data>   以二进制的方式post数据
     --negotiate    使用HTTP身份验证
     --digest   使用数字身份验证
     --disable-eprt 禁止使用EPRTLPRT
     --disable-epsv 禁止使用EPSV
-D/--dump-header <file> 把header信息写入到该文件中
     --egd-file <file>  为随机数据(SSL)设置EGD socket路径
     --tcp-nodelay  使用TCP_NODELAY选项
-e/--referer    来源网址
-E/--cert <cert[:passwd]>   客户端证书文件和密码 (SSL)
     --cert-type <type> 证书文件类型 (DER/PEM/ENG) (SSL)
     --key <key>    私钥文件名 (SSL)
     --key-type <type>  私钥文件类型 (DER/PEM/ENG) (SSL)
     --pass <pass>  私钥密码 (SSL)
     --engine <eng> 加密引擎使用 (SSL). "--engine list" for list
     --cacert <file>    CA证书 (SSL)
     --capath <directory>   CA目录 (made using c_rehash) to verify peer against (SSL)
     --ciphers <list>   SSL密码
     --compressed   要求返回是压缩的形势 (using deflate or gzip)
     --connect-timeout <seconds>    设置最大请求时间
     --create-dirs  建立本地目录的目录层次结构
     --crlf 上传是把LF转变成CRLF
-f/--fail   连接失败时不显示http错误
     --ftp-create-dirs  如果远程目录不存在,创建远程目录
     --ftp-method [multicwd/nocwd/singlecwd]    控制CWD的使用
     --ftp-pasv 使用 PASV/EPSV 代替端口
     --ftp-skip-pasv-ip 使用PASV的时候,忽略该IP地址
     --ftp-ssl  尝试用 SSL/TLS 来进行ftp数据传输
     --ftp-ssl-reqd 要求用 SSL/TLS 来进行ftp数据传输
-F/--form <name=content>    模拟http表单提交数据
     --form-string <name=string>    模拟http表单提交数据
-g/--globoff    禁用网址序列和范围使用{}和[]
-G/--get    以get的方式来发送数据
-H/--header <line>  自定义头信息传递给服务器
     --ignore-content-length    忽略的HTTP头信息的长度
-i/--include    输出时包括protocol头信息
-I/--head   只显示请求头信息
-j/--junk-session-cookies   读取文件进忽略session cookie
     --interface <interface>    使用指定网络接口/地址
     --krb4 <level> 使用指定安全级别的krb4
-k/--insecure   允许不使用证书到SSL站点
-K/--config 指定的配置文件读取
-l/--list-only  列出ftp目录下的文件名称
     --limit-rate <rate>    设置传输速度
     --local-port<NUM>  强制使用本地端口号
-m/--max-time <seconds> 设置最大传输时间
     --max-redirs <num> 设置最大读取的目录数
     --max-filesize <bytes> 设置最大下载的文件总量
-M/--manual 显示全手动
-n/--netrc  从netrc文件中读取用户名和密码
     --netrc-optional   使用 .netrc 或者 URL来覆盖-n
     --ntlm 使用 HTTP NTLM 身份验证
-N/--no-buffer  禁用缓冲输出
-o/--output 把输出写到该文件中
-O/--remote-name    把输出写到该文件中,保留远程文件的文件名
-p/--proxytunnel    使用HTTP代理
     --proxy-anyauth    选择任一代理身份验证方法
     --proxy-basic  在代理上使用基本身份验证
     --proxy-digest 在代理上使用数字身份验证
     --proxy-ntlm   在代理上使用ntlm身份验证
-P/--ftp-port <address> 使用端口地址,而不是使用PASV
-q  作为第一个参数,关闭 .curlrc
-Q/--quote <cmd>    文件传输前,发送命令到服务器
-r/--range <range>  检索来自HTTP/1.1FTP服务器字节范围
--range-file    读取(SSL)的随机文件
-R/--remote-time    在本地生成文件时,保留远程文件时间
     --retry <num>  传输出现问题时,重试的次数
     --retry-delay <seconds>    传输出现问题时,设置重试间隔时间
     --retry-max-time <seconds> 传输出现问题时,设置最大重试时间
-s/--silent 静默模式。不输出任何东西
-S/--show-error 显示错误
     --socks4 <host[:port]> 用socks4代理给定主机和端口
     --socks5 <host[:port]> 用socks5代理给定主机和端口
     --stderr <file>     
-t/--telnet-option <OPT=val>    Telnet选项设置
     --trace <file> 对指定文件进行debug
     --trace-ascii <file>   Like --跟踪但没有hex输出
     --trace-time   跟踪/详细输出时,添加时间戳
-T/--upload-file <file> 上传文件
     --url <URL>    Spet URL to work with
-u/--user <user[:password]> 设置服务器的用户和密码
-U/--proxy-user <user[:password]>   设置代理用户名和密码
-w/--write-out [format] 什么输出完成后
-x/--proxy <host[:port]>    在给定的端口上使用HTTP代理
-X/--request <command>  指定什么命令
-y/--speed-time 放弃限速所要的时间,默认为30
-Y/--speed-limit    停止传输速度的限制,速度时间

一、curl模拟发送get请求

curl "http://www.baidu.com" 

curl -i "http://www.baidu.com"  显示全部信息

curl -v "http://www.baidu.com" 显示get请求全过程解析

二、curl模拟发送post请求 (json格式)

curl -l -H "Content-type: application/json" -X POST -d '{"email":"Bob@gmail.com","password":"123"}' http://www.xxx.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值