您的位置:首页 > 运维架构 > Linux

读书札记 一 《鸟哥的Linux私房菜》第零--第十一章

2017-07-08 22:52 267 查看
1. 启动tty1-tty6: ctrl+alt+fn+f1-6

2. 命令行中~代表当前用户的家目录 eg./home/jeremyliu

3. 指令多为: command [-options] parameter1 parameter2 ...

                    (全名时为--)

4. 指令区分大小写

5. 按tab+tab出现补全提示

6. ctrl+c 终止运行指令

7. ctrl+d = exit

8. command --help 或 man command (space翻页 q离开)

9. nano 简单文书编辑器

10. who 查看当前使用用户

11. netstat -a 查看网络联机状态

12. shutdown 关机 reboot 重启

13. sync 数据同步写入磁盘

14. su - 切换身份成为root (使用exit离开)

15. chgrp 改变文件所属群组; chown 改变文件拥有者;

      chmod :改变文件的权限,其中:

      r:4 w:2 x:1

      eg. owner = rwx = 4+2+1 = 7

            group = rwx = 4+2+1 = 7

            others= --- = 0+0+0 = 0

     -> chmod (-R 递归修改子文集) 770 file/dir

    (ls -al filename 查看文件具体属性) (ls -l == ll)

    (cd进一个文件夹是需要x权限的)

    umask 指定 『目前用户在建立文件或目录时候的权限默认值』



图1 文件类型与权限

16. cp 来源文件 目标文件   (注意:当想备份一个文件/文件夹时,多应连同属性权限一起备份,加-a)
      rm [-fir] file/dir
      mv 移动文件 目的文件夹 (同时可用作单文档更名: mv 文件原名 文件新名)
      (rename指令借助expression 专职进行多个文档的同时更名)

17. cat 读取文件内容

18. Linux系统上的文件名只是让你了解该文件可能的用途而已, 真正的执行与否仍然需要权限的规范才行

19. CentOS预设文件系统:xfs

20. 按command进入应用选择界面

21. / 系统根目录  ~ 当前用户的家目录

22. /usr: Unix Software Resource
      /usr/bin/ 全部的用户指令均在此

23. ./ 当前的目录  ../ 上一层目录

24. cd: change directory    (cd -: get back to previous dir)
      pwd: show curr dir      (pwd -P 会不以连结文件的数据显示,而是显示正确的完整路径)
      mkdir: create new dir   (mkdir -p test1/test2/test3/test4 加-p才可直接建立多层目录)
      rmdir: delete EMPTY dir (利用 -p 这个选项,立刻就可以将 test1/test2/test3/test4 一次删除)

      (use 'rm -r dir' to delete not empty dir [cautious])
      touch file 新建一个空文件  (也可用做将某个文件日期修订为目前 (mtime 与 atime))

25. echo $PATH
      PATH(一定是大写)这个变量的内容是由一堆目录所组成的,每个目录中间用冒号(:)来隔开, 每个目录是有『顺序』之分的

26. cat (Concatenate连续)由第一行开始显示文件内容
      tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写
      nl 显示的时候,顺道输出行号!
      more 一页一页的显示文件内容
      less 与 more 类似,但是比 more 更好的是,他可以往前翻页
      head [-n number] file 只看头几行(default:10)
      tail 只看尾巴几行
      od 以二进制的方式读取文件内容

27. | 管线符号,『前面的指令所输出的讯息,请透过管线交由后续的指令继续使用』的意思

28. 指令过长时用 / 在行尾换行
      连续下指令 之间用 ; 间隔

29. file filename 查看某个文件的基本数据类型(即文件格式)

30. which [-a] command 查找脚本指令文件名位置
      whereis [-bmsu] file/dir 文档名位置的快速搜索 (whereis 主要是针对 /bin /sbin 底下的执行档, 以及 /usr/share/man 底下的 man page 文件,跟几个比较特定的目录来处理而已)

31. find [PATH] [option] [action]
      eg. find ~/Desktop/ -name note*
      (注意:使用find寻找数据很耗费硬盘 少使用)
32. CentOS 7.x 采用XFS作为预设文件系统 (之前是EXT1.2.3.4)



图2 虚拟文件系统

33. EXT的目录树读取:文件系统定位一个文件时,从上层目录开始 找inode编号->找block编号 ->找inode编号 ...

34. 文件的异步处理:当系统加载一个文件到内存后,如果该文件没有被更动过,则在内存区段的文件数据会被设定为干净(clean)的。 但如果内存中的文件数据被更改过了(例如你用 nano 去编辑过这个文件),此时该内存中的数据会被设定为脏的 (Dirty)。此时所有的动作都还在内存中执行,并没有写入到磁盘中! 系统会不定时的将内存中设定为『Dirty』的数据写回磁盘,以保持磁盘与内存数据的一致性。

35. df -h 列出系统内所有filesystem的使用量

36. hard link   symbolic link

37. 压缩:
*.Z compress 程序压缩的文件;
*.zip zip 程序压缩的文件;
*.gz gzip 程序压缩的文件;
*.bz2 bzip2 程序压缩的文件;
*.xz xz 程序压缩的文件;*.tar tar 程序打包的数据,并没有压缩过;
*.tar.gz tar 程序打包的文件,其中并且经过 gzip 的压缩
*.tar.bz2 tar 程序打包的文件,其中并且经过 bzip2 的压缩
*.tar.xz tar 程序打包的文件,其中并且经过 xz 的压缩
原指令通常仅能针对一个文件来压缩与解压缩,每次压缩与解压缩都要一大堆文件,因此出现了『打包软件, tar』,将很多文件『打包』成为一个文件,再将整个tar与压缩功能结合在一起。
file --gzip--> *.gz --gzip -d--> file
(使用 gzip 进行压缩时,在预设的状态下原本的文件会被压缩成为 .gz 的档名,源文件就不再存在了)
file --bzip2--> *.bz2 --bzip2 -d--> file (相比gzip,bzip2压缩率更高,但用时更长)
tar:
<
4000
/span>压缩:tar -zcvf filename.tar.gz 要被压缩的文件或目录名称
查询:tar -ztvf filename.tar.gz
解压缩:tar -zxvf filename.tar.gz (-C 欲解压缩的目录)
38. vim:



图3 Vim模式解析

[ctrl]+x -> [ctrl]+o 以扩展名作为语法补充,以 vim 内建的关键词,予以补齐
在vim中很容易习惯性地按ctrl+s,但这在stty中设置为stop,可按ctrl+q恢复vim画面 (不过经实验ctrl+s不会有事)

39. CenOS预设的Shell是Bash(Bourne Again SHell)
[ctrl]+u/[ctrl]+k 分别是从光标处向前删除指令串 ([ctrl]+u) 及向后删除指令串 ([ctrl]+k)。
[ctrl]+a/[ctrl]+e 分别是让光标移动到整个指令串的最前面 ([ctrl]+a) 或最后面 ([ctrl]+e)。

40. echo $VarName  变量的取用
变量的设定时'='两侧不可有空格
export VarName 将其设为环境变量 (可被子bash继续使用 注意不是子目录 也不是另开一个新bash 只是说当前bash比如cd到另一个路径下也是可以echo出这个变量的)
unset VarName 取消变量设定

41. alias cls='clear' 设置别名(清屏默认:Linux下clear, DOS下cls)

42. bash
默认组合键:
Ctrl + C 终止目前的命令
Ctrl + D 输入结束 (EOF),例如邮件结束的时候;
Ctrl + M 就是 Enter 啦!
Ctrl + S 暂停屏幕的输出
Ctrl + Q 恢复屏幕的输出
Ctrl + U 在提示字符下,将整列命令删除
Ctrl + Z 『暂停』目前的命令
通配符:
* 代表『 0 个到无穷多个』任意字符
? 代表『一定有一个』任意字符
[] 同样代表『一定有一个在括号内』的字符(非任意字符)。例如 [abcd] 代表『一定有一个字符, 可能是 a, b, c, d这四个任何一个』
[-] 若有减号在中括号内时,代表『在编码顺序内的所有字符』。例如 [0-9] 代表 0 到 9 之间的所有数字,因为数字的语系编码是连续的!
[^] 若中括号内的第一个字符为指数符号 (^) ,那表示『反向选择』,例如 [^abc]代表一定有一个字符,只要是非a, b, c的其他字符就接受的意思。

43. 数据流重导向

44. 擷取:
cut 同一行中的数据进行分解
grep 分析一行讯息, 若当中有所需要的信息,就将该行拿出来

45. diff [-bBi] from-file to-file 比较文本不同 以行为单位对比
可用 diff from-file to-file xxx.patch 保存为patch文件,并可通过patch指令更新from的到to的
cmp 以字节为单位对比
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息