一、控制台相关命令
控制台命令就是指通过字符界面输入的可以操作系统的命令。我们现在要了解的是基于Linux操作系统的基本控制台命令。不同于图形模式的一种类似文本编辑器的运行命令的环境。在远程登陆控制或是操作没有图形环境的Linux系统时,控制台命令就有很大的用途了,建议大家一定要熟练掌握控制台模式下的命令操作,这样不管是否是在Linux系统的图形环境中操作,我们都可以完成指定的任务。有一点请注意,Linux的命令(也包括文件名等等)对大小写是敏感的,如“Abc”和“abc”会被认为是不一样的。如果输入的命令大小写不对的话,系统是不会做出你期望的响应的。
下面先给大家介绍几个与控制台命令相关的命令,如下所示:
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的进程列出,正是我们需要的。
-
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
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. 之后就可以看到添加成功了,如下图所示。