实验1 Linux的使用
实验目的
学习Linux的(特别是命令行)的基本使用技能,为进行后续的系统调用实验和内核实验打下基础。
实验内容
-
- 学习Linux的登录,退出
- 学习Linux的常用命令,包括文件操作、目录操作、进程操作等
- 学习程序的编辑vi,编译gcc,运行
- 学习通过ps命令观察进程的运行状态
- 选做:学习使用联机手册man
实验步骤
- 根据附录一、二,自由练习
- 完成hello .c的编辑、编译和运行
- 完成loop.c的编辑、编译、运行,以及相应的进程观测和控制过程
参考材料
- 附录一 Linux常用命令(速查)
- 附录二编辑程序vi使用指南(速查)
- 《边干边学》第1章第1.2节
使用软件:
练习 基本的C程序
1. 输入程序hello.c
#include <stdio.h>
main()
{
printf(“Hello, world!\n\n”);
}
2. 编译 gcc hello.c –o hello
3. 运行 ./hello
练习 进程状态及控制
1. 输入程序 loop.c
#include <stdio.h>
main()
{
while (1) { };
}
2. 编译 gcc loop.c –o loop
3.(前台)运行 ./loop
按Ctrl-C终止
4. 后台运行 ./loop &
(可多次使用该命令)
5. 多次使用ps命令查看进程状态
注意loop的运行时间
注意ps -l命令和loop命令的父进程号均为shell进程
6. 使用kill命令控制该进程
暂停 kill –STOP <该进程的进程号>
恢复 kill –CONT <该进程的进程号>
终止 kill –KILL <该进程的进程号>
Kill进程后,进程消失
*7. (选做)使用man kill和man 7 signal命令,查看Linux的kill命令和signal的种类、编号及缺省行为。
直接输入man kill 运行
直接输入man 7 signal
附录一
Linux常用命令(速查)
功 能 | 语 法 | 备 注 |
文件操作 | ||
编辑(文本)文件 | vi 文件名 | 详见vi手册 |
复制文件 | cp 文件名 新文件名 | |
显示(文本)文件内容 | cat 文件名 | |
分页显示文件内容 | more 文件名 | 按空格显示下一页 按回车显示下一行 按q中途退出 |
改名 | mv 原文件名 新文件名 | |
删除文件 | rm 文件名 | |
目录操作 | ||
创建目录 | mkdir 目录名 | |
改名 | mv 原目录名 新目录名 | |
删除目录 | rmdir 目录名 | 目录必须为空 |
* 递归删除目录 | rm –r 目录名 | |
* 递归复制目录 | cp –r 原目录名 新目录名 | |
更改当前目录 | cd 目录名 cd .. cd | 转入上一级目录(父目录) 单纯的cd命令转入主目录 |
查看当前目录(位置) | pwd | |
列出当前目录的内容 | ls ls –l ls –l | more | 简单列出 长格式列出 长格式,分页列出 |
进程操作 | ||
查看进程 | ps ps –x ps –a ps –l ps –axl | more | 值得详细学习ps命令 使用man ps查看ps的手册 |
向进程发信号 | kill –信号名 进程号 例如:kill –9 1000 | 使用man kill查看kill的手册 |
其它 | ||
查看当前用户 | who | |
查看自己是谁 | whoami who am i | |
关机(超级用户root) | shutdown –h now | 一定要使用shutdown关机 |
附录二
vi使用指南(速查)
vi使用的双模式:命令模式,输入模式
命令模式下:移动光标,删除
输入模式下:插入,替换(修改)
两个模式之间的切换:
命令模式下,通过i, a, I, A, o, O进入输入模式
输入模式下,通过 <Esc> 键退回到命令模式
(提示:可以多按几次<Esc>键,确保在命令模式)
常用命令表(在命令模式下)
功能 | 按键 |
光标移动 | 光标键 h, j, k, l分别向左,向下,向上,向右移动 |
在当前光标前插入 | i |
在当前光标后插入 | a |
在当前行首插入 | I |
在当前行尾插入 | A |
在当前行下面插入新的行 | o |
在当前行上面插入新的行 | O |
删除当前字符 | x |
删除当前行 | dd |
启动和退出
启动 | 退出(在命令模式下) |
vi 文件名 | :w :q |
vi | :w 文件名 :q |
:q! (不存盘退出) |