命令别名(alias)

()alias
    显示当前shell进程所有可用的命令别名:
    ()alias NAME='VALUE'
        定义别名NAME,相当于执行命令value
    ()unlias
        撤销别名
    注意:
        在命令行中定义的别名,仅对当前shell进程有效:如果想永久有效,要定义再配置文件中
        仅对当前用户:~/.bashrc
        对所有用户有效:/etc/.bashrc
        别名持久化:
            vim .bashrc
                alias NAME='VALUE'
            source .bashrc

glob(globbing)

bash中用于实现文件"通配"
        通配符:*,?,[]
        ()*:
            任意长度的任意字符
                a*b:
                    aab,ab,a123b
        ()?:
            任意单个字符
                a?b
                    aab

        ()[]:
            匹配指定范围内的任意单个字符
                [a-z]:不区分字符大小写
                [-]:
                [A-Z]:代表大写字母
        ()^:
            匹配指定范围之外的任意字符
                [^-]
        专用字符集合:
            [:alnum:]:任意数字或字母
            [:alpha:]:任意大小写字母
            [:digit:]:任意数字,相当于0-
            [:lower:]:任意小写字母
            [:punct:]:表示标点符号
            [:space:]:匹配空格字符
            [:upper:]:任意大写字母
            [:xdigit:]
            [:blank:]
            [:cntrl:]
            [:print:]
            [:graph:]

练习

.显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字的文件或者目录;
.显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或者目录
.显示/etc目录下,以非字母开头,后面跟了一个字母及其他任意长度任意字符的文件或者目录
.复制/etc目录下,所有以m开头,以非数字结尾的文件或者目录至/tmp/fengzi目录中
.复制/etc目录下,所有以.d结尾的文件或者目录到/tmp/fengzi目录中
.复制/etc目录下,所有以.conf结尾,且以m,n,r,p开头的文件或者目录到/tmp/fengzi目录下

答案

.-]*[[:lower:]]
.-]*[^-]
.-][a-z]*
.-] /tmp/fenzi
.cp /etc/*.d /tmp/fengzi
6.cp /etc/{m,n,r,p}*.conf

bash的快捷键

ctrl+l:清屏,相当于clear命令
ctrl+a:跳转至命令开始处
ctrl+e:跳转至命令结尾
ctrl+c:取消命令的执行
ctrl+u:删除命令行首至光标所在处的所有内容
ctrl+k:删除光标所在处至命令行尾部的所有内容
    

bash的I/O重定向管道

程序:指令+数据
    读入数据:input
    输出数据:output
    打开的文件都有一个fd:file descriptor(文件描述符)
    标准输入:keyboard,
    标准输出:monitor,
    标准错误输出:monitor,
    I/O重定向:改变标准位置
    输出重定向:command > new_pos, command >> new_pos
        >:覆盖重定向,目标文件中的原有内容将会被清除;
        >>:追加重定向,新内容会追加到目标文件尾部;
    #set -C:禁止将内容覆盖已有文件的内容
        强制覆盖:>|
    #set +C:关闭禁止内容覆盖已有文件的内容
    >:覆盖重定向错误输出数据流;
    >>:追加重定向错误输出数据流;
    标准输出和错误输出鸽子定向不通的位置;
        command > /path/to/ > /path/to/error.out
    合并标准输出和错误输出为同一个数据流进行重定向:
        &>:覆盖重定向
        &>>:追加重定向
        command > /path/to/>&
    输入重定向
        tr命令:转换成删除字符
    HERE Documentation: <<
        #cat << EOF
        #cat > /path/to/somefile <<EOF
管道:
    COMMAND1 | COMMAND2 | COMMAND3 |...
    Note:最后一个命令会在当前shell进程的子shell进程中

文件处理工具

wc,cut,sort
wc命令:
    -l:行数
    -w:单词数
    -c:字节数
cut命令
    -d:以...分割
    -f:显示第几个字段

        ,
        -
        混合使用:-,
    --output-delimiter=STRING
        例如:
             --output-delimiter='|' /etc/passwd

sout命令:
    -f:忽略字符大小写
    -r:逆序
    -t delimiter: 字段分隔符
    -k:以指定字段标准排序   -n:按照数字排序

linux用户和组的相关配置文件

/etc/password:用户及其属性信息
    name:password:UID:GID:GECOS:directory:shell
    用户名:密码:UID:GID:GECOS:主目录:默认shell
/etc/group:组及其属性信息
    group_name:password:GID:user_list
    组名:组密码:GID:以当前组为附加组的用户
/etc/shadow:用户密码及相关属性
    用户名:加密了的密码/etc/gshadow:组密码及相关属性

用户创建

useradd [option] LOGIN
    -u UID:[UID_MIN,UID_MAX],定义再/etc/login.defs
    -g GID:指明用户基本组,可为组名,也可以GID
    -c COMMENT:用户的注释信息
    -d /PATH/TO/HOME_DIR:以指定的路径为家目录
    -s SHELL:致命用的默认shell程序,可用列表在/etc/shells文件中
    -G GID:为用户指明附加组,可以有多个用逗号分隔开,组必须事先存在   -D:修改默认shell。例子:useradd -D -s /bin/tcsh

练习

.创建用户fengzi,附加组为distro和linux,默认shell为/bin/csh,注释信息为"Gentoo distribution"

组创建:groupadd

groupadd [OPTION]....group_name
    -g:GID:指明GID号
    -r:创建系统组
        Centos6:ID<
        Centos7:ID<

查看用户相关的id信息:id

id [OPTION].....[USER]
    -u:UID
    -g:GID
    -G:GROUP
    -n:Name

切换用户或以其他用户身份执行命令:su

su [OPTIONS] [-] [user [args....]]
    su UserName:非登陆式切换,即不会读取目标用户的配置文件
    su - UserName:登录式切换:会读取目标用户的配置文件,完全切换

    Note:root su至其他用户无需密码,非root用户切换时需要密码

用户修改属性usermod

usermod [OPTION] login
    -u UID:新UID
    -g GID:新基本组
    -G GROUP1...GROUP2..:新附加组,原来的附加组将会被覆盖,若保留原有,则要同时使用-a选项表示append
    -s SHELL:新的默认shell
    -c 'COMMMENT':新的注释信息
    -d HOME:新的家目录:原有的家目录不会同时移动至新的家目录:若要移动,要同时使用-m选项

给用户添加密码

passwd [OPTIONS] UserName:修改指定用户的密码,仅root用户权限
passwd:修改自己的密码
    常用选项:
        -l:锁定指定用户
        -u:解锁指定用户

        -n mindays:指定最短使用期限
        -x maxdays:最大使用期限
        -w warndays:提前多少天开始警告

删除用户

userdel [options] login
    -r:连点家目录一起删除

组属性修改

groupmod [options] group
    -n group_name:新名字
    -g GID:新的GID

权限管理

文件的权限主要针对三类对象进行定义:
    owner:属主,u
    group: 属组,g
    other: 其他,o
每个文件针对每类访问者都定义了三种权限:
    r:readable
    w:writeable
    x:excutable
    文件:
        r:可以用文件查看类工具查看内容
        w:可以修改内容
        x:可以把文件提取到内核启动为一个进程
    目录:
        r:可以使用ls查看此目录中文件列表
        w:可以在此目录中创建文件也可以删除
        x:可以使用ls -l查看此目录中文件列表,可以cd进入此目录

    chmod命令:
        修改文件或者目录的权限
    chown命令:
        用法:
            owner
            owner:group
            :group
    Note:命令中的:可以用.替换
        -R:递归

bash基础特性2的更多相关文章

  1. linux文件系统及bash基础特性

    linux文件系统 一.根文件系统 linux被识别的第一个被称为根之间关联的文件系统叫做根文件系统(rootfs),其他分区要想被读到,需要挂载到根目录的某个挂载点(根的子目录)上.根文件系统至关重 ...

  2. Bash 基础特性

    命令别名  alias 显示当前shell中定义的所有别名  alias 别名='原始命令'  unalias 别名 取消定义的别名在命令前加\使用命令本身,而不是别名(或者使用绝对路径执行命令使用命 ...

  3. Linux bash基础特性二

    shell脚本的组成部分 shebang 各种命令组合 编程变量种类 本地变量: 仅仅在当前的shell生效 环境变量: 在当前和子shell生效 局部变量: shell进程某代码片段 位置变量: $ ...

  4. Linux bash基础特性一

    命令别名 alias cdnet=”cd /etc/sysconfig/network-scripts” 针对用户的别名: “~/.bashrc” 针对系统的别名:”/etc/bashrc” 重读配置 ...

  5. bash基础特性3(shell编程)

    Linux上文本处理三剑客: grep:文本过滤工具 sed:stream editor,文本编辑工具 awk:文本报告生成器 grep -v:显示不能够被pattern匹配到的行 -i:忽略字符大小 ...

  6. bash基础特性1

    shell俗称壳(用来区别于内核),是指“提供使用者使用界面”的软件,就是一个命令行解释器. BASH是SHELL的一种,是大多数LINUX发行版默认的SHELL,除BASH SHELL外还有C SH ...

  7. linux bash基础特性

    使用history命令,取得命令历史,当bash进程结束后,会把命令历史存放到文件中,下次开机还能看到命令历史. 定制history:通过设置环境变量,来定制history 环境变量$HISTSIZE ...

  8. linux bash基本特性

    一.bash 基础特性 (1)命令历史的功能 history: 环境变量 HISTSIZE:命令历史记录的条数 HISTFILE: ~/.bash_history 每个用户都有自己独立的命令历史文件 ...

  9. cmd 与 bash 基础命令入门

    身为一个程序员会用命令行来进行一些简单的操作,不是显得很装逼嘛!?嘿嘿~ ヾ(>∀<) cmd 与 bash 基础命令入门       简介       CMD 基础命令          ...

随机推荐

  1. docker容器composer 部署 laravel框架

    首先yum install docker     安装docker service docker start   启动docker docker pull  docker.io/skiychan/ng ...

  2. Java往指定地址接口发送内容方法

    package com.upload.tool; import java.io.BufferedReader;import java.io.InputStreamReader;import java. ...

  3. synchronized 同步函数的竞争关系验证

    synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码 ...

  4. tiny4412--linux驱动学习(2)

    在ubuntu下编写验证字符设备驱动 1,准备工作 uname -r  查看电脑版本信息 apt-get  install  linux-source  安装相应版本的linux内核 2,编写驱动程序 ...

  5. tiny4412 --Uboot移植(5) DDR3内存

    开发环境:win10 64位 + VMware12 + Ubuntu14.04 32位 工具链:linaro提供的gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-g ...

  6. RDMA RC UC UD

    RC:面向连接的可靠服务 UC:面向连接的不可靠服务 UD:面向数据报的不可靠服务 RD:面向非连接(类似UDP)的可靠服务 面向连接 vs 面向数据报 相同点:两者的通信均包括双方QP对的参与 不同 ...

  7. debian9使用国内源安装docker以及一些使用方法

    debian9使用国内源安装docker以及一些使用方法   首先, 我的环境是debian, 容器是centos debian 扔源 # deb-src [arch=amd64] https://m ...

  8. Chapter_4_JAVA作业

    一.类的封装,继承与多态 1.课前预习 1.1 举列现实生活中的封装,以及简述在程序中什么是属性的封装? 1.1.1 将东西捆绑在一起,如集成芯片:高压电线等等 1.1.2 封装就是将属性私有化,提供 ...

  9. day 1:计算机发展史和组成部分

    本节内容: 1,计算机的发展史 2,计算机的组成 1,计算机的发展史 1946年2月14日,由美国军方定制的世界上第一台电子计算机“电子数字积分计算机”(ENIAC Electronic Numeri ...

  10. jquery倒计时按钮常用于验证码倒计时

    <!doctype html><html><head> <meta charset="utf-8"> <title>jq ...