• Linux常用命令(详细)


    Linux常用命令

    一、控制台相关命令

    控制台命令就是指通过字符界面输入的可以操作系统的命令。我们现在要了解的是基于Linux操作系统的基本控制台命令。不同于图形模式的一种类似文本编辑器的运行命令的环境。在远程登陆控制或是操作没有图形环境的Linux系统时,控制台命令就有很大的用途了,建议大家一定要熟练掌握控制台模式下的命令操作,这样不管是否是在Linux系统的图形环境中操作,我们都可以完成指定的任务。有一点请注意,Linux的命令(也包括文件名等等)对大小写是敏感的,如“Abc”和“abc”会被认为是不一样的。如果输入的命令大小写不对的话,系统是不会做出你期望的响应的。

    下面先给大家介绍几个与控制台命令相关的命令,如下所示:

    login   登陆控制台

    exit    退出控制台

    reboot  重启计算机

    shutdown 关闭计算机

    clear   清除屏幕信息

    echo    显示信息

    man     参考命令

    1、注册和退出系统

           当用户以不同的身份登陆控制台时,首先要使用login命令,这是一个用户向系统注册的过程。若用户通过身份验证,login进程会把用户的home目录设置成当前目录并把控制权交给一系列setup程序。setup程序可以是指定的应用程序,通常setup程序为一个Shell程序,如:/bin/sh, 即Bourne Shell(关于Shell程序的概念,请读者参阅本书第五章内容)。用户得到控制权后,Shell程序读取并执行文件/etc/.profile以及.profile。这两个文件分别建立了系统范围内的和 该用户自己的工作环境。

    最后Shell显示命令提示符,如“ You can't use 'macro parameter character #' in math mode”,若是以root用户登陆,显示命令提示符为“#”)

    1)注册

    用户登陆后,用户命令同计算机交互的关系为:命令进程--->Shell程序--->UNIX内核--->计算机硬件。当用户输入一个命令,如$ls, Shell将定位其可执行文件/bin/ls并把其传递给内核执行。内核产生一个新的子进程调用并执行/bin/ls。 当程序执行完毕后,内核取消该子进程并把控制交给其父进程,即Shell程序。例如执行:

    login:

    作为系统管理员,第一次进入系统可能需要以超级用户的身份进入,和NT系统中Administrators身份对应的linux帐号是root(这也是一般类Linux系统中常见的系统管理员身份)。在login:后面输入“root”,然后回车,系统提示:

    Password:

    按照系统管理员安装系统时设置的密码输入,然后直接回车后,管理员将成功登录,系统提示:

    [root@linux /root]#

    符号“@”前面的自然是登陆时的帐号身份,之后的是主机名,可能根据主机的名称不同而不同。/root是登陆用户的主目录,它既是账户配置文件所在的地方,也是每次登录后所在的目录,受到系统保护的私人领地——当然,前提是只有你自己拥有root权限:)。

    2 )退出系统exit命令

    当用户需要退出Shell命令的控制台时,我们可以使用exit命令来实现.当用户在命令提示符号后直接执行exit命令时, 内核把用户的控制权交给init程序, 用户将退出当前的Shell环境,例如执行:

    [root@linux /root]# exit

    有些用:

    [root@linux /root]# logout

    3)重启和关闭系统

    (1)reboot 命令

    reboot 命令用于 Linux 系统的重新启动,具体使用方法如下

     语法:reboot [-选项] [参数]
     
     参数:

    -d: 重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有“-n”参数的效果。

    -f: 强制重新开机,不调用shutdown指令的功能。

    -w: 仅做测试,并不真的将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。

    举例:

     # reboot  
    (2)halt命令

    【语法】halt [选项]

    【详解】halt用于关闭计算机。但它关机前会把信息写入到“/var/log/wtmp”中。halt命令和shutdown命令大同小异。

    【选项】

    -w 在“/var/log/wtmp”中写入信息,但不关机

    -d 关闭计算机,且不在“/var/log/wtmp”写入信息

    -f 强制关机

    -p 关闭计算机且关闭电源

    例:用halt关闭计算机,且不在“/var/log/wtmp”写入信息。

    [root@linux /root]#halt  -d

    (3) shutdown 命令
       shutdown 命令用于关闭 Linux 系统, 将系统带到可以关闭电源的安全点。具体使用方法如下:
     
      语法:shutdown [选项] 时间 [警告]  
     
      参数:

    -t n: 在向进程发出警告信号和杀掉信号之间等待n秒。

    -h 2:关闭后停机。

    -k:不真正关闭系统,只向每人发送警告信息。

    -r:关闭后重新启动。

    -n:在重新启动和停机之前不作磁盘同步。

    -f:快速重新启动,重新启动时不检查所有文件系统。

    -c:取消已经运行的关闭命令。在本选项中,不能给出时间变量,但可以在命令行输入一个说明信息传给每个用户。

    举例:

    #shutdown –h now

    #shutdown –k now

    #showdown –r now

    2、修改口令

    passwd

    例:

    liu@liu-virtual-machine:$  passwd

    3、良好的保密

    一般来说,在人离机时应退出系统,来保证不让其他人看到自己的文件,我们可以锁住终端会话,也可退出系统。

    1.锁住终端会话(vlock)

    如果人离开一会可采用锁住终端会话。

    例:

    liu@liu-virtual-machine:$ vlock

    二、目录操作命令

    大家可能还知道在很早的Dos系统下,有一些对目录操作的命令,例如cd、md (mkdir)、rd (rmdir)等等。而Linux 系统下的一些命令,和dos命令其实很相似,甚至拼写和功能都一样。下面就介绍一些在Linux 系统下对目录操作要使用的命令:

      cd      改变当前工作目录

      pwd     显示工作的路径

      mkdir   建立目录

      rmdir   删除目录

    1、cd 命令

    cd 命令, 用于改变当前工作目录,和Dos命令下的cd名命令用途一样,用于工作目录之间的切换,格式如下:

    (1)语法: cd 目录名

    (2)对象: 上面语法的对象为目录名,即改变到选定的目录名。如果没有指定目录,就返回用户主目录。

    (3)举例:

    #cd  /var/log

    #cd  /usr/local/apache

    #cd  /root/sysadm/conf

    (4)说明: 第一行命令所代表的功能是使用cd命令,切换到对象为 /var/log的目录下,第二、三行命令功能是分别切换到对象为 /usr/local/apache和 /root/sysadm/conf 的目录中去。

        提示:

       直接在命令行中输入cd命令而不加任何参数,可以马上回到用户的主目录(home),这与DOS中cd命令显示当前路径不同,请一定注意。在Linux中,很多与用户自身相关的配置文件、属于自己的文档、程序、脚本和安装包等东东都存放在用户自己的home目录中,这个目录就相当于Microsoft Windows中的“我的文档”。所以能用cd命令直接“回家”,真的是很方便。

    2、pwd 命令

    pwd 命令,用于显示当前工作的目录路径,当用户操作时,不知道目前处于什么目录下,可以使用这个命令来查看当前的目录路径。格式如下:

    (1)语法: pwd

    (2)举例:

    #pwd 

    /home/oracle

    (3)说明: 第一行为运行的命令,第二行的内容为运行 pwd 命令后显示的信息,即指用户当前所在的工作目录或目录的路径为:/home/oracle

    提示:

       应该经常使用pwd命令。Linux的目录结构非常复杂,一个小小的分支就可能会有十几层目录,就好像是个森林,所以Linux不会像Windows那样把全路径写在提示符里,那样太长了。在目录用cd钻来钻去,很容易记不清自己到底身在何处。这时候执行命令可是有点危险的,例如在一个下目录想删除一个文件,不搞清楚当前目录,可能会误删除同名的有用文件的,而且没那么容易恢复。尤其是在做“rm –rf”这种对目录直接删除的操作,更需要用pwd确定一下。还有很多其他的情况需要使用pwd,可能每执行十几个命令就会敲一回。我们都来感谢Jim Meyering先生吧,他是pwd的创作者。

    3、 mkdir 命令

    mkdir 命令的功能是用来在 Linux 系统中建立目录,格式如下:

    (1)语法: mkdir 目录名

      mkdir [-选项] [参数] 目录名

    (2)参数:

    -m :  在建立目录时把按模式指定设置目录权限。

    -p :  建立所有不存在父目录的目录。

    (3) 对象: 对象为目录名,目录名即指要建立的目录名称。

    (4) 举例:

    #mkdir  oracle

    #mkdir -m 755 log

    #mkdir -p /tmp/var/logs 

     (5)说明:  第一行命令建立一个名为oralce的目录;第二行命令建立一个log目录,并授予755权限(关于权限的概念会在后面的内容介绍);第三行命令会在/tmp分区下建立var目录,并在var目录下在建立一个 logs目录。

    [应用实例:快速建立多级目录]

     请注意上面介绍的mkdir命令的–p 参数,在某些时候可能会大大减化我们的操作。例如用户想在当前目录中创建node/xyd/logs/www目录的时候,如果现在连node目录都没有,我们本来是需要输入4次mkdir来逐级向下创建的,不过现在用-p参数就方便多了:

    #mkdir –p   node/xyd/logs/www

      不管三七二十一,就去建吧!现在一条命令就搞定了。p 是 parent,上一级目录的意思。

    4、rmdir 命令

    rmdir 命令的功能是删除系统中的目录,具体格式如下:

    (1)语法:rmdir 目录

    rmdir [-选项] [参数] 目录

    (2)参数:

    -p: 在删除指定的目录后,若父目录为空,则rmdir也删除父目录。

      (3) 对象: 对象为目录,目录即指要删除的目录名称或目录列表。

    (4)例如:

    #rmdir     /zhang/log

    #rmdir  –p  /zhang/log

    #rmdir     /zhang/log /zhang/log2

    (5) 说明: 第一行命令功能删除/zhang目录下的log目录,要注意log目录为空目录(后面介绍的rm命令可以删除非空目录);第二行命令功能删除/zhang目录下的log目录,并删除/zhang目录;第三行命令功能删除/zhang目录下的log目录,并删除/zhang目录下的log2目录。

    提示:

    rmdir可以删除的是非空目录,被删的目录下不能有文件或子目录。如果只是有子目录存在,还可以用-p来删除;如果含有文件,那-p参数也无能为力了。只有使用“rm –rf”大法,连根拔起。后面会有介绍。

    三、文件操作命令

    上面主要讲的是在Linux系统中对目录的操作命令,下面主要介绍一些常用的文件操作命令。掌握这些基本命令的操作,就可以对Linux系统中的各种文件进行查看、编辑、修改、复制、移动、删除、建立等操作,这些命令如下所示:

    ls     显示目录和文件          

    rm     删除文件

    touch  建立文本文件          

    cp     拷贝文件

    cat    显示文本内容           

    mv     移动文件

    more   按页显示文件内容   

    ln     链接文件

    less   按页显示文件内容    

    find   查找文件

    head   从前显示文件内容   

    file   查看文件类型

    tail   从后显示文件内容

    1、ls 命令

    ls 命令用于显示文件(包括目录)的列表,及每个文件的详细信息,包括文件的大小、属组、属主、读写执行权限、创建日期等信息。具体格式如下:

    (1)    语法:ls [-选项] [参数] 文件

    (2)    参数:

    -a:显示所有文件,包括当前目录和父目录。

    -c:按列输出,纵向排序。

    -x:按列输出,横向排序。

    -d:将每一条都当作一个目录。

    -l:给出长表。长表显示文件的详细内容,如:文件类型权限,连接或目录计数,所有者,组,按字节文件大小,文件的最近修改时间和文件名。

    -t:按最后修改的时间排序,用-l标志一起使用。

    -u:按最后访问的时间排序,用-l标志一起使用。

    -c:按i节点信息最后修改的时间排序,用-l标志一起使用。

    -r:反向排序。

    -i:在第一列显示文件的i节点数。

    -F:将/放在目录输入后,*放在可执行程序后,@放在符号连接后,!放在FIFO后,=放在套接文件后,正规文件后什么也不放。文件列表:用ls要处理的文件列表,可以使用通配符。

    注意:

    文件类型有:

    -:常规文件

    d:目录 

    b:块设备特殊(磁盘)

    c:字符特殊设备(终端)

    p:有名管道

    s:信号灯 

    m:共享存储器

    (3)对象:上面语法中的文件是ls命令执行的对象,这里指的文件可以是单个文件、文件列表(多个文件)或者是目录。

    (4)举例:

    #cd /home

    #ls –al

    drwxr-xr-x  4 root    root   4096  Jan 30 21:47  .

    drwxr-xr-x 20 root    root   4096  May 16 06:45  ..

    drwx------  5 install install 4096  Mar 18 15:48 install

    drwxr-xr-x  2 oracle  oracle  4096  Dec 19 18:36 oracle

    (5)说明:上面举的例子中第一行命令代表切换到/home目录下;第二行命令代表显示/home目录下所有文件和目录的详息;第三至六行是第二行命令运行后显示的信息。下面以这段信息的最后一行说明每一段内容的含义:

    最后一行显示的信息:

    drwxr-xr-x  2 oracle  oracle  4096  Dec 19 18:36 oracle

    这行信息分为8个区域,每个区域的含义如下:

    drwxr-xr-x:第一个符号指示文件类型,减号为普通文件,d则表示为目录类型。接下来的九个字符分成三组,分别表示属主、组员和其它用户的存取权;每组有三种存取权:r代表读(Read)权限、w代表写(Write)权限和x代表执行(Execute)权限。而没有存取权的相应位置则会出现减号(-)代替。

    2 :代表oracle目录下还有两个目录,包括隐含目录,注意不包括目录下的文件个数。

    oracle(左):代表oracle目录的属主为oracle用户。

    oracle(中):代表oracle目录的属组为oracle用户组。

    oracle(后):即在/home目录下有一个oracle目录。

    4096 :  代表当前目录或文件的大小,即4096 byte=4 k

    Dec 19  : 代表目录创建于12月19日

    18:36   : 代表目录创建于18时36分

    【应用实例:“ls –a”查出黑客程序】

       当系统被侵入并植入后门时,黑客一般为了隐藏,会把文件名前加上一个“.”,这些文件在系统中默认是不显示的。但是 ls 的 –a 参数可以让它们无处藏身。我们运行下命令:

    #cd /home/xyd

    #ls

    hosts  tmplogs  vnc-3.3.7-x86_linux.tar

    上面一行显示的这三个文件都是比较正常的文件,再执行ls –a:

      .   .bash_history  .bash_profile  .emacs  hosts    vnc-3.3.7-x86_linux.tar ..  .bash_logout   .bashrc      .gtkrc  tmplogs  .start.sh

       注意最后一个文件.start.sh,通常系统中是不会有这种脚本存在的。我们再使用cat或者more,就可以从内容判断此文件是否是黑客的脚本文件。 

    技巧:

    我们进入一个陌生的房间后,总是会扫视一下房间内的家具摆设。在Linux中ls就是用户的眼睛,我们使用cd进入了某个目录后,一般都会下意识地“ls”一下,“定睛一看”。关于ls的技巧就太多了,现在我们为大家整理出常用的几种。

    注意管道符“|”的运用,会使ls的功能大大增强。实际上“|”在与其他很多命令的配合上都很有效,我们可以自由地发挥创造力。“|”体现了Linux(也是Unix)的魅力。将目录下的文件按照大小排序。利用了sort命令,命令行如下:

    #ls -l | sort -n -k5

    有时我们在有很多文件的目录下工作,如/dev,通常会有7、8千个设备文件存在,这时如果ls一下,屏幕会向上翻个不停,只剩下最后一屏文件显示出来,而ls又没有分屏显示的参数,像DOS中的“dir /p”那样的。这时我们又可以借助“|”了,把结果交给more或less显示,命令行下:

    #ls /dev | more  

    #ls /dev | less  

    两个命令都会一屏一屏地显示结果,而且less还可以往回翻页。在/dev这样的目录,我们还会有这样的问题,这个目录中到底有多少个文件呢?可以用wc,统计命令来帮助我们。

    #ls /dev | wc -w

    7519

    屏幕中的7519就是文件的数目。

    ls还可以与grep配合,组合出其他很有用的命令,请参看grep部分。

    2、touch 命令

    touch 命令是用于改变文件的时间戳,也可以用于创建新文件。而建立文件后,其内容的添加一般使用vi编辑器(vi编辑器的详细使用方法会在下一章给大家详细介绍),touch 命令具体格式如下:

    (1)语法:touch  文件

    -a :修改文件的存取时间.

    -c :不创建文件

    -m :修改文件

    -r ref_file:将参照文件 ref_file 相应的时间戳记的数值作为指定文件 file 时间戳记的新值.

    -t time:使用指定的时间值 time 作为指定文件相应时间戳记的新值。此处的 time 规定为如下形式的十进制数∶

    [[CC]YY]MMDDhhmm[.SS]

    (2)对象:对象为文件,即指要改变或建立的文件名称或文件列表。

    (3) 举例:

    #touch text 

    #touch text1 text2 test3

    (4)说明:第一行命令的功能是改变text的时间戳到当前的时间或当无此文件时创建之,第二行命令的功能是同时对text1、text2、text3 三个文件进行同样的操作。

    3、cat 命令

    cat 命令一般用来显示文本文件中的内容,具体格式如下所示: 

    (1)语法:cat [-选项] [参数] 文件

    (2)参数: -b:计算所有非空输出行,开始为1。

    -e:相当于-vE。

    -n:计算所有输出行,开始为1。

    -s:将相连的多个空行用单一空行代替。

    -t:相当于-vT。

    -u:忽略;为UNIX兼容产品而使用。

    -V:显示除LFD和TAB以外的所有控制符,使用^作标志并在高位置的字符前放M-。

    -A:相当于-vET。

    -:E在每行末尾显示#符号。

    -T:用^I显示TAB符号。

    (3)对象:上面的语法中的对象为文件,如果没有指定文件或连字号(-),就从标准输入读取。

    技巧:

    cat还可以用来做一些常用的文件操作。cat的结果会显示到标准输出,也就是屏幕上来。如果我们用重定向符“>”、“>>”把结果输出到文件中去,会有什么效果呢?我们来看看下面的一些命令行:

    #cat hosts > hosts.old

    用hosts的内容代替hosts.old文件的内容。如果hosts.old不存在,则一个新文件会被创建。

    #cat hosts >> hosts.old

    把hosts文件的内容加到hosts.old的末尾,使两个文件合为一个。

    #cat hosts1 hosts2 hosts3 > hosts.new

    hosts.new是一个新文件,cat命令把hosts1、hosts2、hosts3的内容依次连接起来,并生成一个新的hosts.new文件。

    4、more 和 less 命令

    1.more 命令

    是 Linux 系统中经常用到的命令,它的主要功能是可以按页显示文件及内容,如果一个文本文件的内容很多,可以用 more 命令来分页查看文件中的内容,具体语法格式如下:

    (1)语法:more [-选项] [参数] 文件名

    (2)参数:

    -n: n是整数,用于建立大小为n行长的窗口。窗口大小是在屏幕上显示多少行。

    -c: 用more给文本翻页时通过从头清除一行,然后再在最后写下一行的办法写入。通常,more清除屏幕,再写每一行。

    -d: 显示 “Press space to cpntinue, ‘q’ quit”代替more的缺省提示符。

    -f: 计算逻辑行代替屏幕行。长行在屏幕上换行显示,通常被more计算为新的一行;-f标志对长行的换行显示不计数。

    -s: 多个空行压缩处理为一个。

    -p: 不滚屏,代替它的是清屏并显示文本。

    -u: 禁止加下划线。

    (3)对象:对象为文件名,即希望用more显示文件内容的文件。

    (4)举例:

    #more  /etc/httpd/conf/httpd.conf

    #more –20 /etc/httpd/conf/httpd.conf

    #more –s  /etc/httpd/conf/httpd.conf

    2.less 命令

    类似 more 命令,它的主要功能也是可以按页显示文件及内容,并允许在文件中向前和向后移动,其具体语法格式如下:

    (1)语法:less [-选项] [参数]  文件名

    (2)参数:

     -?:本选项显示less接收的命令小结。若给出本选项则忽略其他选项,less保留并在帮助屏后显示。
     
     -a:在当前屏幕显示的最后一行之后开始查询。
     
     -c:从顶行向下全屏重写。

      -C:象-c,但在写之前清屏。

    -e:第二次到文件尾后自动退出less。若缺省,唯一退出less的方式是通过q命令。

     -E:第一次到文件尾后自动退出less。
     
     -i:区分大小写查询。
     
     -n:去掉行号。
     
     -q:产生相对安静的操作。当试图向文件尾之后或文件头之前滚动时,终端铃不响;在产生其他错误时,如键入非法字符,终端铃响。
     
     -Q:产生完全安静的操作。
     
     -s:将多个空行压缩成一个空行。
     
     -x n:每次按制表符走n格,n的缺省值是8。

    (3)对象:对象为文件名,即希望用less显示文件内容的文件。

    (4)举例:

    #less  /etc/httpd/conf/httpd.conf

    #less –s  /etc/httpd/conf/httpd.conf

    技巧:

    前面的内容已经提示了,我们不但可以用more和less显示文本文件的内容,而且可以把那些输出到标准输出(屏幕)上的信息都通过管道符放到more和less中来显示,这样所有的命令就都有分屏显示功能了!如下下面的命令:

    #find / -name *sh | more

    #ls -l /var/named | less

    #ps aux | more

    5、head 和 tail 命令

    1.head 命令

    主要功能是从前显示文件内容,具体格式如下:

    语法:  head  文件名

    head –n  文件名

       (2)参数:

    -n:    从文件开始数第n行之间的文件内容。

    对象:  对象为文件,即希望查看文件内容的文件名。若对象为空,则使用标准输入。

    (4) 举例:

    #head  /var/log/message

    #head –50 /var/log/message

    [ 应用实例:head] 

    我们在某些时候,会需要知道系统在启动时的排在前几个的进程还有哪些在活动,就可以使用head:

     # ps aux | head 

    这时系统就会把排位前10的进程列出,正是我们需要的。

    1. tail 命令

    主要功能是从后显示文件及内容,具体格式如下:

    (1)语法: tail –f  文件名

                      tail –n  文件名

    (2)参数:

    -f:    若用此选项而输入不是标准输入,tail监控文件增长。这是无限循环输出,必须用中断键中止。

    -n:    从文件末尾倒数第n行开始观察文件。以行为单位的偏移量文件中开始观察的位置。如果以-开头,则从文件尾开始算;以+开关,从文件开始算。

    对象: 对象为文件,即希望查看文件内容的文件名。若对象为空,则使用标准输入。

    (4) 举例:

    #tail –f  /www/log/access.log

    #tail –50 /var/log/messages

    [ 应用实例:tail] 

      我们在调试某些服务的时候,需要在过程中不断地查看系统日志给出的信息,来帮助修改。如调试named服务的时候,错误信息都会加到/var/log/messages的末尾去。实际上系统中大部分日志都储存在这个文件里。这时我们可以用cat、more、less等工具来显示,但messages文件有几千行内容是很平常的事情,用这些工具可能需要翻屏一二百屏,才能到最后我们想看的内容,这样的效率非常低下。而使用tail是恰到好处的。如下面的命令行:
     
     # tail /var/log/messages  
     
        我们做一次named.conf文件的修改,启动named进程,马上就可以tail一下messages文件,看一看刚刚在named启动时发生了什么事情。反复查看反复修改,直至最后找出问题。

    6、rm 命令

    rm 命令的功能是删除文件,是 Linux 系统不可缺少的常用的基本命令,其具体格式如下所示:

       (1)语法:rm  [-选项] [参数]  文件

     (2)参数:

    -r: 删除文件列表中指定的目录,若不用此标志则不删除目录。

    -i: 指定交互模式。在执行删除前提示确认。任何以Y开始的响应都表示肯定;其他则表示否定。

    -f: 指定强行删除模式。通常,在删除文件权限可满足时rm提示。本标志强迫删除,不用提示。

    -V: 详细模式。在删除前回显文件名。

    --: 指明所有选项结束。用于删除一个文件名与某一选项相同的文件。例如:假定偶然建立了名为-f的文件,又打算删除它,命令rm –f不起任何作用,因为f被解释成标志而不是文件名;而命令rm -- -f能成功地删除文件。

    (3)对象:上面语法中的文件是rm命令执行的对象,这里指的文件可以是单个文件、文件列表(多个文件)或者是目录。

    举例:

    #rm –rf /tmp/*

    #rm  /tmp/abc.log

    提示:

    在Linux中我们可以利用alias别名把rm转为了rm –i,比如:

    #alias rm = ‘rm –i‘

    这样我们在删除文件和目录时系统就会提示一下,确认之后再删,提高了删除操作的安全性。但注意如果加了“-f”选项的话,rm还是会问也不问,直接删除的。

    7、cp 命令

    cp 命令类似Dos命令中的copy命令,用于文件及目录之间的复制,其具体格式如下:

    (1)语法 :cp [选项] 源文件   目标文件

    cp [选项] 源文件组  目标目录

    (2)参数:

    -a: 在备份中保持尽可能多的源文件结构和属性。

    -b: 作将要覆盖或删除文件的备份。

    -d: 将符号连接作为符号连接拷贝,而不拷贝它们所指的文件。并在备份中保持源文件间固有的连接关系

    -f: 删除已存在的目标文件。

    -i: 提示是否覆盖已存在的目标文件。

    -l: 形成固有连接以代替非目录的拷贝。

    -P: 通过加入目标目录分支和指定的源文件名形成每个目标文件名。给cp的最后一个变量必须是已存在的目录的名字。

    -p: 保持原先文件的所有者,组,权限和时间标志。

    -r: 递归拷贝目录,把所有非目录文件当普通文件拷贝。

    -s: 建立符号连接,代替非目录文件的拷贝。如果目标文件不在当前目录,所有的源文件名必须是绝对路径(从‘/’开始)。对不支持符号连接的系统,本选项将产生一个错误信息。

    -u: 更新选项。目标是非目录自己经存在并具有相同的或更新的修改时间,则不拷贝。

    -v: 在拷贝前打印每个文件名。

    -x: 从开始拷贝的文件开始,跳过在不同文件系统上的子目录。

    -R: 递归拷贝目录。

    -S: 用于产生备份文件的后缀。可以SIMPLE_BACKUP_SUFFIX环境变量建立,它能被此选项绕过。若以上都未给出,缺省值是~。

    (3)对象:

    源文件 : 要拷贝的文件。

    目标文件:文件名。也可以是目录名,这种情况下,源文件名作为目标文件名,而文件放在该目录下。

    源文件组:要拷贝文件的由空格分隔的列表。

    目标目录:目标目录。

    (4)举例:

    #cp  /home/oracle  /root

    #cp –R /home/oracle /root

    #cp –r /home/*    /tmp

    8、mv 命令

    mv 命令的功能为移动文件(包括目录),如果在同一目录进行此操作,则是对相应对象进行改名。具体格式如下:

    (1)语法:   mv [-f] [-i] 文件1 文件2 ……

      mv [-f] [-i] 目录1 目录2 ……
     
      mv [-f] [-i] 文件列表 目录

       (2)参数:

    -f: 通常目标文件存在且没有写权,mv会提示信息。本选项使mv执行移动而不作提示。

    -i: 交互模式,在改写文件前提示。

    -R:  递归移动目录。注意需要移动子目录时一定要加上

    (3)对象:

     文件1:源文件名。
     
     文件2:目标文件名(新文件名)。
     
     目录1:源目录名。
     
     目录2:目标目录名(新目录名)。
     
     目录 :目标目录。
     
     文件列表:用空格分隔的文件名列表。用于文件保持它们的名字但移到一个新目录。

    (4)举例:

    #mv  /tmp/abc.log   /home/oracle

    #mv  -R  /home/test  /home    

    #mv  /home/yani/.  /tmp 

    9、ln 命令

    ln 命令的功能主要是链接文件,其具体格式如下:

    (1)语法: ln [-选项] [参数] 文件1 文件2

    (2)参数:

      -f :  链结时先将与 dist 同档名的档案删除

    -d : 允许系统管理者硬链结自己的目录

    -i : 在删除与 dist 同档名的档案时先进行询问

    -n : 在进行软连结时,将 dist 视为一般的档案

    -s : 进行软链结(symbolic link)

    -v : 在连结之前显示其档名

    -b : 将在链结时会被覆写或删除的档案进行备份

    -S SUFFIX: 将备份的档案都加上 SUFFIX 的字尾

    -V METHOD: 指定备份的方式

    --help : 显示辅助说明

    --version: 显示版本

    (3)对象:

    文件1 : 指源文件或目录

    文件2 : 指生成的连接文件或目录

    (4)举例:

    #ln -s yy zz

    说明: 上面一行命令的结果是ln命令将文件 yy 链接,并产生一个链接文件 zz。

    10、find 命令

    find 命令是Linux系统中非常重要的一个命令,它的主要功能是用来查找文件或目录。其具体格式如下:

    (1)语法:find  [-选项] [参数] 文件 匹配标准  

    (2)参数:

      -name文件: 告诉find要找什么文件;要找的文件包括在引号中,可以使用通配符(*和?)

    -perm模式: 匹配所有模式为指定数字型模式值的文件。不仅仅是读,写和执行,所有模式都必须匹配。如果在模式前是负号(-),表示采用除这个模式的所有模式。

    -type x:   匹配所有类型为x的文件。x是c(字符特殊),b(块特殊),d(目录),p(有名管道),l(符号连接),s(套接文件)或f(一般文件)。

    -links n:  匹配所有连接数为n的文件。

    -size n:  匹配所有大小为n 块的文件(512字节块,若k在n后,则为1K字节块)。

        -user用户号:匹配所有用户序列号是前面所指定的用户序列号的文件,可以是数字型的值或用户登录名。

    -atime n: 匹配所有在前n天内访问过的文件。

    -ctime n: 匹配所有在前n天内文件状态被修改过的文件。

    -mtime n:  匹配所有在前n天内文件数据被修改过的文件。

    -exec命令:对每个匹配文件执行指定命令,标志{}用于指定命令执行时文件名出现的地方。命令必须终止于转义分号( ;)。 这里,命令ls用-d变元执行,每个文件在发现{}的地方传给ls。

    -newer文件:匹配所有修改时间比file文件更新的文件。

    (3)对象:

    文件: 上面语法中的文件是find命令执行的对象,这里指的文件希望查询的单个文件、文件列表(多个文件)或者是目录。

    匹配标准: 希望查询的文件的匹配标准或说明。

    (4)举例:(root权限)

    #find /home  -name admin  

    #find / -ctime  3

    (5)说明: 第一行命令实现在/home目录下查找admin的文件或目录;第二行命令实现在/ 目录下查找前三天修改过的文件或目录。

    11、 file 命令

    file 命令是查看文件类型的命令,具体格式如下:

    (1)语法:file  [-选项] [参数] 文件

    (2)参数:

    -c: 打印输出幻数文件的分析形式。这通常用于与-m联合使用。在安装一个新的幻数文件之前调试它。

    -z: 深入观察一个压缩文件,并试图查出它的类型。

    -L: 本选项允许符号连接。

    -m文件: 指定用于说明文件类型的幻数的一个替换文件。

    (3)对象: 上面语法中的文件是file命令执行的对象,这里指的文件是希望查询文件类型的单个文件、文件列表(多个文件)或者是目录,甚至目录列表。

    (4)举例:

    #file  /var/log/message

    #file  /var/log  /var/log1 /var/log2

    #file –z /home/yani/apache1.3.2.tar.gz

    四、属性与权限命令

       在 Linux 系统中,每个文件和目录都有自己的属性和存取权限,这样一来,通过属性的设置,就可以决定不同用户或组之间的文件授权的访问。而文件权限可以决定哪些用户可以读、写或者执行一个文件。下面这节中的内容属要是介绍在 Linux 系统中改变目录文件属性与权限的命令。

    属性与权限命令如下所示:

    chown    改变属主

    chgrp     改变属组

    chmod    改变或设置文件或目录的存取权限

    umask    设置限制新文件权限的掩码

    1、chown 命令

    (change owner) ——改变文件(或目录)的拥有者或所属组

    格式:chown 用户名 文件或目录名

    例如:

    [root @wl /root]#chown wl chap1.txt

    把文件chap1.txt的拥有者改为wl用户。

    [root @wl /root]#chown wl:root chap1.txt

    把chap1.txt文件的拥有者改为wl用户,同时文件的所属组改为root组。

    2、chgrp 命令

    chgrp (change group)   ——改变文件或目录的所属组

    格式:chgrp 组 文件或目录

    chown可以同时改变文件拥有者和所属者,chgrp只具有改变所属组的功能。

    例如:

      [root @wl /root]#chgrp root chap1.txt

    文件chap1.txt的所属组设为root组。

    3、chmod命令

    该命名改变或设置文件或目录的存取权限。

    格式:chmod [选项] 文件和目录列表

    选项:根据表示权限的方式不同,该命令支持以下两种设定权限的方法。

    (1)使用字符模式设置权限

    在这种模式下,用u、g、o和a来表示不同用户。其中,u表示文件主,g表示同组用户,o表示其他用户,a表示所有用户。

    用r、w、x来表示权限,其中,r表示文件可读,w表示可以写,x表示可以执行。

    对文件权限的设置通过+、−和=来完成。其中,+表示在原有权限上添加某个权限,−表示在原有权限上取消某权限;=赋予给定权限并取消以前所有权限。

    (2)使用八进制设置权限

    文件和目录的权限还可用八进制数字模式来表示。3个八进制数字分别代表ugo的权限,读、写、执行权限所对应的数值分别是4、2和1。若要rwx属性,则4+2+1=7;若要rw−属性,则4+2+0=6;若要r−x属性,则4+0+1=5。

    【例3-34】将文件ex1的权限改为所有用户都可执行权限。

    [studentL@localhost studentL]#chmod a+x ex1

    【例3-35】将文件ex1的权限重新设置为文件主可以读和执行,组用户可以执行,其他用户无权访问。

    采用字符模式:

    [root@localhost/root]#chmod  u=r,ug=x  ex1

    采用八进制模式:

    [root@localhost/root]#chmod  510  ex1

    【例3-36】将文件ex1的文件主和同组用户具有读写权限,但其他用户只可读。

    采用字符模式:

    [root@localhost /root]#chmod  ug=r,ug=w,o=r  ex1

    采用八进制模式:

    [root@localhost /root]#chmod  664  ex1

    4、umask命令

    该命令用来设置限制新文件权限的掩码。当新文件被创建时,其初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行,并自动设置掩码改变默认值,新的权限将会把旧的覆盖。

    格式:umask [选项] [掩码]

    选项:-s:显示当前的掩码

    掩码与chmod命令中各选项用法相同

    【例3-37】设置用户的掩码为文件主具有读、写、执行权限

    同组用户具有读、写权限,其他用户具有读权限。

    采用字符模式:

    [studentL@localhost studentL]#umask  u=rwx,g=rw,o=r

    采用八进制模式:

    [root@localhost studentL]#umask  017 

    【例3-38】显示当前掩码。

    [studentL@localhost studentL]

    #umask -S

    u=rwx,g=rw,o=r

    五、文件压缩gizp、gunzip及tar命令

    1、gzip  

       在linux系统里经常会碰到.gz这样的后缀名,这个.gz表示压缩格式的文件。那这样的.gz压缩格式的文件是怎么做出来的?这就用到压缩软件gzip

    格式: gzip   [选项]  文件名

    选项:

    -c:解压缩保留源文件;

    -d:解开压缩文件;

    -r:递归处理,将指定目录下的所有文件及子目录一并处理;

    -t:测试压缩文件是否正确无误

    示例:

    把/usr/liu目录下的文件都压缩成.gz

    root@liu-virtual-machine:# cd  /usr/liu

    root@liu-virtual-machine:/usr/liu# gzip  *

    2、gunzip

    gunzip命令用来解压缩文件。gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为.gz。事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。

    例:将上述例子进入解压。

    root@liu-virtual-machine:/usr/liu# gunzip  *

    3、tar打包命令 

    tar是linux下用来打包的命令,打包就是把多个文件包起来成为一个文件,这里必须注意打包只是将多个文件变成一个文件,并没有对这多个文件进行压缩。

    tar的命令选项是非常多的,这也说明tar程序的功能非常强大。

    格式: tar    [选项]    生成打包文件名     需打包源文件

    这里需要注意生成包名和需打包文件名的次序。

    !!特别提醒:这里生成的打包文件名是用户自己定义的,最好在取名的时候加上.tar的后缀名以便区分。

    -z:是否同时具有gzip的属性.

    -x:解开一个压缩档案的参数指令!

    -t:查看tarfile里面的档案!

    -c:建立一个压缩文档的参数!

    -v:显示压缩过程

    -f:生成压缩文件的名字

    -N:此后接的日期(yyyy/mm/dd)还要新的才会被打包进新建的档案中!

    --exclude file:在压缩的过程中,不要将此后file打包!

    #tar  cvf    directory.tar directory       //只将目录整合打包成一个文档

    #tar   zcvf   filename.tar.gz    /test/*    //将/test/下的所有文件全部打包并压缩成一个文件

    #tar  xvf       directory.tar     //解开tar的封包。

    #tar  zxvf   directory.tar.gz   //解开gzip的压缩包。

    六、软件安装命令

      Linux的应用软件的安装,有多种命令,根据不同的安装包,可采用不同的命令方法。

    一、rpm包安装方式步骤 (红帽发行的,只能安装已经下载到本地机器上的rpm 包)


         1、找到相应的软件包,比如soft.version.rpm,下载到本机某个目录;

        2、打开一个终端,su -成root用户;

        3、cd soft.version.rpm所在的目录;

        4、输入rpm -ivh soft.version.rpm

    二、deb包安装方式步骤:

        1、找到相应的软件包,比如soft.version.deb,下载到本机某个目录;

        2、打开一个终端,su -成root用户;

        3、cd soft.version.deb所在的目录;

        4、输入dpkg -i soft.version.deb

    三、tar.gz源代码包安装方式:

    1、找到相应的软件包,比如soft.tar.gz,下载到本机某个目录;

    2、打开一个终端,su -成root用户;

    3、cd soft.tar.gz所在的目录;

    4、tar -xzvf soft.tar.gz //一般会生成一个soft目录

    5、cd soft

    6、./configure

    7、make

    8、make install

    四、tar.bz2源代码包安装方式:

    1、找到相应的软件包,比如soft.tar.bz2,下载到本机某个目录;

    2、打开一个终端,su -成root用户;

    3、cd soft.tar.bz2所在的目录;

    4、tar -xjvf soft.tar.bz2 //一般会生成一个soft目录

    5、cd soft

    6、./configure

    7、make

    8、make install

    五、apt方式安装:(安装deb包)

    1、打开一个终端,su -成root用户;

    2、apt-cache search soft 注:soft是你要找的软件的名称或相关信息

    3、如果2中找到了软件soft.version,则用apt-get install soft.version命令安装软件

    注:只要你可以上网,只需要用apt-cache search查找软件,用apt-get install安装软件 ,apt-get是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似。

    六、yum方式安装:(安装rpm包)

    rpm 是linux的一种软件包名称,以.rpm结尾,安装的时候语法为:rpm -ivh。
    rpm包的安装有个很大的缺点就是文件的关联性太大,有时装一个软件要安装很多其他的软件包,很麻烦。
    所以为此RedHat小红帽开发了yum安装方法,他可以彻底解决这个关联性的问题,很方便,只要配置两个文件即可安装,安装方法是:yum -y install 。
    yum并不是一种包,而是安装包的软件。

    简单的说: rpm 只能安装已经下载到本地机器上的rpm 包. yum能在线下载并安装rpm包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是rpm 工具所不具备的。
    七、bin文件安装:
    如果你下载到的软件名是soft.bin,一般情况下是个可执行文件,安装方法如下:

    1、打开一个终端,su -成root用户;

    2、chmod +x soft.bin

    3、./soft.bin //运行这个命令就可以安装软件了

    八、不需要安装的软件:

    有了些软件,比如lumaqq,是不需要安装的,自带jre解压缩后可直接运行。假设下载的是lumaqq.tar.gz,使用方法如下:

    1、打开一个终端,su -成root用户;

    2、tar -xzvf lumaqq.tar.gz //这一步会生成一个叫LumaQQ的目录

    3、cd LumaQQ

    4、chmod +x lumaqq //设置lumaqq这个程序文件为可运行

    5、此时就可以运行lumaqq了,用命令./lumaqq即可,但每次运行要输入全路径或

    切换到刚才生成的LumaQQ目录里

    6、为了保证不设置路径就可以用,你可以在/bin目录下建立一个lumaqq的链接,

    用命令ln -s lumaqq /bin/ 即可,以后任何时候打开一个终端输入lumaqq就可以

    启动QQ聊天软件了

    7、 如果你要想lumaqq有个菜单项,使用菜单编辑工具,比如Alacarte Menu

    Editor,找到上面生成的LumaQQ目录里的lumaqq设置一个菜单项就可以了,当然你

    也可以直接到 /usr/share/applications目录,按照里面其它*.desktop文件的格

    式生成一个自己的desktop文件即可。

    下列是常用的方法

    wget      //wget是一个下载文件的工具,Linux用户可下载一些软件或从远程服务器恢复备份到本地服务器,支持HTTP,HTTPS和FTP协议。

    rpm        //rpm命令是RPM软件包的管理工具。可用来检查、安装,卸载rpm软件包。

    yum        //红帽发行版的包管理工具

    1、wget

    wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器。

      wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成

    用法: wget [选项]... [URL]...

    选项:

      开始: -V,  --version           显示 Wget 的版本信息并退出。
            -h,  --help              打印此帮助。
            -b,  --background        启动后转入后台。
            -e,  --execute=COMMAND   运行一个‘.wgetrc’风格的命令。
        登入并输入文件:

          -o,  --output-file=FILE    将信息写入 FILE。
     
        -a, --append-output=FILE 将信息添加至 FILE。
        -d, --debug               打印大量调试信息。
        -q, --quiet               安静模式(无信息输出)。
        -v, --verbose             详尽的输出(此为默认值)。
        -nv, --no-verbose         关闭详尽输出,但不进入安静模式。
        -i, --input-file=FILE     下载本地或外部 FILE 中的 URLs。
        -F, --force-html         把输入文件当成 HTML 文件。
        -B, --base=URL           解析与 URL 相关的
                                  HTML 输入文件(由 -i -F 选项指定)。

    下载:
      -t,  --tries=NUMBER           设置重试次数为 NUMBER (0 代表无限制)。
            --retry-connrefused       即使拒绝连接也是重试。
      -O,  --output-document=FILE    将文档写入 FILE。
      -nc, --no-clobber              不要重复下载已存在的文件。
      -c,  --continue                继续下载部分下载的文件。
           --progress=TYPE           选择进度条类型。
      -N,  --timestamping            只获取比本地文件新的文件。
      -S,  --server-response         打印服务器响应。
           --spider                   不下载任何文件。
      -T,  --timeout=SECONDS         将所有超时设为 SECONDS 秒。
           --dns-timeout=SECS        设置 DNS 查寻超时为 SECS 秒。
           --connect-timeout=SECS    设置连接超时为 SECS 秒。
           --read-timeout=SECS       设置读取超时为 SECS 秒。
      -w,  --wait=SECONDS            等待间隔为 SECONDS 秒。
           --waitretry=SECONDS       在取回文件的重试期间等待 1..SECONDS 秒。
           --random-wait             取回时等待 0...2*WAIT 秒。
           --no-proxy                关闭代理。
      -Q,  --quota=NUMBER            设置取回配额为 NUMBER 字节。
           --bind-address=ADDRESS    绑定至本地主机上的 ADDRESS (主机名或是 IP)。
           --limit-rate=RATE         限制下载速率为 RATE。
           --no-dns-cache            关闭 DNS 查寻缓存。
           --restrict-file-names=OS  限定文件名中的字符为 OS 允许的字符。
           --ignore-case             匹配文件/目录时忽略大小写。
      -4,  --inet4-only              仅连接至 IPv4 地址。
      -6,  --inet6-only              仅连接至 IPv6 地址。
           --prefer-family=FAMILY    首先连接至指定协议的地址
                                     FAMILY 为 IPv6,IPv4 或是 none。
           --user=USER               将 ftp 和 http 的用户名均设置为 USER。
           --password=PASS           将 ftp 和 http 的密码均设置为 PASS。
           --ask-password           提示输入密码。
           --no-iri                关闭 IRI 支持。
           --local-encoding=ENC      IRI 使用 ENC 作为本地编码。
           --remote-encoding=ENC     使用 ENC 作为默认远程编码。
    目录:
      -nd, --no-directories           不创建目录。
      -x,  --force-directories        强制创建目录。
      -nH, --no-host-directories      不要创建主目录。
           --protocol-directories     在目录中使用协议名称。
      -P,  --directory-prefix=PREFIX  以 PREFIX/... 保存文件
           --cut-dirs=NUMBER          忽略 NUMBER 个远程目录路径。
    HTTP 选项:
           --http-user=USER        设置 http 用户名为 USER。
           --http-password=PASS    设置 http 密码为 PASS。
           --no-cache              不在服务器上缓存数据。
           --default-page=NAME     改变默认页
                                   (默认页通常是“index.html”)。
      -E,  --adjust-extension      以合适的扩展名保存 HTML/CSS 文档。
           --ignore-length         忽略头部的‘Content-Length’区域。
           --header=STRING         在头部插入 STRING。
           --max-redirect          每页所允许的最大重定向。
           --proxy-user=USER       使用 USER 作为代理用户名。
           --proxy-password=PASS   使用 PASS 作为代理密码。
           --referer=URL           在 HTTP 请求头包含‘Referer: URL’。
           --save-headers          将 HTTP 头保存至文件。
      -U,  --user-agent=AGENT      标识为 AGENT 而不是 Wget/VERSION。
           --no-http-keep-alive    禁用 HTTP keep-alive(永久连接)。
           --no-cookies            不使用 cookies。
           --load-cookies=FILE     会话开始前从 FILE 中载入 cookies。
           --save-cookies=FILE     会话结束后保存 cookies 至 FILE。
           --keep-session-cookies  载入并保存会话(非永久) cookies。
           --post-data=STRING      使用 POST 方式;把 STRING 作为数据发送。
           --post-file=FILE        使用 POST 方式;发送 FILE 内容。
           --content-disposition   当选中本地文件名时
                                   允许 Content-Disposition 头部(尚在实验)。
           --auth-no-challenge     send Basic HTTP authentication information
                                   without first waiting for the server's
                                   challenge.
    HTTPS (SSL/TLS) 选项:
           --secure-protocol=PR     选择安全协议,可以是 auto、SSLv2、
                                    SSLv3 或是 TLSv1 中的一个。
           --no-check-certificate   不要验证服务器的证书。
           --certificate=FILE       客户端证书文件。
           --certificate-type=TYPE  客户端证书类型, PEM 或 DER。
           --private-key=FILE       私钥文件。
           --private-key-type=TYPE  私钥文件类型, PEM 或 DER。
           --ca-certificate=FILE    带有一组 CA 认证的文件。
           --ca-directory=DIR       保存 CA 认证的哈希列表的目录。
           --random-file=FILE       带有生成 SSL PRNG 的随机数据的文件。
           --egd-file=FILE          用于命名带有随机数据的 EGD 套接字的文件。
    FTP 选项:
           --ftp-user=USER         设置 ftp 用户名为 USER。
           --ftp-password=PASS     设置 ftp 密码为 PASS。
           --no-remove-listing     不要删除‘.listing’文件。
           --no-glob               不在 FTP 文件名中使用通配符展开。
           --no-passive-ftp        禁用“passive”传输模式。
           --retr-symlinks         递归目录时,获取链接的文件(而非目录)。
    递归下载:
      -r,  --recursive          指定递归下载。
      -l,  --level=NUMBER       最大递归深度( inf 或 0 代表无限制,即全部下载)。
           --delete-after       下载完成后删除本地文件。
      -k,  --convert-links      让下载得到的 HTML 或 CSS 中的链接指向本地文件。
      -K,  --backup-converted   在转换文件 X 前先将它备份为 X.orig。
      -m,  --mirror             -N -r -l inf --no-remove-listing 的缩写形式。
      -p,  --page-requisites    下载所有用于显示 HTML 页面的图片之类的元素。
           --strict-comments    开启 HTML 注释的精确处理(SGML)。
    递归接受/拒绝:
      -A,  --accept=LIST               逗号分隔的可接受的扩展名列表。
      -R,  --reject=LIST               逗号分隔的要拒绝的扩展名列表。
      -D,  --domains=LIST              逗号分隔的可接受的域列表。
           --exclude-domains=LIST      逗号分隔的要拒绝的域列表。
           --follow-ftp                跟踪 HTML 文档中的 FTP 链接。
           --follow-tags=LIST          逗号分隔的跟踪的 HTML 标识列表。
           --ignore-tags=LIST          逗号分隔的忽略的 HTML 标识列表。
      -H,  --span-hosts                递归时转向外部主机。
      -L,  --relative                  只跟踪有关系的链接。
      -I,  --include-directories=LIST  允许目录的列表。
      -X,  --exclude-directories=LIST  排除目录的列表。
      -np, --no-parent                 不追溯至父目录。
    wget命令展示:

     

    使用wget -O下载并以不同的文件名保存(-O:下载文件到对应目录,并且修改文件名称)


    wget -O wordpress.zip http://www.minjieren.com/download.aspx?id=1080

    使用wget -b后台下载

    wget -b http://www.minjieren.com/wordpress-3.1-zh_CN.zip

    备注: 你可以使用以下命令来察看下载进度:tail -f wget-log

    利用-spider: 模拟下载,不会下载,只是会检查是否网站是否好着

    [root@localhost ~]# wget --spider  www.baidu.com    #不下载任何文件
    模拟下载打印服务器响应

    [root@localhost ~]# wget -S  www.baidu.com     # 打印服务器响应
    设定指定次数

    [root@localhost ~]#  wget -r --tries=2  www.baidu.com       (指定尝试2次,2次后不再尝试)
    [root@localhost ~]# wget -r --tries=2 -q www.baidu.com    (指定尝试,且不打印中间结果)

    2、rpm

        rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。

    用法: rpm [选项...]
    选项:

    -a:查询所有套件;

    -b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,指定套件档的文件名称;
    -c:只列出组态配置文件,本参数需配合"-l"参数使用;
    -d:只列出文本文件,本参数需配合"-l"参数使用;
    -e<套件档>或--erase<套件档>:删除指定的套件;
    -f<文件>+:查询拥有指定文件的套件;
    -h或--hash:套件安装时列出标记;
    -i:显示套件的相关信息;
    -i<套件档>或--install<套件档>:安装指定的套件档;
    -l:显示套件的文件列表;
    -p<套件档>+:查询指定的RPM套件档;
    -q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
    -R:显示套件的关联性信息;
    -s:显示文件状态,本参数需配合"-l"参数使用;
    -U<套件档>或--upgrade<套件档>:升级指定的套件档;
    -v:显示指令执行过程;
    -vv:详细显示指令执行过程,便于排错。
    安装rpm软件包指令:

    #rpm -qa |grep your-package       #检查是否安装了your-package

    #rpm -ivh your-package                # 直接安装

    #rpm --force -ivh your-package.rpm    # 忽略报错,强制安装

    利用光盘安装:

    #rpm -qa |grep samba   #检查是否安装了Samba服务器

    #mount /dev/cdrom /mnt    #将光驱加载到/mnt目录

    #rpm -ivh /mnt/Packages/your-package.rpm   #从/mnt/Packages/中安装你的rpm软件

    卸载rpm软件包:

    #rpm -ql tree        # 查询tree

    #rpm -e tree          # 卸载tree

    #rpm -ql tree         # 查询tree

    3、redHat 7.2 安装yum 切阿里源安装软件

             redhat 的更新包只对注册的用户生效,所以我们自己手动更改成CentOS 的更新包,CentOS几乎和redhat是一样的,所以无需担心软件包是否可安装,安装之后是否有问题。

             删除redhat原有的yum ,因为redhat 原本的yum 没有注册为redhat用户是用不了的。

    1.查看redhat版本

    2.查看yum的安装

    3.删除linux自带yum

    4.下载yum安装包rpm

    注意:可先进入http://mirrors.163.com/centos/7/os/x86_64/Package查看有无下列安装包

    可复制:

    # wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-3.4.3-163.el7.centos.noarch.rpm
    # wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
    # wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
    # wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-52.el7.noarch.rpm
    #wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-utils-1.1.31-52.el7.noarch.rpm
    #wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-urlgrabber-3.10-9.el7.noarch.rpm

    5. 安装yum:

    复制代码:

    #rpm -ivh yum-metadata-parser-1.1.4-10.el7.x86_64.rpm  --force --nodeps
    #rpm -ivh yum-3.4.3-163.el7.centos.noarch.rpm --force --nodeps
    #rpm -ivh  yum-plugin-fastestmirror-1.1.31-52.el7.noarch.rpm  --force --nodeps
    #rpm -ivh  yum-utils-1.1.31-52.el7.noarch.rpm  --force --nodeps
    #rpm -ivh  python-urlgrabber-3.10-9.el7.noarch.rpm  --force --nodeps
    #rpm -ivh python-iniparse-0.4-9.el7.noarch.rpm

    6、下载阿里镜像到/etc/yum.repos.d/目录下

    # wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    7、修改刚下载的文件 将所有$releasever替换为7

    # vim /etc/yum.repos.d/CentOS-Base.repo

    # :%s/$releasever/7/g

    修改配置文件CnetOS-Base.repo,通过vim编辑器打开CnetOS-Base.repo , 替换releasever命令:%s/$releaserver/7/g ,wq保存退出。

    注:g标示全局替换,将$releaserver替换为7,这里替换的是centos版本,安装cdh时候回到指定目录下载相关文件,最好是在浏览器打开baseurl路径,查看指定路径下的数据包是否存在,不存在请使用其他版本。

    8、运行以下命令即可

    # yum clean all

    # yum makecache

    # yum update


    9.现在可用yum安装应用软件了,以安装设置五笔输入法为例

    Centos中可以查到有两种五笔输入法,一种是极点,一种是海峰。这里以极点五笔输入法为例进行安装设置。

    1. 查找五笔

    $yum list|grep “wubi”

    2. sudo yum install 来安装极点五笔输入法。

    $sudo yum install ibus-table-chinese-wubi-haifeng.noarch

    3. 安装完成需要重启一下系统。

    $reboot

    4. ibus添加输入法

    执行ibus-setup,如下图所示,点击“输入法“选项卡。

    $ibus-setup

    5. 点击“添加”按钮。

    6. 点击“汉语”。

    7. 选中“极点五笔输入法”点击“添加”。

    8. 设置完成后,点击“关闭”按钮。

    9. 设置输入源

    点击“应用程序”——“系统工具”——”设置“。

    10. 点“Region & language"。

    在显示的界面点“输入源”下面点击“+”。

    11. 点击“汉语“。

    12. 选择"极点五笔”,点击“添加”。

    13. 之后就可以看到添加成功了,如下图所示。

  • 相关阅读:
    深入浅出 Java Concurrency (4): 原子操作 part 3 指令重排序与happens-before法则
    深入浅出 Java Concurrency (3): 原子操作 part 2
    深入浅出 Java Concurrency (2): 原子操作 part 1
    深入浅出 Java Concurrency (1) : J.U.C的整体认识
    java中关键字volatile的作用
    教你如何迅速秒杀掉:99%的海量数据处理面试题(转)
    STL容器介绍(转)
    IoC框架
    LeetCode 548. Split Array with Equal Sum (分割数组使得子数组的和都相同)$
    LeetCode 533. Lonely Pixel II (孤独的像素之二) $
  • 原文地址:https://www.cnblogs.com/relitty/p/12832050.html
Copyright © 2020-2023  润新知