您的浏览器Javascript被禁用,需开启后体验完整功能, 请单击此处查询如何开启
网页 资讯 视频 图片 知道 贴吧 采购 地图 文库 |

项目3 用Linux命令行操作处理日常业务_计算机软件及应用_IT/计算机_专业资料

14549人阅读|311次下载

标签:
  • 命令行|
  • 业务|

项目3 用Linux命令行操作处理日常业务_计算机软件及应用_IT/计算机_专业资料。Linux 网络操作系统 易著梁 邓志龙 Email:yzlmhm@163.com jenod@163.com 项目背景 你的网络公司管理着在不同地区的多台Linux主机, 现状如下: 1)这些主


Linux 网络操作系统 易著梁 邓志龙 Email:yzlmhm@163.com jenod@163.com 项目背景 你的网络公司管理着在不同地区的多台Linux主机, 现状如下: 1)这些主机安装有各种发行版的Linux,比如Ubuntu, Fedora 等(不同Linux发行版本,图形操作界面可能不太 一样),而且有些做服务器Linux主机只提供了文本环境 2)Linux主机不在同一地区,因此,管理Linux主机大多使 用远程登录方式(Telnet,SSH)——如果你不怕辛劳, 也可以事事都身临其境,而远程登录通常采用文本环境登 陆 作为公司新网管的你要高效率的管理好这些主机, 怎么办? 项目3 用Linux命令行操作处理日常业务 项目分解: 任务1 任务2 任务3 任务4 任务5 初识 Linux命令 使用命令进行文件和目录管理 使用命令进行简单系统管理 使用命令进行文件压缩和解压缩 使用命令进行进程管理与作业控制 任务1 初识 Linux命令 1、为什么要使用Linux命令 历史原因 在Linux早期的版本中,由于不支持图形化操作,用户基本上都 是使用命令行方式来对系统进行操作,另一方面,Linux发行版 本众多,但不同发行版之间Linux命令操作都是相似的; 命令优势 现在虽然有了图形化操作界面,但是掌握常用的一些Linux命令 是非常方便的。Linux命令是Linux操作系统的一大优势,命令行 操作的运行不需要占用过多的系统资源,功能也十分强大,几乎 所以的Linux操作都可以通过命令完成。 熟练掌握Linux命令操作也是领会Linux系统精髓的必然途径。 远程管理(Telnet、SSH)要求 作为公司新网管的你要高效率的管理好这些主机,能 够熟练使用Linux命令行处理日常业务是必须的。 2、怎样进入命令环境 本机进入 1)开机后进入文本环境 – 开机选择恢复模式 – 或者设置开机直接进 入文本模式 2)图形化环境还提供了 一种仿真“终端”,在“终 端”下的命令操作与纯文 本环境的命令操作是完 全一样的,在Ubuntu Linux 上打开“终端”方法 是点击“应用”—“附件”— “终端”。 3)使用虚拟控制台: Ctrl+Alt+Fn 远程登陆 使用Telnet方式 3、linux命令格式说明(1) command [-options] [arguments(或parameters)] 命令名 [ 选项] [参数 1] [参数 2]…… 选项是对命令的特别定义,以-开始,多个选项可用一个连起来 – 如ls -l -a与ls -la相同 单字符选项前使用一个减号(-),单词(多字符)选项前 使用两个减号(--) – 如ls --help 参数[arguments]提供命令运行的信息,或者是命令执行 过程中所使用的文件名。操作参数可以是文件也可以是目 录,有些命令必须使用多个操作参数, 如cp命令必须指 定源操作对象和目标操作对象。 3、linux命令格式说明(2) command [-options] [arguments(或parameters)] 最简单的命令只有命令名,复杂的Shell令可以有多个参数。 命令与参数区分大小写,命令名一般由小写的英文字母构 成,往往是表示相应功能的英文单词或单词的缩写 – 如cp是copy的缩写,表示拷贝文件 – 演示命令:date,Date,DATE 命令名、参数和操作参数都作为命令执行时的输入,它们 之间用空格分隔开。 任务2 使用命令进行文件和目录管理 要学会使用Linux命令,首先要能够使用命令进行 文件和目录管理 任务细分 任务2.1 定位文件与目录 – 教师指导学生完成教材3.2.1 任务2.2 浏览文件与目录 – 教师指导学生完成教材3.2.2 任务2.3 搜索文件内容 – 教师指导学生完成教材3.2.3 任务2.4 操作文件和目录 – 教师指导学生完成教材3.2.4 任务2.1 定位文件和目录 1) pwd - 显示用户所在的位置 显示用户所在的位置。 root@Ubuntu:~# pwd /root 在Ubuntu Linux文本环境,对于命令前的 “root@Ubuntu:~#‖,说明如下: 其中“root”表示登录用户名, “Ubuntu”代表计算机名, “:”后边表示的是用户当前目录 最后的字符为命令提示符。 – Ubuntu Linux操作系统默认是使用普通用户账号登录系统,默认的 命令提示符为“$‖,如果使用root即超级用户账号登录系统后,则默 认的命令提示符为“#‖。 任务2.1 定位文件和目录 2) cd - 命令用来改变工作目录 在使用cd进入某个目录时,用户必须具有对该目录的读权限。 (1)改变当前所处的目录,如果用户当前处于/root目录,想 进入/etc目录。 root@Ubuntu:~# cd /etc root@Ubuntu: /etc # pwd /etc 注意cd后的空格。 (2)返回上级目录。 root@Ubuntu:~# cd .. root@Ubuntu:/# pwd / 任务2.1 定位文件和目录 2) cd - 命令用来改变工作目录 (3)回到用户主目录。 root@Ubuntu:/# cd ~ root@Ubuntu:~# pwd /root 返回到用户主目录也可以直接执行命令“cd‖。 在Linux系统中,“~‖表示为登录主目录,“.‖表 示目前所在的目录,“..‖表示目前目录位置的上 一层目录。对于“root‖用户的主目录是“/root‖, 其他一般用户的主目录默认在“/home‖下,例如, 对于“student‖用户,默认主目录为 “/home/student‖。 如果要在最近工作过的两个目录间切换,可以执行 命令“cd –‖。 任务2.1 定位文件和目录 3) find - 在硬盘上查找文件 find是Linux功能最为强大,使用也是较为复杂的命令。 Find命令格式:find [<路径>] [匹配条件] 路径:希望查询文件或文件集的目录列表,目录间用空格 分隔。 匹配条件:希望查询的文件的匹配标准或说明。 任务2.1 定位文件和目录 3)find - 在硬盘上查找文件 下面简单介绍使用: (1)从根目录开始查找文件名为passwd的文件。 root@Ubuntu:~# find / -name passwd /etc/pam.d/passwd /etc/passwd /var/cache/system-toolsbackends/backup/2/etc/passwd ┆ (2)查找/usr目录下前10天访问过的文件(仅第 10天这一天)。 root@Ubuntu:~#find /usr –atime 10 任务2.1 定位文件和目录 3) find - 在硬盘上查找文件 (3)查找/usr目录下前10天之前访问过的文件。 root@Ubuntu:~#find /usr –atime +10 (4)查找/usr目录下前10天之后访问过的文件。 root@Ubuntu:~#find /usr –atime -10 演示以上命令区别 (5)列出当前目录下所有扩展名是“doc‖的文件。 root@Ubuntu:~# find -name "*.doc― ./Desktop/第3章 Linux基本命令.doc ./Desktop/第1章 Linux基本命令.doc 如果查找目录为空,则在当前目录下寻找。 任务2.1 定位文件和目录 3. find - 在硬盘上查找文件 (6)查找目录/etc与/home下文件大小小于4K的文 件。 root@Ubuntu:~# find /etc /home –size -4k find命令可接受的文件尺寸单位有字节(c),块 (b,512字节),K(k,1024字节)等。 拓展:find命令选项 -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命令,将这些文件备份到磁带设备中。 另外,下面三个的区别: -amin n 查找系统中最后N分钟访问的文件 -atime n 查找系统中最后n*24小时访问的文件 -cmin n 查找系统中最后N分钟被改变文件状态的文件 -ctime n 查找系统中最后n*24小时被改变文件状态的文件 -mmin n 查找系统中最后N分钟被改变文件数据的文件 -mtime n 查找系统中最后n*24小时被改变文件数据的文件 任务2.1 定位文件和目录 4) locate - 用来定位文件或目录。 同find命令相比较,locate命令是从数据库中查找,而不是 每次搜索文件系统。因为是从数据库中查找,locate的速度 远远快于find命令。但是,使用locate命令查找的结果仅仅 是在当前数据库,结果可能会没有find准确。 查找apt.conf文件。 root@Ubuntu:~#locate apt.conf /etc/apt/apt.conf.d /etc/apt/apt.conf.d/01ubuntu /etc/apt/apt.conf.d/10periodic /etc/apt/apt.conf.d/00trustcdrom ┆ 注意以find比较查找速度 附:updatedb更新数据库命令 任务2.2 浏览文件和目录 1) ls - 用来显示用户当前或指定目录的内容 在ls命令中还可以使用通配符“*”、“?”。这样可以使用 户很方便地查找特定形式的文件和目录。如果不指定目录, 将显示当前目录的内容,否则显示指定目录的内容。 (1) 输出根目录下文件或目录的详细信息。 root@Ubuntu:~# ls –l /总用量 84 drwxr-xr-x 2 root root 4096 2007-05-19 05:00 bindrwxr-xr-x 3 root root 4096 2007-05-19 05:45 bootlrwxrwxrwx 1 root root 11 2007-05-19 04:26 cdrom -> media/cdrom drwxr-xr-x 12 root root 13720 2007-07-20 23:55 dev ┆ 第一组 二 三 四 五 六 七 [文件属性][inode数][拥有者][所有者组][大小] [建立日期] [文件/目录名] 这个结果提供了许多细节信息,共七组,各组之间使用空格分开。 任务2.2 浏览文件和目录 drwxr-xr-x 12 root root 13720 2007-07-20 23:55 dev ┆ 第一组 二 三 四 五 六 七 [文件属性][inode数][拥有者][所有者组][大小] [建立日期] [文件/目录名] 第一组为文件模式。文件模式中第一位代表文件类型,其余九位 用于三组不同用户的三组权限。文件类型有三种,其中“d‖表示 目录,“-(短线)”表示常规文件,“l‖表示到系统上其他位置 的另一个程序或文件的符号链接。 第二组即连接数。对文件而言,此数表示该文件在系统中保存的 备份数,通常为1。对目录而言,表示的是该目录中的子目录数。 第三组即所有者名。指出该文件或目录是属于哪个用户的。 第四组即组名。指出该用户所属组名。 第五组即文件大小。指出该文件或目录占有的字节数。 第六组即最后修改日期和时间。说明文件最后一次修改或创建的 日期和时间。 第七组即文件名。为文件或目录的真实名字。 任务2.2 浏览文件和目录 drwxr-xr-x 12 root root 13720 2007-07-20 23:55 dev ┆ 第一组 二 三 四 五 六 七 [文件属性][inode数][拥有者][所有者组][大小] [建立日期] [文件/目录名] 在文本模式,Linux的文件类型由第一组的第一列表示。 为“ d ”则是目录; 为“ – ”则是文件,例如上表的第 5 行; 若是“ l ”则表示为连结文件(link file); 若是“b ”则表示为块设备文件; 若是“ c ”则表示为字符设备文件 另外,在文本模式下,linux个文件类型也可以由显示的颜色决 定。 蓝色文件:表示目录; 白色文件:一般性文件,如文本文件,配置文件,源码文件等; 浅蓝色文件:表示链接文件,主要是使用ln命令建立的文件; 绿色文件:可执行文件,可执行的程序; 红色文件:压缩文件或者包文件。 任务2.2 浏览文件和目录 (2) 列出当前目录下所有文件(包括隐含文件)。 root@Ubuntu:~# ls –a . .evolution .ICEauthority .openoffice.org2 .. .gconf .java .profile .aptitude .gconfd .kde .qt .bash_history .gimp-2.2 .lesshst .recently-used ┆ Linux 系统的隐含文件是文件名“.‖以开头。 (3) 列出目录下所有文件或目录的详细信息。 root@Ubuntu:~# ls –la drwxr-xr-x 35 root root 4096 2007-07-01 16:16 . drwxr-xr-x 21 root root 4096 2007-07-01 15:51 .. drwx------ 2 root root 4096 2007-06-24 20:03 .aptitude drwxr-xr-x 2 root root 4096 2007-06-11 21:09 Desktop -rw------- 1 root root 47 2007-05-19 16:35 .dmrc drwxr-xr-x 2 root root 4096 2007-06-03 16:00 Downloads ┆ 任务2.2 浏览文件和目录 (4) 列出包括子目录下的所有文件。 root@Ubuntu:~# ls –R .: Desktop Downloads ./Desktop: Arland Catalogue1.xls Screenshot-Index ./Downloads: 任务2.2 浏览文件和目录 2. head - 用来查看文件的开头部分 本命令只限于查看文件的前几行,看不到文件实际 上有多长。按照默认设置,只能阅读文件的前十行。 查看文件/etc/profile前五行。 root@Ubuntu:~#head -5 /etc/profile # /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). if [ "$PS1" ]; then if [ "$BASH" ]; then 任务2.2 浏览文件和目录 3. tail - 查看文件结尾部分 在缺省状态tail命令用于查看文件结尾的十行,与head命令恰恰相 反。这有助于查看日志文件的最后十行来阅读重要的系统消息,还 可以使用tail来观察日志文件被更新的过程。 (1) 即时观察/var/log/messages的变化。 root@Ubuntu:~# tail -f /var/log/messages Jul 13 17:51:54 dzl kernel: [ 1843.605792] Inbound IN=ppp0 OUT= MAC= SRC=222.216.8.168 DST=222.216.18.32 LEN=48 TOS=0x00 PREC=0x00 TTL=123 ID=56016 DF PROTO=TCP SPT=4683 DPT=445 WINDOW=64800 RES=0x00 SYN URGP=0 Jul 13 17:55:09 dzl kernel: [ 2037.738192] Inbound IN=ppp0 OUT= MAC= SRC=24.81.234.15 DST=222.216.18.32 LEN=52 TOS=0x00 PREC=0x00 TTL=227 ID=0 DF PROTO=TCP SPT=21495 DPT=1080 WINDOW=46748 RES=0x00 SYN URGP=0 ┆ 使用此命令,/var/log/messages文件内容一有变化将马上在屏幕显 示出来。 任务2.2 浏览文件和目录 4. cat - 合并文件或者显示文件的内容 cat是“concatenate‖的缩写,即合并文件。该命令可以显示 文件的内容,或者是将多个文件合并成一个文件。 (1)使用cat阅读短文。 root@Ubuntu:~# cat /etc/profile (2)建立两个文件并重定向到file1与file2。 重定向就是使系统改变它所认定的标准输出,或者改变标准输出 的目标。要重定向标准输出,使用“>”符号。把“>”符号放在cat命 令之后(或在任何写入标准输出的工具程序和应用程序之后), 会把它的输出重定向到跟在符号之后的文件中。 – root@Ubuntu:~# cat > file1 – hello , student! 回车,按Ctrl+d结束输入。 – cat > file2 – This is great 回车,按Ctrl+d结束输入。 任务2.2 浏览文件和目录 (3)追加file2文件到file1。 root@Ubuntu:~#cat file2 >> file1 root@Ubuntu:~#cat file1 hello , student! This is great (4)合并file2与 file1文件到file3。 root@Ubuntu:~#cat file2 file1 > file3 root@Ubuntu:~#cat file3 This is great hello , student! This is great 按Ctrl+d结束输入。 任务2.2 浏览文件和目录 5. more - 显示文件的内容 more命令是一般用于要显示的内容会超过一个画面 长度的情况。为了避免画面显示时瞬间就闪过去, 用户可以使用more命令,让画面在显示满一页时暂 停,此时可按空格健继续显示下一个画面,按b键 就会往回(back)一页显示或按Q键停止显示。 (1)显示/etc/profile文本文件的内容。 root@Ubuntu:~#more /etc/profile 屏幕在显示满一屏时暂停,此时可按空格健继续显 示下一屏,不像cat命令那样对不能一屏显示的就 一闪而过到最后一屏。 任务2.2 浏览文件和目录 5. more - 显示文件的内容 (2)当用ls命令查看文件列表时,如果文件太多, 则可配合more命令使用。 root@Ubuntu:~#ls -al | more 以长格形式显示当前目录下的文件列表,显示满一 个画面便暂停,可按空格键继续显示下一画面,或 按Q键跳离。 任务2.3 搜索文件内容 搜索文件内容可以使用grep命令 1. grep - 在文件中查找指定的字串 grep除了可以查找固定的字符串,还可以使用较为复杂的匹配模 式。要实现复杂的匹配模式,需要使用如下的表达符号: – – – – – ? 匹配字符串中的一个字符。 * 匹配任意个字符。 \* 匹配“*”字符。 \? 匹配“?‖字符。 \) 匹配“)”字符。 (1)搜索profile文件中字符串then并输出。 root@Ubuntu:~#grep then /etc/profile if [ "$PS1" ]; then if [ "$BASH" ]; then if [ -f /etc/bash.bashrc ]; then if [ "`id -u`" -eq 0 ]; then 任务2.3 搜索文件内容 搜索文件内容可以使用grep命令 1. grep - 在文件中查找指定的字串 (2)搜索profile文件中字符串then并以显示行数 输出。 root@Ubuntu:~# grep -n then /etc/profile 4: if [ "$PS1" ]; then 5: if [ "$BASH" ]; then 7: if [ -f /etc/bash.bashrc ]; then 11: if [ "`id -u`" -eq 0 ]; then 显示说明在/etc/profile文件的4,5,7,11行包含 then字符串。 任务2.4 操作文件和目录 1. cp - 复制文件或目录 (1)复制文件/etc/profile到当前目录。 root@Ubuntu:~#cp /etc/profile . (2)复制/etc/apt目录下所有的内容,包括所有 子目录到当前目录。 root@Ubuntu:~#cp –R /etc/apt . (3)使用通配符复制etc目录下mail开头的所有文 件到当前目录。 root@Ubuntu:~#cp /etc/mail* . 任务2.4 操作文件和目录 2. touch - 生成一个空文件或修改文件的 存取/修改的时间记录值。 (1)将当前下的文件时间修改为系统的当前时间。 root@Ubuntu:~#touch * root@Ubuntu:~#ls (2) 新建文件。 root@Ubuntu:~#touch test root@Ubuntu:~#ls -rw-r--r-- 1 root root 0 2007-07-13 18:10 test 注:若文件存在,则修改为系统的当前时间;若文 件不存在,则生成一个为当前时间的空文件。 任务2.4 操作文件和目录 2. touch - 生成一个空文件或修改文件的 存取/修改的时间记录值。 (3)将test文件的日期改为20110610 。 root@Ubuntu:~#touch –d 20110610 test root@Ubuntu:~#ls -l -rw-r--r-- 1 jenod jenod 0 2007-07-10 00:00 test 任务2.4 操作文件和目录 3. mv - 移动文件 可以将文件及目录移到另一目录下,或更改文件及 目录的名称 (1)将test文件移动上层目录。 root@Ubuntu:~#mv test ../ (2)将profile改名为profile.back。 root@Ubuntu:~#mv profile profile1.back 任务2.4 操作文件和目录 4. rm - 删除文件和目录 (1)删除文件主目录下file1文件。 root@Ubuntu:~#rm profile (2)删除文件主目录下file2文件时给以提示。 root@Ubuntu:~#rm –i file2 rm :是否删除一般文件“file2”? (3)递归删除目录。 root@Ubuntu:~#rm -r apt (4)强制递归删除目录。 root@Ubuntu:~#rm –rf apt 不给提示直接删除apt目录下的文件与apt目录。 任务2.4 操作文件和目录 5. mkdir - 创建目录 (1)在当前目录下建立新目录dir1。 root@Ubuntu:~#mkdir dir1 (2)若当前目录下无book目录,在当前目录创建 book/Linux子目录。 root@Ubuntu:~#mkdir book/Linuxmkdir : 无法创建目录‘book/Linux’: No such file or directory root@Ubuntu:~# mkdir –p /book/Linux root@Ubuntu:~#ls book jenod 一次创建多层目录要加-p参数。 任务2.4 操作文件和目录 6. rmdir - 删除目录 与创建目录类似,加上-p参数表示如果删除一个目 录后,其父目录为空,则将其父目录一同删除。 (1)删除目录。 root@Ubuntu:~# rmdir dir1 (2)删除当前目录下的book/Linux子目录,如果 book目录为空,也删除该目录。 root@Ubuntu:~# rmdir –p book/Linux book目录不为空则保留。 常用的命令 定位文件与目录命令 cd pwd find locate 浏览文件命令 cat more less 目录操作命令 mkdir rmdir 文件操作命令 touch rm cp mv ln tar gzip gunzip whereis whatis 命令使用拓展 命令行的历史记录 通过按向上的光标键可以向后查阅近来在控制台下输入的 命令,用向下光标键可以向前查阅,若与Shift键连用,还 可以查阅以往在该控制台中的输出。用户也可以编辑旧的 输入命令,然后再运行。 按Ctrl+r键后,shell就进入"reverse-i(ncremental)-search" (向后增量搜索)模式。现在即可输入需要查找的命令首 字母,如下所示。 – (reverse-i-search)":. 输入i可能会变成: (reverse-i-search)'i': isdnctrl hangup ippp0 如果按Enter键,上面的命令将再次执行,而如果按了向 左、向右光标键或Esc键,上面的命令将回到普通的命令 行,这样就可以进行适当地编辑。 命令使用拓展 编辑命令行 通过光标键和功能键(Home、End等键)可以浏览并编辑命令行,如果需要 还可以用快捷来完成一般的编辑。 Ctrl+k 删除,从光标到行尾 Ctrl+u 删除,从光标到行首 Alt+d 删除,从光标到当前单词结尾 Ctrl+w 删除,从光标到当前单词开头 Ctrl+a 将光标移到行首 Ctrl+e 将光标移到行尾 Alt+a 将光标移到当前单词头部 Alt+e 将光标移到当前单词尾部 Ctrl+y 插入最近删除的单词 !$ 重复前一个命令最后的参数 例如,使用命令mkdir peter/pan/documents/tinkerbell新建了一个目录, 然后使用命令cd进入该目录,这时若用cd !$命令,shell将会把前一个命令 mkdir的参数添加到现在的cd命令后面。 当用户更深入地了解Linux后,将看到这些快捷方式在其他应用程序下输入 命令时,有时非常有效。 任务3 使用命令进行简单系统管理 教师指导学生完成3.3 简单系统管理 1.login - 文本环境系统登录 Ubuntu默认是以图形环境登录的,登录后按 “ Ctrl +Alt +F1‖键,这时又可以看到一个 login 提示符,这个就是第一个虚拟控制台。 登录系统: Ubuntu 7.04 tty1 dzl login:root Passwd: root@Ubuntu:~# 登录时用户被允许输入十次密码,如果十次密码都 没有通过,login程序自动终止。 简单系统管理 2. shutdown - 关机命令 执行此命令时,每个用户都会收到一条信息,从中 可以得到关机的最后期限。一般只有root账号才有 权执行此命令。 (1)立即关机。 root@Ubuntu:~#shutdown –h now (2)关闭系统后重启系统。 root@Ubuntu:~#shutdown –r now (3)系统1分钟后重启。 root@Ubuntu:~#shutdown -r +1 minutes 简单系统管理 2. shutdown - 关机命令 (4)系统15:30后重启。 – root@Ubuntu:~#shutdown –r 15:30 Shutdown常用的时间参数有hh:mm或+m两种模式。hh: mm格式表示在几点几分执行shutdown命令。例如 “shutdown 10:45”表示将在10:45执行shutdown。+m表示 m分钟后执行shutdown。比较特别的用法是以now表示立 即执行shutdown。 (5)最安全的关机方法。 root@Ubuntu:~#Sync;Sync;Sync;shutdown –h now Shutdown命令拓展 该命令还允许用户指定一个时间参数,可以是精确 的时间,也可以是从现在开始的一个时间段。精确 时间的格式是hh:mm,表示小时和分钟,时间段由 “+‖和分钟数表示。系统执行该命令后,会自动进 行数据同步工作。 -k 并不真正关机,只是发出警告信息; -r 关机后立即重新启动; -h 关机后不重新启动; -f 快速关机,重启动时跳过fsck命令; -n 快速关机,不经过init程序; -c 取消已经运行的shutdown程序。 简单系统管理 3. logname - 显示登录时的用户名 显示登录时的用户名。 root@Ubuntu:~#logname root 简单系统管理 4. who—查看系统中登录的用户 (1)查看用户自己的信息。 root@Ubuntu:~#who –m (2)显示登录的用户名和数量。 root@Ubuntu:~#who -q root student 用户数=2 简单系统管理 5. id - 显示当前用户名和所属组名 显示当前用户名和所属组名。 root@Ubuntu:~#id uid=0(root) gid=0(root) groups=0(root) 表示当前用户是root,其组名也是root。 简单系统管理 6. su - 改变用户身份 su 意思是“substitute users(代替用户)”, 在使用某个用户登录系统后,允许改变用户身份, 改用其他用户身份继续使用系统。 (1)改变超级用户root用户到student用户。 root@Ubuntu:~#su stduent $ $cd //切换到student用户家目录 (2)改变超级用户student用户到root用户。 $ su root Password: root@Ubuntu:~# 为了安全,变换到root用户时要输入root用户密码。 su 其他用法改变用户身份 -, -l, ——login 登录并改变到所切换的用户环 境; -c, ——commmand=COMMAND 执行一个命令,然后 退出所切换到的用户环境; 演示命令: su -c 'ls -l' su -lc 'ls -l' 简单系统管理 7. man - 获得命令帮助 要想查看某个命令的使用手册页(man page),只要输入man 后跟该命令的名称即可。 (1)查看ls的使用手册。 root@Ubuntu:~#man ls 使用man命令,首先进入man page环境,要退出man page帮助 直接按q。 其他man page按键: 空格 page up page down /word 向下翻页 向下翻页 向下翻页 查找word单词 (2)查看man自己的使用手册。 使用 man查看自己的使用手册是最容易被大家忽略的。 – root@Ubuntu:~# man man 简单系统管理 8. date - 命令可以显示/修改当前的日期 时间 (1)显示系统当前时间。 root@Ubuntu:~#date (2)将时间更改为12月10日10点23分2007年。 root@Ubuntu:~#date 121010232007 简单系统管理 9. cal - 显示日历或年历 (1)显示当月的日历。 root@Ubuntu:~#cal (2)显示2007年12月的日历。 root@Ubuntu:~#cal 12 2007 (3)显示2003年的日历。 root@Ubuntu:~#cal -y 2003 简单系统管理 10. df - 查看磁盘命令 检查文件系统的磁盘空间占用情况。可以利用该命 令来获取硬盘被占用了多少空间,目前还剩下多少 空间等信息。 (1) 查看文件系统各个分区的占用情况。 root@Ubuntu:~#df 文件系统 1k-块 已用 可用 已用% 挂载点 /dev/hda2 28834744 3785064 23584956 14% / /dev/hda1 474443 20924 429022 5% /boot df命令默认以K为单位显示分区情况,如果要M为单 位命令为:df –m。 简单系统管理 10. df - 查看磁盘命令 (2) 查看文件系统的各个分区的占用情况并显示文 件类型。 root@Ubuntu:~#df –T 文件系统 1k-块 已用 可用 已用% 挂载点 /dev/hda2 ext3 28834744 3785064 23584956 14% / /dev/hda1 ext3 474443 20924 429022 5% /boot 简单系统管理 11. du - 查看目录或文件容量 (1)列出/etc目录下与文件所占容量。 root@Ubuntu:~#du /etc (2)以m为单位列出/home目录下与文件所占容量。 root@Ubuntu:~#du -m /etc (3)仅仅列出/etc目录容量。 root@Ubuntu:~#du -s /etc 简单系统管理 12. free - 查看系统内存,虚拟内存(交换空间)的大 小占用情况 查看系统内存。 root@Ubuntu:~# free total used free shared buffers cached Mem: 4149156 4130412 8744 0 13220 2720160 -/+ buffers/cache: 1397032 2752124 Swap: 6289408 144 6289264 以上含义: 第1行: total内存总数: 4149156 used 已经使用的内存数: 4130412 free 空闲的内存数: 18744 shared 当前已经废弃不用,总是0 buffers Buffer Cache内存数: 13220 cached Page Cache内存数: 2720160 Buffers与 Cache都是高手缓存,通常也就是说buffer是用于存放要输出到 disk(块设备)的数据的,而cache是存放从disk上读出的数据。 关系:total = used + free 简单系统管理 12. free - 查看系统内存,虚拟内存(交换空间)的大小 占用情况 查看系统内存。 root@Ubuntu:~# free total used free Mem: 4149156 4130412 8744 0 -/+ buffers/cache: 1397032 2752124 Swap: 6289408 144 6289264 shared buffers cached 13220 2720160 第3行: -/+ buffers/cache的意思相当于: -buffers/cache 的内存数:1397032 (等于第1行的 used - buffers - cached) +buffers/cache 的内存数: 2752124 (等于第1行的 free + buffers + cached) 可见-buffers/cache反映的是被程序实实在在吃掉的内存,而 +buffers/cache反映的是可以挪用的内存总数。 第4行单独针对交换分区。 拓展 其实我们可以从二个方面来解释. 对操作系统来讲是Mem的参数,buffers/cached 都是属于被 使用,所以它认为free只有8744. 对应用程序来讲是(-/+ buffers/cach),buffers/cached 是等 同可用的,因为buffer/cached是为了提高程序执行的性能,当 程序使用内存时,buffer/cached会很快地被使用。 所以,以应用来看看,以(-/+ buffers/cache)的free和used为主, 所以我们看这个就好了,另外告诉大家一些常识.Linux为了提高 磁盘和内存存取效率, Linux做了很多精心的设计, 除了对dentry 进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两 种主要Cache方式:Buffer Cache和Page Cache。前者针对磁 盘块的读写,后者针对文件inode的读写。这些Cache能有效缩 短了 I/O系统调用(比如read,write,getdents)的时间。 任务4 使用命令进行文件压缩和解压缩 教师指导学生完成3.4 文件压缩和解压缩 当需要把一组文件贮存成一个文件以便备份或传输 到另一个目录甚至另一台计算机,或者让某些文件 占用少量磁盘空间并能更快地通过互联网下载时, 通常需要将文件压缩。 在Linux中,文件压缩工具gzip、bzip2和zip对应 的解压工具分别是gunzip、bunzip2、unzip。 bzip2和gzip压缩工具提供了最大限度的压缩,并且可在多 数类似UNIX的操作系统上找到,因此得到广泛应用。 如果需要在Linux和其他操作系统如Windows间传输文件, 应该使用zip,因为该命令与Windows上的压缩工具最兼 容。下面简单介绍一下常用的压缩/解压缩命令: 文件压缩和解压缩 1. zip和unzip 使用zip来压缩文件,使用unzip来解压缩文件,当 然也可用zip带参数-d来解压缩。 (1)压缩单个文件。 root@Ubuntu:~#cp /etc/profile . root@Ubuntu:~#zip study profile 上面的命令把profile,然后放入study.zip文件中。 (2)压缩多个文件与目录到同一个压缩文件。 root@Ubuntu:~# zip -r zip1 profile study.zip 上述命令把profile与man.zip压缩到zip1文件中。 思考 如果不想解压缩,仅仅查看压缩文件中 得内容 文件压缩和解压缩 2. gzip和gunzip 使用gzip来压缩文件,使用gunzip来解压缩文件,其实 gzip其压缩命令与解压缩命令gunzip实际上是同一个程序, 文件的大小和参数完全一样,只是命令的名称不同。文件 会被压缩,并被保存为 filename.gz。当解压缩时, filename.gz 会被删除,同时filename被还原。 对比zip,gzip有以下特点: zip命令具有将许多文件与目录压缩成一个文件的功能,但 gzip却不能; 用gzip命令压缩后源文件会被删除。 文件压缩和解压缩 2. gzip和gunzip (1)压缩单个文件。 root@Ubuntu:~#cp /etc/profile . root@Ubuntu:~#gzip profile root@Ubuntu:~#ls -l 使用ls -l查看结果时,profile是没有了,但多了一个 profile.gz文件。 (2)压缩多个文件。 root@Ubuntu:~#touch a b root@Ubuntu:~#gzip a b root@Ubuntu:~#ls a.gz b.gz 对比发现gzip可以一次压缩许多文件,但不可以压缩目录, 也不可以将许多文件与目录压缩成一个文件。 文件压缩和解压缩 3. tar - 打包命令 tar 是Linux常用的压缩与解压缩类命令,更多是用于硬盘 数据备份,tar可以对文件和目录进行打包。利用tar,用户 可以对某一特定文件进行打包(一般用作备份文件),也可 以在包中改变文件,或者向包中加入新的文件。 (1)将/home目录下所有文件打包成test.tar。 root@Ubuntu:~#tar -cvf test.tar /home/* 注意扩展名.tar需自行加上。 (2)将所有文件打包成test1.tar,再用gzip命令压缩: root@Ubuntu:~#tar -zcvf test1.tar.gz /tmp/* (3)查看test.tar文件中包括了哪些文件 root@Ubuntu:~#tar -tf test.tar (4)将text1.tar解压缩 root@Ubuntu:~#tar -xvf test.tar (5)将text1.tar.gz解压缩 root@Ubuntu:~#tar -zxvf test.tar 拓展 参数: -c :建立一个压缩文件的参数指令(create 的意思); -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在! 因为不可能同时压缩与解压缩。 -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩? -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程! -f :使用文件名,请留意,在 f 之后要立即接文件名喔!不要再加参数! 例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成 『 tar -zcvPf tfile sfile』才对喔! -p :使用原文件的原来属性(属性不会依据使用者而变) -P :可以使用绝对路径来压缩! -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件 中! --exclude FILE:在压缩的过程中,不要将 FILE 打包! 任务5 使用命令进行进程管理与作业控制 1、进程 运行中的程序 Linux是一个多用户多任务的操作系统。多用户是指多个用户可 以在同一时间使用计算机系统;多任务是指Linux可以同时执行 几个任务,它可以在还未执行完一个任务时又执行另一项任务。 为了完成这些任务,系统上同时运行着多个进程。Linux系统上 所有运行的程序都可以称之为一个进程。每个用户任务、每个系 统管理的守护进程,都可以称之为进程。Linux用分时管理方法 使所有的任务共同分享系统资源。进程的一个比较正式的定义是 在自身的虚拟地址空间运行的一个单独的程序。 进程不是程序,虽然它由程序产生。程序只是一个静态的指令集 合,简单的说就是保存在磁盘上的文件,它是不占系统的运行资 源;而进程是一个随时都可能发生变化的、动态的、使用系统运 行资源的程序。运行一个程序,就会在系统中创建一个或者多个 进程,进程可以看成是在计算机里正在运行的程序。Linux操作 系统启动后,就已经创建了许多进程。 进程与程序是有区别 2、作业 与进程有关的一个概念是作业,Linux一个正在执 行的进程对Shell(命令解析器)来说称为一个作 业。一般说来进程和作业是可互换的。作业控制是 Shell提供的使用户能够在多个独立作业间进行切 换的功能。 进程和作业的概念也有区别,一个正在执行的进程 称为一个作业,而且作业可以包含一个或多个进程, 尤其是当使用了管道和重定向命令(比如 命令: cat /etc/profile|more将启动两个进程,但这两 个进程才是一个作业)。 3、理解前台启动与后台启动 1)yes命令前台启动 root@Ubuntu:~# yes y y ┆ 命令yes是向标准输出发出无穷无尽的一串y,用户 再也不能继续其它的任务了。 2)将yes的输出送给虚拟设备/dev/null root@Ubuntu:~# yes>/dev/null [1] 6689 3) yes命令后台启动 root@Ubuntu:~# yes>/dev/null& [1] 6689 root@Ubuntu:~# 4、任务细分 任务5.1 启动进程 教师指导学生完成3.5.2 任务5.2 进程管理 教师指导学生完成3.5.3 任务5.3 作业调度 教师指导学生完成3.5.4 任务5.2 进程管理 1.ps - 查看系统的进程 要管理进程首先要了解系统有哪些进程及其状态如何。 (1)显示当前控制终端的进程。 root@Ubuntu:~# ps PID TTY TIME CMD 2791 ttyp0 00:00:00 tcsh 3092 ttyp0 00:00:00 ps (2)显示列出所有的行程。 root@Ubuntu:~# ps -A PID TTY TIME CMD 1 ? 00:00:03 init 2 ? 00:00:00 kflushd ┆ (3)详细显示所有包含其他使用者的行程 root@Ubuntu:~# ps –au USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root root 1 2 0.0 0.0 0.7 0.0 1096 472 0 0 ? S Sep10 0:03 init [3] ┆ ? SW Sep10 0:00 [kflushd] ps -au输出格式说明: USER: 进程拥有者 PID: 进程号 %CPU: 占用的 CPU 使用率 %MEM: 占用的内存使用率 VSZ: 占用的虚拟内存大小 RSS: 占用的内存大小 TTY: 终端的次要装置号码 STAT: 该进程的状态 START: 进程开始时间 TIME: 执行的时间 COMMAND: 所执行的指令 2.kill - 给进程发送信号 当某个进程运行错误时,对于前台进程,可以使用 “ctrl-c‖来终止它,但后台进程无法使用这种方 法,但可以使用kill命令给进程发送信息,比如强 行终止信息来达到目的。 (1)显示kill能发送的信息种类。 root@Ubuntu:~# kill –l Kill能够发送的信息较多,每个信号都有对应的数 值,比如SIGKLL信号的值是9,SIGHUP的信号值是1。 (2)通过进程号终止进程。 root@Ubuntu:~# ps PID TTY TIME CMD 2791 ttyp0 00:00:00 tcsh 7091 ttyp0 00:00:03 yes 7092 ttyp0 00:00:00 ps root@Ubuntu:~# kill -9 7901 上述9也可用SIGKLL信号代替,正常情况可以不加 选项9,但如果要强行终止则必须添加选项9。 3.top - 实时监控进程 和ps命令不同,top可以实时监控进程的状况,默 认top自动5秒刷新一次,也可用“top –d 30 ‖, 使得top屏幕30秒刷新一次。 4.bg - 作业放到后台执行 在手工启动前台进程时,如果进程没有执行完毕, 则可以使用“Ctrl-z‖键暂停进程的执行,然后可 以使用bg命令放到后台执行,前台继续其它任务。 root@Ubuntu:~# yes>/dev/null y ┆ “Ctrl-z‖键暂停进程。 [1] +Stopped yes root@Ubuntu:~#bg %1 使用bg命令把进程放到后台执行,在bg命令中指定 进程是通过作业ID作为参数来指定的,作业ID可以 用jobs查看。 5.jobs - 查看后台作业 root@Ubuntu:~#more /etc/man.comfig ―Ctrl-z‖键暂停进程。 root@Ubuntu:~#jobs [1] +Running yes [2]+Stopped more /etc/man.comfig 上述中,“1”就是命令“yes”作业对应的作业ID,正在后台 运行;“2”就是命令“more /etc/man.comfig”对应的作业, 已经暂停。 6.fg - 作业放到前台执行 把作业“more /etc/man.comfig‖重新放到前台执 行。 root@Ubuntu:~#fg %2 任务5.3 作业调度 有时候需要对系统进行一些比较费时而且占用资源 的维护工作,这些工作适合在深夜进行,这时候用 户就可以事先进行调度安排,指定任务运行的时间 或者场合,到时候系统会自动完成这一切工作。 1、at - 在指定时刻执行指定的命令序列 (1) 三天后的下午 5 点钟执行 /bin/ls。 root@Ubuntu:~# at 5pm + 3 days waring:commands will be executed using /bin/sh at > /bin/ls 使用at命令,首先进入at编辑界面,编辑完后按ctrl+D退 出。 注意:在at编辑界面输入的命令要使用绝对路径,例如,输 入/bin/ls 而不是ls。 at命令时间格式说明: 当天的hh:mm(小时:分钟)的时间。 如果该时间已经过去,那么就放在第二天执行。用户还可以采用12小时计时制,即 在时间后面加上AM(上午)或者PM(下午)来说明是上午还是下午:at 5:20 AM /bin/date 指定命令执行的具体日期。 相对计时法。 指定格式为month day(月 日)或者mm/dd/yy或者dd.mm.yy。指定的日期必须跟 在指定时间的后面。 指定格式为now + count time-units ,“now”就是当前时间,“time-units”是时间单 位,这里可以用minutes(分钟)、hours(小时)、days(天)、weeks(星期)。 count是时间的数量。 直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。 例:指定在今天下午5:30执行某命令。假设现在时间是中午12:30,2006年2 月24日,其命令格式如下: at 5:30pm at 17:30 at 17:30 today at now + 5 hours at now + 300 minutes at 17:30 24.2.06 at 17:30 2/24/06 (2)删除指定的作业序列。 root@Ubuntu:~# at –d 1 //1为对应的作业序号 查询作业序列使用命令atq,删除作业也可以使用 命令atrm。 2、crontab - 在指定时刻执行指定的命令 序列 at命令用与安排运行一次的作业较方便,但如果要 重复运行程序,比如每周三凌晨1点进行数据备份, 这使用crontab更为方便。 (1)编辑用户crontab作业。 每天12:30,23:30执行系统升级。 root@Ubuntu:~#crontab –e 30 12,23 * * * apt-get update 拓展:crontab 命令格式与详细例子 基本格式 : * 分 * 时 * * * command 日 月 周 命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令 (2)查看用户crontab作业。 root@Ubuntu:~ #crontab –l (3)删除用户crontab作业。 root@Ubuntu:~# crontab –r crontab 命令格式与详细例子 30 21 * * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每晚的21:30重启apache。 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart 10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每月1、10、22日的4 : 45重启apache。 上面的例子表示每周六、周日的1 : 10重启apache。 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart 0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart * */1 * * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启 apache。 上面的例子表示每星期六的11 : 00 pm重启apache。 每一小时重启apache * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart 0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart 0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart 晚上11点到早上7点之间,每隔一小时重启apache 每月的4号与每周一到周三的11点重启apache 一月一号的4点重启apache 任务6 综合实训 学生自主完成教材“3.8 项目实训” Linux密码破解 1)获得 John the Ripper 2)打补丁 编辑Makefile文件,添加我下面标注好的红色字体 LDFLAGS = -s -lcrypt 新建一个crypt_fmt.c文件,见备注 修改john.c文件,添加我下面标注的红色字体 extern struct fmt_main fmt_DES, fmt_BSDI, fmt_MD5, fmt_BF; extern struct fmt_main fmt_AFS, fmt_LM; extern struct fmt_main fmt_crypt; john_register_one(&fmt_BF); john_register_one(&fmt_AFS); john_register_one(&fmt_LM); john_register_one(&fmt_crypt); 3)编译文件 make linux-x86-sse2 John命令使用 john [-命令列参数] [密码档档名] 参数:-single 说明:使用「简单」(Single Crack)破解模式解密,主要是根据使用者的「帐号」产 生变化来猜测解密,其变化规则记录在JOHN.INI档案的[List.Rules:Single]区域内。 参数:-wordfile:[字典档档名] -stdin 说明:使用「字典档」破解模式解密,由字典档内读取单字来破解;或是可以加上stdin参数,代表由键盘输入单字来破解。 参数:-rules 说明:在「字典档」破解模式下,开启字词规则变化功能,如「字典档」读入单字cook, 则开启字词变化下,程式可能会尝试cook、c00k、cooker、cook0…等其它字词。详细变 化规则记录在JOHN.INI档案的[List.Rules:Wordlist]区域内。(稍后会再介绍) 参数:-incremental[:模式名称](参数也可以简写成-i[:模式名称]) 说明:使用「增强」破解模式解密,就是组合所有可能的字元当作密码来破解。在 JOHN.INI档案内的[Incremental:*****]区域里定义好许多的模式名称,可以指定使用哪 一个模式来破解。 (稍后会再介绍) 范例:john 范例:john 范例:john 范例:john -wordfile:bigdict.dic passwd -single passwd -wordfile:bigdict.dic -rules passw -i:all passwd 拓展:开机进入文本界面 改GRUB 的配置文件(不建议直接改 grub.conf) sudo vi /etc/default/grub 找到这一行: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 改为: GRUB_CMDLINE_LINUX_DEFAULT="text "

您的评论

发布评论

用户评价

  • 感谢,作者还有其他关于命令行的文档吗? 2018-06-17 19:56:32
+申请认证

文档贡献者

王坤

技术总监,高级网络工程师

129 463219 4.1
文档数 浏览总量 总评分

喜欢此文档的还喜欢