• 1. Unix/Linux系统 主讲教师:王宇宾 学时:36
  • 2. 第5章 字符操作环境在某些情况下,尤其是作为服务器时,加载图形界面会占用大量系统资源,因此比较适合于字符环境。 Linux下字符操作环境有两种,一种是虚拟控制台或终端,一种是在图形界面中提供的多种虚拟终端工具,如Xterm、rxvt甚至是Windows环境中的虚拟终端工具Hyper Terminal等。
  • 3. 常用操作登陆 注销 图形界面:主菜单注销选择”注销” 文本界面中使用命令:”logout”或”exit” 关机 图形界面:主菜单注销选择”关机” 文本界面命令:”shutdown –h now” 重新启动 图形界面:主菜单注销选择”重新启动” 文本界面命令:”shutdown –r now”或”reboot”
  • 4. 进入字符操作环境的方法以图形环境启动 桌面上右击,选择“新建终端” 切换虚拟控制台 直接以字符环境启动
  • 5. 5.1 使用终端终端又称控制台。每个用户都是通过终端访问计算机资源。终端主要指用户的显示和输入设备。 Linux不仅能够支持多达256个终端连接到计算机上,还实现了6个虚拟终端,也就是说 ,将计算机主机上的显示器和键盘,当成6个终端接入到系统中。
  • 6. 1. 虚拟控制台Linux自带6个虚拟控制台,用tty1到tty6表示。图形窗口被认为是第7个控制台。 可以在不同的控制台中用不同的用户身份登录。 切换控制台的方法是:Ctrl+Alt+Fn 注意:虚拟机释放鼠标的热键就是Ctrl+Alt,此时在虚拟机中用“Ctrl+Alt+Fn”切换控制台将会变成释放鼠标。因此,需要改变虚拟机热键:“编辑——参数——热键”
  • 7. 2. 终端启动以字符界面启动终端时,会首先提示内核版本信息。 要求输入用户名和密码,其中密码不显示。 登陆后,如果和root用户,则显示“#”提示符,否则显示“$”提示符。
  • 8. (本页无文本内容)
  • 9. 3. 从虚拟控制台启动X Window如果是在tty1到tty6这6个虚拟控制台,可以直接用Ctrl+Alt+F7返回图形环境。 如果是直接启动到字符界面的话,则可以用startx命令启动图形界面。
  • 10. 5.1.2 转换系统模式设置启动模式。可以修改文本文件/etc/inittab,修改“id:5:initdefault”为“id:3:initdefault”。 运行时设为文字模式。在图形环境中,可以启动一个终端,并输入init 3命令就可以切换到文字模式。但下次启动,还会进入图形界面。
  • 11. 系统引导默认使用的界面模式与init进程的关系init进程是一个由内核启动的用户级进程。 内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(可以理解为系统所有进程的祖先进程,其进程编号始终为1)。
  • 12. init运行级别运行级别 简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从0到6 ,具有不同的功能。 这些级别在/etc/inittab 文件里指定。这个文件是init程序寻找的主要文件, 不同的运行级定义如下: # 0 – 关机(千万不能把initdefault 设置为0 ) # 1 - 单用户模式 # 2 - 多用户,没有 NFS # 3 - 完全多用户模式(标准的运行级) # 4 – 用户自定义 # 5 - X11 (x-window模式,即图形模式) # 6 - 重新启动 (千万不要把initdefault 设置为6 )
  • 13. 5.1.3 shell的历史终端主要是指显示和输入设备。shell则是用户与系统交互的接口。即用户通过终端输入设备输入命令,shell负责解释命令并要求系统完成操作,操作结果通过终端输出设备显示。 Red Hat Linux中带有几种不同的shell,默认的是BASH。
  • 14. 2. 启动shellLinux下有多种shell,都在/etc/shells文件中。可以用cat命令查看。 cat /ctc/shells 登录后,系统的提示就是BASH提示。 要想知道当前的shell,可以用: echo $SHELL 图形界面下,可以用“主菜单|系统工具|终端”命令打开。 退出可以单击关闭按钮,或输入exit,或按Ctrl+D
  • 15. 5.2 使用shell5.2.1 为什么使用shell 近年来,Linux的图形化环境已经有了很大改进,在X窗口系统下,几乎可以完成全部的工作。 但通常情况下,同样的功能在shell中完成的比在GUI下完成得快。
  • 16. 5.2.3 常用的shell操作浏览目录及文件 使用pwd判定当前目录。 Pwd是指Print working derectory。 改变所在目录命令cd。 cd ~(cd):回用户主目录。 cd ~username:到指定用户主目录。 cd -:回刚才的目录。 cd ..:回上一级目录。 cd 绝对路径(相对路径):到指定路径。
  • 17. cd命令举例假设有/dir1/dir2/dir3,当前处于dir3中,则如何转到dir1中? Cd /dir1 Cd .. Cd .. Cd ../..
  • 18. 5.2.3 常用的shell操作使用ls查看目录内容。 Ls命令可以查看当前目录内容,加-a参数可以显示隐藏文件。加-l参数可以显示创建日期、大小、所有者、权限等。 可以加目录名显示指定目录内容。 可以用man ls查看ls命令的详细用法,上下键浏览,q键退出。 可以建立别名,方便操作。如: alias dir=‘ls -al’
  • 19. find命令命令格式: find [目录列表] [匹配标准] 说明: 目录列表:希望查询文件或文件集的目录列表,目录间用空格分隔。 匹配标准:希望查询的文件的匹配标准或说明。常见的匹配标准如下表所示。
  • 20. find命令的常用选项-name 文件名 告诉find要找什么文件;可以使用通配符。 -size n 匹配所有大小为n 块的文件(512字节/块,若k在n后,则为1K字节块,+n表示大于n块,-n表示小于n块)。 -type x 匹配所有类型为x的文件。x是f(一般文件), d(目录), c(字符特殊),b(块特殊),p(有名管道),l(符号连接)或s(套接文件)。 -user 用户名 / -group 用户组 匹配文件属主/用户组 以时间特征为查找条件 -mtime n 匹配所有在前n天内修改过的文件。 -amin n 匹配所有在n分钟以前被访问过的文件。 -atime n 匹配所有在n天以前被访问过的文件。 -cmin n 匹配所有在n分钟以前文件状态被修改过的文件。 -ctime n 匹配所有在n天以前文件状态被修改过的文件。 -mmin n 匹配所有在n分钟以前文件内容被修改过的文件。
  • 21. du命令作用:显示目录/文件占用空间大小(以KB为单位) 命令格式: du 【选项】 【目录/文件】 常用选项: -s:只显示指定目录的大小 -h:以用户友好的格式显示文件大小 -a:输出所有子目录和子文件的使用空间情况(默认值只显示子目录的情况)
  • 22. 2. 命令行打印lpr命令可以把文件做到打印队列中。如 lpr test.txt -p参数指定打印机,-#num指定份数。 lp命令可以完成相同的功能 lpq命令可以查看打印队列信息。-p参数指定打印机。 lprm命令可以取消打印队列中的作业。但只有root用户可以取消其他用户作业。
  • 23. 3. 清除和重设终端机用clear命令可以清除终端中所显示的内容。 用reset命令可以重设终端。
  • 24. 4. 管道和重定向cat命令把文件连接后送到基本输出。 Cat filename 可以显示文件的内容。 Cat file1 file2可以把两个文件内容连接后显示。 直接cat,则每输入一些字符,按回车后,屏幕就显示刚才的内容。 Ctrl+D退出cat。
  • 25. 重定向重定向是指改变标准输出。 标准设备有标准输入、标准输出、标准错误输出3种,代码分别为0,1,2。重定向可以分别用<、>、2>。 例如:ls > list.txt可以将本应该在屏幕上输出的信息重定向到list.txt文件中。 还可以用cat > test.txt创建一个新文件,回车后可以输入数据,这些数据会重定向到该文件中。
  • 26. 重定向Cat > test1.txt,然后输入字符,可以得到新文件test1.txt。 Cat test1.txt test2.txt > test3.txt。得到新文件test3.txt,且内容和test1.txt内容相同,屏幕输出错误信息:没有test2.txt文件 Cat test1.txt test2.txt > test4.txt 2> test5.txt。则test4.txt内容和test1.txt相同,test5.txt存储了错误信息。
  • 27. 重定向用>重定向的时候,如果文件不存在,则创建;如果已存在,则将文件原有内容清除,写入新内容。 用>>重定向的话,如果文件已存在,则在文件原有内容的后面添加新内容。 用< 可以重定向输入。如: cat > test1.txt < test2.txt 可以把test2.txt的内容输入到test1.txt中。
  • 28. 4. 管道和分页器常用的分页工具:less,more。他们都可以一页一页的查看信息。More只能向下翻,less则更灵活。 以less为例: pagedown(空格键)向下翻动一页,pageup(b键)向上翻动一页。 /字符串 向下搜索字符串。 n:查找下一个。 N:查找上一个。 q:离开。
  • 29. 4. 管道和分页器选取工具:grep。可以在标准输入中分析各行,如果包含所需要的信息,则输出该行。 -i参数忽略大小写。 -n参数同时输出行号。 如: grep –in abc /root/mytest/test1.txt。表示在/root/mytest/test1.txt中搜索包含字符串“abc”的行,忽略大小写,同时输出行号。
  • 30. 4. 管道和分页器管道命令“|”把两个命令连接起来。并把前一个命令的输出(标准输出,不包括标准错误)送给后一个命令作为标准输入。 例如用ls看到的信息很多的话,无法停止,可以用:ls –al | less,就可以一页一页的看ls的信息了。 又如只想看test1.txt文件中包含“hello”字符串的行,则可以:cat test1.txt | grep –n hello (grep –n hello /test1.txt)
  • 31. 5. 阅读文本文件的其他命令head命令读取前n行。 tail命令读取后n行。 以head为例:head -n number filename。表示读取filename文件中的前n行数据。 不加-n,则默认10行。
  • 32. 6.命令历史和Tab自动补全可以用上、下箭头获得命令历史。 按Tab键可以自动把命令补全。 如果可能的情况有多种,则响铃,此时再按一次Tab键可以出现一个可能补全的列表。
  • 33. 7. 使用多重命令Linux下可以一次输入多重命令,但需要使用分号来分隔命令。 多重命令和管道命令不同,多重命令只是简单的顺序执行多个命令。 例如:date;mozilla;date,命令全部执行完后,可以通过前后两次date命令得知mozilla的使用时间。
  • 34. 8. 所有权和许可权限Linux下有强大的文件权限管理。用ls -l命令可以看到文件或目录的权限情况。 其第一列就显示了当前的权限,共10位。第一位代表文件类型,其他9为对应3种不同用户的3种不同的权限。
  • 35. 8. 所有权和许可权限表示文件类型的位可以有以下取值: d:目录 - : 常规文件 l:连接文件
  • 36. 8. 所有权和许可权限对应文件的3种不同访问权限分别是: r:文件可以被读取。 w:文件可以被写入 x:文件可以被执行(如果它可以执行的话)
  • 37. 8. 所有权和许可权限对应每个文件的3种不同用户,按顺序分别是: 所有者。通常就是创建者。 组群。即所有者所在的组的用户。 其他用户。除了所有者和组用户之外的其他所有用户。 以上每种用户都可以有前面所说的3种权限。 如-rwxr- - - - -,表示这是一个文件,所有者具有读写执行的权限,组用户只读,其他用户拒绝访问。
  • 38. 改变文件权限改变文件权限命令是chmod,改变权限可以有符号和数字两种方式。 符号方式的格式是:Chmodu(所有者)+(添加权限) -(删除权限) =(指定权限)r(读取)文件或目录g(用户组)w(写入)o(其他用户)X(执行)a(所有人)
  • 39. 改变文件权限如为组用户添加写权限,同时删除其他用户的所有权限。可以用如下命令: chomd g+w,o= test1.txt 设置所有用户可读,但删除其他用户的写权限。可以用如下命令: chmod a+r,o-w test1.txt -R参数表示递归的持续更改,因此可以将目录下的所有文件和子目录都改变权限。
  • 40. 改变文件权限也可以用数字来代表每种权限。 r=4,w=2,x=1,-=0 将各种权限所对应的数字加在一起,就可指定某种权限。 例如要设置所有者具有所有权限,组用户只读,其他用户拒绝所有权限,可以用如下命令:chmod 740 test1.txt 一些权限可以参看课本P104
  • 41. 5.3 字符编辑器vi 字符模式下进行配置工作时,需要使用字符界面下的编辑器,vi是最常用的一个。 在字符模式下输入vi即可打开vi编辑器。打开后可以看到,实际上现在用的都是vim。 要退出vi,按Esc后,再输入“:q”即可退出。
  • 42. 5.3.2 vi的操作模式Vi的界面分为两个部分:编辑区和命令区。命令区在屏幕最下方的一行,可以输入命令。其他区域则是编辑区,是实际进行编辑文字的地方。 Vi有3种模式: Command Mode:控制光标移动,复制、删除,进入其他模式。 Insert Mode:新增文字、修改文字。 Last Line Mode:保存、退出、查找字符串
  • 43. 5.3.2 vi的操作模式Command Mode移动光标或编辑文字Input Mode输入文字Last Line Mode搜索或替换,保存及退出按Esc键按a、i、o键按 :键命令错误或按Esc
  • 44. 5.3.3 Command Mode命令1 移动光标 上下左右键(K,J,H,L) :上下左右移动一格 Home(0):移到行首 End($):移到行尾 Page Up和Page Down:向上、下滚动一页 G:移到最后一行 gg:移到第一行 nG:移到第n行
  • 45. 5.3.3 Command Mode命令2 复制文字 yy:复制整行 nyy:n为数字,表示复制光标所在的向下n行。例如5yy表示复制5行。 p:将复制的内容粘贴在光标所在位置的下一行。 P(大写):将复制的内容粘贴在光标所在位置的上一行
  • 46. 5.3.3 Command Mode命令3 删除 X(大写):向前删除一个字符,相当于Backspace键 x(小写):向后删除一个字符,相当于Del键 dd:删除光标所在行 ndd:删除光标所在行及以下的n行
  • 47. 5.3.3 Command Mode命令5 其他按键 r:修改光标所在字符 u:取消上次操作 Ctrl+r:恢复上次+操作 .:重复上一个动作
  • 48. 5.3.4 Last Line Mode命令 按“:”键可以从Command Mode进入Last Line Mode w:存盘 w filename:存储到filename文件中,相当于“另存为” q:退出vi,如果不想保存的话,则使用q! wq:存盘并退出 set nu:在vi中显示行号,取消显示行号则使用set nonu
  • 49. 5.3.4 Last Line Mode命令/word:从光标位置开始,向下查找“word” ?word:从光标位置开始,向上查找“word” n:重复前一个搜索的动作 N:“反向”进行前一个搜索的动作 n1,n2s/word1/word2/g:在n1行到n2行之间,把word1替换为word2