• linux基础命令用法


    目录管理

      ls、cd、pwd、mkdir、rmdir、tree

    ls(list) 列出,列表  

    用法: 

    ls
      -l:长格式
        文件类型:
          -:普通文件 (f)
          d: 目录文件
          b: 块设备文件 (block)
          c: 字符设备文件 (character)
          l: 符号链接文件(symbolic link file)
          p: 命令管道文件(pipe)
          s: 套接字文件(socket)
        文件权限:9位,每3位一组,每一组:rwx(读,写,执行), r--
        文件硬链接的次数
        文件的属主(owner)
        文件的属组(group)
        文件大小(size),单位是字节
        时间戳(timestamp):最近一次被修改的时间
        访问:access
        修改:modify,文件内容发生了改变
        改变:change,metadata,元数据
      -h:做单位转换
      -a: 显示以.开头的隐藏文件
      . 表示当前目录
      .. 表示父目录
      -A
      -d: 显示目录自身属性
      -i: index node, inode
      -r: 逆序显示
      -R: 递归(recursive)显示

    cd(change directory)

    用法:

    cd ~USERNAME:进入指定用户的家目录

    cd ..:进入父级目录

    cd -:在当前目录和前一次所在的目录之间来回切换

    cd:进入当前用户主目录

    pwd(Printing Working directory) 

    显示当前路径

    mkdir(make directories)

      -p:创建目录树

      -v:显示创建目录的信息

      此两个命令联合使用最有效。

      mkdir -pv /hehe/heihei/haha

    创建多级目录

      mkdir /test/{x/m,y} 

      mkdir /test/{a,d}_{b,c}

    rmdir(remove directory)

      -p 若目录为多级目录,从最后一个目录开始删除。

    文件管理

      touch、stat、file、rm、cp、mv

    touch(change file timestamps)修改文件时间戳

      -a:修改文件访问时间

      -m:修改文件修改时间

      -t:使用[[CC]YY]MMDDhhmm[.ss]格式修改文件时间戳

      -c:创建空文件

    rm(remove)

        移除文件或者目录

      -i:进行确认提示。(在同时给定了-f和-i选项时,列在最后的生效。)

      -f:忽略不存在的文件,并且从不向用户提示。

      -r:或者 -R 递归地移除目录树。

    cp(copy)

      -i 与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
      -f 覆盖已经存在的目标文件而不给出提示。
      -p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
      -r 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
      -l 建立硬链接,而非复制
      -d 复制符号链接

    mv(move)

      移动(改名)文件 

      -t: 指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

    日期时间
    date、clock、hwclock、cal

    显示日期的指令: date(显示系统时间)
    hwclock(显示硬件时间)
    -w:系统时间同步到硬件时间
    -s:硬件时间同步到系统时间
    显示日历: cal
    计算器: bc

    查看文本
    cat、tac、more、less、head、tail、tee

     cat 连接文件并在标准输出上输出

      -n:显示文本行数

      -E:在每行结束显示 $

    head:查看前n行
    tail:查看后n行
      -n
    tail -f: 查看文件尾部,不退出,等待显示后续追加至此文件的新内容;

    tee:既显示输出内容,又把内容输入到文件中。

    文本处理

    cut:
      -d: 指定字段分隔符,默认是空格
      -f: 指定要显示的字段
      -f 1,3
      -f 1-3

    文本排序:sort
      -n:数值排序
      -r: 降序
      -t: 字段分隔符
      -k: 以哪个字段为关键字进行排序
      -u: 排序后相同的行只显示一次
      -f: 排序时忽略字符大小写

    uniq: 删除排序中重复的行
      -c: 显示文件中行重复的次数
      -d: 只显示重复的行

    文本统计:wc (word count)
      -l:输出换行符统计数
      -w:输出单词统计数

      -c:输出字节统计数
      -L:输出最长的行的长度

    字符处理命令:tr —— 转换或删除字符
      tr [OPTION]... SET1 [SET2]
      -d: 删除出现在字符集中的所有字符

    命令历史
    history 查看
      -c:清空命令历史
      -d OFFSET [n]: 删除指定位置的命令
      -w:保存命令历史至历史文件中

    命令历史的使用技巧:
    !n:执行命令历史中的第n条命令;
    !-n:执行命令历史中的倒数第n条命令;
    !!: 执行上一条命令;
    !string:执行命令历史中最近一个以指定字符串开头的命令
    !$:引用前一个命令的最后一个参数;

     用户与用户组及其权限管理

    用户管理

    useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage

    useradd,添加用户
      -c 描述
      -d 家目录
      -g 所属组
      -G 附属组
      -s 环境变量
      -u uid

    例:useradd -c thisisauser -d /home -g whych -G whych -u 2017 -s /sbin/nologin

    chage 修改账号密码有效期限
      -M 最大天数
      -m 最小天数

    userdel 删除用户
      -r 同事删除用户的家目录

    usermod,修改用户信息
      -c<备注>:修改用户帐号的备注文字;
      -d<登入目录>:修改用户登入时的目录;
      -e<有效期限>:修改帐号的有效期限;
      -f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
      -g<群组>:修改用户所属的群组;
      -G<群组>;修改用户所属的附加群组;
      -l<帐号名称>:修改用户帐号名称;
      -L:锁定用户密码,使密码无效;
      -s<shell>:修改用户登入后所使用的shell;
      -u<uid>:修改用户ID;
      -U:解除密码锁定。

    id:查看用户的帐号属性信息
      -u:显示用户id
      -g:显示组id
      -G:显示附加组
      -n:显示真实id

    finger: 查看用户帐号信息
    finger USERNAME

    chsh: 修改用户的默认shell

    chfn:修改注释信息

    组管理
    groupadd, groupdel, groupmod, gpasswd

    创建组:groupadd
    groupadd
      -g GID
      -r:添加为系统组

    groupmod
      -g GID
      -n GRPNAME

    groupdel

    gpasswd:为组设定密码


    权限管理
    chown, chgrp, chmod, umask

    chown: 改变文件属主(只有管理员可以使用此命令)
    chown USERNAME file,...
      -R: 修改目录及其内部文件的属主
      --reference=/path/to/somefile file,...

    chown USERNAME:GRPNAME file,...
    chown USERNAME.GRPNAME file,...

    chgrp GRPNAME file,...
      -R:同上

    chmod: 修改文件的权限
    chmod +|- MODE file,...
      -R:同上

    修改某类用户或某些类用户权限:
    u,g,o,a
    chmod 用户类别=MODE file,...

    修改某类用户的某位或某些位权限:
    u,g,o,a
    chmod 用户类别+|-MODE file,...

    特殊权限(suid、sgid、sticky)

    一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的用户具有的权限. 而setuid, setgid 可以来改变这种设置。

    setuid: 使文件在执行阶段具有文件所有者的权限。

    setgid: 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。

    sticky bit: 该位可以理解为防删除位。一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件。

    换种理解方法如下:

    SUID:运行某程序时,相应进程的属主是程序文件本身的属主,而不是启动者。
    SGID:运行某程序时,相应进程的属组是程序文件本身的属组,而不是启动者。
    Sticky:在一个公共目录,每个都可以创建文件,删除,而其它人不能。

    操作:
    chmod u+s file — 为file加上setuid标志. (setuid 只对文件有效)
    如果file本身有执行权限,则s显示小写,否则大写。

    chmod g+s file — 为file目录加上setgid标志 (setgid 只对目录有效)
    如果file本身有执行权限,则s显示小写,否则大写。

    chmod o+t file — 为file文件加上sticky标志 (sticky只对文件有效)
    如果file本身有执行权限,则t显示小写,否则大写。


    权限位:SUID(4),SGID(2),STICKY(1)
    000:

    001:只有sticky

    . . .:
    111:suid+sgid+sticky(6)

    chmod 3755 /tmp/test 此处是4位权限位。3就代表是sgid+sticky
    所以经常看到的umask总是四位
    umask 0022

    文件默认不能具有执行权限,如果算得的结果中有执行权限,则将其权限+1

    umask 022

    默认创建文件和目录的权限就是:
    文件:666-022
    目录:777-022

    facl (filesystem access control list)

    可以针对单一用户、单一文件或者目录来进行rwx的权限控制。如某一个文件,不让单一的某个用户访问。


    setfacl :设置某个文件/目录的ACL设置项目
      -m:设置后续acl参数 

      -x:删除
      -R:递归设置

    getfacl:
    取得某个文件/目录的ACL设置项目

    文件查找
    locate
    非实时,模糊匹配,查找是根据全系统文件数据进行的。
    速度快

    find
    实时,精确,支持众多查找标准
    遍历指定目录中的所有文件完成查找,速度慢。


    -name 'FILENAME':对文件名作精确匹配
    文件名通配:
    *:任意长度的任意字符
    ?
    []
    -iname 'FILENAME': 文件名匹配时不区分大小写
    -regex PATTERN:基于正则表达式进行文件名匹配

    -user USERNAME: 根据属主查找
    -group GROUPNAME: 根据属组查找

    -uid UID: 根据UID查找
    -gid GID: 根据GID查找

    -nouser:查找没有属主的文件
    -nogroup: 查找没有属组的文件

    -type
    f:普通文件
    d:目录
    c:特殊字符文件
    b:特殊块文件
    l:符号链接
    s:套接字

    -size [+|-]
    k
    M
    G

    精确匹配:
    -perm MODE
    -MODE:任意以为匹配即满足条件
    /MODE:文件权限能完全包含次MODE时才符合条件
    find / -perm /222

    组合条件
    -a:and
    -o:or
    -not:

    -mtime n 查找系统中最后n*24小时数据修改的文件
    -ctime n 查找系统中最后n*24小时状态被改变的文件
    -atime n 查找系统中最后n*24小时访问的文件


    -mmin n 查找系统中最后n分钟数据修改的文件
    -cmin n
    -amin n

    xargs与-exec

    xargs命令可以通过管道接受字符串,并将接收到的字符串通过空格分割成许多参数(默认情况下是通过空格分割) 然后将参数传递给其后面的命令,作为后面命令的命令行参数。

    # find  . -name test11.txt | xargs rm

    -exec rm {} ;:{} 表示命令的参数即为所找到的文件,以;表示comman命令的结束。是转义符。

    # find  . -name test222.txt -exec rm {} ; 对每个匹配的文件执行一个单独的rm操作

    登录信息命令

      w,who,last,lastb,lastlog

    终端:
    pty #:物理终端
    tty #:虚拟终端
    ttys #:串行终端
    pts #:伪终端

    w:显示已经登录的用户以及他们在做什么
    who:显示已经登录的用户
    last:显示 /var/log/wtmp文件用户登录历史及系统启动历史
      -n #:显示最近#次的历史

    lastb:显示/var/log/btmp文件,显示用户错误的登录尝试
      -n #:显示最近#次的历史
    lastlog:显示每一个用户最近一次的成功登录信息
      -u USERNAME:显示特定用户最近的登录信息

    basename:
    $0:执行脚本时的脚本路径及名称

     

    少年不识愁滋味,爱上层楼,爱上层楼。
  • 相关阅读:
    Zookeeper实现配置中心
    Springboot
    分布式事务框架
    Spring 事件Application Event
    了解“事务机制” 过程
    mysql : 行锁,表锁,共享锁,排他锁,悲观锁,乐观锁
    数据库隔离级别和实现原理
    aop用于日志
    exceptionHandler統一处理异常
    mysql 点总结
  • 原文地址:https://www.cnblogs.com/whych/p/9041276.html
Copyright © 2020-2023  润新知