Bash和kornshell的shell提示符为$C-shell的shell提示符为%Root#注销的三种方法为:logoutexitloginPasswd改变用户口令Last检查他人是否使用过您的unix账户假如您以harley登录Lastharley会显示您上一次或者最近几次的登录时间假如只输入了lastLast会显示系统上所有的用户标识信息运行级别描述0关机(shutdown,halt)1单用户模式:命令行(系统维护模式)2非标准化3多用户模式:命令行(服务器)4非标准化5多用户模式:GUI(桌面系统)6重启(reboot)su-命令格式:su[-][userid]-例子:[harley]$suweedlyPassword:[weedly]$[weedly]$exit[harley]$输入命令suweedly后,虽然用户标识变成了weedly,但仍然在harley的环境下工作。如果希望创建新的环境,使用su-weedly命令。切换到超级用户[harley]$suroot/su/su-root/su-Password:#CTRL+C映射到intr信号,停止程序^S映射到stop信号^Q映射到start信号^D映射到eof信号使用sudo命令,以root权限执行一条命令命令格式:sudocommand例子:[harley]$sudoidPassword:uid=0(root)gid=0(root)groups=0(root)一些重要的配置文件1./boot/grub/menu.lst:关于计算机上可以引导的操作系统的信息2./etc/hosts:系统已知的主机名称和IP地址3./etc/inittab:不同运行级别的定义4./etc/passwd:每个用户标识的基本信息5./etc/profile:用户标识登录时,系统自动执行的命令启动时显示的信息无法看清楚,怎么办?-使用dmesg命令查找某个程序是否可用:which-使用方式例子:$whichdate$whichdatelessviemacs第一个命令的输出:/bin/datewhich找不到提示什么信息?跟shell的版本有关,大致有两种提示(1)没有任何输出(2)提示一个错误信息$whichharley/usr/bin/which:noharleyin(/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/harley/binwhich的查找范围是什么?全局变量PATH指定的路径Bash中提供了which的备用命令type$typedate-Kornshell中提供了which的备用命令whence$whencedatedate命令-命令格式:date-输出内容:日期和时间-显示UTC时间:date-u特别注意:time命令并不显示时间,它用于测量程序的运行时间cal命令-显示当月的日历:cal-显示指定月份的日历:calmonth-显示指定年份的日历:calyear-显示指定年份和月份的日历:calmonthyear-日历中显示的不是月份的日期序号,而是年份的日期序号:cal-j[month][year]例子:$cal-j122009December2009SunMonTueWedThuFriSat335336337338339340341342343344345346347348349350351352353354355356357358359360361362363365uptime命令-功能:显示系统连续运行的有关信息hostname命令-功能:查看计算机的名称uname命令-功能:查看操作系统的名称-例子:$uname-a(显示完整信息)whoami命令-功能:显示当前的用户标识-说明:如果系统上没有whoami,尝试输入whoamiusers命令-功能:在共享系统中,查看当前登录的所有用户标识例子:$usersalexcaseyharleyroottammywho命令-功能:在共享系统中,查看当前登录的所有用户标识,比users显示的内容更多-例子:$whotammytty1Nov1021:25roottty2Nov1115:12caseypts/0Nov1110:07(luna)rootpts/1Nov1110:52(nipper.harley.com)tammypts/2Nov1114:39(thing.tayloared.com)w命令-功能:在共享系统中,查看当前登录的所有用户标识,比who显示的内容更多-例子:$w8:44pmup9days,7:02,3users,loadaverages:0.11,0.02,0.00USERTTYFROMLOGIN@JCPUPCUPWHATtammyconsole-Wed9am2:380.00s-bashharleypts/1-12:210.01swalexttyp0luna13:1143:26s1.52svi分页显示-使用less、more、pg查找说明书页mankill(默认在第一节中查找)man3ckill(在3c中查找)知道要做什么,但不知道用什么命令,利用关键字查询所需要的命令man-kkeyword系统启动时,会启动一个shell,称为登录shell临时改变shell时,只需要在登录shell中输入新shell对应的程序名即可。两个技巧:-查看系统中的可用shell:less/etc/shells-查看当前shell名称:echo$SHELL口令文件改变登录shell登录shell的信息保存在口令文件中:/etc/passwd直接修改这个文件,可能会破坏该文件,影响系统启动,因此需要一个命令:chsh[-sshell][userid]注意:普通账户只能改变自己的启动shell,root可以改变其它账户的启动shell例子:将默认的登录shell改为tcsh$chsh–s/bin/tcshC-Shell家族中,环境变量用大写字母,shell变量用小写字母Bourneshell家族中,都采用大写字母Bourneshell家族中定义变量-定义局部变量HARLEY=cool-定义环境变量exportHARLEYC-Shell家族中定义变量-定义局部变量使用set命令-定义环境变量使用setenv命令显示环境变量常用命令-env-printenv或分页方式-env|less-printenv|less或排序加分页方式-env|sort|less-printenv|sort|less显示shell变量命令-set显示及使用变量的值-echo:所有shell通用-print:Kornshell上使用例子$echohostnameis$HOSTNAMEerror!$echo“hostnameis$HOSTNAME”hostnameisluna$echoThisis$HOSTNAME’scomputererror!$echoThisis${HOSTNAME}’scomputerThisisluna’scomputer创建变量-方式1$NAME[=value];exportNAME-方式2$exportNAME[=value]…复位变量-unsetNAME…例子:PAGER=less;exportPAGERunsetPAGERexportHARLEYWEEDLYexportPAGER=lessEDITOR=viPATH=“/usr/local/bin:/usr/bin:/bin”元字符-拥有特殊含义的字符。-如:$、;、|、、等。引用字符-在输入时,告诉shell,希望按字面含义解释字符,而不使用其特殊含义。引用字符的3种方法-1.使用反斜线引用单个字符echoItisawarmandsunny\;comehere当我们使用反斜线引用单个字符时,称反斜线为转义字符。2.使用单引号引用一串字符echo‘Itisawarmandsunny;come&visit’3.使用双引号引用一串字符,但是保留$、`(反引号)和\(反斜线)的特殊含义、echo“Myuseridis$USER;”shell命令分类-内部命令(内置命令)由shell直接解释-外部命令执行命令对应的程序如何判断命令是否是内置的?-使用type命令typecommand…如:$typedatetimesetdateis/bin/date--------------------外部命令timeisashellkeywordsetisshellbuiltin学习内部命令方式1:看shell的说明书页-manbashmankshmantcshmancsh方式2:看内置命令的说明书页-aproposbuiltinmanbuiltin(FreeBSD)manshell_builtin(Solaris)mancsh方式3:使用help命令-help[-s][command…]-s:只看语法定义例子:helpset|lessshell在什么地方查找外部命令?-环境变量PATH中保存的路径,这个路径又被称为“搜索路径”修改路径的三种情形:-1.重新设置路径例子:Bourneshell:exportPATH=“/bin:/usr/bin:/usr/local/bin”C-Shellsetpath=(/bin/usr/binusr/local/bin)2.将新路径加到PATH路径的后面例子:Bourneshell:exportPATH=“$PATH:$HOME/bin”C-Shellsetpath=($path$HOME/bin)3.将新路径加到PATH路径的前面例子:Bourneshell:exportPATH=“$HOME/bin:$PATH”C-Shellsetpath=($HOME/bin$path)修改shell提示的方法-BourneshellexportPS1=“newvalue”-C-Shellsetprompt=“newvalue”在shell提示进行命令替换-例子1:将shell的名称放入到shell提示中。exportPS1=“`basename${SHELL}`$”-例子2:将userid放入到shell提示中。exportPS1=“`whoami`$”1.执行历史列表中指定编号的命令fc-s[number]2.执行历史列表最新的命令Fc-s3.在命令执行之前修改命令fc-spattern=replacementnumber$fc-stempfile=data54.在命令执行之前修改最近用过的命令fc-stempfile=data定义别名-Bourneshell:alias[name=commands]-C-Shell:alias[namecommands]例子$aliaslt=‘ls-ltemp*’$aliasinfo=‘date;who’怎么区分命令和别名-使用type命令$typeinfoinfoisaliasedto‘date;who’查看别名的值-查看指定别名:aliasname-查看所有别名:alias删除别名-删除指定别名unaliasname-删除所有别名Bourneshell:unalias-aC-Shell:alias*初始化文件-登录文件存放着每次登录时自动执行的命令1.创建或修改环境变量的命令;-2.执行所有一次性操作的命令。-环境文件存放着在新shell启动时自动执行的命令设置不能在环境中保存的自定义项,特别是shell选项、别名和函数。注销文件存放着每次注销时自动执行的命令使用ls-a可以查看隐藏文件。-重定向时不替换已存在的文件set–onoclobber临时忽略noclobbercommand|filename在传统的Unix环境下,有两个基本的操作用于创建和修改进程:1.函数fork()用来创建一个新的进程,该进程是当前进程的一个副本,称为副本进程。2.函数族exec()用来启动另外的进程以取代当前运行的进程。在C-Shell中重定向标准