命令别名(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. Myeclipse加载php插件

    下载PHPEclipse-1.2.3.200910091456PRD-bin.zip 解压缩后.发现内容包含:两个目录features和plugins,一个xml文件site.xml 全部扔进myec ...

  2. jmeter连接oracle数据库配置

    1导入加载ojdbc.jar包(2种方法) 1)直接拷贝目录 2.

  3. CentOS7+CDH5.14.0安装CDH错误排查:HBase服务出现 该运行状况测试不良,因为 Service Monitor 未找到活动 Master

    错误:HBase服务出现 该运行状况测试不良,因为 Service Monitor 未找到活动 Master 如果重启服务之后无法排除该问题,请执行如下操作(CM换成自己的版本号): rm -f /o ...

  4. CentOS查询端口占用和清除端口占用的程序

    1.查询端口号占用,根据端口查看进程信息 [root@server2 ~]# lsof -i: COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME httpd ...

  5. Vue 获取元素样式 元素高度

    看到这个问题我第一时间想的竟然是JS 不知道你是怎么想的 不过昨天有一个小哥哥 问我一个Vue的 哈哈哈 get了 我当时问他为什么不用JS获取 他说 这个性能更高 那我们来看看这个高性能的获取元素高 ...

  6. oracle的部分增删查改

    1. 创建表空间 create tablespace (demo)表名 logging datafile( 表空间存放的位置)  ‘D:\app\Administrator\oradata\orcl\ ...

  7. 7行代码,彻底告别python第三方包import导入问题!

    最近有不少小伙伴咨询关于pyton第三方包导入的问题,今天我们就来聊聊第三方包导入那些事. 随着对python学习的渐入臻境,越来越多的小伙伴们开始导入自己所需的第三方包,实现各种各样的功能.但是,他 ...

  8. PHP 使用数字作为SESSION的Key,一刷新页面session丢失,Session消失,无法存储

    PHP 使用数字作为SESSION的Key,一刷新页面session丢失,Session消失,无法存储 项目中有用到md5截取做session key值的,有些md5截取出来的部分是纯数字的,导致部分 ...

  9. PostgreSQL 数据库备份

    --CMD管理员进入 --进入目录: C:\Program Files\PostgreSQL\9.6\bin --备份: pg_dump -U postgres MP > C:\mptest.b ...

  10. 人力资源项目中 add_account.php

    add_account.php ( 文件浏览 ) <?phpinclude('db_con.php');   if(isset($_POST['save'])) {    $employee_i ...