第一次接触GNU/Linux还是大四上学期实习的那两个月在window里装了 个虚拟机玩红帽的系统,那段时间稍微学了一点命令就不玩了。后来大四下学期认识了王总,装了双系统,那段时间又对linux有了进一步认识并产生了很大的 兴趣。直到上学期突然发疯把笔记本装debian8以后才完全进入linux的世界。学习真的是一个螺旋式上升的过程。下面进入正题:

---Linux的基本原则:
1、由目的单一的小程序组成,组合小程序完成复杂任务(KISS:keep it simple,stupid)
2、一切皆文件
3、尽量避免捕获用户接口(尽量减少与用户的交互)
4、配置文件保存为纯文本格式

---linux命令分为内置(build_in)命令和外部命令,可以用type查看命令类型,例如 type和echo就是内置命令而man是外部命令

$type type
type 是 shell 内建 $type echo
echo 是 shell 内建 $type man
man 是 /usr/bin/man

---在Linux中行结束符是$,而在windows中行结束符是$\n,可以用cat -E显示行结束符

---tail -f 默认显示文件最后10行,-f参数会将文件增加的内容立即显示出来,这在某些场合很有用,比如查看apache的访问日志

---sort命令默认不是以数字排序的,若要以数字排序,需要加上-n参数,-t参数表示字段分割符,-k指定以哪个字段排序

---tr用于转换或删除字符,这里举一个例子,将a.txt文件中所有小写字母换成大写字母打印,只需一条命令 ,将命令的输入重定向到文件即可

1 $tr a-z A-Z < a.txt

---几个终端操作的小技巧:

ctrl +a :光标到行首,ctrl + e :光标到行尾,ctrl+d:删除当前光标定位字符,ctrl+u:删除光标到行首 ,ctrl+k:删除光标位置到行尾,ctrl + <-:向左跳过一个单词,ctrl + ->:向右跳过一个单词,ctrl+l :清屏(这样比输入clear命令会快一点)

---history命令可以显示用户曾经输入的命令,history -c会清除命令历史,这样用户使用向上箭头时就切换不了之前的命令了,但是在用户家目录下有一个隐藏文件.bash_history记录了用户曾经输入过 的命令,具体可以保存多少条可以通过echo   $HISTSIZE环境变量查看。history -w命令会将缓冲区中的命令写入.bash_history中,在我的电脑上执行这条命令会覆盖文件中原有的内容。

---终端操作的小技巧之历史命令:

!n   执行命令历史中的第n条命令

!-n  执行命令历史中的倒数第n条命令

!!  执行上一条命令、

! string  执行命令历史中最近一个以指定字符串开头的命令

!$    引用上一个命令的最后一个参数   (这里也可以按下ESC键后再按.  调出上一个命令的最后一个参数 )

---命令替换:定义:把命令中某个子命令替换为其执行结果。用法:可以用$(COMMAND)或者反引号`COMMAND`实现命令替换。举个例 子吧,看定义也不明白是什么意思,创建一个文件以当前时间命名,例如:file-2016-3-10-19-20-31.txt

1 $touch file-$(date +%Y-%m-%d-%H-%M-%S).txt
2 $touch file-$(date +%F-%H-%M-%S).txt
3 $touch file-`date +%Y-%m-%d-%H-%M-%S`.txt

---用户权限:rwx,每一位的有无都代表了一种权限拥有情况,所以一共有2的3次方共8种情况,因此可以用一个8进制数代表用户对文件的所有权,也就是0-7。而文件的用户分为3类,u,g,o

也就是所有者,组内成员,其他人,所以有时候要改变一个文件对特定用户和组的权限也比较方便

1 $chmod u+x   a.txt                  将所有者的执行权限加上
2 $chmod u-x a.txt 将所有者的执行权限去除
3 $chmod go=rx a.txt 赋予组内用户和其他用户读和执行权限
4 $chmod g=,o= a.txt 不给组内用户和其他用户任何权限
5 $chmod g=r,u=rwx a.txt 给文件所有者最大权限,组内用户读权限
6 $chmod --reference=./b.txt a.txt 把a.txt的权限改成和b.txt的权限一样,chown也支持这个选项

---man手册是分章节的,whatis命令是对手册页的概述:
1:用户命令(/bin, /usr/bin, /usr/local/bin)
2:系统调用(内核提供的函数)
3:库用户(程序库中的函数)
4:特殊文件(通常是设备文件)
5:文件格式(配置文件的语法)
6:游戏
7:杂项(Miscellaneous)
8: 管理命令(/sbin, /usr/sbin, /usr/local/sbin)通常只针对root用户

例如:

1 $whatis passwd
2 passwd (5) - 密码文件
3 passwd (1) - 更改用户密码
4 passwd (1ssl) - compute password hashes

此时就可以用man 5 passwd命令查看/etc/passwd配置文件的格式和每个字段的含义

1 $whatis shadow 2 shadow (5) - 影子化了的密码文件

此时用man 5 shadow 就可以查看/etc/shadow配置文件的格式和每个字段的含义

---加密方法:加密方法主要分为3种
    1、对称加密:加密和解密使用同一个密钥
    2、公钥加密:每个密码都成对出现,一个为私钥(private key),一个为公钥(public key) ,一把钥匙开一把锁。

3、单向加密:也称散列加密、指纹加密,只能加密不能解密,用于提取数据特征码,常用于数据完整性校验,它有两个特点:(1)雪崩效应,就是我们常说的蝴
蝶效应,只要文件中有一点微小的改动,输出就会产生很大的变化。(2)定长输出,无论输入文件多大,输出的结果长度都一样。常见的两种单向加密方式:
            MD5:Message Digest, 128位定长输出     可以用md5sum命令求一个文件的md5值
            SHA1:Secure Hash Algorithm, 160位定长输出

通常在/etc/shadow中看到的密码是加了salt(杂质)后再加密的结果,这样就保证了即使两个用户的密码一样,因为加的杂质不同,所以md5加密后的密文也是不一样的。

GNU/Linux复习笔记(1)的更多相关文章

  1. GNU/Linux复习笔记(2)

    ---IO重定向: 典型的冯诺依曼计算机由5大部件组成:运算器,控制器,存储器,输入设备和输出设备.而一台计算机上可能有很多输入设备和输出设备,键盘.麦克风是输入设备,显示器.声卡是输出设备,网卡.硬 ...

  2. Linux复习笔记-001-进程的管理

    1.什么是进程? 进程是已经启动的可执行的程序运行实例. 程序是二进制文件,静态 ./bin/date/ /usr/sbin/ 进程:是程序运行的过程 2.Linux为1的进程? centos5或6为 ...

  3. linux 学习笔记 GNU工具链简介

    我们通常无法直接通过Linux内核,而需要借助Linux内核之上的GUN工具链来进行 文件处理 文本操作 进程管理 等操作. GNU/Linux shell为用户提供了 启动程序 管理文件系统上的文件 ...

  4. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  5. Linux 读书笔记 一

    一.Linux 简介 实验介绍 本节主要介绍 Linux 的历史,Linux 与 Windows 的区别等入门知识.如果你已经有过充分的了解,可以跳过本节,直接进入下一个实验. 一.Linux 为何物 ...

  6. 20160127 linux 学习笔记

    Linux学习笔记第一天 Linux基本介绍 Linux的起源和发展: 简单说linux是一种操作系统,可以安装在包括服务器.个人电脑,乃至PDA.手机.打印机等各类设备中. 起源: Linux起源于 ...

  7. Linux学习笔记——如何使用共享库交叉编译

    0.前言     在较为复杂的项目中会利用到交叉编译得到的共享库(*.so文件).在这样的情况下便会产生下面疑问,比如:     [1]交叉编译时的共享库是否须要放置于目标板中,假设须要放置在哪个文件 ...

  8. Linux学习笔记——怎样在交叉编译时使用共享库

    0.前言     在较为复杂的项目中会利用到交叉编译得到的共享库(*.so文件).在这样的情况下便会产生下面疑问,比如:     [1]交叉编译时的共享库是否须要放置于目标板中,假设须要放置在哪个文件 ...

  9. Linux学习笔记-林耐斯Notes-Linux就该这么学

    Linux学习笔记... 参考的优秀Linux网站: http://www.w3cschool.cn/linux/ http://www.linuxeye.com/ http://linux.vbir ...

随机推荐

  1. MediaCodec Name & Type

    OMX.google.mp3.decoder support type:audio/mpegOMX.google.amrnb.decoder support type:audio/3gppOMX.go ...

  2. Myeclipse非正常关闭出现问题

    Could not create the view: An unexpected exception was thrown. 解决办法: 关闭myeclipse 原来工作空间的.metadata文件夹 ...

  3. HTML5视频Video 音频Audio

    视频协议 视频格式 Flash HTML5 HTTP flv HTTP f4v HTTP mp4 HTTP m3u8 HTTP webm HTTP ogg RTMP flv RTMP f4v RTMP ...

  4. const成员变量初始化总结

    const可以用来声明常量也就是说他的值不能被修改: const成员必须在定义的时候同时初始化,不能进行赋值 如 const int a:a的值不能修改,不能给它赋值,如何才能让它一开始就拥有一个值? ...

  5. 每天的代码review和解决技术难题

    在此结构中,一个 PPC 处理器作为监管处理器,与大量的 SPE流处理器相连通,组成了一个工作流水线. 对于一个图形处理过程来说,某个 SPE 可负责提取数据,另一个 SPE 负责变换,再另一个负责存 ...

  6. 浅谈声明与定义的区别 分类: C/C++ 2015-06-01 15:08 157人阅读 评论(4) 收藏

    以下代码使用平台是VS2012. 清楚明白声明与定义是一名合格的程序猿的基本要求. 本人认为,C++编码过程中谈及"声明"和"定义"是因为我们要使用一个变量.类 ...

  7. codeMirror的简单使用,js比较文本差异(标注出增删改)

    最近项目需要使用比较文本的差异的功能,在同事的推荐下,使用js脚本来比较,所以codeMirror变成了选择. 当然codeMirror中有其他功能,比较文本差异的只是其中一个功能,本人不在此做介绍, ...

  8. Qt实用小技巧(转)

    原博网址:http://www.cnblogs.com/feiyangqingyun/archive/2010/12/06/1898143.html 1.如果在窗体关闭前自行判断是否可关闭答:重新实现 ...

  9. 关于post请求超出最大长度

    这是因为asp.net默认限制最大上传文件大小为4096kb,而我上传了6000kb+所以超出了限制,需要修改项目的web.config文件即可解决,可以将最大文件长度设置为你需要的长度,我这里设置为 ...

  10. KO中对象数组排序时,两个属性的优先顺序不一致时的排序实现

    function FromSort(left, right, asc) {    if (left.属性1 != "") {        if (right.属性1 != &qu ...