用户使用环境:

        通过改变环境变量的值来实现

            变量: 有名称的内存空间

            变量赋值: 

                格式: 变量名=值

                        ''

                        ""

                        ``  引用一个命令的执行结果

                        $() #命令引用


 PS1:
   \u: 当前用户名
   \h: 主机名
   \H: FQDN,完整格式的主机名
   \W: 当前工作目录的基名
   \$: 提示符

   Linux的文件系统:

        linux严格区分字符大小写

        层次化结构表示文件路径

            倒置的树

        

        一个目录: 就是一个名称空间

        相对路径: 从非顶级,缺省路径时从当前路径开始

        绝对路径: 从顶级名称空间起始标记的路径

            rootfs

    登录系统:

            工作目录: working directory,当前目录,current directory

            家目录: 


    命令的语法格式:

            COMMAND [OPTIONS] [ARGUMENTS]

       1). 命令:

            命令

            应用程序

            脚本文件

        

            命令的类型:

                内建命令: 由shell程序自带的命令;查找方式:shell内建

                外部命令: 本身是一个独立的可执行程序文件,命令名即为程序文件名;查找方式:通过shell的

                                内置的环境变量PATH中指定的路径进行查找

                如何区分: type COMMAND

       2).选项:调整命令的作用方式 

                短选项: -char 如: -l,-d,-h

                            多个选项间要使用空白分隔: -l -d -h

                            合并使用: -ldh

                长选项: --word,如: --long, --directory, --human-readable;长选项一般不能合并使用

                注意: 有些选项需要带参数;如 mkfs -t ext4 /dev/sdb1 /sdb1

       3).参数: 命令的作用对象


cd: change directory

cd
cd ~
cd ~username
cd -
cd /etc/yum.repos.d/
两个独特的路径:
.: 当前目录
..: 上一级目录

pwd: print working directory


命令历史: bash的特性之一

history
HISTSIZE(环境变量):保存的条数: 
HISTFILE(环境变量):用户退出时的持久保存位置,默认保存在~/.bash_history文件中
HISTFILESIZE(环境变量):这个文件可保存的最大数目
HISTCONTROL(环境变量): 
                        ignoredups: 忽略重复的命令 
                        ignorespace: 忽略以空白字符打开的命令
                        ignoreboth: 以上两者同时生效
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
[root@apenglinux-001 ~]# history N  #查看最近的N条命令历史
[root@apenglinux-001 ~]# history -c  #清空命令历史列表
[root@apenglinux-001 ~]# history -d offset #删除指定的偏移处的命令条目
[root@apenglinux-001 ~]# history -a  [/path/to/some_history_file] #将当前会话中的命令历史写入指定文件
[root@apenglinux-001 ~]# history -w  #将当前历史写入到历史文件中,并追加到历史列表中

bash调用命令历史列表中的命令:

!#: 执行命令历史中的第#条命令
!!: 执行上一条命令
!string: 执行命令历史中最近一次以string开头的命令
!$: 调用上一条命令的最后一个参数
ESC+.: 调用上一条命令的最后一个参数
Tab: 根据内建或外部命令的查找方式查找以用户指定的字符串开头的命令,如果用户指定的开头字符串能唯一标识某命令
      ,则Tab键可补全此命令,否则,则两次Tab键可显示所有以指定字串开头的命令

bash特性之文件名通配

* :任意长度的任意字符
? : 匹配任意单字符 
[] : 匹配指定范围内的任意单个字符 如:[a-z]不区分大小写的 [a-z0-9]
[^]: 匹配指定范围以外的任意单字符
[:space:]:所有空白字符
[:punct:]:所有标点符号
[:lower:]:所有小写字符
[:upper:]:所有大写字符
[:digit:]:所有的数字
[:alnum:]:所有数字和字母
[:alpha:]:所有字母

如何获取命令帮助:

内置命令: help COMMAND
外部命令:
    1.COMMAND --help
    2.manual
            手册: 有章节之分(1-9)
            [root@apenglinux-001 ~]# man ifconfig

image.png

[root@apenglinux-001 ~]# find /usr/share/man/man8 -name "ifconfig*"
/usr/share/man/man8/ifconfig.8.gz
[root@apenglinux-001 ~]# whatis passwd  #一个命令passwd在哪些章节上有帮助文档
sslpasswd (1ssl)     - compute password hashes
passwd (1)           - update user's authentication tokens
[root@apenglinux-001 ~]# man 5 shadow #在man5目录下查找shadow帮助文档
手册的段落:
    NAME: 命令名称
    DESCRIPTION: 命令功能的详细描述
    OPTIONS: 所有选项
    SYNOPSIS: 使用格式
    FILES: 与当前命令相关的配置文件
    SEE ALSO: 可参考的其它手册
帮助中的格式字串:
    []: 可省略
    <>: 不可省略
    |: 二选一或多选一
    ...: 同类内容可以出现多个
man的使用机制:
    翻屏: 
        空格:向后翻一屏
        b:向文件首部翻一屏
        j:向下翻一行
        k:向上翻一行
        g:移动到首屏
        G:移动到末屏
        ctrl+d:向文件尾部翻半屏
        ctrl+u:向文件首部翻半屏
    查找字串:
        /keyword: 从文件首部向尾部进行搜索
        ?keyword: 从文件尾部向首部进行搜索
            n: 显示找到的下一个
            N:显示找到的上一个
    退出:q
注意: man能够为除命令之外的配置文件、系统调用、库调用等提供帮助手册,它们分别位于不同的章节中。

Linux的国际化:

internationalization=>i18n

shutdown,reboot,halt,poweroff命令

[root@apenglinux-001 ~]# shutdown -h now
[root@apenglinux-001 ~]# shutdown -h +5
[root@apenglinux-001 ~]# shutdown -c
[root@apenglinux-001 ~]# shutdown -r +5
[root@apenglinux-001 ~]# reboot
[root@apenglinux-001 ~]# halt
[root@apenglinux-001 ~]# poweroff

hash命令

[root@apenglinux-001 ~]# hash
[root@apenglinux-001 ~]# hash -d whatis
[root@apenglinux-001 ~]# hash -r

dirname命令

[root@apenglinux-001 ~]# dirname /etc/sysconfig/network-scripts/ifcfg-ens33
/etc/sysconfig/network-scripts

basename命令

[root@apenglinux-001 ~]# basename /etc/sysconfig/network-scripts/ifcfg-ens33 
ifcfg-ens33

echo命令

echo [-neE] [arg...]
[root@apenglinux-001 ~]# echo -n 'helloworld'
helloworld[root@apenglinux-001 ~]#
[root@apenglinux-001 ~]# echo -e "hello\nworld"
hello
world
[root@apenglinux-001 ~]# echo -e 'hello\tworld'
hello	world
[root@apenglinux-001 ~]# echo -e "hello\vworld"
hello
     world
[root@apenglinux-001 ~]# echo -e "hello\bworld"
hellworld
echo -e 
        \033[
              单个数字:控制字体
              3#:#是一个数字,3表示控制其前景色
              4#:#是一个数字,4表示控制其背景色
              以上组合使用,彼此间使用分号分隔
              m 是固定格式
              \033[0m 控制符的功能到此结束
[root@apenglinux-001 ~]# echo -e '\033[31;42mHelloWorld\033[0m'
[root@apenglinux-001 ~]# PS1='\033[1;31m[\u@\h \W]\$ \033[0m'

命令参数补全

#yum install -y bash-completion 
#logout
重新登入就可生效了