这段时间,忙数学建模的校内选拔,就没有更新. sorry.
这段时间,会发布一些linux,shell的内容。话不多说,开始。
书摘
3.1 shell 命令
3.1.1 文件类型
1. linux系统中,所有内容被看做文件来处理。
2. 四类文件:普通文件,目录文件,设备文件,链接文件。
3. 普通文件: 常见, 文本文件,二进制文件。
4. 目录文件: 包含文件名及其其他属性,以及存储在该目录文件中子文件的名称大小等属性,对目录文件的操作不会涉及文件的内容,而只是对文件名及其存储位置等进行操作。
5. 设备文件: 表示linux系统中所有硬件设备,分为块设备和字符设备。块设备,读取时按照块为单位进行读取,字符设备类似。
6. 链接文件: 类似于windows快捷方式,分为硬链接,软链接,硬链接引用的是源文件的物理索引,又称为节点,这就相当于为文件创建了一份备用文件,即使源文件删除,通过硬链接也可以访问。软链接访问的是文件位置。
7. http://www.cnblogs.com/vamei/archive/2012/09/14/2683756.html 这里使用部分他人博客中的内容
作者:Vamei 出处:http://www.cnblogs.com/vamei
- 所有文件都是统一的形式,就能以相同的方法存储,也能共用一套处理工具,从而减少程序开发的难度。
- 对于Unix系统来说,文件可以广义的认为是可以提供或接收数据的对象。既然这样,Unix系统干脆把提供或接收数据的硬件也表示成文件。这其中,既有外部连接的USB设备,也包括树莓派内部的内存等硬件。在/dev目录下,就可以找到很多这样代表硬件的文件。
- 但托瓦兹对“万物皆文件”的说法作出过纠正,改为“万物皆文本流”(Everything is a stream of bytes”)。
- Unix定义了流 (stream),作为连接操作系统各处的公路标准。有了“流”,无论是从内存到外设,还是从内存到文件,所有的数据公路都是相同的格式。至于公路下面是石头还是土地,就都交给操作系统处理,不劳用户操心。
至于: 我的理解:
- linux为用户提供了一个高度标准化的系统,将所有内容视为文件(流),同时也使得不同组件进行交互式,转换等过程的难度大大降低。
- 普通文件为书中内容,目录文件为书的目录,设备文件为书的一些周边信息(作者,出版社,传真地址的相关介绍,一般在扉页吧),链接文件中硬文件是书的一份复印,软链接是自己整理书架时,对书架上有什么书,在哪个位置的一份记录。书借给别人了,这份记录就没用了,但拷贝还是可以用。
3.1.2 绝对路径和相对路径
3.1.3 文件属性与文件权限
在linux系统中,文件属性表示文件的一些基本特征,如文件的节点(硬链接),种类,权限链接数量等内容。- 文件权限表示什么用户可以对文件进行何种操作,可读(r或4),可写(w或2),可执行(x或1),没有任何权限(-或0)。
3.1.4 用户与用户组。
3.1.5 特殊目录介绍
1. 根目录:linux 系统的根目录,一般使用’/’表示,在根目录中包含linux系统中所有内容,类似于windows的‘计算机’
2. 用户目录:目录“/home/”中和用户登录名一致的目录,这个目录是打开终端后的默认目录,一般使用符号’~’表示。
3. 当前目录: 当前操纵所在的目录,一般使用”.”表示,当前目录可以通过命令pwd获取。
4. 上一层目录: 当前目录的上一层目录,一般使用”..”表示。
3.2 用户和用户组管理。
3.3 文件和目录操作
3.3.1 文件操作常用命令。
1. touch 命令
作用: 创建普通文本文件。
格式: touch[option]..FILE..
2. cat 命令
作用: 查看文件中的内容,并将文件的内容在显示器上显示。
格式:cat[option] …FILE…
3. tail 命令
作用: 查看文件的最后的部分,直接使用不加选项查看文件倒数10行,如果显示特定的行数,要使用选项+或-表示显示的行数,+num一般表示显示从num行后的内容,而-num表示文件的倒数num行。
格式:tail[option]…FILE
4. more/less命令
作用:more文件分屏显示,less的作用于命令相反,more命令作用是最多显示多少行,而less命令的作用是至少显示多少行,两者在使用上是一样的。
格式:more[-dlfpcsu][-num][+/pattren][+linenum][file…].
5. wc命令
作用:wc命令是linux系统中常见的文件操作命令,一般用来对文件中的字符进行计算。
格式: wc[option] FILE
常用选项: -c 显示字节数, -l 显示列数, -w 显示字数. -L 显示文件中最长行的长度。 -m 显示文件中的字符数。
其他命令。我们就到后续介绍。
变量的简单使用 :
4.1.1 变量的使用
格式: 变量=变量
num=10 #将变量num赋值为10
num=”10” #为num赋值为字符串”10”
1. 等号两边不允许出现空格或其他的符号。
2. 命名方式,与c/c++类似
3. 作用域: shell脚本内部,shell终端中使用的局部变量,shell终端中使用的全局变量。
4. 使用变量之前不需要提前定义,直接使用即可,没有变量类型的定义,可以直接为变量赋予各种类型的数据,且可以对同一个变量名赋予各种类型的变量名
4.1.2 变量的输入与输出
间接赋值 使用read命令
read[option] 变量名
变量在脚本的运行过程中,会产生各种中间变量,在脚本中可以使用echo命令的值,而需要在变量之前添加符号$.
read 命令
read -p 允许在read 命令行中直接指定一个提示,可以同时为多个变量赋值。
read -t 指定read命令等待输入的行数,当计时满时,read命令返回一个非零状态,直接退出等待输入过程.
read -n 指定接受到的字符的个数
read -s 使read命令输入的数据不在监视器上显示。
4.1.3变量输出命令echo
作用:在标准输出上输出传递给echo命令的所有参数。
格式: echo [选项] 字符串
选项:
1. -n 输出文字后不换行
2. -e 输出某些特定的字符
3. –help 显示帮助
4. –version 显示版本信息。
特殊字符:
\a 发生警告
\b 删除前一个字符
\c 最后不加上换行符号
\f 换行但光标仍旧停留在原来的地方
\n 换行,光标移至行首
\r 光标移到行首,不换行
\ 插入\
\nnn 插入nnn(八进制)所代表ASCII字符。