linux学习

ztlovezls 贡献于2017-03-15

作者 user  创建于2011-07-08 02:21:00   修改者Geeker  修改于2013-12-03 02:05:00字数21453

文档摘要:linux文件系统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. cd更改当前目录路径。 1) cd     返回到当前用户的主目录。 2) cd /    返回到根目录 /目录。 3) cd ..    返回到当前目录的上一层目录,例当前目录为/home/user,使用该命令后将当前的目录返回到/home下。注意cd后面有空格。 4) cd ~   返回到当前用户的主目录,适合任何用户。 5) cd ../..返回到当前目录的父目录,cd ../../..返回当前目录的父目录的父目录,该命令可以类推。   2. 查看linux版本信息 1) uname –a 2) lsb_release –a 3) cat /proc/version 4) cat /etc/issue 3. 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查看目录的所有文件信息(包括权限信息,同时排序) 4. pwd 列出当前用户所在目录路径 格式:pwd 1) pwd:显示当前路径。   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+a(常用) 2) 回到行末 Ctrl+e(常用) 3) 重复操作命令 Ctrl+r:重做上一个动作。(常用) 4) 撤销命令 u:复原前一个动作。(常用) 5) 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次编辑 6) 移动光标类命令 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 :光标移至屏幕最后行 7) 屏幕翻滚类命令 Ctrl+b;向文件首翻一屏 Ctrl+f:向文件尾翻一屏 Ctrl+u:向文件首翻半屏 Ctrl+d:向文件尾翻半屏 nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。   8) 插入文本类命令 Esc:退出插入命令使用其他命令 i,I:在目前的光标所在处插入输入之文字,已存在的文字会向后 a,A:a 为从目前光标所在的下一个字符处开始插入, A 为从光标所在行的最后一个字符处开始插入。(常用) o,O:o 为在目前光标所在的下一行处插入新的一行, O 为在目前光标所在处的上一行插入新的一行!(常用) r, R:r替换当前字符,R替换当前字符及其后的字符,直至按ESC键 s,S:从当前光标位置处开始,以输入的文本替代指定数目的字符,S删除指定数目的行,并以所输入文本代替之 ncw或nCW:修改指定数目的字 nCC:修改指定数目的行   9) 删除命令 x或X:删除一个字符,x删除光标后的,而X删除光标前的 Ctrl+u:删除输入方式下所输入的文本 dd:删除游标所在的那一整列(常用) ndd:n 为数字。删除光标所在的向下 n 列,例如 20dd 则是删除 20 列 (常用) ndw或ndW:删除光标处开始及其后的n-1个字 do:删至行首 d$:删至行尾 ndd:删除当前行及其后n-1行 10) 复制命令 yy:复制游标所在的那一行(常用) nyy:n 为数字。复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用) y1G:复制光标所在列到第一列的所有数据 yG:复制光标所在列到最后一列的所有数据 y0:复制光标所在的那个字符到该行行首的所有数据 y$:复制光标所在的那个字符到该行行尾的所有数据 p, P:p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用) 11) 搜索及替换命令 /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) 是否需要取代!(常用) 12) 最后行方式命令 :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的文件 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 / -type f -name "*.log" | xargs grep "ERROR" 从根目录开始查找文件类型为普通类型,且文件名以log结尾的,包含有ERROR字符串的行。其中xargs命令是为了避免linux系统中参数过长而增加的一个命令。 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. Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态等等。 -a (all)显示所有选项,默认不显示LISTEN相关 -t (tcp)仅显示tcp相关选项 -u (udp)仅显示udp相关选项 -n 拒绝显示别名,能显示数字的全部转化成数字。 -l 仅列出有在 Listen (监听) 的服務状态 -p 显示建立相关链接的程序名 -r 显示路由信息,路由表 -e 显示扩展信息,例如uid等 -s 按各个协议进行统计 -c 每隔一个固定时间,执行该netstat命令。 提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到 1) netstat -a列出所有端口 2) netstat –at列出所有 tcp 端口 3) netstat -au列出所有 udp 端口 4) netstat -r显示核心路由信息 21. nbtstat命令 格式:nbtstat[-a RemoteName] [-A IPAddress] [-c] [-n] [-r] [-R] [-RR] [-s] [-S] [Interval]  -a remotename  显示远程计算机的 NetBIOS 名称表,其中,RemoteName 是远程计算机的 NetBIOS 计算机名称。NetBIOS 名称表是与运行在该计算机上的应用程序相对应的 NetBIOS 名称列表。 -A IPAddress  显示远程计算机的 NetBIOS 名称表,其名称由远程计算机的 IP 地址指定(以小数点分隔)。 -c  显示 NetBIOS 名称缓存内容、NetBIOS 名称表及其解析的各个地址。 -n  显示本地计算机的 NetBIOS 名称表。Registered 的状态表明该名称是通过广播还是 WINS 服务器注册的。 -r  显示 NetBIOS 名称解析统计资料。在配置为使用 WINS 且运行 Windows XP 或 Windows Server 2003 操作系统的计算机上,该参数将返回已通过广播和 WINS 解析和注册的名称号码。 -R  清除 NetBIOS 名称缓存的内容并从 Lmhosts 文件中重新加载带有 #PRE 标记的项目。 -RR  释放并刷新通过 WINS 服务器注册的本地计算机的 NetBIOS 名称。 -s  显示 NetBIOS 客户端和服务器会话,并试图将目标 IP 地址转化为名称。 -S  显示 NetBIOS 客户端和服务器会话,只通过 IP 地址列出远程计算机。 Interval  重新显示选择的统计资料,可以在每个显示内容之间中断 Interval 中指定的秒数。按 Ctrl+C 停止重新显示统计信息。如果省略该参数,netstat 将只显示一次当前的配置信息。 /?  在命令提示符下显示帮助。 1) nbtstat  -a IP地址 22. free查看内存使用量,使用权限是所有用户 格式:free [-b -k -m] [-o] [-s delay] [-t] [-V]  -b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。 -s delay:显示每隔多少秒数来显示一次内存使用情况。 -t:显示内存总和列。 —o:不显示缓冲区调节列。 1) free -m -s2 显示内存使用情况,每隔2秒刷新一次,以MB为单位 23. top用来显示执行中的程序进程,使用权限是所有用户。 格式:top [-] [d delay] [q] [c] [S] [s] [i] [n]  d:指定更新的间隔,以秒计算。 q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。 c:显示进程完整的路径与名称。 S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。 s:安全模式。 i:不显示任何闲置(Idle)或无用(Zombie)的行程。 n:显示更新的次数,完成后将会退出top。 top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。 <空格>:立刻刷新。 P:根据CPU使用大小进行排序。 T:根据时间、累计时间排序。 q:退出top命令。 m:切换显示内存信息。 t:切换显示进程和CPU状态信息。 c:切换显示命令名称和完整命令行。 M:根据使用内存大小进行排序。 W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。 24. ifconfig查看所有网络接口的属性 25. 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赋予所有用户所有权限 26. ln软硬链接 用法介绍 ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件。 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。 例如:ln –s /bin/less /usr/local/bin/less -s 是代号(symbolic)的意思。 这里有两点要注意: a. ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化; b. ln的链接又 软链接和硬链接两种,软链接就是ln –s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。 如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls –l命令去察看,就可以看到显示的link的路径了。 指令详细说明 指令名称 : ln 使用权限 : 所有使用者 使用方式 : ln [options] source dist,其中 option 的格式为 : [-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}][--help] [--version] [--]   说明 : Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种 : 硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档 案系统中,而软连结却可以跨越不同的档案系统。 ln source dist 是产生一个连结(dist)到 source,至于使用硬连结或软链结则由参数决定。不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。 -f : 链结时先将与 dist 同档名的档案删除 -d : 允许系统管理者硬链结自己的目录 -i : 在删除与 dist 同档名的档案时先进行询问 -n : 在进行软连结时,将 dist 视为一般的档案 -s : 进行软链结(symbolic link) -v : 在连结之前显示其档名   -b : 将在链结时会被覆写或删除的档案进行备份 -S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾 -V METHOD : 指定备份的方式 --help : 显示辅助说明 --version : 显示版本 范例 : 将档案 yy 产生一个 symbolic link : zz ln -s yy zz 将档案 yy 产生一个 hard link : zz ln yy xx 27. 常用的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 查看所有安装的软件包 三、 Linux软件安装 1. 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 3) 卸载 命令格式: rpm -e ( or --erase) options pkg1 ... pkgN 参数 pkg1 ... pkgN :要删除的软件包 详细选项 --test 只执行删除的测试 --noscripts 不运行预安装和后安装脚本程序 --nodeps 不检查依赖性 通用选项 -vv 显示调试信息 --root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下 --rcfile 设置rpmrc文件为 --dbpath 设置RPM 资料库存所在的路径为 a. 卸载软件 rpm-e *.rpm 4) 安装 命令格式: 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软件包 5) 升级 命令格式: 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 注意:此时的文件名必须是要升级软件的升级补丁 2. yum安装命令 yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。 yum的命令形式一般是如下:yum [options] [command] [package ...] 其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。[command]为所要进行的操作,[package ...]是操作的对象。 概括了部分常用的命令包括: 自动搜索最快镜像插件:   yum install yum-fastestmirror 安装yum图形窗口插件:    yum install yumex 查看可能批量安装的列表: yum grouplist 1) 安装 yum [-y] install 程序名称 说明: -y在程序需要选择时,默认选择y 2) 删除程序 yum remove 程序名称 3) 更新和升级 yum update 全部更新 yum update package1 更新指定程序包package1 yum check-update 检查可更新的程序 yum upgrade package1 升级指定程序包package1 yum groupupdate group1 升级程序组group1 4) 查找和显示 yum info package1 显示安装包信息package1 yum list 显示所有已经安装和可以安装的程序包 yum list package1 显示指定程序包安装情况package1 yum groupinfo group1 显示程序组group1信息yum search string 根据关键字string查找安装包 5) 清除缓存 yum clean packages 清除缓存目录下的软件包 yum clean headers 清除缓存目录下的 headers yum clean oldheaders 清除缓存目录下旧的 headers yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers 3. 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. 取消屏保 输入命令:xset s off,可以取消屏保 2. 修改主机名 对于Fedora18系统而言,修改主机的主机名,需要编辑/etc/hostname文件。修改该文件后,主机名能够即时生效。修改完毕后输入命令:hostname查看当前主机名 3. 修改主机名 主机名主要用于局域网,以便于局域网中的主机相互访问,避免直接使用局域网ip。 打开/etc/hosts文件,会看到文件中的内容如下: 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 Hosts文件中的格式为:主机IP 主机名1 主机名1.域名 主机名2 主机名2.域 4. Linux系统命令界面与图形界面切换 1) Fedora18系统切换方法 Linux下修改开机启动设置,之前是按级别,现在在Fedora18版本里已经该为文字形式啦。 先查看开机启动的配置文件# cat /etc/inittab  提示启动等级以修改为对应的英文表达了,多用户命令行带网络已经变为multi-user.target文件,图形界面为graphical.target。 下方提醒到设置default.target文件.该文件在/etc/systemd/system目录下。 那么接下来我们看看该default.target文件中第一行配置Description=Graphical。 根据提示ln -s /lib/systemd/system/.target /etc/systemd/system/default.target。 我们手动来修改 输入命令 cd /etc/system/system #在这步的时候你可以先备份你的default.target到home目录 #执行命令cp default.target /home rm default.target(这一步是先删除default.target,不删除的话会报错说该文件以存在) ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target 这一步就OK了,然后reboot重启即可 5. 用户组维护 1) /etc/group /etc/group存放在用户组的所有信息 将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。 用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。用户组的所有信息都存放在/etc/group文件中。 格式类似于/etc/passwd文件,由冒号(:)隔开若干个字段. [root@localhost ~]# cat /etc/group root:x:0:root bin:x:1:root,bin,daemon 组名:口令:GID:组内用户列表 组名:是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。 口令:字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是x。 GID:与用户标识号类似,也是一个整数,被系统内部用来标识组。 组内用户列表:是属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。 2) 添加用户组 groupadd命令增加用户组 groupadd [-g gid] group 说明: g 制定组的ID号 gid 组的ID号(不能与现有的组ID号重复) group 组名 #groupadd –g 100 sun 3) 增加用户所属的组 将一个已有用户 cnzhx 增加到一个已有用户组 apache 中,使此用户组成为该用户的附加用户组,可以使用带 -a 参数的 usermod  指令。-a 代表 append, 也就是将用户添加到新用户组中而不必离开原有的其他用户组。不过需要与 -G 选项配合使用: # usermod -a -G apache cnzhx 4) 修改用户所属的组 如果要同时将 cnzhx 的主要用户组改为 apache,则直接使用 -g 选项: # usermod -g apache cnzhx 6. 改变文件或者目录的属主和默认组 使用举例: 1) chown改变文件的属主 格式:chown [选项] 用户 文件 说明:将文件的属主改变为指定的用户 选项: - R选项意味着对所有子目录下的文件也都进行同样的操作。- h选项意味着在改变符号链 接文件的属主时不影响该链接所指向的目标文件。 举例: 将hadoop-2.0.4-alpha.tar.gz文件的属主改为hadoop1 2) chgrp改变文件的默认组 格式:chgrp 用户组 文件 说明:将文件的属主改变为指定的用户 举例: 将hadoop-2.0.4-alpha.tar.gz文件的默认组改为hadoop 7. SU命令切换用户 格式: su – 用户名 1) su – billcs2 从billcs3用户切换到billcs2用户 8. sudo命令 格式1:user machine=(users) commands,形如:root ALL=(ALL) ALL 解释:允许在machine登录的 user 用户以users的身份来执行commands命令。这里的machine、users、commands就可以用Host_Alias、 User_Alias和Cmnd_Alias来代替了。 格式2:%group ALL=(ALL) ALL 解释:按组来设置sudo权限。 用法:可以直接修改/etc/sudoers文件,或者使用命令visudo。 #visudo /etc/sudoers 像root ALL=(ALL) ALL 这样增加你所需要的用户 xxx ALL=(ALL) ALL 9. 添加用户 useradd命令增加用户组  useradd [-u uid | -g group] | -d dir | -s shell | -c comment | -m [-k skel_dir] ] login  说明:  u 指定用户ID号  g 制定所在组 d 指定用户目录 s 制定用户SHELL c 用户的注释 m 建立用户目录 login 用户的登录名 #useradd –u 1233 –g sun –d /export/home/sun –c “Sun test user.” –m –s /usr/bin/sh sun 10. 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文件。 11. 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 12. unzip 解压war包 格式: unzip 文件名 –d 解压目录 1) unzip dbm-1.0.0-import.war –d dbm_import 将dbm-1.0.0-import.war包解压到当前目录的dbm_import目录中

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 2 人已下载

下载文档