把近期OS课程的(被我翔鄙视的)Linux实验课上的一些东西总结一下
了解文件系统结构、使用一些基本的指令、运用Linux下的C语言编译环境
ls指令,cd指令,根目录,用户目录
Linux的文件系统和MS-Windows的文件系统有很大的不同 。linux只有一个文件树,整个文件系统是以一个树根/
为起点的,所有的文件和外部设备都以文件的形式挂结在这个文件树上。Linux是支持多用户的操作系统,每个用户都有自己的个人目录地址,这个地址就用波浪号~来表示。
ls
指令。全写为List Show,可以显示当前目录下的文件。ls命令有两个最常用的参数:-a 和 -l 。ls -a 可以显示隐藏的文件。ls -l
是以长列表显示内容,所以可以看到更加清晰的资料。其他详细用法可以用 ls --help
显示。
cd
指令。全写为change directory。用处为更改目录。cd如果直接输入,后面不加任何东西,会回到使用者自己的Home Directory。cd后面加两个小数点:cd..
可以回到上一级目录。
建立or删除目录or文件
mkdir
命令用来建立新的目录, rmdir
用来删除已经建立的目录
rm
这个命令是用来删除文件的
rm -r 目录名
这个操作可以连同这个目录下面的子目录都删除,功能上和rmdir相似。rm -f
文件名(目录名)这个操作可以进行强制删除。
使用vi编辑器
利用vi,在A目录下建立文件sum.c
vi是Linux(UNIX)世界最强大的文本编辑工具
Vi的三种状态
-
Command mode :
控制萤幕游标之移动,字元或游标之删除,搬移复制某区段及进入 Insert mode 下,或者到 Last line mode 。
-
Insert mode :
唯有在 Insert mode 下, 才可做文字资料输入,按Esc键可到 Command mode 。
-
Last line mode :
将档案写入或离开编辑器,亦可设定编辑环境, 如寻找字串、列出行号..等。
刚进入 vi 时处于 Command mode,此时按下a
、o
、i
三者任一按键即可进入 Insert mode 编辑文本。
离开 vi 、存档要进入 Last Line mode 。方法是:
-
在 Command mode 中按冒号键进入 Last Line mode。
-
在 Insert mode 中先按 esc 键进入 Command mode,在根据上一条进入 Last Line mode。
在 Last Line mode 中,根据最后一行输入来结束对vi 的操作。
w filename
(存入指定档案)wq
(写入并离开 vi)q!
(离开并放弃编辑的档案)
cat 指令
这个命令是linux中非常重要的一个命令,它的功能是显示或连结一般的ascii文本文件。cat
是concatenate的简写。下面是几个简略的用法介绍:
-
cat text
显示text这个文件
-
cat file1 file2
依顺序显示file1,file2的内容
-
cat file1 file2>file3
把file1,file2的内容结合起来,再"重定向(>)"到file3文件中。
-
cat >file1
结果是会"空出一行空白行",等待你输入文字,输入完毕后再按[Ctrl]+[c]或[Ctrl]+[d],就会结束编辑,并产生file1这个文件,而file1的内容就是你刚刚输入的内容。
-
cat file1>>file2
这将变成将file1的文件内容"附加"到file2的文件后面,而file2的内容依然存在,这种重定向符〉〉比〉常用,可以多多利用。
编译运行C代码
gcc [ -o execfile ] source
execfile 是你所希望的执行文件的名称,如果没有加上 -o 选项编译出来的可执行文件会以 a.out 做为文件名。 source 是一个 .c 文件。
在执行文件的时候,不能直接输入文件名。需要输入路径/文件名。如果要表示当前目录下,可以用一个小数点表示。
复制文件
cp -r 源文件(source) 目的文件(target)
压缩文件
与在Windows中不同,在Linux中,压缩文件分为两步。第一步要先把文件打包,然后才能对这个打包的文件进行压缩。
例如要把目录A中的所有文件压缩成sum.tar.gz的操作是:
更改文件(读、写、运行)权限
使用ls -l
查看详细信息
在每个文件和文件夹的前面有一串字符串来代表属性和权限。开头的第一个字符如果是一横线,代表是一个文件。如果是d代表是一个文件夹。后面连续跟着每组三个字符,一共三组的权限指示字符串。前三个小格是拥有者(user)本身的权限,中间三个小格是和使用者同一组的成员(group)的权限,最后三个小格是表示其它使用者(other)的权限。r是读权限,w是写权限,x是运行权限。如果是横线代表没有此项权限
例如更改权限前的sum.tar.gz是不可执行的文件。
现在我们用三位的2进制数来表示相应的三小格的权限,1代表打开这一个权限,0代表关闭。
chmod
命令用来改变目录或文件的属性,是linux中一个应当熟悉的命令。假如我们现在要修改sum.tar.gz的权限,使其只允许被所有者修改、读取和运行,而其他用户只能读取或运行。那么我们的修改之后,这个文件的属性字符串应该是这样的:-rwxr-xr-x
对应的二进制位表示就是111 101 101
,每三个位用一个十进制数表示,结果就是755。运行结果如下:
简单Shell脚本
利用vi编写Linux脚本程序sum.sh,其功能如下:请求用户输入正整型数n,判断n的值,若n小于或等于0,则输出错误信息:<当前时间> Input Error! n = <输入的n的值>
追加到error.log,并以5号错误代码退出脚本。
若输入有效,则计算从1到n的所有整数的和,输出到sum.r。
代码心得:
- 开头加一句#!/bin/bash 说明是一个脚本
- 变量不需要声明可以直接用
- 变量取值的话加美元
- If while中条件注意空格
- 变量赋值不加空格
- Echo重定向:如果需要变量值和字符串相连,加大括号。
- 没写i自增导致死循环,结果找了很久才找出这个bug
- If后一定要写fi代表结束