zoukankan      html  css  js  c++  java
  • 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中行结束符是$ ,可以用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加密后的密文也是不一样的。

  • 相关阅读:
    C#中 @ 的用法
    ASP.NET页面间传值
    ASP.NET中常用的文件上传下载方法
    把图片转换为字符
    把图片转换为字符
    JavaScript 时间延迟
    Using WSDLs in UCM 11g like you did in 10g
    The Definitive Guide to Stellent Content Server Development
    解决RedHat AS5 RPM安装包依赖问题
    在64位Windows 7上安装Oracle UCM 10gR3
  • 原文地址:https://www.cnblogs.com/suddoo/p/5267485.html
Copyright © 2011-2022 走看看