Linux/Ubuntu常用指令(二)

0.写在前面

Linux常用指令的第二篇文章,这次开头还是再讲一下Ubuntu的权限问题,一开始接触Linux权限的问题确实很坑爹,但了解之后会发现Linux真的很好玩很强大;其次补充一些很好用的指令。shell推荐使用zsh,自带的bash比较难用。

1
apt install zsh

再安装上oh~my~zsh,终端就变得很好看很好用了。在这里推荐一篇安装oh~my~zsh的教程 -> 点击进入教程

1.chmod

这条指令也是和权限相关,我们用 ls -lll 时,会看到列表前面有一串字符

1
2
3
4
$ ls -l
/*文件属性 文件数 拥有者 所属的group 文件大小 建档日期 文件名*/
drwxr-xr-x 14 root root 4.0K 10月 9 20:07 code
-rw-r--r-- 1 root root 141 6月 24 12:54 composer.json

其中,r 表示可读取,w 表示可写入,x 表示可执行,d表示这是一个目录
一共有1+3+3+3个字符,权限主要看后面三组,这三组按顺序分别是owner(文件拥有者),group(用户组),other(其他用户,如访客)。

那么怎么用chmod指令去控制权限?

在Ubuntu中,r=4,w=2,x=1

rwx 对应4+2+1=7
rw- 对应4+2=6
r-x 对应4+1=5

看到这里应该有点眉头了吧?用sudo chmod 777 xxx开放对所有用户所有权限,3个数字依次代表owner, group, other,数字本身也代表着权限开放程度。

2. chown

该指令和chmod类似,只不过是直接更改文件或文件夹所有者。

1
sudo chown xxx:groupA [-R] file

其中xxx是用户名,可为空,groupA为用户组。

3. ls

这个指令没有放在第一篇文章是因为我觉得大家应该用的频率最高,也懂了就不讲了,有些参数不常用,在这里转发别人的吧,高频使用参数我加粗了。

-a: 显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出)
-A: 显示除影藏文件“.”和“..”以外的所有文件列表
-C: 多列显示输出结果。这是默认选项;
-F: 在每个输出项后追加文件的类型标识符,具体含义: “*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;
-b: 将文件中的不可输出的字符以反斜线“”加字符编码的方式输出;
-c: 与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;
-d: 仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;
-f: 此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;
-i: 显示文件索引节点号(inode)。一个索引节点代表一个文件;
–file-type: 与“-F”选项的功能相同,但是不显示“”;
-h: 人性化显示,比如大小会用K、M;
-l: 以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;
-m: 用“,”号区隔每个文件和目录的名称;
-n: 以用户识别码和群组识别码替代其名称;
-r: 以文件名反序排列并输出目录内容列表;
-s: 显示文件和目录的大小,以区块为单位;
*-t: 用文件和目录的更改时间排序;

-L: 如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;
-R: 递归处理,将指定目录下的所有文件及子目录一并处理;
–full-time: 列出完整的日期与时间;
–color[=WHEN]: 使用不同的颜色高亮显示不同类型的。
来自: http://man.linuxde.net/ls

4. ln

文件(夹)链接符号,分为硬链接和软链接两种。效果类似于创建一个快捷方式,不同目录下共享某一文件(夹)。

-b或–backup: 删除,覆盖目标文件之前的备份;
-d或-F或——directory: 建立目录的硬连接;
-f或——force: 强行建立文件或目录的连接,不论文件或目录是否存在;
-i或——interactive: 覆盖既有文件之前先询问用户;
-n或–no-dereference: 把符号连接的目的目录视为一般文件;
-s或——symbolic: 对源文件建立符号连接,而非硬连接;
-S<字尾备份字符串>或–suffix=<字尾备份字符串>: 用”-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字符串是符号“~”,用户可通过“-S”参数来改变它;
-v或——verbose: 显示指令执行过程;
-V<备份方式>或–version-control=<备份方式>: 用“-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用“-S”参数变更,当使用“-V”参数<备份方式>指定不同备份方式时,也会产生不同字尾的备份字符串;
–help: 在线帮助;
–version: 显示版本信息。
来自: http://man.linuxde.net/ln

硬链接和软链接有什么区别?

  • 原文件删除,软链不可访问,硬链还是可以,硬链相当于同时复制了一份。
  • 不能对目录创建硬链接,但可以创建软链接。

5. tar

tar是Ubuntu自带的压缩指令,将文件压缩成tar格式,但是只会一个tar是不够的,如果不知道压缩参数,根本无法压缩。
常用参数如下:

-c 创建一个tar压缩文件
-v 显示处理过程
-z 压缩成zip文档
-f 指定压缩文档名字,注意不要忘记加上文件后缀,tar不会帮你补充上去
-x 释放文件,解压参数
-C 解压到指定目录,不存在此目录则终止运行
示例

1
2
tar -cvf fonts.tar fonts // 压缩
tar -xvf fonts.tar -C tests

压缩文件时记住前面是压缩后的文件,后面是你需要压缩的文件(夹)。

其他解压缩指令如rar/unrar,zip/unzip如要自己从apt另外安装。

6. 终端快捷键

指令想不出还有什么要说的了,说一下我常用的快捷键吧。

  • Ctrl + a 快速回到行首
  • Ctrl + e 快速回到行尾
  • Ctrl + Shift + t 同一窗口内新建一个终端
  • Ctrl + u 删除光标到行首内容
  • Ctrl + r 查找输入指令历史
  • Ctrl + d 关闭当前终端
  • Ctrl + p 向上查看指令历史
  • Ctrl + n 向下查看指令历史
  • Ctrl + c 清屏

就写到这里啦,以后有什么就补充。