# Linux系统

## sed

sed是非交互式的编辑器。它不会修改文件，除非使用shell重定向来保存结果。默认情况下，所有的输出行都被打印到屏幕上。sed编辑器逐行处理文件（或输入），并将结果发送到屏幕。

```
sed命令行格式为：
         sed [-nefri] ‘command’ 输入文本    

常用选项：
        -n∶使用安静(silent)模式。在一般 sed 的用法中，所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后，则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
        -e∶直接在指令列模式上进行 sed 的动作编辑；
        -f∶直接将 sed 的动作写在一个档案内， -f filename 则可以执行 filename 内的sed 动作；
        -r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
        -i∶直接修改读取的档案内容，而不是由萤幕输出。       
常用命令：
        a   ∶新增， a 的后面可以接字串，而这些字串会在新的一行出现(目前的下一行)～
        c   ∶取代， c 的后面可以接字串，这些字串可以取代 n1,n2 之间的行！
        d   ∶删除，因为是删除啊，所以 d 后面通常不接任何咚咚；
        i   ∶插入， i 的后面可以接字串，而这些字串会在新的一行出现(目前的上一行)；
        p  ∶列印，亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作～
        s  ∶取代，可以直接进行取代的工作哩！通常这个 s 的动作可以搭配正规表示法！例如 1,20s/old/new/g！
         g 是行内进行全局替换
```

##　umask

当我们登录系统之后创建一个文件总是有一个默认权限的，那么这个权限是怎么来的呢？这就是umask干的事情。**umask设置了用户创建文件的默认权限，它与chmod的效果刚好相反，umask设置的是权限“补码”，而chmod设置的是文件权限码**。

计算方法如下：

```

例如，对于umask值0 0 2，相应的文件和目录缺省创建权限是什么呢？ // 664 775
第一步，我们首先写下目录具有全部权限的模式，即777 (所有用户都具有读、写和执行权限)，文件默认是666。
第二步，在下面一行按照umask值写下相应的位，在本例中是0 0 2。
第三步，在接下来的一行中记下上面两行中没有匹配的位。这就是目录的缺省创建权限。
稍加练习就能够记住这种方法。
第四步，对于文件来说，在创建时不能具有执行权限，只要拿掉相应的执行权限比特即可。

```

## useradd

格式：**useradd [选项] 用户名**
```
-p 设定帐号的密码
-d 指定用户的主目录
-m 自动建立用户的主目录
-M 不要自动建立用户的主目录
```

## mount && umount

```

mount [选项] <-t 类型> [-o 挂载选项] <设备> <挂载点>

umount <挂载点|设备>

```


##find

```

find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

```


##grep


在文件中搜索指定字符所在行   
格式： **grep [选项] 指定字符 文件**  
-i 忽略大小写 -r 递归  -v 排除指定字符串  -n 显示列数 
  
```

eg: grep -i ab /etc/inittab 

```


##tar


常用的打包压缩和解压命令之一<br/>格式: **tar 选项 [压缩后文件名] [目录]** 

*注意：打包和压缩是两个不同概念，打包只是把所有文件放在一具类似包中，并不改变其大小，而压缩才会改变其大小*

```

压缩时常用    
-c 打包(create)  -v显示详细信息(view) -f指定文件名(filename)  -z 打包同时压缩    
eg: tar -zvf word.tar word    

解压缩时常用    
-x 解包  -v显示详细信息(view) -f指定解压文件名(filename)  -z 解压缩    
eg: tar -zxf word.tar    
 
```
