欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux常用命令(详细)

程序员文章站 2022-03-28 19:38:46
Linux常用命令 一、控制台相关命令 控制台命令就是指通过字符界面输入的可以操作系统的命令。我们现在要了解的是基于Linux操作系统的基本控制台命令。不同于图形模式的一种类似文本编辑器的运行命令的环境。在远程登陆控制或是操作没有图形环境的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

使用wget -b后台下载

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

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

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

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

[root@localhost ~]# wget -s       # 打印服务器响应
设定指定次数

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

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版本

Linux常用命令(详细)

2.查看yum的安装

Linux常用命令(详细)

3.删除linux自带yum

Linux常用命令(详细)

4.下载yum安装包rpm

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

Linux常用命令(详细)

可复制:

# 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:

Linux常用命令(详细)

复制代码:

#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”

Linux常用命令(详细)

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

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

Linux常用命令(详细)

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

$reboot

4. ibus添加输入法

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

$ibus-setup

Linux常用命令(详细)

5. 点击“添加”按钮。

Linux常用命令(详细)

6. 点击“汉语”。

Linux常用命令(详细)

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

Linux常用命令(详细)

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

Linux常用命令(详细)

9. 设置输入源

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

Linux常用命令(详细)

10. 点“region & language"。

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

Linux常用命令(详细)

11. 点击“汉语“。

Linux常用命令(详细)

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

Linux常用命令(详细)

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

Linux常用命令(详细)