实验二
1. 超级用户:# ;普通用户:$ ;
2. 创建新用户: # useradd 用户名 #passwd 口令
3. 超级用户与普通用户切换: #su 或 $su
4. 退出:exit或logout或Ctrl+d
5. 关机(只有超级用户才能关闭系统) :Ctrl+Alt+Del或halt或shutdown
#halt
(显示Systemhalted时才可以关闭电源)
#shutdown (系统默认2分钟后关机)
shutdown –h now(系统立即关机)
shutdown –r now(系统立即重新开机)
shutdown –h 20:25(系统将在20:25分关机)
shutdown –h +10(系统在10分钟后关机)
6. 常用命令的使用
(1) ls命令
功能:查看指定目录下的文件和目录。
常用选项说明:
-a 显示所有文件和目录,包括隐含文件(all)
-l 显示文件的完整信息 (long)
-r 将文件以相反次序显示(reverse)
-t 将文件以建立时间先后列出(time)
-R 递归显示
(2) man命令
功能:查看某个命令的使用方法。
格式: man 命令名
(3) clear命令
功能:清屏
(4) mkdir命令
功能:建立新的目录。(make directories)
(5) rmdir命令
功能:删除空目录。
(6)touch 创建空白文件
(7) rm命令
功能:删除指定的文件或目录。
-i 删除前逐一询问确认
-f 即使文件属性为只读,也直接删除无需确认(force)
-r 将指定目录下的所有文件及子目录一并删除(递归删除) recursive
(8) df命令
功能:查看硬盘目前所剩的空间。
(9) cp命令
功能:复制文件或目录。
格式:cp –r 源文件/目录名 目标文件/目录名
(10) mv命令
功能:移动文件或目录。
格式:mv 源文件/目录名 目标文件/目录名
(11) more命令
功能:按页查看指定的文件。
示例:
more -20 /etc/passwd 显示文件passwd的前10行内容
more +20 /etc/passwd 从第20行开始显示文件passwd的内容
(12) find命令
功能:将符合组合条件expression的文件列出来。
格式:find [path] [expression]
常用参数说明:
命令中如果path是空字符串则使用目前路径,如果expression是空字符串则使用-print为默认expression。
示例:
find ./ –name “*.c”
将当前目录及其子目录下所有后缀名为c的文件列出
find ./ – ctime -20
将当前目录及其子目录下所有最近20分钟内更新过的文件列出
(13)使用命令apt-get install tree安装工具tree
补充:在Linux中编辑文档—vi编辑器
vi编辑器的三种工作模式:
① 命令模式(Command mode):控制屏幕光标的移动、字符的插入或删除、字符的移动或复制、进入插入模式或底线命令模式;
② 插入模式(Insert mode):完成字符的输入;
③ 底线命令模式(Last line mode):存储文件或退出编辑器,也可设置编辑环境。
vi工作模式的切换:
① 进入命令模式:在命令提示符后输入:vi <文件名>;
② 切换到插入模式:在命令模式下按键i、a、o进入插入模式
i(插入):在当前光标位置输入字符;
a(增加):从当前光标的前一个位置开始输入字符;
o(插入新行):从新行行首开始输入字符。
③ 切换到命令模式:在插入模式下按Esc键;
④ 切换到底线命令模式:在命令模式下按“:”进入底线命令模式。
实验二问题
(1) 如何查看文件目录?如何查看文件内容?
答:查看文件目录:ls -l
查看文件内容:
cat 由第一行开始显示内容,并将所有内容输出
tac 从最后一行倒序显示内容,并将所有内容输出
more 根据窗口大小,一页一页的现实文件内容
less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符
head 只显示头几行
tail 只显示最后几行
nl 类似于cat -n,显示时输出行号number lines of files
(2)如何创建子目录?进入指定的子目录?以及删除子目录及其下的文件?
创建子目录:mkdir –p目录/子目录
进入子目录:cd目录/子目录名
删除子目录下的文件:rm 路径
(3)如何查看硬盘空间?
df
(4)如何复制或移动文件?
复制:cp 移动 mv
实验三
1. 修改密码:passwd
2. 查看当前日期date ;查看日历cal ;查看谁在使用who ;显示一段文字echo ;清屏 clear
3. 打印当前目录:pwd
4. 显示文件的索引节点号 ls –ai
5. 切换到根目录:cd / 或cd../..(在~下)
6. 显示file1的当前10行,后19行:head file tail –n 19 file1
7. 在/etc/passwd文件中查找合适你的注册名的行: grep –F 用户名 /etc/passwd
8. 理解文件的权限:-rw-r—r—
所有者-组用户-其他用户(属主-属组-其他用户)
9. 修改用户权限:
10. 统计文件的行数、字数:wc –lw 文件名
11. 显示文件行数:cat 文件名|wc –l
实验4
1. 在目录test1下建立目录test2/test3/test4:mkdir –p test2/test3/test4
2. 进入test2,删除目录test3/test4:rmdir –p test3/test4
3. 在当前目录下,建立权限为741的目录test1:mkdir –m 741 ./test1
4. 将root用户家目录下的.bashrc复制到/tmp下,并更名为bashrc。 cp /root/home/.bashrc /tmp/bashrc
5. 在当前目录下创建文件:touch ./aaa
6. 复制某个文件下的内容到另外一个位置要用cp –r
7. 删除目录及其下面包含的所有文件:rm –r 目录名
8. 用cat加行号显示文件:cat –n 名
9. 进入/tmp目录,将/root/.bashrc复制成bashrc,复制完全的属性,检查其日期
cd /tmp
cp -a /root/.bashrc bashrc
(cp –a 在保留原文件属性下复制)
10. 修改文件bashrc的时间为当前时间:touch./bashrc
实验五
1. 文件权限第一个位置的短横线表示普通文件,d表示目录
2. 对应的八进制数:r-4 w-2 x-1
3. 合并文件:cat file1file2 >file
4. 更改权限:chmod xyz 名
5. 备份目录生成备份文件 cp -rf 源目录备份目录(-r递归 –f强制)
或打包tar –cvf 新文件.tar源目录
(解包:tar –xvf 包.tar)
6. 压缩文件:gzip 文件.tar.gz
解压: gunzip 文件.gz或gzip –d 文件.gz
实验六
1. 回到上层目录:cd ../
2. 文件权限: chmod u+r 文件名
u:user 所有者
g:group 所属组
o:other 其他
a:all 所有用户,包括所有者、所属组、其他
+:增加权限
-:减少权限
=:设置权限
3. 改变文件所有者(或所属组):chown 所有者[:所属组]文件名(其下所有文件:-R)
4. 改变文件或目录的所属组:chgrp 组文件名
5. 设定在建立文件时的权限掩码:umask 000 (掩码由3个八进制数字组成)
(将现有的存取权限减掉权限掩码即可产生建立文件时预设的权限)
6. 查看文档默认权限:umask
7. 归档加压:tar czvf 文件.tar.gz 原文件
解压: tar xzvf 文件.tar.gz
思考题
1. 列举ls命令不同选项的功能。
ls命令
功能:查看指定目录下的文件和目录。
常用选项说明:
-a 显示所有文件和目录,包括隐含文件(all)
-l 显示文件的完整信息 (long)
-r 将文件以相反次序显示(reverse)
-t 将文件以建立时间先后列出(time)
-R 递归显示
2. 说明文件权限和文件所有者的含义。
文件权限:Linux系统是一种典型的多用户系统,为了保护系统的安全性,不同的用户处于不同的地位,拥有不同的权限。
所有者:一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者
3. 举例说明umask命令的功能。
查看文件默认权限或者更改文件默认权限
实验七
1. 进入vi编辑器:vi文件名
2. 退出vi编辑器(在命令模式下):
:wq 保存并退出(w保存q退出)
:ZZ 有修改才保存退出
:x 与:ZZ相同
:q! 强制退出vi不保存修改内容
3. 在命令模式下删除字符 x
4. 命令模式下光标移动到第n个字符后 n <空格>
5. 命令模式按键:
从目前光标所在处输入i
从目前光标所在下一个字符开始输入 a
在目前光标所在的下一行处输入新的一行 o
在目前光标所在的上一行处输入新的一行 O
取代光标所在的那一个字符一次并退出到命令模式r
一直取代直到按ESC为止 R
取代一个字符不退到命令模式s
删除光标所在处到该行最后一个字符 d$
删除光标所在的那一行 dd
复制光标所在的那一行 yy
连续向后删除n个字符 nx
重复前一个动作 u (或 .或U)
实验八
1. 创建shell脚本文件:vi脚本名
定义脚本以bash执行在开头写 #!/bin/bash
加注释 #注释
显示提示信息echo 信息 (-n表示不自动换行)
2. 执行shell脚本(三种方法)
① 输入重定向到shell脚本 bash<脚本名(路径/文件名)
② 以脚本名作为参数 bash 脚本名 [参数]
或 . 脚本名[参数]
③ 将shell脚本的权限设置为可执行,在提示符下直接执行它
Chmod u+x 脚本名
脚本名
3. 查看历史命令history
配置历史命令环境 HISTFILE=”路径名”
HISTSIZE=600
实验九
1. 静态方式查看进程的运行信息 ps –aux
PID(进程ID)、VSZ:进程大小、 RSS:进程常驻内存的大小、TTY(终端名称)、STAT:进程状态、 START:进程启动时间、TIME(进程执行时间)、COMMAND(该进程的命令行输入)
2. 查看本机进程关系 ps –AL
F:进程标识、S:进程状态、PID(进程ID)、 PPID(进程的父进程 ID)、 PRI:时间片长度、 NI:进程优先级、WCHAN:进程中处于睡眠状态的内核函数名称、TTY(终端名称)、TIME(进程执行时间)、CMD(该进程的命令行输入)。
3. 强制终止1号进程 kill -9 1
4. 观察系统执行结果 top
后台运行top&
默认每隔五秒刷新一次屏幕改变刷新时间 top d 2 (将时间改成2秒)
5. Top执行过程中按k键输入要终止的进程PID
执行过程中按r键输入要修改优先级的进程号后输入新优先级
调整值范围-20~19,-20~-1升高优先级;1~19降低优先级。
6. 以分屏的方式查看进程树 pstrss|more
7. CPU信息存放在/proc/cpuinfo文件内
8. 查看内核 uname –r
9. 查看磁盘使用情况 df –T –h (T表示类型,h表示输出结果更易阅读)
10. 显示硬盘分区表信息 fdisk –l
11. 在mnt目录下创建挂载目录u,并将U盘挂载到/mnt/u,实现U盘文件的访问
mkdir /mnt/u
mount /dev/sdb1 /mnt/u
ls /mnt/u
卸载 U盘 umount /mnt/u
实验十
1. 通配符* 表示任意长度的字符不能以.开头(ls /bin/c*)
?表示任何一个字符(ls /bin/c??)
[ ] 表示指定一个字符的范围起始字符- 不在这个范围!(ls /bin/[c,a,h]*或[!a-f]?)
2. 自动补全:tab键
3. 显示目前已经设置好的命令的别名 alias
4. 重定向> :输入输出重定向,错误重定向
>>以追加的方式
5. 管道:从左到右执行,|号实现 (在文件list中查找字符串df1 :cat ./list|grep df1)
6. 执行刚刚执行过的shell命令!!
实验十三
1. 例题:脚本实现用户键盘输入目录名,判定/home目录下是否有同名的目录存在,若存在输出相应提示,否则判定是否存在同名普通文件,若存在创建失败,否则成功创建。
§ 注意:
§ if[ -d $dr ] 表示判断变量dr是否为已存在目录文件
§ if[ -f $dr ] 表示判断变量dr是否为已存在普通文件
实验十六
1. 用户信息存放/etc/passwd文件
密文存放在/etc/shadow文件
2. 使用newusers工具批量创建用户
3. 使用pwunconv工具取消影子口令机制
4. 使用chpasswd工具设置用户口令
5. 使用pwconv工具重设影子口令机制