zoukankan      html  css  js  c++  java
  • ubuntu,day 2 ,退出当前用户,创建用户,查找,su,sudo,管道符,grep,alias,mount,tar解压

    本节内容:

      1,文件权限的控制,chmod,chown

      2,用户的增删和所属组,useradd,userdel

      3,用户组的增删,groupadd,groupdel

      4,su,sudo的介绍

      5,别名的使用,alias

      6,管道符|,重定向

      7,comtab,计划任务

      8,locat,find查找的使用

      9,df,显示所有空间的使用情况

      10,mount硬盘的挂载和卸载

      11,tar解压

      12,grep正则表达

    1,文件权限,chmod,chown

    r:可读------4

    w:可写-----2

    x:可执行---1,普通文件可以直接通过./来执行

    -:代表没有权限

    chmod o+w filename

    chmod g+w filename

    chmod u+w filename

    chmod u=rwx filename

    #  其中:
    #  u 代表所有者(user)
    #  g 代表所有者所在的组群(group)
    #  o 代表其他人,但不是u和g (other)
    #  a 代表全部的人,也就是包括u,g和o
     

     2,useradd添加用户,usermod改变用户的信息

    # -c 备注 加上备注。并会将此备注文字加在/etc/passwd中的第5项字段中         
    #  -d 用户主文件夹。指定用户登录所进入的目录,并赋予用户对该目录的的完全控制权        
    #  -e 有效期限。指定帐号的有效期限。格式为YYYY-MM-DD,将存储在/etc/shadow         
    #  -f 缓冲天数。限定密码过期后多少天,将该用户帐号停用       
    #  -g 主要组。设置用户所属的主要组  www.cit.cn           
    #  -G 次要组。设置用户所属的次要组,可设置多组         
    # -M 强制不创建用户主文件夹         
    #  -m 强制建立用户主文件夹,并将/etc/skel/当中的文件复制到用户的根目录下         
    #  -p 密码。输入该帐号的密码         
    #  -s shell。用户登录所使用的shell         
    #  -u uid。指定帐号的标志符user id,简称uid
    
    useradd user1 # 添加用户 user1
    useradd  -d /home/userTT user2 
    sudo mkdir user1 # 在/home目录下新建用户文件目录
    sudo chown user1:user1 user1 # 改变目录的所有者和组的权限
    cp /etc/skel/.bash* /home/user1  # 将目录下.bash开始的文件复制到家目录
    source /home/user1/.bash* # 可以使家目录下的环境变量生效

      userdel删除用户

    userdel  user1  #
    userdel -r user1
    
    #  -r, --remove   用户主目录中的文件将随用户主目录和用户邮箱一起删除。在其它文件系统中的文件必须手动搜索并删除。
    #    -f, --force    此选项强制删除用户账户,甚至用户仍然在登录状态。它也强制删除用户的主目录和邮箱,即使其它用户也使用同一个主目录或邮箱不属于指定的用户
    

      usermod用法:

    chmod o+w  file1
    chmod g-w file1
    chmod go-w file1
    chmod u=rwx file1
    
    chmod 755  file1  # -rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
    chmod 644  #  -rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
    
    #  其中:
    #  u 代表所有者(user)
    #  g 代表所有者所在的组群(group)
    #  o 代表其他人,但不是u和g (other)
    #  a 代表全部的人,也就是包括u,g和o

    3,groupadd,groupdel,chown

    groupadd group  # 添加用户组
    groupadd -u 1000 group1 #指定gid的用户组
    

      groupdel  # 删除组

    groupdel group  # 删除组
    

      chown  # 改变文件的所属组所有者

    chown root:root  file
    chown root   file  
    chown :root   file
    

    4,su与 sudo

    su  : 切换用户,没有参数时,默认切换为root用户;

    su   # 切换为root
    
    ## 推荐
    su -   # 切换为root 并加载root的环境配置
    su -  user1 # 切换为user1 并加载user1的环境配置
    

      sudo让当前用户暂时以管理员的身份root来执行命令。

    sudo的配置文件:/etc/sudoers;可以通过修改它配置sudo命令

    5,alias : 给命令起别名

    alias  ll='ls -l'  
    alias la='ls -a'
    

     关于各个文件的作用域,在网上找到了以下说明:
    (1) /etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。
    (2) /etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取(即每次新开一个终端,都会执行bashrc)。
    (3) ~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。默认情况下,设置一些环境变量,执行用户的.bashrc文件。
    (4) ~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
    (5) ~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。(6) ~/.bash_profile: 也可能是 .profile  是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。 

    6,管道符,重定向,标准输出

    管道符 就是 |  :他的作用是 将前一个命令的结果 交给后一个命令使用

    >ww.txt  # 文件ww.txt会变为空的

    >   重定向,则覆盖文件内容,没有该文件就创建(需要有创建的权限)

    >> 重定向,则向文件追加内容,没有该文件就创建(需要有创建的权限)

    1>  标准正确输出,则覆盖文件内容,没有该文件就创建(需要有创建的权限)

    1>> 标准正确输出,则向文件追加内容,没有该文件就创建(需要有创建的权限)

    2> 标准错误输出,则覆盖文件内容,没有该文件就创建(需要有创建的权限)

    2>> 标准错误输出,则向文件追加内容,没有该文件就创建(需要有创建的权限)

    &> 标准正确输出和标准错误输出,文件中保存了写入的东西,报错信息也会出现在文件中,没有该文件就创建(需要有创建的权限)

     7,crontab,计划任务

    crontab -e # 修改计划配置* * * * * command to be executed

    -  -   -  -  -  -
    |  |   |  |   |   |
    |  |   |  |   |   --- 预执行的命令
    |  |   |  |   ----- 表示星期0~7(其中星期天可以用0或7表示)
    |  |   |   ------- 表示月份1~12
    |  |    --------- 表示日期1~31
    |   ----------- 表示小时1~23(0表示0点)
    ------------- 表示分钟1~59 每分钟用*或者 */1表示
    ---------- 表示小时1~23(0表示0点)

    1,crontab -e 进行编辑操作,选择是用vim,下次不需要选择,自动默认vim,在最下边加入:
    */1**** /bin/bash /tmp/cron.sh
    # /bin/bash 指定运行的路径
    # cron.sh是自定义的一个文件内容下方
    date >> /tmp/date.txt # 这样是防止配置文件中字符超过60个会执行错误
    2,crontab -l 显示当前客户的crontab内容

    8,locate,find查询命令

    locate /etc/sh  # 所有包含/etc/sh路径的文件
    locate -i ~/a # 所有主目录下所有以开头的文件,忽略大小写
    因为是本地更新,据说是每天凌晨的4点进行更新
    可以使用sudo updatedb更新数据库来实现更新

    find

    使用方法: 
    find   path   -option   [-print ]   [ -exec  -ok  command ]  {} ;
    
    ######  根据文件名查找 #######
    find / -name filename 再根目录里面搜索文件名为filename的文件
    find /home -name "*.txt"
    find /home -iname "*.txt"  # 忽略大小写
    
    
    ######  根据文件类型查找 #######
    find /home/wuzhenhu/Desktop/ . -type 类型参数,有点的时候是可以查找到隐藏文件,没有点的时候不能查到隐藏文件
    f 普通文件
    l 符号连接 
    d 目录 
    c 字符设备 
    b 块设备 
    s 套接字 
    p Fifo
    
    
    ######  根据目录深度查找 #######
    find . -maxdepth 3 -type f  # 最大深度为3
    find . -mindepth 2 -type f  # 最小深度为2
    
    -o:逻辑或,两个条件只要满足一个即可。
    -a:逻辑与,两个条件必须同时满足。
    
    find  /etc -size +2M -a -size -10M
    +代表大于,-代表小于 ######### 对查找结果进行处理 ############# -exec shell命令 {} ; -ok shell命令 {} ; 其中-exec就是代表要执行shell命令,后面加的是shell指令,再后面的“{}”表示的是要对前面查询到的结果进行查询,最后的“;”表示命令结束。需要注意的是“{}”和“”之间是要有空格的。
    而-ok选项与-exec的唯一区别就是它在执行shell命令的时候会事先进行询问,-print选项是将结果显示在标准输入上 find /home -name “*.txt” -ok ls -l {} ; find /home -name “*.txt” -ok rm {} ; 

    9,df显示所有空间的使用

    df -Th  # 
    h以能显示的最大单位显示
    T:显示文件系统类型
    

    10,mount/mount3挂载和卸载设备

    mount # 查询挂在设备及属性
    
    # 挂载光盘
    mount /dev/sr0 /mnt  
    
    # 重新挂载设备
    mount -o remount,rw /mnt  # 重新挂载设备并设置rw属性
    
    # 挂载iso文件
    mount  a.iso -o loop /mnt 
    umount /mnt # 卸载设备 umount -l /mnt # 强制卸载

     11,tar解压,压缩命令

    -c :建立一个压缩文件的参数指令(create 的意思);
    -x :解开一个压缩文件的参数指令!
    -t :查看 tarfile 里面的文件!
    特别注意  c/x/t 同时仅能存在一个,因为不可能同时压缩与解压缩。
    -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
    -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
    -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
    -f :使用档名,请留意,在 f 之后要立即接文件名
    -p :使用原文件的原来属性(属性不会依据使用者而变)
    -P :可以使用绝对路径来压缩!
    -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
    
    
    # 将当前目录下所有.txt文件打包并压缩归档到文件this.tar.gz
    tar czvf this.tar.gz ./*.txt 
    # 将当前目录下的this.tar.gz中的文件解压到当前目录
    tar xzvf this.tar.gz ./
    
    
    # 将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
    tar -cvf /tmp/etc.tar /etc  # 仅打包,不压缩!
    tar -zcvf /tmp/etc.tar.gz /etc  # 打包后,以 gzip 压缩
    tar -jcvf /tmp/etc.tar.bz2 /etc  # 打包后,以 bzip2 压缩
    
    # 解压文件
    tar -xf  a.tar.gz   # 
    tar -xf  a.tar.gz  -C /tmp  # 指定解包路径
    

    12,grep匹配正则表达式

    正则表达式:

    初识正则表达式
    ^ : 匹配开头
    $ : 匹配结尾
    [] : 范围匹配
    [a-z] : 匹配有小写字母
    [A-Z] : 匹配所有大写字母
    [0-9] : 匹配所有数字
    . : 匹配单个字符
    * : 表示*前面的内容出现0次或多次
    + : 表示+前面的内容出现1次或多次
    ? : 表示?前面的内容出现0次或1次

    cat a.txt |grep hat$ # 匹配以hat结尾的行
    cat a.txt |grep ^hat # 匹配以hat开头的行
    cat a.txt | grep -E "[0-9]*"  # 匹配有0到多个数字的行
    cat a.txt | grep -E "[0-9]+"  # 匹配有至少有1个数字的行
    cat a.txt | grep -E "[0-9]?"  # 匹配有0到1个数字的行
  • 相关阅读:
    读取exec返回值
    List
    面向对象设计原则
    CascadingDropDown省市县无刷新联动
    读写配置文件app.config
    变向实现动态水晶报表
    JS验证是否日期格式
    C#中调用API(转)
    (转自老赵Jeffrey Zhao)The status code returned from the server was: 12031”。(转)
    利用Javascript的“函数重载”实现自定义Alert样式
  • 原文地址:https://www.cnblogs.com/wuzhenhu/p/8085732.html
Copyright © 2011-2022 走看看