没有梦想,何必远方

Linux常用命令与权限简析


1.文件权限处理( ll 命令可查看当前文件的具有的权限)

    进入文件后执行 cd /  命令;可查看主目录列表文件,执行 ll 命令可查看各顶级目录相关权限信息
    drwxr-xr-x. 2 root root 12288 Dec 21 11:49 bin
    所属组 所属用户 文件大小 文件最后更改时间  文件名称
    drwxr-xr-x:(d表示文件夹,后面三个一组表示权限):
    d:表示 bin为 文件夹
    rwx:表示 具有读写执行即 111(二进制数)--->7(十进制数) :第一部分 代表 文件所属者 具有的权限
    r-x:表示 具有读 不能写 执行权限 101---->5    :第二部分 代表 用户组的权限
    r-x:表示 具有读 不能写 执行权限 101---->5    :第三部分 代表其他用户的权限
    所以drwxr-xr-x 该组权限可以用 755表示

    如果需要将一个文件设置为 drwxr-xr-x  即可使用chmod 755 filename (只设置这一个文件)  chmod  -R 755 filename(该filename文件夹及其子目录文件 都会被设置为 rwxr-xr-x )
  1.1读写执行权限的简单理解
      用户进入文件夹:需要有 执行的权限(如果没有执行的权限也不能使用 clear命令;当然一个可执行文件如果用户没有执行权限也不能执行)
      进入文件夹后查看文件夹下的数据:需要读取的权限(进入文件夹后没有读取权限,看不到文件夹下的内容及子目录等,ls命令不能使用)
      进入文件夹后删除文件创建文件:需要 写入的权限(没有写的权限不能实现删除创建的操作)

2.用户添加删除基本操作

以 jiang 表示用户名 group1 表示组名

useradd jiang //添加一个叫jiang的新用户

    whoami        //查看当前用户
    passwd jiang    //回车后直接给jiang这个用户设置秘密
               //(输出完密码回车后需要再确认输入一次,提示密码太简单不影响密码的设置)
    userdel jiang         //删除用户(/home/目录下的jiang文件夹不会被删除)
    userdel -r jiang      //连同用户的主目录也会一起删除
    vim /etc/passwd     //添加用户或者用户组后会在passwd文件记录
    //例如:jiang:x:500:500::/home/jiang:/bin/bash
    //但是用户实际的密码保存在 vim /etc/shadown
    //例如:jiang:$6$6SXYEHrT$r9e0.sRLSwhOItaWlLr5DnX1RIyfLLM70UpxzB59UuBNut7o8zWRnEzw2PD6aEuQjb9aFe5yDGK61GupFN6TQ/:17521:0:99999:7:::¥
    //密码有三部分组成$id$salt$encrypted 根据id选择相应的加密方式(md5、SHA256、SHA512...) salt:定长(8)随机字符串 encrypted经过salt影响的实际加密密码
3. groupadd group1 //添加用户组
    groupdel group1       //删除用户组
    useradd test1 -g tests         // 添加用户test1,并使属于tests组
    grep gid /etc/group              //【gid(每个组有唯一gid)】查看某个group下的所有用户
    usermod -G group1 jiang :       //把jiang这个用户添加到group1组,但是会将该用户从其他用户组删除
    //注意usermod -g groupname username是把username的主组变成groupname,而usermod -G groupname username只是把用户加到groupname组,并没有改变主组
    groups //查看当前用户所属的group
4. 查看日志
    tail -n 10 test.log         //查询日志尾部最后10行的日志;
    tail -n +10 test.log       // 查询10行之后的所有日志;
    head -n 10 test.log      //查询日志文件中的头10行日志;
    head -n -10 test.log               // 查询日志文件除了最后10行的其他所有日志;
    cat -n test.log |grep "error"    //可以查询到 error 在该文件中的行号(有几处就能查询到几个行号)

    cat -n test.log |tail -n +92|head -n 20
    tail -n +92表示查询92行之后的日志
    head -n 20 则表示在前面的查询结果里再查前20条记录
    sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
    关于日期打印,可以先 grep '2014-12-17 16:17:20' test.log :该命令语句表示:在test.log文件中查找 2014-12-17 16:17:20

    (1)使用more和less命令, 如: cat -n test.log |grep "地形" |more 这样就分页打印了,通过点击空格键翻页
    (2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析.如:
    cat -n test.log |grep "地形" >xxx.txt

    linux 如何显示一个文件的某几行(中间几行)

    从第3000行开始,显示1000行。即显示3000~3999行
    cat filename | tail -n +3000 | head -n 1000
    显示1000行到3000行
    cat filename| head -n 3000 | tail -n +1000
    *注意两种方法的顺序
      分解:
        tail -n 1000:显示最后1000行
        tail -n +1000:从1000行开始显示,显示1000行以后的
        head -n 1000:显示前面1000行
        用sed命令
        sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。
        例:cat mylog.log | tail -n 1000 #输出mylog.log 文件最后一千行
------------------------------------------
5.cat主要有三大功能:
    1.一次显示整个文件。$ cat filename
    2.从键盘创建一个文件。$ cat > filename
    只能创建新文件,不能编辑已有文件.
    3.将几个文件合并为一个文件: $cat file1 file2 > file
     参数:
        -n 或 --number 由 1 开始对所有输出的行数编号
        -b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
        -s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
        -v 或 --show-nonprinting
        例:
          把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
          cat -n textfile1 > textfile2

        把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
        cat -b textfile1 textfile2 >> textfile3
        把test.txt文件扔进垃圾箱,赋空值test.txt
        cat /dev/null > /etc/test.txt
        注意:>意思是创建,>>是追加。千万不要弄混了。
------------------------------------------
  tac (反向列示)
      tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,
      而 tac 则是由最后一行到第一行反向在萤幕上显示出来!
------------------------------------------
      在Linux中echo命令用来在标准输出上显示一段字符,比如:
      echo "the echo command test!"
      这个就会输出“the echo command test!”这一行文字
      echo "the echo command test!">a.sh
      这个就会在a.sh文件中输出“the echo command test!”这一行文字!
      该命令的一般格式为: echo [ -n ] 字符串其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。
      用echo命令输出加引号的字符串时,将字符串原样输出;
      用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。

posted @ 2017-12-21 20:09  北极丶光  阅读(387)  评论(1编辑  收藏  举报