操作系统实验课笔记

ctrl+alt+t 打开黑框

1切换到超级用户

su root或者su -
然后输入密码(密码不显示*也不显示明文 输入完成后按回车即可)
普通用户为$ 根用户为#
在这里插入图片描述

1.1关机和重启(需要超级用户权限)

输入shutdown -h now即可关闭系统
输入shutdown -r now 即可重启系统


2.基础命令

2.1常用命令

pwd 查看当前路径
ls 查看当前路径下文件与文件夹(蓝色为文件夹 白色为文件)
cd 文件夹名 跳转到指定文件夹
cd / 跳转到根目录
(返回上一级 cd 两个点)//中间有空格

mkdir 文件夹名 创建文件夹(make 创建)
rmdir 文件夹名 删除文件夹(remove 删除)
rm -rf 文件夹名 删除非空文件夹及其子文件

cat filename 查看文件内容
rm filename 删除文件
移动复制创建删除文件/文件夹都可多个同时操作 空格隔开即可

history 显示之前所有命令
cal 显示当前月份日历 还有两种常用方法 cal 2019/cal 4 2020
clear 清屏(之前所有操作仍然有效且可输入history查看)

复制和移动文件(在超级用户时无需sudo 普通用户加sudo并输入密码)
cp 文件的路径 新文件夹路径 复制文件到新文件夹中
cp 文件的路径 新文件夹路径/新名字 复制文件到新文件夹中并重命名
mv 文件的路径 新文件名 重命名文件
mv 文件的路径 新文件夹路径 移动文件到新文件夹中
mv 文件的路径 新文件夹路径/新名字 移动文件到新文件夹中并重命名
(如果文件与新文件夹都在目前路径下 则可省略路径只写名 最好写全)

上图操作后 file与file1已进入ff2 f2中已经没有了file2
多个命令可同时运行 分号隔开即可

man 章节号 命令名 在指定章节中查找指定命令
eg:man 3 fopen
在这里插入图片描述

2.2创建文件(三种):

2.2.1用cat命令

cat > filename
然后输入文件内容
输入ctrl+d结束输入
cat >> filename 追加文件内容
cat > filename 覆盖文件内容
cat filename 查看文件内容
在这里插入图片描述

2.2.2用vi编辑器

vi编辑器三种模式:命令模式、编辑模式(i)、底行命令模式(:)
vi filename 创建文件并打开vi编辑器
首先进入的是命令模式 输入i之后才可输入文件内容 输入完毕按esc键返回命令模式 然后按 “:” 跳到底部命令模式
保存文件内容并退出vi编辑器返回界面 wq
若未修改内容退出 输入 q
若强制退出 输入 q!
在这里插入图片描述在这里插入图片描述

2.2.3用touch命令

touch filename 创建一个空文件

3.创建用户与删除用户

useradd id 创建用户id
userdel id 删除用户id
useradd -f 用户名:强制删除用户,即使用户当前已登录
useradd -r 用户名:删除用户的同时,删除与用户相关的所有文件
passwd 用户名:为用户设置密码
su id 检测用户是否已被删除(提示unknown则成功)
在这里插入图片描述


4.进程

4.1进程分类

用户进程:与终端相关联
系统进程:是操作系统启动后,系统环境平台所加载的进程
守护进程:没有屏幕显示,只是在后台等待用户或系统的请求
也可分为前台进程和后台进程

4.2 进程相关命令

4.2.1前台进程

创建前台进程 命令
查看前台进程 ps
默认显示本用户 若要显示所有用户的 ps-af
-e 显示所有进程(用户+系统)
-l 长格式(更多信息)
-w 宽输出(默认的)
-r 只显示正在运行进程
-m 显示线程信息
-x 显示没有控制终端的进程
-f 显示进程的详细信息
在这里插入图片描述

4.2.2后台进程

创建后台进程: 命令 &
查看后台进程 :jobs
将一个正在前台执行的命令放到后台,并且暂停:ctrl + z
一个暂停的后台进程转到后台运行状态: bg 后台进程编号
后台进程转到前台进程: fg 后台进程编号(第几个进程编号就是几)
删除进程:kill -9 PID号(-9表示强制删除 可省)
在这里插入图片描述

4.2.3动态查看当前进程

动态显示当前进程指令:top
只显示某个用户进程:按u,输入用户名,回车
杀死进程:按k 输入进程PID号 回车两次 若无法删除 重复上述步骤 按9强制删除
退出top环境返回命令行:按q/Q

4.2.4创建未来某一段时间执行作业的指令

格式:at 时间 回车 输入指令 ctrl+d结束输入

指定在今天下午5:30执行某些命令(上午am 下午pm 12小时制) 在这里插入图片描述

查看未做作业列表:at –l
删除未做作业:at –d ID
在这里插入图片描述


5.vi编辑器的一个实验

1.插入2020年的日历,并将文件名命名为2020.txt。

 vi 2020.txt 
 :r!cal 2020

2.显示行号。

:set number 
或者 :set nu

3.把4、5、6月份的日历整体向右移动一个制表位。

12G 8>>

(12G表示光标定位到第12行 8>>表示以下八行均向右移动一个制表位)

4.更改日历的标题“2020”改为“2020年全年日历”。

2G :s/2020/2020年全年日历

5.删除1、2、3月的日历,然后予以恢复。
光标定位到1、2、3月份的日历所在的第一行
删除 d9G 撤销 u(d9G表示删除光标以下9行)

6.把7、8、9月份的日历整体移到日历的最后面。
光标定位到7、8、9月份的日历所在的第一行 剪切8dd (复制的话是8yy)
光标移动到最后一行 粘贴p

7.依次检索字符串“30”,如果每个月的最后一天为“30”,则删除“30”。
:/30 回车
查看30所在的月是否有31日,若无,按“x”删除30;否则按“n”继续检索即可

8.在vi编辑器中统计该文件的大小。
:!wc 2020.txt(如果一次不行就多输入几次)


6.有关shell

1.shell脚本的建立:与文本文件一样 cat和vi命令都可建立
2.shell脚本的运行
1>sh < 脚本名
2>sh 脚本名
3>给用户添加对脚本的可执行权限./脚本名
ps:chmod a+x 脚本名//即为给脚本添加可执行权限的代码 其余更多权限参照本文第8点的第三章
示例如下:
在这里插入图片描述
3.shell变量的赋值与输出
变量名=变量值//直接赋值
echo 变量名//输出变量名
echo $变量名//输出变量值
示例如下:
在这里插入图片描述


7.用shell脚本完成一个小任务

根据键盘可以循环输入学生成绩(百分制),并显示对应的成绩标准(及格和不及格),按Q键退出,按其他键提示重新输入。

代码如下:

cat > t//先创建一个脚本
while true//死循环直接这么写就可
do
read a//创建一个变量来读取输入
if [ "$a" = "Q" ]  //判断字符串是否相等用"="且中间必须有空格
then break
elif [ $a -ge 60 -a $a -le 100 ] //-ge大于等于 -le小于等于 -a表示逻辑与等同于&&
then echo "pass"
elif [ $a -ge 0 -a $a -lt 60 ]  //-lt表示小于 每个空格都是必要的~
then echo "fail"
else echo “please input again”
fi
done
sh t//运行脚本

运行截图:
在这里插入图片描述
程序需注意的问题:一切空格皆不可省

知识点:
shell的输入输出命令:
输入:read 变量1 变量2 …
输出:echo “要输出的内容 可为变量和字符混合形式”
示例如下:
在这里插入图片描述
字符串判断:
相等用 = 不相等用 != 且前后需
空格**隔开
数值比较:(前后需空格隔开)

-eq 相等  
-ne 不等
-lt 小于
-le 小于等于
-gt 大于
-ge 大于等于

逻辑判断:

!逻辑非
-a 逻辑与
-o 逻辑或

if语句的格式:

if[条件] then
elif[条件] then //可无
...
else then
fi

while语句的格式:

while [表达式]
do
语句体
done

综上:if语句用fi表示结束 while用done表示结束 shell里判断语句都用中括号

猜你喜欢

转载自blog.csdn.net/qq_43760243/article/details/105972577
今日推荐