Linux常用命令培训xg.ppt
LINUX常用命令2009.9.2 翁文武(修改)1帐户管理UNIX是多用户系统,它应能完成:。多个用户能共享系统资源。多个用户间要有良好的安全保密措施帐户作用:保存系统辨认用户身份的信息,记录并组织用户在系统中的活动。相关的文件:文件/etc/passwd 存储帐户管理信息,被授权的用户占有一项记录信息,其信息格式如下username:x:uid:gid:comment:homedir:loginshell (1)(2)(3)(4)(5)(6)(7)例如例如zhang:*:103:100:zhang hongguang:/home/zhang:/bin/csh(1):用户名(2):口令,加密显示(3):用户标识(4):用户组标识(5):用户注册描述(6):用户主目录(7):进入系统后第一步完成的工作(用户所使用的shell)2系统中设置两类用户帐户:。超级用户帐户-拥有系统最高权限,分配给系统管理员 有特定的用户名“root”,及相应的口令;。普通用户帐户-由系统管理员分配的用户权限,给各种 用户,用于管理自己的文件和目录34)用户口令管理文件/etc/shadow 存储帐户中用户加密后的口令及管理信息 格式:username:password:lastchg:min:max:warn:inactive:expire (1)(2)(3)(4)(5)(6)(7)(8)(1):用户名(2):加密后的口令(3):口令最后修改日期(4):可修改口令的最少天数(5):可修改口令的最多天数(6):口令到期提前提示天数(7):允许不登录天数(8):口令到期确定日期45)用户组信息文件/etc/group存储与用户帐户相关的组信息 格式:grouname:password:gid:user-list (1)(2)(3)(4)(1):用户组名称(2):用户组口令(3):用户组标识(4):组中的用户列表52.2 UNIX的shell及实用程序1)shell 是UNIX系统与用户交互的接口,包含有内部命令。Bourn Shell 命令提示符$korn Shell 命令提示符$C shell 命令提示符%2)实用程序包含扩展命令及增强功能处理,由shell调度管理、加载及退出。62.5 UNIX命令的使用 用图形用户界面执行命令GUI 提供更灵活的操作方式,linux 中提供:KDE(K Desktop Environment)GNOME/Enlightenment(缺省)1)命令使用界面 用命令方式执行应用程序若程序存放在shell 查询路径中则直接在命令行中输入程序名:%vi若程序路径没在shell查询中,则输入全路径名:%/usr/bin/vi73)命令输入方式UNIX命令可分为两类:。Shell内部命令-包括简单常用命令,随shell 装入内存。Shell 外部命令-不常驻内存,用时调入。UNIX命令格式:command-options arguments例:%ls%ls -l*.c多命令行:%pwd;ls-l 多行命令:%cc hello_world.c-lxm-lxt-lx11-lm -o hello_world 84)常用基础命令。cat:在标准输出上显示或连接文件 格式:cat filename (类似dos中的type ,copy)例:%cat abc.c%cat abc.c aa.c more:和cat同样的作用,区别在于more是每次显示一屏数据;例如:more pkg.conf在查看过程中如果想退出使用q,如果要编辑文件使用v;less:与more的作用类似,区别在于less可以按 y 来往上卷一行,且可以进行查找操作;。cd:改变工作目录 格式:cd 或 cd dirfilename (类似dos 的cd)例:%cd (改变当前目录到用户注册目录)%cd/abc (改变当前目录到/abc)4)常用基础命令10chmod:改变文件或目录的许可机制格式:chmod who-op permission file 其中:who-指定用户,可取640,u,g,o等值 op-指定的操作码,可取+,-,=等值 permission-指定的许可机制,可取r,w,x等例:%chmod go-w filea%chmod+x filea%chmod 640 filea11常用基础命令(续)。cp:文件拷贝 格式:cp 源文件 目标文件/目录常用参数有如下2个:-i:此参数是当已有档名为 f2 的档案时,若迳自使用 cp 将会将原来 f2 的内容掩盖过去,因此在要盖过之前必须先询问使用者一下。如使用者的回答是y(yes)才执行复制的动作。-r:此参数是用来做递回复制用,可将一整颗子树都复制到另一个 目录中。ls:列出目录中的内容 格式:ls options namesman:对命令获取连机帮助 例:%man ls%man man pwd:显示当前工作目录名 类似于dos中的cd命令rm/rmdir:删除文件或目录常用基础命令(续)13who 显示用户信息例:$whozhangtty02NOV 12 9:20wang tty12 NOV 20 10:00特例:who am I 显示本终端用户信息命令选项:-q 仅显示用户名和用户总数 -H 显示输出中各列信息的标题 -b 显示系统启动日期和时间 -s 只显示用户名、终端号及登录时间 -r 检查系统当前运行级别(超级用户)说明:目前linux系统默认运行级别为5级,具体如下;who 显示用户信息linux的七个运行级别:0,1,2,3,4,5,60:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 2:多用户状态(没有NFS,即不允许linux主机间文件共享)3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式 4:系统未使用,保留 5:X11控制台,登陆后进入图形GUI模式 6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动 15Shell环境文件B Shell的外壳环境程序是.bashrc(linux),别的机器可能不是此文件.C Shell的外壳环境文件是:.chsrcK Sehll的外壳环境文件是:.profile外壳环境文件修改后,立即生效的方法:source.cshrc16切换用户su:默认切换到操作用户下.su liuguibing切换到用户liuguibing下,且不执行liuguibing的shell外壳程序su liuguibing 切换到用户liuguibing下且执行liuguibing用户的shell外壳程序.175)用于目录和文件操作的命令。chgrp:改变文件或目录所属的组 格式:chgrp option groupname filename 例:%chgrp seis abc.c%chgrp-R seis mydir。chown:改变文件的属主 格式:chown option username filename 例:%chown chr abc.c%chown-R chr mydir18ln:建立文件的链接。ln:建立文件的链接 格式:ln option file target 选项:-f-若目标文件已存在,用原文件的链接替代 否则就创建它 -s-创建文件的符号链接符号链接也称软连接是一个指向其它文件或目录的指针,也是一种文件,在目录树中具有名字和位置。例:%ln abc.c xyz.c%ln abc.c otherdir%ln-s /home/ying/lib 19使用符号连接命令应注意的问题符号链接使得UNIX文件系统变得更加复杂,原有系统的目录树层次结构会被打乱。因此在文件系统中移动时要注意,例:用户ying 有一符号链接名为:link.dir,它指向的真正目录是:/home/ying/dir1.做如下操作:%cd link.dir%pwd显示出:/home/ying/link.dir 带来了错觉,下面两命令等效%cd/home/ying/dir1%cd/home/ying/link.dir若不注意这一点,随意删除其中某目录中的内容会给另一个目录带来灾难。可用/bin/pwd程序查看真实的路径名。.硬连接硬连接:几个文都件指向同一个inode.任何一个被删除都不会影响另外的文件。注意:不允许将硬链接连至目录.如果没有-f选项,被链接的目标如果存在,则会报错跨文件系统不允许有硬链接例如:linux:#ln/dev/shm/1/1ln:creating hard link/root/1 to/dev/shm/1:Invalid cross-device link21重定向与管道重定向就是将标准输入和标准输出,标准错误输出到其他的输入或输出设备上常用的是文件例如:ls 1.dat,将文件列表的内容保存在1.dat文件中wc2.result:从1.dat中读取数据给wc统计使用,统计结果放在2.result文件中adfasdfsd 2result:将adfasdfsd出错信息保存在result文件中管道就是将上一个命令的标准输出通过管理输出到下一个命令中,例如:ls|grep users:将文件列表输出行中包含users的行显示出来22cut。cut:按列或按域截取输入行中所指内容 格式:cut cf list-d char file 选项:-c 按字符截取 -f 按域截取 -d 指定定界符 (缺省为tab)例:%cut-c1-72 file%cut-f 1,3-5 file%cut-d:-f 1/etc/passwd.管道操作符|echo“abcd”|cut c 1,323findfind:搜索文件并执行指定的操作 格式:find dir options 选项:-name filename 查找名为filename的文件 -type x 查找类型为x的文件,x=d 目录 x=f普通文件 -user username 查找属主为username的文件 -size n 查找记录块为n的文件 -atime n 查找n天前被访问过的文件 -mtime n 查找n天前被修改过的文件 -exec cmd 对符合条件的文件执行cmd命令,表示所找到的文件,命令要用“;”结束:此选项在linux不好用 -a 选择同时满足多个条件的文件(逻辑与)-o 选择满足若干条件之一的文件(逻辑或)24find(expr)括号中的表达式作为整体判断 -print 显示找到文件的路径名例:%find/home(-name core-o-name a.out)-atime+3%find/-name“y2k*”print对于C+的程序测试很可能会出下core问题,可以在用户的配置文件中用find来监视,命令如下:find.name core*exec ls l;25grep:按给定的模式搜索文件格式:grep options pattern file 选项:-v 显示所有不匹配该模式的行 -c 仅显示匹配该模式的行 -l 仅显示包含指定模式的文件名 -y 模式不区分大小写26tar:将文件存档或读存档文件 t 列出tarfile 上文件信息,格式与ls相同o 与x项连用,以用户uid,gid 为文件的uid,gid(没有o选项,也以用户uid,gid为文件的uid,gid)v 详细报告tar 处理的文件信息,无此项则不报告。tar:将文件存档或读存档文件 格式:tar options tarfile filename (tarfile缺省指磁带机)选项:c 创建tarfile并写入 x 从tarfile 上读取文件 b 指定磁带文件记录块大小(缺省为20)f 指定其后参数为tarfile文件名(缺省为磁带机)qmdadminlinux:tar tvf liu.tardrwxrwxrwx liuguibing/root 0 2007-12-03 14:40:31 liu/-rwxr-xr-x qmdadmin/users 25 2007-11-26 16:27:54 liu/1qmdadminlinux:tar xvf liu.tarliu/liu/127date:显示或设置日期,时间格式:date+format /date current date 选项:参数以+开头,命令按用户要求的格式输出,格式为:%m 月份以01-12表示%d 日以01-31表示%y 年以00-99表示%D 以mm/dd/yy表示日期%H 小时以00-23表示%w 星期以0-6表示%a 星期以san-sat 表示%h 月份Jan-Dec表示例:%date+%a 显示:Fri#date 10080945 设置系统时间28。df:报告磁盘空间使用情况格式:df options resource 选项:-i(BSD用)报告已用和尚未用的 I节点数 -k 以k字节为单位显示磁盘使用信息 -F type (systv)报告指定类型的文件系统使用情况,其中type 可以是nfs,ufs 等值(BSD的是-t type)例:LINUX df 可显示如下:Filesystem 1K-blocks Used Available Use%Mounted on/dev/sda2 155223288 3893128 151330160 3%/tmpfs 512932 0 512932 0%/dev/shm29获得当前目录下各文件与目录占用空间du不需要统计子目录中的情况:du s*只统计指定的目录中的空间使用情况:du test 其中test就是指定的目录.30。file:判断文件类型格式:file filename 此命令可推测出文件类型,显示方式为:test.c:c program textnet:symbolic link to/net/sun4/net(符号连接)brie:executuble shell script (shell 脚本文件)lib:directory (目录)等等31。id:显示用户标识符格式:id-a user选项:-a 报告用户名、用户id及用户所属的所有组名例:%id-aUid=103(chr)gid=202(seis)32ps:显示当前进程状态格式:ps options namelist选项:-e 显示当前运行的每一个进程的信息 -f 产生一个父子关联进程完整的清单 -l 产生一个长清单例:%pslinux:#ps PID TTY TIME CMD 386 pts/5 00:00:00 su 387 pts/5 00:00:00 bash 407 pts/5 00:00:00 ps33进程的停止kill 语法:kill -信号 进程号 kill-9 进程号.其中参数-9的含义是只有有权限,就停掉此进程.34系统环境变量系统环境变量一定是系统内部定义好的一些变量,可以直接用$变量名加以引用.常用环境变量:$:当前登录进程的进程号.$SHELL:当前登录用户的SHELL程序.$PATH:当前用户执行一个命令时的搜索PATH路径设置一个环境变量:C SHELL:set var1=abc,B SHELL:var1=abc,引用环境变量:echo$var1别的SHELL可能不是这样设置的,请参考进一步的UNIX SHELL编程方面的参考书.35awk简介awk是一个UNIX上的应用程序,可以用来产生各种统计报表.cat 1.txt|awk F|print$21.txt文件是一个报表文件,其中每行一条记录,各个字段用|分隔,此命令打印1.txt中所有记录的第二个字段.36ftp:远程文件传递格式 ftp hostnameftp的命令参数是指定的主机名,可以是逻辑主机名,也可以是IP地址,下列的输入都是正确的:%ftp%ftp中的命令:!command 执行Shell命令Command?列出ftp的命令列表ascii 置传输文件方式为ascii方式cddirname 改变远程主机上的当前目录close 关闭与某主机的联接dir 显示远程主机的目录文件内容get/mget 从远程取一个/多个文件helpcommand ftp的联机帮助信息open hostname 与指定远程ftp服务器建立联系put/mput 向远程主机上送一个/多个文件 (可用通配符)pwd 显示远程主机的当前目录type 显示当前传递方式37。telnet:使用telnet协议的远程登录格式:telnet hostname例:%登录远程机,清华大学图书馆和性能相关的命令top:Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。内容说明:前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行;最后两行为内存信息;从第六行开始是进程信息区,通常包括以下信息:PID USER PR NI VIPT RES SHR S%CPU%MEM TIME+COMMAND 进程id 用户名 优先级 nice值 进程使用 进程使用的 共享内存 进程 cpu 进程使用 进程使用 命令名 的虚拟内 未被换出的 大小 状态 百分比 的物理 的CPU 存总量,物理内存大 单位kb 内存百分比 时间总计 单位kb 小,单位kb 单位1/100秒 命令使用:top-d p q c C S s n u参数简述,d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之;c 显示整个命令行而不只是显示命令名 u 显示指定用户的信息 和性能相关的命令free:内存使用量统计,通常在性能测试时使用此命令,它统计的比较准确;在性能测试时还有其他统计命令,如vmstat,iostat,sar等可以根据需要结合使用,这里就不再介绍了;网络监视命令netstat:是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。该命令的一般格式为:netstat 选项命令中各选项的含义如下:-a 显示所有socket,包括正在监听的。-c 每隔1秒就重新显示一遍,直到用户中断它。-i 显示所有网络接口的信息,格式同“ifconfig-e”。-n 以网络IP地址代替名称,显示出网络连接情形。-r 显示核心路由表,格式同“route-e”。-t 显示TCP协议的连接情况。-u 显示UDP协议的连接情况。-v 显示正在进行的工作。应用举例:stat an 显示所有的网络连接信息;stat ntp 显示所有的tcp连接情况,并且显示对应的执行程序;其它用法可以根据需要进行参数组合,这里不再举例;抓包命令Linux中的抓包命令是tcpdump,通常用法如下:1 抓取比较详细信息tcpdump-i eth0-s 0 -n-xxXX-vv-e tcp port 1521 2 将码流保存到文件中tcpdump-i eth0-s 0 -n-w file.cap tcp port 15213 简单的抓包方式tcpdump-i eth0-s 0-X port 1521抓包命令tcpdump部分参数含义:-i:指定网卡。-n:显示ip,而不是主机名。-c:指定抓多少个包后退出。-A:以ASCII方式显示包内容,这个选项对文本格式的协议包非常有用。-s:指定抓包显示一行的宽度,-s0表示显示完整的包,经常和-A一起用。-x/-xx/-X/-XX:以十六进制显示包内容,几个选项只有细微的差别,详见man手册。-vv:详细信息。-r:从文件中读取。-w:导出到指定文件。说明:在linux系统中如果要对本机抓包,将网卡换成本机网卡即可,网卡通过ifconfig a查看;tcpdump还有部分参数和用法这里没有列出,以上命令和参数基本能够满足我们日常工作需要,如果觉得不够可以自己继续深入学习。43第四章 Shell及shell编程4.1 shell 的基本认识 Shell是UNIX提供的与用户交互的接口,一般系统会提供多种shell,如:Bourne shell,c_shell,korn shell等,shell工作可用下图表示:Shell命令解释文件名取代输入输出定向建立连通管道系统环境设置程序语言设计44选择使用不同shell:1)shell 功能侧重点不同 K-shell B-shell有程序设计优势 c-shell 在命令使用中有优势2)如何改变shell环境 echo$shell-查看当前shell shell程序位置 /usr/bin/csh c-shell /usr/bin/sh B-shell /usr/bin/ksh K-shell在命令行输入shell程序名,输入exit返回原注册shell.45调试SHELL程序sh x shell.sh其中:shell.sh就是待调试的脚本程序.此时,界面可显示执行的每一句shell.sh中的语句.46)后台进程管理%cc prgm.c&47sort:对各行按词组或字符进行分类排序。比较时从第一个字符比起,再比第二个、第三个,选项:-b-忽略文件中的空格字符-d-字符按字典顺序排序-f-按大写字符排序-n-按数字的数值大小排序-o-排序输出存入文件-r-排序按字典反序进行例:$sort-fn text1$sort-f-o text1 text2484.3 shell 程序设计B shell 的程序设计功能较强。1.Shell 程序的设计与执行shell程序的功能是将命令序列(date ls-l)组合并由系统自动执行。file.sh 文件交给系统执行可用三种方式实现:。利用输入输出重定向$sh$1;2)cat$2$1;*)echo usage:append.sh from to;esac执行:$4.sh file1$4.sh file1 file261例2:写一段根据一天中不同时间给出问候信息的程序#!/bin/sh#练习 wh.sh#case 结构hour=date+%Hcase$hour in 01-9|101)echo“Good morning!”;1234567)echo“Good afternoon!”;*)echo“Good evening!”;esac运行:sh625.循环语句循环语句完成命令的重复执行1)for 循环语法:for var in word1 word2 wordn do commands donefor 循环中可根据需要进行嵌套63 例1:列出用户注册目录下的cc和work子目录中所有 .c文件。#!/bin/sh#显示.c文件cd$HOMEfor dir in cc work do echo“.in$dir.”cd$dir for file in *.c do ls-l$file done cd done运行:sh642)while 循环以命令表的出口状态为判别条件,决定循环体中的命令是否执行。语法结构:while cmdlist1do cmdlist2done例1:#!/bin/sh#while.sh while-r filea do echo before sleep sleep 5 echo sleep done done例2:#!/bin/sh#cfile.sh VAL=1 while$VAL -lt 11 do touch file$VAL VAL=expr$VAL+1 done运行:7.sh运行:./8.sh