• 1. Linux系统基础知识张宝 zhangbao.pt@taobao.com 2010-07-30
  • 2. Outline Linux 系统文件 用户、组与文件权限 文件基本操作命令 管道与重定向 环境变量与特殊变量 系统状态与进程2010-08-012
  • 3. Linux系统文件——概述/bin目录 二进制可执行文件 /etc 系统管理和配置文件;/etc/rc.d 启动的配置文件和脚本 /dev 设备特殊文件 /home 用户主目录的基点,比如zhangb的主目录就是/home/zhangb(~zhangb) /lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件 /tmp 公用的临时文件存储点 /sbin 系统管理命令,这里存放的是系统管理员使用的管理程序 /root 系统管理员的主目录(sudo) /mnt 系统提供这个目录是让用户临时挂载其他的文件系统。 /lost+found 这个目录平时是空的,存储系统非正常关机而留下的“碎片” /proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。 /var 某些大文件的溢出区,比方说各种服务的日志文件 /usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录 2010-08-013
  • 4. Linux系统文件——/bin2010-08-014
  • 5. Linux系统文件——/boot/boot 目录存放引导加载器(bootstrap loader)使用的文件,核心映像也经常放在这里。 2010-08-015
  • 6. Linux系统文件——/usr所有程序安装在这里。 /usr 里的所有文件一般来自Linux发行版; 本地安装的程序和其他东西在/usr/local 下; /usr/bin: 集中了几乎所有用户命令,是系统的软件库。另有些命令在/bin 或/usr/local/bin 中; /usr/include包含C语言的头文件; /usr/man、/usr/info、/usr/doc这些目录包含所有手册页、G N U信息文档等。2010-08-016
  • 7. Linux系统文件——/etc/etc目录存放着各种系统配置文件; /etc/rc:系统初始化文件; /etc/passwd:用户信息文件; 为用户数据库,其中的域给出了用户名、真实姓名、用户起始目录、加密口令和用户的其他信息。 /etc/group:类似/etc/passwd ,说明的是组的信息。包括组的各种数据。 另有:ssh rpm vimrc virc 2010-08-017
  • 8. Linux系统文件——/etc(续)/etc/passwd/etc/group2010-08-018
  • 9. Linux系统文件——/proc/proc目录用于提供关于系统的信息。 特殊:该文件系统是一个伪的文件系统,是一个实际上不存在的目录,并不存在于某个磁盘上,而是由核心在内存中产生。 /proc/meminfo:各种存储器使用信息,包括物理内存和交换分区(swap)。2010-08-019
  • 10. 用户、组Linux 系统是多用户多任务的; 不同用户拥有的权限不同、扮演的角色不同:角色是通过UID和GID识别的。特别是UID,在系统管理中,系统管理员一般会保持UID 唯一。 root 用户:系统唯一,是真实的,可以登录系统,可以操作系统任何文件和命令,拥有最高权限; 虚拟用户:与真实用户区分开来,这类用户不具有登录系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、mail等; 普通真实用户:这类用户能登录系统,但只能操作自己家目录的内容;权限有限;这类用户都是系统管理员自行添加的; 2010-08-0110
  • 11. 文件属性——类型使用ls -al (或者ll)可以查看文件的长格式: d:表示是一个目录,事实上在ext2fs中,目录是一个特殊的文件。 -:表示这是一个普通的文件。 l: 表示这是一个符号链接文件。 b、c:分别表示区块设备和其他的外围设备,是特殊类型的文件。 s、p:这些文件关系到系统的数据结构和管道,通常很少见到。2010-08-0111
  • 12. 文件属性——权限 第2~10个字符当中的每3个为一组 所有者(属主)u同组用户(属组)g其他用户 or(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。 w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。 x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限 2010-08-0112
  • 13. 文件属性——更改权限1chmod u+x,g-w forchmodu g o a = + - r w x 组合 chmod 数字 forchmod 示例:chmod 764 forchmod r: 对应数值4 w: 对应数值2 x:对应数值1 -:对应数值02010-08-0113
  • 14. 文件属性——更改权限(续)2010-08-0114
  • 15. 文件属性——文件夹权限权限都是针对文件的内容而言的,跟文件本身没有任何关系。 目录将其下的所有文件看作是它的内容。 因此文件的改名与删除权限是被Linux归入该文件父目录的w权限中的。当用户改名或删除文件(夹)时,执行的是对它上一级目录的w操作,也因为这样,删除文件(夹)可以无视它自身的权限设置。2010-08-0115
  • 16. 文件属性——文件夹权限(续)Linux下的文件夹权限:  1. r(read):可以读取文件夹内容列表,但如果没有x权限,就只能看到文件名而无法查看其他内容(大小、权限等) 2. w(write):由于文件夹记录的是其中内容的列表,因此具有w权限即可修改这个列表,前提是拥有x权限可以进入这个目录内。w具体拥有以下几项权限: 建立新的文件或文件夹 删除已存在的文件或文件夹(无视该文件或文件夹的权限) 对已存在的文件或文件夹改名 更改目录内文件或文件夹的位置 3. x(execute):可以进入该文件夹,没有x权限便无法执行该目录下的任何命令  2010-08-0116
  • 17. 文件属性——更改ownerchown userTo myfile chown –R userTo mydir2010-08-0117
  • 18. 文件属性——更改groupchgrp groupTo myfile chgrp -R groupTo myfile 示例:sudo chgrp -R dip zhangbao 补充:sudo chown -R yuwen.dip zhangbao sudo chown -R yuwen:dip zhangbao 2010-08-0118
  • 19. 文件基本操作命令ls :显示当前目录下文件 示例:ls –al ls -alR pwd :显示当前路径 mkdir :新建目录 cd :切换工作目录 示例:cd cd ~ cd /home/zhangbcp :复制文件 示例:cp –R zhang/* . 把zhang/目录下所有文件复制到当前目录下 mv:移动文件或目录 rm:删除 示例: rm myfile.txt rm –rf mydir rmdir:删除指定的空目录 2010-08-0119
  • 20. 文件基本操作命令——find功能:在系统中查找具有某一特征的文件 (例如文件权限、文件属主、文件长度、文件类型等等)。也常用于找出一个不知保存在什么地方的文件:find可以遍历当前目录甚至于整个文件系统来查找某些文件或目录。 find pathname -options [-print -exec -ok] pathname:查找路径(.来表示当前目录,用/来表示系统根目录。) -options:查找选项 [-print -exec -ok]:所执行的操作 2010-08-0120
  • 21. 文件基本操作命令——find(续)-options -name   按照文件名查找文件。示例: $ find /etc -name "host*" –print 在/ e t c目录中查找文件名以host开头的文件 $ find ~ -name “*.txt” –print 在个人目录及子目录中查找所有的‘*.txt’文件 $ find . -name “*.txt” –print 在当前目录及子目录中查找所有的‘*.txt’文件 $ find / -name "*" –print 从根目录开始查找所有的文件 $ find . -name “[a-z][a-z][0--9][0--9].txt” -print在当前目录查找文件名以两个小写字母开头,跟着是两个数字,最后是 * . t x t的文件2010-08-0121
  • 22. 文件基本操作命令——find(续)-print   find命令将匹配的文件输出到标准输出。 -exec   find命令对匹配的文件执行该参数所给出的 shell命令。相应命令的形式为 ‘command’ {} \;,注意{ }和\;之间的空格。 -ok   和-exec的作用相同。只不过以一种更为安全的模式来执行该参数所给出的 shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 示例:find . \( -type f -or -type l \) -ok rm {} \;2010-08-0122
  • 23. 文件基本操作命令——文件内容cat: 1. 显示文件内容 示例:cat myfile 2. 创建文件: 示例:cat > myfile2 输入结束后按 利用输出重定向创建简短文件 more: 适用于显示超过一屏的文件,每按一次空格向后翻一屏,每按一次向后翻一行; less: 与more类似,支持 键翻屏; head: 示例:head myfile head -12 myfile tail 2010-08-0123grep wc cut diff sort
  • 24. Shell输入输出标准输入文件(stdin) 标准输入是文件描述符0。它是命令的输入,缺省是键盘,也可以是文件或其他命令的输出 标准输出文件(stdout) 标准输出是文件描述符1。它是命令的输出,缺省是屏幕,也可以是文件 标准错误(stderr) 标准错误是文件描述符2。这是命令错误的输出,缺省是屏幕,同样也可以是文件 执行一个shell命令行时通常会自动打开上述三个标准文件,进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。 2010-08-0124
  • 25. 输出重定向重定向输出: > 输出重定向到一个文件或设备,覆盖原来的文件 >! 输出重定向到一个文件或设备,强制覆盖原来的文件 >> 输出重定向到一个文件或设备,追加原来的文件 n> 标准输出/标准错误重定向到一个文件或者设备,覆盖原来文件(1为默认) n>> 标准输出/标准错误重定向到一个文件或者设备,追加原来的文件(1为默认) m>&n 标准输出/标准错误重定向到标准错误输出/标准错误 m>>&n &> 将标准输出和标准错误重定向到同一个文件中 &>> 2010-08-0125
  • 26. 输出重定向(续)command 2>&1 1>output.txt command 1>output.txt 2>&1 2010-08-0126第一种情况中,stderr被重定向到stdout的当前位置, 然后再将stdout重定向到output.txt,但1>output.txt只影响stdout,不影响stderr。 第二种情况中,stderr被重定向到stdout的当前位置,即output.txt中。
  • 27. 管道管道符号“|”用在命令之间:将一个程序或命令的输出作为另一个程序或命令的输入。 示例:$ cat result|grep “/home/taobao"|wc -l 作用:管道将cat命令(列出一个文件的内容)的输出送给grep命令。grep命令在输入里查找单词High,grep命令的输出则是所有包含单词High的行,这个输出又被送给wc命令,wc命令统计出输入中的行数。 2010-08-0127
  • 28. 命令替换命令替换和重定向有些相似,但区别在于命令替换是将一个命令的输出作为另外一个命令的参数。常用命令格式为: command1 `command2` 其中,command2的输出将作为command1的参数。需要注意的是这里的`符号,被它括起来的内容将作为命令执行,执行后的结果作为command1的参数。 例如:$ cd `pwd` 该命令将pwd命令列出的目录作为cd命令的参数,结果仍然是停留在当前目录下。 2010-08-0128
  • 29. 环境变量Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。 使用env命令显示所有的环境变量  $ env 使用set命令显示所有本地定义的Shell变量  $ set 显示环境变量HOME  $ echo $HOME 设置一个新的环境变量NAME $ export NAME=“Jade”2010-08-0129
  • 30. 环境变量(续)常用环境变量: PATH 决定了shell将到哪些目录中寻找命令或程序 HOME  当前用户主目录 HISTSIZE    历史记录数 LOGNAME     当前用户的登录名  HOSTNAME    指主机的名称 SHELL      前用户Shell类型  LANGUGE  语言相关的环境变量,多语言可以修改此环境变量 MAIL 当前用户的邮件存放目录  PS1 基本提示符,对于root用户是#,对于普通用户是$ PS2 附属提示符,默认是“>”2010-08-0130
  • 31. 环境变量(续)环境变量文件 通过修改一些相关的环境定义文件来修改环境变量,与环境相关的文件为/etc/profile和~/.bash_profile。修改完毕后重新登录一次或运行命令source xxx就生效了。  特殊变量>_<2010-08-0131
  • 32. 系统状态查看内存查看:free 可用参数:  -b  以Byte为单位显示内存使用情况。   -k  以KB为单位显示内存使用情况。   -m  以MB为单位显示内存使用情况。   -o  不显示缓冲区调节列。   -s《间隔秒数》  持续观察内存使用状况。   -t  显示内存总和列。   -V  显示版本信息。 2010-08-0132
  • 33. 系统状态查看磁盘查看:df 常用参数: -h 2010-08-0133
  • 34. 系统状态查看进程查看:ps 、pstree、top 示例:ps :显示当前控制台上所有运行的进程 ps –aux:显示所有进程(含后台)及用户 ps –ef :显示所有进程及其父进程号 pstree –p :树状显示进程,显示父进程号 top:动态显示系统中的进程 2010-08-0134
  • 35. 进程后台运行后台进程是指独立于操作终端的进程; nohup语法:nohup Command [ Arg ] [ & ] 比如我们有个test.php需要在后台运行,并且希望在后台能够定期运行,那么就使用nohup:   nohup test.php & 提示:appending output to nohup.out 证明运行成功,同时把程序运行的输出信息放到当前目录的 nohup.out 文件中去。 2010-08-0135
  • 36. 2010-08-0136Thanks!