linux学习文档

一、 linux文件系统 
linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。 
文件系统树状结构如下: 
/  根目录 
┏━━━┳━━━┳━━━┳━━┳━━━┳━━┳━━┳━━┳━━━┳━━━━━┳━━┓ 
bin   home     dev     etc     lib      sbin   tmp    usr    var  lost+found    root 
linux采用的是树型结构。最上层是根目录,其他的所有目录都是从根目录出发而生成的。微软的DOS和windows也是采用树型结构,但是在DOS和windows中这样的树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,他们之间的关系是并列的。但是在linux中,无论操作系统管理几个磁盘分区,这样的目录树只有一个。从结构上讲,各个磁盘分区上的树型目录不一定是并列的。 
下面列出linux的一些主要目录的功用 
/bin: 存放用户命令文件。 
/home:存放用户主目录文件。     
/dev:存放设备特殊文件 。          
/etc:存放系统管理和配置文件。 
/etc/rc.d:存放启动的配置文件和脚本    
/lib: 存放标准程序设计库,又叫动态链接共享库。类似windows里的.dll文件 
/sbin:存放系统管理命令。   
/tmp:存放公用的临时文件存储点。 
/root:存放系统管理员的用户文件。     
/mnt:存放让用户临时挂载其他的文件系统。 
/lost+found:用于存放系统非正常关机产生的零散文件。 
/proc:存放虚拟的目录,是系统内存的映射。 
/var:存放某些大文件的溢出区,比方说各种服务的日志文件 。  
/usr:存放最庞大的目录,要用到的应用程序和文件几乎都在这个目录。 
Linux内核支持十多种不同类型的文件系统,对于Red Hat Linux,系统默认使用ext2或ext3和swap文件系统,下面对Linux常用的文件系统作一个简单介绍。 
ext2、ext3与swap文件系统介绍: 
ext是第一个专门为Linux设计的文件系统类型,称为扩展文件系统,在Linux发展的早期,起过重要的作用。由于稳定性,速度和兼容性方面存在许多缺陷,ext现已很少使用。 
ext2是为解决ext文件系统存在的缺陷而设计的可扩展、高性能的文件系统,称为二级扩展文件系统。ext2于1993年发布,在速度和CPU利用率上具有较突出的优势,是GNU/Linux系统中标准的文件系统,支持256个字节的长文件名,文件存取性能极好。 
ext3是ext2的升级版本,兼容ext2,在ext2的基础上,增加了文件系统日志记录功能,称为日志式文件系统。日志式文件系统在因断电或其他异常事件而停机重启后,操作系统会根据文件系统的日志,快速检测并恢复文件系统到正常的状态,并可提高系统的恢复时间,提高数据的安全性。若对数据有较高安全性要求,建议使用ext3文件系统。
swap文件系统用于Linux的交换分区。在Linux中,使用整个交换分区来提供虚拟内存,其分区大小一般应是系统物理内存的2倍,在安装Linux操作系统时,就应创分交换分区,它是Linux正常运行所必需的,其类型必须是swap,交换分区由操作系统自行管理。 

二、 linux命令介绍 
1. 查看linux版本信息 
1) uname –a 

2) lsb_release –a 

3) cat /proc/version 

4) cat /etc/issue 


2. ls 列出当前目录内容 
格式:ls  [选项]   目录或文件名 
-a:列出隐藏目录和文件。 
-c:按文件最后修改时间排序。 
-t:按最后修改的时间排序(新的在前,旧的在后)。 
-l:列出文件或目录的详细信息。 

1) ls -al:以详细方式列出所有文件。 

2) ll:同ls -l类似 

3) ls /boot直接显示boot目录下文件信息 
4) ls / 显示根目录信息 

5) ls -R 递归显示所有目录 

6) ls –ltr查看目录的所有文件信息(包括权限信息,同时排序) 
3. pwd 列出当前用户所在目录路径 
格式:pwd 

1) pwd:显示当前路径。 


4. cd更改当前目录路径。 
1) cd:     返回到当前用户的主目录。注意cd后面紧跟冒号 
2) cd ..    返回到当前目录的上一层目录,例当前目录为/home/user,使用该命令后将当前的目录返回到/home下。注意cd后面有空格。 
3) cd ~   返回到当前用户的主目录,适合任何用户。 
4) cd /    返回到根目录 /目录。 
5) cd ../..返回到当前目录的父目录,cd ../../..返回当前目录的父目录的父目录,该命令可以类推。 
  
5. mkdir    创建目录 
格式:mkdir   [选项]    目录名 

-m: 数字 设置目录权限。 
-p:  创建父目录并创建子目录。 
1) mkdir -p li/document     如果li目录不存在,则创建li目录和document目录。 

6. rmdir    删除空目录 
格式:rmdir   [选项]   目录名 

1) rmdir –pv link/doc:删除指定目录和该目录的祖先目录(路径中的目录必须非空,只要有任何一级目录不为空,则删除目录就会失败) 

rm -rfv:递归删除目录(r表示递归删除目录及其内容,f表示ignore nonexistent files, never prompt, v表示详细显示进行的步骤) 

7. cp    复制目录或文件 
格式:cp   [选项]   源文件目录    目标文件目录 

-a: 复制目录时保持文件属性。 
-f: 目标文件存在时,则不加提示的覆盖目标文件。 
-i: 目标文件存在时,则会让用户输入"Y"来确认是否覆盖。 
-r: 若源是一个目录,那么 cp将递归复制该目录下所有子目录和文件。 

1) cp -arf:递归复制该目录下的所有子目录和文件,且不加提示,同时保持文件属性。 

8. mv    移动或重命名文件或目录 
格式:mv   [选项]    源文件目录    目标文件目录 

-f: 覆盖目标文件时不加提示。 
-i: 交互式操作,覆盖时询问。 

1) mv –vf test2 test3将test2文件名修改为test3,且打印出详细信息。 

2) mv –vf mulu2 mulu1将mulu2移动到mulu1中,且打印出详细信息。 

9. rm    删除文件或目录 
格式:rm   [选项]    文件目录名 

-f: 删除时不加提示。 
-r: 删除目录包括子目录。 
-i: 交互式删除。 
1) rm –rf 文件或者文件夹名称:删除该目录以及子目录,且忽略不存在的文件。 

2) rm –rfv doc1:删除该目录以及子目录,且忽略不存在的文件,同时打印出详细信息。 

10. cat    显示文件 
格式:cat    [选项]   文件名 


11. vi    全屏幕编辑器 
格式:vi   [参数]   [文件] 

1) 重复操作命令 
Ctrl+r:重做上一个动作。(常用) 

2) 撤销命令 
u:复原前一个动作。(常用) 

3) 进入vi的命令 
vi filename :打开或新建文件,并将光标置于第一行首 
vi +n filename :打开文件,并将光标置于第n行首 
vi + filename :打开文件,并将光标置于最后一行首 
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename 
vi filename....filename :打开多个文件,依次编辑 

4) 移动光标类命令 
h 或 向左方向键(←) :光标左移一个字符 
l 或 向右方向键(→) :光标右移一个字符 
k 或 向上方向键(↑) 或 Ctrl+p :光标向上移动一行 
j 或 向下方向键(↓) 或 Ctrl+n :光标向下移动一行 
0:(注意是数字零)光标移至当前行首 
$:光标移至当前行尾 
G:光标移至文件最后一行首 
gg:光标移至第一行首 
nG:光标移至第n行首 
space:光标右移一个字符 
Backspace:光标左移一个字符 
Enter :光标下移一行 
w或W :光标右移一个字至字首 
b或B :光标左移一个字至字首 
e或E :光标右移一个字j至字尾 
) :光标移至句尾 
( :光标移至句首 
}:光标移至段落开头 
{:光标移至段落结尾 
n+:光标下移n行 
n-:光标上移n行 
n$:光标移至第n行尾 
H :光标移至屏幕顶行 
M :光标移至屏幕中间行 
L :光标移至屏幕最后行 

5) 屏幕翻滚类命令 
Ctrl+b;向文件首翻一屏 
Ctrl+f:向文件尾翻一屏 
Ctrl+u:向文件首翻半屏 
Ctrl+d:向文件尾翻半屏 
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 

6) 插入文本类命令 
Esc:退出插入命令使用其他命令 
i,I:在目前的光标所在处插入输入之文字,已存在的文字会向后 
a,A:a 为从目前光标所在的下一个字符处开始插入, A 为从光标所在行的最后一个字符处开始插入。(常用) 
o,O:o 为在目前光标所在的下一行处插入新的一行, O 为在目前光标所在处的上一行插入新的一行!(常用) 
r, R:r替换当前字符,R替换当前字符及其后的字符,直至按ESC键 
s,S:从当前光标位置处开始,以输入的文本替代指定数目的字符,S删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字 
nCC:修改指定数目的行 

7) 删除命令 
x或X:删除一个字符,x删除光标后的,而X删除光标前的 
Ctrl+u:删除输入方式下所输入的文本 
dd:删除游标所在的那一整列(常用) 
ndd:n 为数字。删除光标所在的向下 n 列,例如 20dd 则是删除 20 列 (常用) 
ndw或ndW:删除光标处开始及其后的n-1个字 
do:删至行首 
d$:删至行尾 
ndd:删除当前行及其后n-1行 

8) 复制命令 
yy:复制游标所在的那一行(常用) 
nyy:n 为数字。复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用) 
y1G:复制光标所在列到第一列的所有数据 
yG:复制光标所在列到最后一列的所有数据 
y0:复制光标所在的那个字符到该行行首的所有数据 
y$:复制光标所在的那个字符到该行行尾的所有数据 
p, P:p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用) 


9) 搜索及替换命令 
/pattern:从光标开始处从上到下搜索pattern 
?pattern:从光标开始处从下到上搜索pattern 
n:在同一方向重复上一次搜索命令 
ddp:上下两行的内容互换 
N:在反方向上重复上一次搜索命令 
:s/p1/p2/g:将当前行中所有p1均用p2替代 
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代 
:g/p1/s//p2/g:将文件中所有p1均用p2替换 
:1,$s/word1/word2/g:n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2  !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则: 『:100,200s/vbird/VBIRD/g』。(常用) 
:1,$s/word1/word2/g:从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2  !(常用) 
:1,$s/word1/word2/gc:从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2  !且在取代前显示提示字符给使用者确认 (conform) 是否需要取代!(常用) 

10) 最后行方式命令 
:w              :保存当前文件 
:x              :保存当前文件并退出 
:q              :退出vi 
:q!             :不保存文件并退出vi 
:wq!            :强制写入并保存(前提是当前用户有权限改变文件写入权限) 
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下 
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下 
:n1,n2 d :将n1行到n2行之间的内容删除 
:e filename:打开文件filename进行编辑 
:!command:执行shell命令command 
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指 
定n1,n2,则表示将整个文件内容作为command的输入 
:r!command:将命令command的输出结果放到当前行 。 
12. grep   在文本中搜索指定的字符串 
格式:grep  [options] [pattern] [文件] 
[options]主要参数: 
-c:只输出匹配行的计数。 
-I:不区分大小写(只适用于单字符)。 
-h:查询多文件时不显示文件名。 
-l:查询多文件时只输出包含匹配字符的文件名。 
-n:显示匹配行及行号。 
-s:不显示不存在或无匹配文本的错误信息。 
-v:显示不包含匹配文本的所有行。 

[pattern]主要参数: 
:忽略正则表达式中特殊字符的原有含义。 
^:匹配正则表达式的开始行。 
$: 匹配正则表达式的结束行。 
<:从匹配正则表达式的行开始。 
>:到匹配正则表达式的行结束。 
[ ]:单个字符,如[A]即A符合要求 。 
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。 
。:所有的单个字符。 
* :有字符,长度可以为0。 

1) grep –i [要搜索的字符串] [要搜索的文件],注意i表示忽略大小写。例如:grep –i wo test.txt 

2) grep –l [要搜索的字符串] [要搜索的文件],注意l表示列出匹配的文件名。例如:grep -l wo test.txt 

3) grep ^th test.txt,在test.txt中搜索以th开头的行 

4) grep "145608157732696" reso*   在以reso开头的resourcePool.log文件中查找其内容包含145608157732696的文件 
5)
13. find 在目录中查找 
格式: find pathname -options [-print -exec -ok ...] 
Pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。 

Option参数: 
-name 按照文件名查找文件。 
-perm 按照文件权限来查找文件。 
-prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。 
-user 按照文件属主来查找文件。 
-group 按照文件所属的组来查找文件。 
-mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。 
-nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。 
-nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。 
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。 
-type 查找某一类型的文件,诸如:b - 块设备文件。d - 目录。c - 字符设备文件。p - 管道文件。l - 符号链接文件。f - 普通文件。 
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。 
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。 
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。 
-mount:在查找文件时不跨越文件系统mount点。 
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。 
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。 


-print: find命令将匹配的文件输出到标准输出。 
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {  } ;,注意{   }和;之间的空格。 
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 
1) find : 

14. more    分页显示文件 
格式:more    [选项]    文件名 
+n: 从第n行开始显示。 
-n:  定义屏幕大小为n行。 
-c:  从顶部清屏显示。 
-d: 提示"Press space to continue,q to quit"(按空格键继续,按q退出)。 

显示文件2行 

head    输出文件开头部分 
格式:head    [-n]             
-n:显示文件从第n行开始显示,默认显示前10行 

chmod    设置文件或目录的权限 
格式:chmod    [选项]    权限范围    文件或目录名 
-c: 当发生改变时,报告处理信息。 
-f: 错误信息不输出。 
-R:处理指定目录及子目录下的所有文件。 
-v:运行时显示详细信息。 

权限对应关系 
---        0           表示没有任何权限 
-x-         1           表示有执行权限 
-w-        2           表示有写入权限 
-r-         4           表示有只读权限 
chmod  777   a.txt     表示用户所有者及其他组和用户拥有该文件的全部权限 。 
chmod  755   a.txt     表示用户所有者拥有全部权限,其他组和用户拥有该文件只读和执行权限。  

chown   改变文件的拥有者或群组 
格式:chown    [选项]   用户或组群    文件名 
chown test:test file.txt            改变文件的用户和组信息 
chown test: file.txt                  改变文件的用户和组信息 
chown :root  file.txt                 改变文件的组信息   

15. du    显示目录或文件所占的磁盘空间 
格式:du    [选项]    文件目录名 
-a: 显示所有文件大小。 
-b: 以字节单位显示文件大小。 
-c: 显示目录或文件的总和。 
-h:以便于用户阅读的方式显示结果。 

>   输出重定向 
>将输出到屏幕信息重定向到文件中,如果重定向的文件不存在,则自动创建,如果文件存在则覆盖文件。 
>>将新添加的数据追加到文件文件的尾部,以避免文件被覆盖。 


<<     附加输入重定向 
格式: <<  [字符] 

16. df -h  查看各分区使用情况 
格式:df  [options] [pattern] [文件] 

1) df -h  查看各分区使用情况 

17. hostname 查看服务器ip 
1) hostname –i查看主机IP 
2) hostname查看主机名 
18. env查看环境变量 
19. ps –ef查看进程 
1) ps –ef | grep dbm  查看包含dbm字符串的进程 
20. ifconfig查看所有网络接口的属性 
21. chmod权限修改 
chmod命令用于修改文件的权限,一般来说文件的创建者拥有修改文件权限的能力。文件权限分为3中:一种是文件属主权限,另一种是同组用户权限,最后一种是其他用户权限。权限的描述形式一般为:-rwxr-xr-x或者drwxr-xr-x。权限若已-开头,则表示该资源为文件,若为d开头,则表示该资源为目录。除了开头字符外,后面的9为字符中每3个字符为一组,共3组,第一组为文件属主权限,第二组为同组用户权限,第三组为其他用户权限。r代表读权限(对应的数字为4),w代表写权限(对应数字为2),x代表为执行权限(对应数字为1)。 
我们通常用命令“chmod 755 文件名”来修改文件的权限,那么755这个数字与rwxr-xr-x是什么对应关系呢?我们可以这样看,将rwxr-xr-x分为3组,rwx、r-x、r-x。然后根据r、w、x这3个字母对应的数字,对rwxr-xr-x字符串进行翻译,得到的结果为4214-14-1。然后我们将4214-14-1又分为3组,421、4-1、4-1,每3个数字进行相加,得到7、5、5(其中-字符忽略不计)。解释到这,我想大家都应该看明白了。那么如果我们想将一个文件的权限设置为,属主能够读写执行,同组用户和其他用户只能读,那么我们可以这样修改权限。命令为:chmod 744 文件名。 
1) chmod 755 属主可以读写执行,其他用户只能读、执行 
2) chmod 777赋予所有用户所有权限 
22. 常用的Linux命令 
1) uname -a  查看内核/操作系统/CPU信息 
2) head -n 1 /etc/issue  查看操作系统版本 
3) cat /proc/cpuinfo  查看CPU信息 
4) lsmod 
lsmod  列出加载的内核模块 
free -m  查看内存使用量和交换区使用量 
du -sh  查看指定目录的大小 
grep MemTotal /proc/meminfo  查看内存总量 
grep MemFree /proc/meminfo  查看空闲内存量 
5) uptime  查看系统运行时间、用户数、负载 
cat /proc/loadavg  查看系统负载 磁盘和分区 
mount | column -t  查看挂接的分区状态 
fdisk -l  查看所有分区 
swapon -s  查看所有交换分区 
hdparm -i /dev/hda  查看磁盘参数(仅适用于IDE设备) 
dmesg | grep IDE  查看启动时IDE设备检测状况网络 
iptables -L  查看防火墙设置 
route -n  查看路由表 
netstat -lntp  查看所有监听端口 
netstat -antp  查看所有已经建立的连接 
netstat -s  查看网络统计信息 进程 
6) top  实时显示进程状态用户 
7) w  查看活动用户 
8) id  查看指定用户信息 
9) last  查看用户登录日志 
cut -d: -f1 /etc/passwd  查看系统所有用户 
cut -d: -f1 /etc/group  查看系统所有组 
crontab -l  查看当前用户的计划任务服务 
chkconfig --list  列出所有系统服务 
chkconfig --list | grep on  列出所有启动的系统服务程序 
rpm -qa  查看所有安装的软件包 
23. su 切换用户 
格式: su – 用户名 

1) su – billcs2    从billcs3用户切换到billcs2用户 

24. unzip 解压war包 
格式: unzip 文件名 –d 解压目录 

1) unzip dbm-1.0.0-import.war –d dbm_import    将dbm-1.0.0-import.war包解压到当前目录的dbm_import目录中 



25. tar解压tar包命令 
格式:tar [-cxtzjvfpPN] [文件与目录] …… 
主要参数: 
-c:只输出匹配行的计数。 
-I:不区分大小写(只适用于单字符)。 
-h:查询多文件时不显示文件名。 
-l:查询多文件时只输出包含匹配字符的文件名。 
-n:显示匹配行及行号。 
-s:不显示不存在或无匹配文本的错误信息 
-v:显示不包含匹配文本的所有行 
-r:向归档文件末尾追加文件 
-z:调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩 
-c:建立一个压缩文件的参数指令 
-x:解开一个压缩文件的参数指令 
-t:查看 tarfile 里面的文件 
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。 
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩? 
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数! 
   例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成 
   『 tar -zcvPf tfile sfile』才对喔! 
-p :使用原文件的原来属性(属性不会依据使用者而变) 
-P :可以使用绝对路径来压缩! 
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中! 
--exclude FILE:在压缩的过程中,不要将 FILE 打包! 

1) tar -czvf this.tar.gz ./*.txt 
将当前目录下所有.txt文件打包并压缩归档到文件this.tar.gz,我们可以使用 
2) tar -xzvf this.tar.gz ./ 
将当前目录下的this.tar.gz中的文件解压到当前目录我们可以使用 
3) tar -xzvpf /tmp/etc.tar.gz /etc 
将 /etc/ 内的所有文件备份下来,并且保存其权限!这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时! 
4) tar -N "2005/06/01" -zcvf home.tar.gz /home 
在 /home 当中,比 2005/06/01 新的文件才备份 
5) tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc 
我要备份 /home, /etc ,但不要 /home/dmtsai 
26. rpm安装命令 
参考链接:http://marklinux.blog.51cto.com/515329/255971 
1) 查询 
命令格式:rpm -q ( or --query) options 
参数: 
pkg1 ... pkgN :查询已安装的软件包 
详细选项 
-p (or ``-'') 查询软件包的文件 
-f 查询属于哪个软件包 
-a 查询所有安装的软件包 
--whatprovides 查询提供了 功能的软件包 
-g 查询属于 组的软件包 
--whatrequires 查询所有需要 功能的软件包 
信息选项 
显示软件包的全部标识 
-i 显示软件包的概要信息 
-l 显示软件包中的文件列表 
-c 显示配置文件列表 
-d 显示文档文件列表 
-s 显示软件包中文件列表并显示每个文件的状态 
--scripts 显示安装、卸载、校验脚本 
--queryformat (or --qf) 以用户指定的方式显示查询信息 
--dump 显示每个文件的所有已校验信息 
--provides 显示软件包提供的功能 
--requires (or -R) 显示软件包所需的功能 
通用选项 
-v 显示附加信息 
-vv 显示调试信息 
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下 
--rcfile 设置rpmrc文件为 
--dbpath 设置RPM 资料库存所在的路径为 
a. 查询一个包是否被安装 
rpm -q *.rpm 
b. 查看软件包里的内容 
rpm -qpi *.rpm 
c. 查看软件包将会在系统里安装哪些部分 
rpm -qpl *.rpm 
d. 快速判定某个文件属于哪个软件包 
rpm -qf *.rpm 
e. 列出所有被安装的rpm 软件包 
rpm –qa 
2) 卸载 
命令格式: rpm -e ( or --erase) options pkg1 ... pkgN 
参数 
pkg1 ... pkgN :要删除的软件包 
详细选项 
--test 只执行删除的测试 
--noscripts 不运行预安装和后安装脚本程序 
--nodeps 不检查依赖性 
通用选项 
-vv 显示调试信息 
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下 
--rcfile 设置rpmrc文件为 
--dbpath 设置RPM 资料库存所在的路径为 
a. 卸载软件 
rpm-e *.rpm 
3) 安装 
命令格式: rpm -i ( or --install) options file1.rpm ... fileN.rpm 
参数: 
file1.rpm ... fileN.rpm 将要安装的RPM包的文件名 
详细选项: 
-h (or --hash) 安装时输出hash记号 (``#'') 
--test 只对安装进行测试,并不实际安装。 
--percent 以百分比的形式输出安装的进度。 
--excludedocs 不安装软件包中的文档文件 
--includedocs 安装文档 
--replacepkgs 强制重新安装已经安装的软件包 
--replacefiles 替换属于其它软件包的文件--force 忽略软件包及文件的冲突 
--noscripts 不运行预安装和后安装脚本 
--prefix 将软件包安装到由 指定的路径下 
--ignorearch 不校验软件包的结构 
--ignoreos 不检查软件包运行的操作系统 
--nodeps 不检查依赖性关系 
--ftpproxy 用 作为 FTP代理 
--ftpport 指定FTP的端口号为 
通用选项 
-v 显示附加信息 
-vv 显示调试信息 
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下 
--rcfile 设置rpmrc文件为 
--dbpath 设置RPM 资料库存所在的路径为 
a. 安装软件 
rpm -ivh *.rpm 
若系统提示此软件已安装过或因其他原因无法继续安装,但若我们确实想执行安装命令,可以在 -ivh后加一参数“-replacepkgs”。 
b. 在线安装软件 
rpm -i ftp://ftp.* *.rpm 
ftp://ftp.*是地址 *.rpm软件包 
4) 升级 
命令格式: rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm 
参数 
file1.rpm ... fileN.rpm 软件包的名字 
详细选项 
-h (or --hash) 安装时输出hash记号 (``#'') 
--oldpackage 允许"升级"到一个老版本 
--test 只进行升级测试 
--excludedocs 不安装软件包中的文档文件 
--includedocs 安装文档 
--replacepkgs 强制重新安装已经安装的软件包 
--replacefiles 替换属于其它软件包的文件 
--force 忽略软件包及文件的冲突 
--percent 以百分比的形式输出安装的进度。 
--noscripts 不运行预安装和后安装脚本 
--prefix 将软件包安装到由 指定的路径下 
--ignorearch 不校验软件包的结构 
--ignoreos 不检查软件包运行的操作系统 
--nodeps 不检查依赖性关系 
--ftpproxy 用 作为 FTP代理 
--ftpport 指定FTP的端口号为 
通用选项 
-v 显示附加信息 
-vv 显示调试信息 
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下 
--rcfile 设置rpmrc文件为 
--dbpath 设置RPM 资料库存所在的路径为 
a. 升级 
rpm -uvh *.rpm 
注意:此时的文件名必须是要升级软件的升级补丁 
27. FTP使用方法 
1) 登录FTP服务器 
方法一:输入命令 ftp host 
其中host是FTP服务器的域名或IP地址。如: 
C:>ftp ftp.bttc.cn 
图1 
启动FTP后,命令提示符变为ftp> 
方法二:先输入命令 ftp 启动FTP,再用命令 open host 登录服务器。如: 
C:>ftp 
C:>open ftp.bttc.cn 
图2 
登录时先是显示一些欢迎信息,然后会要求输入用户名和密码,比如匿名登录服务器: 
C:>ftp ftp.bttc.cn 
………… 
User:anonymous 
331 User name okay,please send complete E-mail address as password 
Password: 
230 User logged in,proceed 
ftp> 
图3 
注意:在输入密码时,屏幕没有任何显示,但已经输入了,不要认为出错。登录成功后就可以访问FTP服务器上的文件了。 
如果由于用户名或密码错误导致登录失败,可以用user命令重新登录。 
2) 查看FTP服务器上的文件 
dir 命令:显示目录和文件列表。 
ls 命令:显示简易的文件列表。 
cd 命令:进入指定的目录。 
dir命令可以使用通配符“*”和“?”,比如,显示当前目录中所有扩展名为jpg的文件,可使用命令 dir *.jpg。 
cd命令中必须带目录名。比如 cd main 表示进入当前目录下的main子目录,cd .. 表示退回上一级子目录。 
3) 下载文件 
上传和下载文件时应该使用正确的传输类型,FTP的传输类型分为ASCII码方式和二进制方式两种,对.txt、.htm等文件应采用ASCII码方式传输,对.exe或图片、视频、音频等文件应采用二进制方式传输。在默认情况下,FTP为ASCII码传输方式。 
type 命令:查看当前的传输方式。 
ascii 命令:设定传输方式为ASCII码方式。 
binary 命令:设定传输方式为二进制方式。 
以上命令都不带参数。 
get 命令:下载指定文件。 
get命令的格式:get filename [newname],filename为下载的FTP服务器上的文件名,newname为保存在本地计算机上时使用的名字,如果不指定newname,文件将以原名保存。 
get命令下载的文件将保存在本地计算机的工作目录下。该目录是启动FTP时在盘符C:后显示的目录。如果想修改本地计算机的工作目录,可以使用 lcd 命令。比如:lcd d: 表示将工作目录设定为D盘的根目录。 
mget 命令:下载多个文件。 
mget命令的格式:mget filename [filename ……]。 
mget命令支持通配符“*”和“?”,比如:mget *.mp3 表示下载FTP服务器当前目录下的所有扩展名为mp3的文件。 
4) 上传文件 
put 命令:上传指定文件。 
put命令的格式:put filename [newname],filename为上传的本地文件名,newname为上传至FTP服务器上时使用的名字,如果不指定newname,文件将以原名上传。 
上传文件前,应该根据文件的类型设置传输方式,本机的工作目录也应该设置为上传文件所在的目录。 
5) 结束并退出FTP 
close 命令:结束与服务器的FTP会话。 
quit 命令:结束与服务器的FTP会话并退出FTP环境。 
6) 其它FTP命令 
pwd 命令:查看FTP服务器上的当前工作目录。 
!与其他linux命令一起使用,可以在ftp模式下,调用本地的主机的shell脚本。比如说在输入pwd命令查看远程主机的当前目录后,然后输入!pwd命令,可以查看本地主机的当前目录。 
?显示本地ftp帮助信息。 
rename filename newfilename 命令:重命名FTP服务器上的文件。 
delete filename 命令:删除FTP服务器上的文件。 
help [cmd] 命令:显示FTP命令的帮助信息,cmd是命令名,如果不带参数,则显示所有FTP命令。 
用法举例: 
案例如下:现需要从10.10.12.15主机上的billcs3用户的ftp上取一个名叫commlog.log文件,然后放到10.10.12.11主机的billcs3用户的目录下 
操作如下: 
a. 首先登录到10.10.12.11主机的billcs3用户,然后进入如下目录,并显示出文件列表 

b. 然后输入ftp 10.10.12.11,同时输入billcs3用户的用户名和密码,最后出现ftp>的字符串表示成功的已ftp形式连接到了10.10.12.11的ftp根目录上。 

c. 输入ls命令,查看ftp根目录有哪些文件,从中找出commlog.log文件。 

d. 然后输入mget commlog.log命令,然后输入y,紧接着就成功的将commlog.log文件从10.10.12.11上拷贝到10.10.12.15上。 

e. 最后输入bye命令,离开ftp模式。 

f. 然后输入ls命令,查看10.10.12.15主机上是否会出现commlog.log文件。 

三、 Linux软件安装 
1. JDK安装 
1) RPM安装 
查看已经安装的jdk: 
rpm -qa|grep jdk 卸载: 
rpm -e rpm包名(上面看到的)若存在依赖关系,先卸载上层的。 
安装(这里以jdk-6u32-linux-i586-rpm.bin为例): 
将jdk-6u32-linux-i586-rpm.bin拷贝到服务器 
给其运行权限: chmod u+x jdk-1_5_0_09-linux-i586-rpm.bin 
运行(它将自己解压出jdk-1_5_0_09-linux-i586.rpm包): ./jdk-1_5_0_09-linux-i586-rpm.bin 
安装rpm包: rpm -iv jdk-1_5_0_09-linux-i586.rpm 这样将jdk安装到了/usr/java下 
然后修改/etc/profile: 
JAVA_HOME=/usr/share/jdk1.5.0_05 
PATH=$JAVA_HOME/bin:$PATH 
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export JAVA_HOME 
export PATH 
export CLASSPATH 
2) tar包安装 
在Sun官网上下载jdk的linux版安装包,地址为:http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u32-downloads-1594644.html。我选择的是jdk-6u32-linux-x64.bin版tar包安装包。通常来讲tar包比较好安装一点,直接解压,然后配置环境变量就可以使用。使用rpm安装包会出现比较恶心的安装包依赖问题。 
将jdk-6u32-linux-x64.bin包拷贝到Linux桌面,然后运行./ jdk-6u32-linux-x64.bin命令,tar包会自动解压成jdk1.6.0_32文件夹。将其移动到/home/test1/java目录下。 
然后修改/etc/profile文件,在其末尾增加如下片段: 
JAVA_HOME=/home/test1/java/jdk1.6.0_32 
PATH=$JAVA_HOME/bin:$PATH 
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export JAVA_HOME 
export PATH 
export CLASSPATH 
至此jdk6安装成功,在控制台运行java -version测试是否安装成功。 
四、 Linux系统维护 
1. 为普通用户添加sudo权限 
修改/etc/sudoers文件,修改命令必须为visudo才行 
#visudo -f /etc/sudoers 
像root ALL=(ALL) ALL 这样增加你所需要的用户 
xxx ALL=(ALL) ALL 
然后用xxx用户登录,测试时会发现 
#sudo ifconfig 
sudo: ifconfig: command not found 
修改普通用户的.bash_profile文件在PATH变量中增加: 
/sbin:/usr/sbin:/usr/local/sbin:/usr/kerberos/sbin 
然后重启机器,即可。 
原文地址:https://www.cnblogs.com/kuyuyingzi/p/4266409.html