GNU/Linux复习笔记(1)

第一次接触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加密后的密文也是不一样的。

时间: 2024-10-10 18:06:09

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

GNU/Linux复习笔记(2)

---IO重定向: 典型的冯诺依曼计算机由5大部件组成:运算器,控制器,存储器,输入设备和输出设备.而一台计算机上可能有很多输入设备和输出设备,键盘.麦克风是输入设备,显示器.声卡是输出设备,网卡.硬盘.U盘既是输入设备又是输出设备.如此众多的输入输出设备中系统设定了默认输入设备是键盘,又称标准输入,用STDIN表示,文件描述符0:默认输出设备是显示器,又称标准输出,用STDOUT表示,文件描述符为1:默认错误输出也是显示器,用STDERR表示,文件描述符为2.虽然标准输出设备和标准错误输出设备

linux复习笔记

最后一门考试了,善始善终. 把linux复习一下,复习内容包括 1. 鸟哥的私房菜(1,2)+高级unix环境编程  掌握核心知识点(要注意理解OS的知识与工具知识的区别) 2. 熟练度与细节,非不断练习与总结不可以 —————————————————————————————————————————————————————— --------------------------------------------------------------------------------------

Java/JavaWeb/Linux复习笔记

学习博客 Java核心类复习 http://blog.csdn.net/tanyit/article/category/915702 Struts2 复习 http://blog.csdn.net/tanyit/article/category/657111 hibernate 复习 http://blog.csdn.net/tanyit/article/details/6987279#_Toc251597188 Spring复习 http://blog.csdn.net/tanyit/arti

linux 学习笔记 GNU工具链简介

我们通常无法直接通过Linux内核,而需要借助Linux内核之上的GUN工具链来进行 文件处理 文本操作 进程管理 等操作. GNU/Linux shell为用户提供了 启动程序 管理文件系统上的文件 管理运行在Linux系统上的进程 的途径 shell允许你输入文本命令,之后将解释命令并在内核中执行 内置命令 输入程序的名称,shell将程序名称传递给内核以启动它 将shell命令放入文件中作为程序执行 有好几种Linux shell可用,通常为bash shell

Linux学习笔记——例说makefile 增加系统共享库

0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法. 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件 3.需要包括头文件路径 4.增加宏定义 5.增加系统共享库 6.增加自定义共享库 7.一个实际的例子 [代码仓库]--makefile-example

linux 基础笔记(一)

[1.1]系统的选择 Centos: CentOS(Community Enterprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成.由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用.两者的不同,在于CentOS并不包含封闭源代码软件. Debian: 广义的Debian是指一个致力于创建自由操作系

Linux学习笔记——例说makefile 单个C文件

0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法. 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件 3.需要包括头文件路径 4.一个较为复杂的例子 [代码仓库]--makefile-example 代码仓库位于bitbucket,可借助Tortoise

Linux学习笔记——例说makefile 多个文件

0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法. 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件 3.需要包括头文件路径 4.一个较为复杂的例子 [代码仓库]--makefile-example 代码仓库位于bitbucket,可借助Tortoise

Linux学习笔记——例说makefile 头文件查找路径

0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法. 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件 3.需要包括头文件路径 4.一个较为复杂的例子 [代码仓库]--makefile-example 代码仓库位于bitbucket,可借助Tortoise