第一次接触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. 《java编程思想》读书笔记(一)开篇&第五章(1)

    2017 ---新篇章  今天终于找到阅读<java编程思想>这本书方法了,表示打开了一个新世界. 第一章:对象导论 内容不多但也有20页,主要是对整本书的一个概括.因为已经有过完整JAV ...

  2. git subtree 使用

    这个是备忘录.原网页(https://medium.com/@porteneuve/mastering-git-subtrees-943d29a798ec , http://cncc.bingj.co ...

  3. Apache Commons 系列简介 之 Pool

    一.概述 Apache Commons Pool库提供了一整套用于实现对象池化的API,以及若干种各具特色的对象池实现.2.0版本,并非是对1.x的简单升级,而是一个完全重写的对象池的实现,显著的提升 ...

  4. C语言字符串操作总结大全(超详细)

    本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作  strcpy(p, p1) 复制字符串  strncpy(p, p1, n) 复制指定长度字符串  strcat( ...

  5. php7 编译安装 apache

    http://blog.csdn.net/21aspnet/article/details/47708763 根据此教程的步骤但是碰到了若干问题 1.  执行./configure的时候报错 大部分可 ...

  6. 关于flume配置加载

    最近项目在用到flume,因此翻了下flume的代码, 启动脚本: nohup bin/flume-ng agent -n tsdbflume -c conf -f conf/配置文件.conf -D ...

  7. python之正则表达式

    1) 用管道符号(|)匹配多个正则表达式 举例 at | home     匹配 at, home 2) 匹配任意一个单个的字符(.) 举例 f.o  匹配在"f"和"o ...

  8. putty+xming远程登录Ubuntu16.04图形界面

    前面我写过一篇<Ubuntu16.04 安装ftp服务器传输文件>的文章.文章当中已经可以远程访问linux服务器并且传输文件,然而要在putty中使用开启图形界面的命令到目前为止还是不够 ...

  9. jQuery中,$('#main') 与 document.getElementById('main')是什么样的关系-转

    $('#main')[0]和document.getElementById('main')两个一模一样.解释:$('#main'):是一个jquery写法,#main是一个过滤器表示方法,表示查找一个 ...

  10. css3 em rem等单位的区别

    px:绝对单位,页面按精确像素展示 em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体是16px),整个页面内1em不是一个固定的值. rem:相对 ...