• linux 命令笔记


    1.文件目录

    第一位表示文件类型。d是目录文件,l是链接文件,-是普通文件,p是管道。
    
    后面的分三个三个来看,即 rwx 、r-x 、r-x。   read  write excute  //文件夹只有x权限 才可以进去
    
    第一个:  root :r 是可读,w 是可写,x 是可执行,rwx 意思是可读可写可执行。
    
    第二个:  一般用户(用户组):r-x 是可读可执行不可写。
    
    第三个:  其他用户,r-x 是可读可执行不可写。
    

      

    2.基本命令   ls list

    ls  [-选项] [参数]
        -a    // all  显示隐藏文件
        -l     // long 长显示 显示更多信息
        -d    //  detail 显示文件本身信息
        -h    // human  以人类角度 友好显示, 比如文件大小  会以多少Kb或者多少兆的形式显示
    
    
    
    mkdir  make  directories
    mkdir [-p] 目录名
      -p   // partents 递归创建目录
      -m   // mode=模式 创建指定权限的目录
    
    
    
    rmdir  remove empty directory 删除目录
    rmdir [-r] 目录
      -r  //允许删除非空目录
    
    
    cd  change directory
    cd [目录]
      ..   //回到上一级目录
      
    
    
    cp  copy   
    cp [-rp] 源文件或目录 目标目录
      -r  //复制目录
      -p  // properties 保留文件属性连同档案的属性一起复制过去,而非使用预设属性
      -a :相当于 -pdr 的意思(参数pdr分别为:保留权限,复制软链接本身,递归复制
      -d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;
      -f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;
      -i :若目的档(destination)已经存在时,在覆盖时会先询问是否真的动作!
      -l :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
      -r :递归持续复制,用于目录的复制行为;
      -s :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案;
      -u :若 destination 比 source 旧才更新 destination。
    支持同时复制多个文件  cp /source1 /source2  /target
    
    
    mv 剪切 改名
    mv 源文件或目录  目标目录
    rm  remove  目录处理命令
    rm [-rf] 文件或目录
      -r  //删除目录
      -f  //强制删除

      

    3.文件处理命令

    touch 创建空文件 , 不是文件夹
    touch 文件名
    
    
    cat 显示文件内容
    cat [-n] 文件名
      -n  //显示行号
    
    
    tac 显示文件内容 (反向列示)
    tac 文件名
    more 分页显示文件内容
    more 文件名
      (空格)或 f  //翻页
      (ENTER)  // 换行
      q 或 Q  //quite 退出


    less 分页显示文件内容(可上下翻)
    less 文件名
      (page down) // 下翻(一页)
      (page up)  // 上翻(一页)
      (上箭头)    //上翻(一行) 

    head 显示文件内容前几行 默认显示前十行
    head [
    -n Number] 文件名
     -n Number  //显示前多少行 -n 20 显示前二十行   
      

    tail 显示文件后面几行 默认显示前十行
    tail [-nf] 文件名
      -n  //指定行数
      -f  //动态显示文件末尾内容


    ln 生成链接文件 ## 软连接类似windows快捷方式 ##硬链接 可以 源文件同步更新
    ln [-s] 源文件 目标文件
      -s  //soft 创建软链接 没有 -s 则生成硬链接


    压缩和解压

    gzip 压缩文件
    gzip 文件 ## 只能压缩文件,并且不保留源文件
    gunzip 解压文件
    gunzip 压缩文件 同 gzip -d

    tar 打包目录
    tar [-cvfz] 压缩后的文件名 目录
      -c  //打包
      -x  //解压
      -v  //显示详细信息
      -f  //指定文件名称
      -z  //-zc 压缩 -zx 解压缩
    ## 组合 -zcvf 压缩, -zxvf 解压, -cjf 生成bz2文件和bzip2命令一样压缩 , -xjf和bunzip2一样 解压


    zip [-r] 压缩后的文件名 文件或目录
      -r  //压缩目录

    unzip 解压缩
    unzip 文件或目录

    bzip2 压缩文件
    bzip2 [-k] 文件
      -k  //保留源文件, gzip不保留源文件

    bunzip2 解压文件
    bunzip2 压缩文件

     4.权限管理

    chmod 改名文件或目录的权限
    chmod [{ugoa}{+-=}{rwx}] 文件或目录
    chmod [mode=421] 文件或目录  
      -R 文件或目录 //递归修改  
    示例:chmod u+x aa.sh 给当前所有者赋予文件可执行权限 u+x,g-r 可以使用逗号 多个授权
       {ugoa} u:所有者 g:所有组 o:其他用户 a:所有用户
       {+-=}  +:增加权限 -:减少权限 =:重新赋予权限 
       {rwx}  r:可读 w:可写 x:可执行 
    权限同时也可以使用数字表示
    4-->r 2-->w 1-->x
    示例: chmod 777 aa.sh 表示所有者、所有组和其他者 都赋予 读写执行的权限, 7 为 4+2+1 ,6为4+2,5为4+1 4为4 3为2+1 ...
          

    chown 改变文件的所有者 change file ownership
    chown 用户 文件或目录
    ##

    ##umask 0022 第一个 0 特殊权限

    5.文件搜索

    find 文件搜索
    find [搜索范围] [匹配条件]
      -name 按名称搜索
      -iname 按名称查找 // 不区分大小写
      -size 文件大小 // +:大于 , -:小于 , 没有符号 是等于
      -user [用户] // 按所有者查找
      -group [组] // 按所属组查找
      -amin  //访问时间 access ,什么时间被访问过 -amin -5 5分钟被访问过
      -cmin  //文件属性 change 如 权限 ,所属者 所属组
      -mmin  //文件内容 modify
      -type  // f :文件 d:目录 i:软连接文件
      -inum  //i节点 ,每个文件 都有一个i节点
    ## 连接选项
      -a  //and 两个条件同时满足
      -o  //or 满足其中一个条件
    ## 查找结果执行命令
      -exec 命令 {};
      -ok 命令 {} ; //会多了一个确认,好比js中的confirm
      #这两个命令都是对查找结果执行想要的命令,例如 ls -l 查看详细, 其中 {} 表示查找的结果,表示转义符,最后使用分号结尾;
    示例 find /ect -size +2048 -a -4096 查找文件 在 1M~2M之间的文件
    示例:find /etc -size +512 ## 1M = 1024k, 1k = 2数据块(linux中存储文件最小单位)
    示例:find /ect -name init  // 在etc下面搜索名称为init文件(精准搜索)
    ## * :匹配任意字符 如 *init*
    ## ? : 匹配单个人任意字符 如 init???


    locate 在文件资料库中查找文件(速度快)
    locate [-i] 文件名
      -i  //不区分大小写
    ## 可能资料库中并不存在要查找的文件, 需要使用 updatedb 命令 更新资料库
    ## 文件在 /tmp 中的文件 查不到,不在locate的收录范围内

    grep 在文件中搜寻字符串匹配的行并输出
    grep [-iv] 指定字符串 文件
      -i  //不区分大小写
      -v  //排除指定字符串



    which 搜索命令所在目录及别名信息
    which 命令

    whereis 搜索命令 并且显示帮助文档所在位置
    whereis 命令

    6.帮助命令

     

    man manual获得帮助信息
    man [n] 命令
      n : 1:命令的帮助 5:配置文件的帮助
    ## 同一个命令的结果 可能是命令 也可能是配置文件 , 默认是1, man 命令 有多个结果时默认为命令的帮助


    whatis 得到命令的简短介绍
    whatis 命令


    命令 --help 列出常见的命令选项
    示例: touch --help  //列出touch 的参数

    info 获取帮助信息 和 man 类似 ,只是显示方式不太一样

    help 查看命令的帮助信息
    help 命令
    ## 有些命令,是内置命令 获取不到帮助信息, 这个时候就要使用help 命令

    7.用户管理命令

    useradd 添加新用户
    useradd 用户名
    passwd 设置用户密码
    passwd 用户名 ##会提示输入用户密码


    who 查看当前登录用户
    who ##没有参数
    ## 显示结果 登录用户名 登录终端(tty本地终端 pts 远程终端) 登录时间 IP地址
    获取更为详细的信息 使用 w 命令

    8.网络命令

    write 给用户发信息 CTRL+D 保存结束(所有用户都可以使用)
    write 用户名 [回车] [message] [CTRL+D]
    ##一定是在线用户
      all  //发送广播信息 ,给所有人发信息

    ping 测试网络连通性
    ping [-c] IP地址
      -c  //指定发送次数
    示例: ping -c 5 192.168.1.119 测试连接5次

    ifconfig 查看和设置网卡信息 interface configure
    ifconfig 网卡名称 IP地址
    ##ifconfig eth0 192.168.1.120 注:这个是临时的,每次重启需要重新设置

    mail 查看发送电子邮件
    mail [用户名]
    ##查看自己的邮件 输入序列号即可
      d 序列号 // 删除邮件
      h   //返回邮件列表
      q  //退出

    last 列出目前与过去登入系统的用户信息
    ## 无条件参数
    lastlog 列出用户最后一次登录,包括未登录的用户
    lastlog -u 用户ID  //指定用户 //命令 id 查出当前用户id信息


    traceroute 显示数据包到主机间的路径
    示例: traceroute www.baidu.com ,显示连接到baidu 所有路径

    netstat 显示网络相关信息
    netstat [选项]
      -t  //TCP协议
      -u  //UDP协议
      -l  //监听
      -r  //路由
      -n  // 显示IP地址和端口号
    示例:
      netstat -tlun 查看本机监听的端口
      netstat -an  查看本机所有的网络连接
      netstat -rn  查看本机的路由表

    setup 网络设置 ## 可能不存在此命令

    service network restart 修改网络需要重启网络服务

    mount 挂载命令 ##习惯使用/mnt 挂载点
    mount [- 文件系统] 设备文件名 挂载点
    示例 mount -t iso9960 /dev/sr0 /mnt/chrom/ 把设备文件名 挂到挂载点

    umount 卸载
    umount 设备文件名

    9.关机重启命令

    shutdown [-chr] 时间
      -c: 取消前一个关机命令
      -h: 关机
      -r: 重启
    示例:shutdown -h now

    halt和 poweroff 和init 0 是关机命令

    reboot 和 init 6 重启   

    init 系统运行级别
      0:关机
      1:单用户(启动最核心的程序)
      2:不完全多用户, 不含NFS服务(网络文件服务)
      3:完全多用户
      4:未分配
      5:图形界面
      6:重启

    runlevel 查询运行级别


    logout 用户退出


     10.文本编辑器

    vim 编辑文本
    vim 文件名
      : //命令
        set nu  //设置行号
        set nonu //取消行号
        n    //到第n行
        wq    //保存退出
        n,nd  //删除指定范围的行 例如 :10,15d ##删除10 -15 行
        ic  //不分大小写 (搜索时)
        noic  //区分大小写
        r 文件名 //导入另一个文件的内容到此文件中
        r !命令 //可以把一个命令 执行的结果导入文件中
        ab a b //替换 输入a 在按回车或空格 会显示为 b
      ##插入命令
      i //光标前插入
      I //光标所在行 行首插入
      a //光标后插入
      A //光标所在行 行尾插入
      o //光标下入去新行
      O //光标上插入新行
      ##换行命令
      gg //到第一行
      G  //到最后一行
      nG //到第n行 ,例如:5G跳到第5行
      $  //移至行尾
      0  //移至行首
      ##删除命令
      x   //删除光标所在处的一个字符
      X   //删除光标所在处的前一个字符
      nx  //删除光标所在处的n给字符
      dd  //删除光标所在行,ndd 删除n行
      dg  //删除光标所在行到文件末尾内容
      D   //输出光标所在处到行尾内容
      ## 剪切
      yy  //复制当前行
      nyy  //复制n行
      dd  //删除 也表示剪切
      p  //粘贴到当前光标行下
      P  //粘贴到当前光标行上
      #替换
      r  //替换一个字符
      R  //当前光标开始替换
      ##撤回
      u  //撤回执行操作  
      /   //搜索功能 /aa ##按回车开始搜索aa字符

    ##################
    可以在/home/username/.vimrc 添加快捷设置
    例如:
      ab email  xxxx@qq.com
      map ^P I#<ESC> // 光标所在行首添加#号 , map定义 ^P使用P字符 调用命令 I# ,I:光标宜动到所在行的最前面,最后ESC退出
      

    11.软件包管理

     

    RPM包的命名规则 (未安装使用包全名,已安装使用包名)
    RMP包的依赖性

    rpm -ivh 安装包全名
       -Uvh 包全名
    -e 包名
       -q 包名
       -ql 包名 //查询包的文件在哪
       -qf 系统文件名 //file 文件属于哪个包
       -qR 包名 //requires 包的依赖性 需要哪些依赖包
      -i  //install
      -v  //安装信息
      -h  //安装过程
      -U  //upgrade 升级
      -e  //erase 卸载
      -q  //query 查询
      -qa  //查询所有安装包
      -qi  //information 查询安装包的信息
      -qip //package 查询未安装包的信息(指定包全名)

    ## 包校验 是否被更改
    rpm -V 已安装的包名(verify)

    rpm2cpio 将rpm包转换为pio格式的命令
    cpio  用户出昂见软件档案文件和从档案文件中提取文件
    cpio [-idv] 文件或设备
      i:copy-in模式, 还原
      d:还原是自动新建目录
      -v:显示还原过程
    示例:rpm2cpioo 包全名 | cpio -idv .文件绝对路径
    yum  在线安装 

    yum list 查询所有可用软件包列表
    yum serach 关键字(包名)
    yum -y install 包名
      install 安装
      -y  自动回答yes #表示自动安装,不需要询问
    yum -y update 包名  //升级  慎重使用
    yum -y remove 包名 //卸载

    ###软件组管理命令
    ## 列出所有可用的软件组列表
    yum grouplist
    yum groupinstall 软件组名
    yum groupremove 软件组名

    ## 源码包 和 RPM 包 的区别



    #RPM包默认安装路径
    /etc/   配置文件安装目录
    /usr/bin/  可执行的命令安装目录
    /usr/lib/  程序所使用的函数库保存位置
    /usr/share/doc/  基本的软件使用手册保存位置
    /usr/share/man  帮助文件保存位置

    12 用户 和 用户组 的管理

    /etc/passwd
    /ect/shadow
    /etc/group
    /etc/gshadow
    /home/用户名
    /var/spool/mail/用户名


    useradd  添加用户
    useradd [-udcgGs] 用户名
      -u UID  手工指定用户的UID号
      -d 家目录
      -c 用户说明
      -g 组名  //初始化组
      -G 组名  //附加组
      -s Shell //指定用户登录的shell
    passwd 用户设置密码

    passwd [-ul] 用户
      -u  //用户解锁
      -l  //用户锁定

    echo "变量" | passwd --stdin 用户名
    ## 使用 变量 作为 当前用户的密码
    ## echo "123" | passwd --stdin username


    usermod 修改用户信息 modify
    usermod [-ucGLU] 用户名
      -u UUID  //修改UUID
      -c 用户说明 //修改用户的说明信息
      -G 组名  //修改用户附加组
      -L    //临时锁定用户
      -U    //解锁

    userdel [-r] 用户名
      -r 删除用户的同时删除家目录


    change 修改用户密码状态

    change [-ldmMWIE] 用户名
      -l //list 列出用户的详细密码状态
      -d 日期 //修改密码最后一次更改日期(shadow3字段)
      -m 天数 //两次密码修改时间(4字段)
      -M 天数 //密码有效期(5字段)
      -W 天数 //密码过期前警告天数(6字段)
      -I 天数 //密码或期后宽限天数(7字段)
      -E 日期 //账号失效时间(8字段)


    su - 用户 //切换用户 #su 用户 普通用户切换为root用户不会改变环境变量,需要加 -
    su - root -c "命令" //不切换用户 ,执行命令 su - root -c "useradd user1" ## 添加用户user1


    ###用户组管理
    groupadd [-g] 组名
      -g GID  //自定组GID

    groupmod [-gn] 组名  
      -g GID  //修改组ID
      -n 新组名 //修改组名

    groupdel 组名 //删除组

    gpasswd [-ad] 用户名 组 //当前用户加入组 或者 删除组
      -a //add 加入组
      -d //delete 删除组

    13 ACL权限管理(Access Control List 访问控制列表,一个针对文件/目录的访问控制列表)

    df -h 查看分区 
    ## 查询指定分区详细文件系统信息的命令
    dumpe2fs -h /dev/sda3
      -h 仅仅显示超级快中信息, 而不是显示磁盘块组的详细信息

    ## 临时开启分区ACL权限
    mount -o remount,acl
    ## 重新挂载根分区,并挂载加入acl权限
    ## 永久开启分区ACL权限
    vi /etc/fstab
    mount -0 remount / ## 修改后重新挂载重新 启动

    ## 查看ACL命令
    getfacl 文件名  //查看acl权限

    ## 设定ACL权限的命令
    setfacle [选项] 文件名
      -m u: 用户名:rx //设定ACL权限 , 给用户 设定 rx权限
      -x  //删除指定的ACL权限
      -b  //删除所有的ACL权限
    -d  //设定默认ACL权限
      -k  //删除默认ACL权限
      -R  //递归设定ACL权限
    ## setfacl -m u:用户名:权限 -R 文件名

    ### 最大有效权限mask
    如果我给用户赋予了ACL权限,是需要和mask的权限 “相与” 才能得到用户的真正权限 ,所谓相与就是 mask有的权限,用户也要有才能真正的拥有权限
    ##设置最大(mask)权限
    setfacl -m m:rx 文件名 //设置mask权限

    ## 默认ACL权限
    setfacl -m d:u:用户名:权限 文件名

    ## 文件的特殊权限
     setUID //U : user
    ** 只有可以执行的二进制程序才能设定SUID权限
    ** 命令执行者要对该程序用有 x 权限
    ** 命令执行者在执行该程序时获得该程序文件属主的身份(若用户拥有SUID权限,在执行命令时 就会拥有root的权限)
    ** SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

    setGID G:Group //设置用户 获得 所属组权限


    Sticky BIT // 粘着位权限 值针对目录有效 (除了root可以删除所有文件, 普通用户就算用户w权限,也只能删除自己建立的文件 )
    chmod 1775 文件 // 1 赋予粘着位

    ### 文件系统属性chattr权限

    chattr [+-=] [选项] 文件或目录名
      +  //增加权限
      -  //删除权限
      =  //等于某权限
        ##选项
          i  //如果是文件,不允许对文件进行删除、改名, 添加和修改数据;
             //如果是目录 只能修改目录下文件的数据, 不允许建立和删除文件
          a  //如果是文件,只能在文件中增加数据,不能删除和修改
             //如说是目录, 只允许在目录中建立和修改文件, 不允许删除

    lsattr 选项 文件名
      -a   //显示所有文件和目录
      -d  //如目标是是目录,仅列出目录本身的属性,而不是子文件

    14 文件系统管理

    分区类型 (主分区和扩展分区 总共最多为4个)
     主分区:最多只能分4个
     扩展分区:只能一个,也算主分区的一种,但不能存储数据和格式化,必须再划分为逻辑分区才能使用
     逻辑分区:是在扩展分区中划分的,如果是IDE硬盘,linux最多支持59个逻辑分区,如果是SCSI硬盘,Linux最多支持11个逻辑分区

    文件系统
      ext2 最大支持16TB
      ext3 最大支持16TB,带日志功能
      ext4 最大1EB,单个文件最大16TB
    ##越高级的系统越先进

    df 查看分区 会计算文件占用空间和命令或程序占用的空间(如文件已删除但程序没有释放空间)
      -h //人性化显示 、、
      -a //显示隐藏分区
      
    du 查看目录大小,面向文件,只会计算文件或目录占用的空间
      -h //人性化
      -s //统计占总量 statistic
    ##例如 du -sh /

    文件系统修复命令  一般不需要手动修复
    fsck [选项] 分区设备文件名
      -a  //不用显示用户提示,自动修复文件系统
      -y  //自动修复 和 -a的作用一致,不过有些文件系统只支持 -y

    显示磁盘状态命令
    dumpe2fs 分区设备文件名
    ## 例如 dumpe2fs /dev/sda1

    查询与自动挂载    //挂载点 就是一个目录
      mount [-l] //显示已挂载的设备 -l会显示卷标名称

      mount -a //依据配置文件/etc/fstab的内容,自动挂载


    挂载命令的格式
    mount [-t 文件系统] [-L 卷标名] [-o 特殊选项] 设备文件名 挂载点
      -t 文件系统 :加入文件系统类型来指定挂载大的类型,可以ext3,ext4.iso9660等文件系统 //挂载是硬盘、分区 默认 ext3/ext4 ,如果是光驱 默认文件系统是iso9660
      -L 卷标名 : 挂载指定卷标的分区,而不是安装设备文件名挂载 //卷标名就是别名
      -o 特殊选项 :可以指定挂载的额外选项,如remount exec 等

    挂载光盘 与 U盘 示例:
        
    1.挂载光盘
      1 mkdir /mnt/chrom/ //建立挂载点(盘符或目录)只要是创建一个空目录就行
      2 把光盘放入光驱
      3 mount -t iso9660 /dev/cdrom /mnt/cdrom/ //挂载光盘,把设备文件和挂载点连接起来
    ## -t 可以省略 : mount /dev/cdrom /mnt/cdrom/  

    2.卸载命令
      unmount 设备文件名或挂载点
    ## unmount /mnt/cdrom/

    3.挂载U盘 ## 必须使用linux本身,鼠标点进linux里,然后再插入U盘
      1 fdisk -l //查看U盘设备文件名
      2 mount -t vfat /dev/sdb1 /mnt/usb/
      ## LINUX 默认不支持NTFS文件系统的,可以使用NTFS-3G插件,支持NTFS


    fdisk 分区过程
    ###可以使用 vmware 添加硬盘
    fdisk l //查看一下新添加的硬盘
    fdisk 设备文件名 回车
        d  //删除一个分区
        n  //新建分区
        l  //显示已知的文件系统类型
        p  //显示分区列表
        m  //显示帮助信息
        w  //保存
        q  //退出
      
    例如: fdisk /dev/sdb  //分区还不存在 只能写sdb

    ### 重新读取分区表信息
       partprobe ## 这样新增的分区 就可以不用重启就能使用
      
    格式化分区
       mkfs -t ext4 /dev/sdb1 ##扩展分区不能格式化
    挂载分区
       mount /dev/sdb1 /mnt/usb
    ## fdisk 重启要重新挂载


    分区自动挂载 与fstab文件修复

    /etc/fstab文件
    文件内容:
      /dev/sdb1 /disk1 ext4 defualts 1 2
      第一字段:分区设备文件名或UUID(不用担心分区顺序) dumpe2fs 查看UUID
      第二字段:挂载点
      第三字段:文件系统名称
      第四字段:挂载参数
      第五字段:指定分区是否被dump备份, 0代表不备份,1代表每天备份,2代表不定期备份
      第六字段:指定分区是否被fsck检测,0代表不检测,其他数字代表检测的优先级,1优先于2

    #自动挂载
      mount -a
    ### 若/etc/fstab没有修改权限 给分区 重新挂载设置权限
      mount -o remount,rw / //给读写权限
  • 相关阅读:
    Android布局尺寸思考
    正则表达式五分钟快速复习
    git gitignore文件失效处理
    华为手机Edittext光标(cursor)颜色修改
    AndroidStudio-OSX 常用快捷键整理
    OS X(EI Capitan)常用快捷键整理
    通过Foxit和坚果云实现iPad和PC的pdf同步阅读(修改,笔记)
    《程序员必读的职业规划书》职业生涯规划部分书摘及感想
    以神经网络使用为例的Matlab和Android混合编程
    写出优美代码的两个方式:一步到位VS迭代优化
  • 原文地址:https://www.cnblogs.com/bignew/p/12483217.html
Copyright © 2020-2023  润新知