Linux使用概述(七)

发布于 2021-02-11  565 次阅读


《Linux相关》目录

shell广义上分为两类:

  GUI:包括GNOME  KDE XFACE等

  CLI:sh csh ksh bash等(Linux发行版本中,bash是默认使用的shell程序)

shell启动:当用户登录完成后,系统会自动启动shell程序

  进程:应用程序的副本;使用PID区分(在系统中,一个进程只认为自己存在)

  root  student用户

shell:父shell程序和子shell程序(父子shell之间设置环境互相独立)


# cat /etc/shells //查看当前系统所支持的shell程序

# yum -y install ksh csh    //安装ksh,csh的shell程序

# exit  //退出当前shell程序  

注:shell是一个程序

bash的特性:  

1.命令历史:Linux会自动记录系统过去执行的命令,并保存在内存的缓冲区中

在每个用户的家目录下,有个隐藏文件.bash_history保存命令历史

# history //查看linux的历史

    -c:清空命令历史

    -d:删除某一条命令历史

    -w:将命令历史保存到某个文件中

变量:PATH命令路径变量

HISTSIZE:命令历史大小变量

     $ echo $HISTSIZE    //查看HISTSIZE变量的值,默认的命令历史是1000条

命令历史使用技巧:

    !n:执行命令历史中的第n条命令(n是命令历史编号)

    !-n:执行命令历史中的倒数第n条命令(n是命令历史编号)

    !word:执行命令历史中最近一次以word开始的命令(word必须能够唯一的标识用户想执行的命令)

    !!:执行上一条命令

    !$:引用一个命令的最后一次参数

    ESC键(按完松开) 再按.键:引用一个命令的最后一次参数

2.管道,IO重定向

     计算机体系结构:

       控制器:CPU,读取系统指令

       运算器:CPU,运算

       存储器:RAM(内部存储器:易失性存储器)

       输入设备(Input):输入数据,如键盘,硬盘等

       输出设备(Output):显示指令执行结果,如显示器,音响,硬盘等

IO重定向:把默认输入输出数据来源,重新定向到其他的文件或设备

       输出重定向:

         >:覆盖输出重定向

         >>:追加输出重定向

         2>:错误覆盖输出重定向

         2>>:错误追加输出重定向

         &>:混合覆盖输出重定向

         &>>:混合追加输出重定向

       输入重定向:

         <:输入重定向

管道:连接多条命令,把前一条命令的输出结果作为后一条命令的输入条件(组合小程序,实现大功能)

例:command1 | command2 | commad3 ....

tr:实现字符转换,不修改源文件,语法:tr [OPTION]... SET1 [SET2]

    tee:         

3.命令别名(alias定义的别名只在当前shell生效)

    # alias COMM_ALIAS=COMMAND    //只执行alias命令,列出系统中所有的命令别名

       注意:执行alias命令时,COMMAND最好用''(引号)引起来

    # unalias COMM_ALIAS   //取消命令别名  

4.命令行编辑

    ctrl+a:光标快速跳转到命令行的行首

    ctrl+e:光标快速跳转到命令行的行尾

    ctrl+u:快速删除光标位置到命令行行首的字符

    ctrl+k:快速删除光标位置到命令行行尾的字符

    ctrl+l:清屏(命令clear:清屏)  

5.命令行展开

    5.1:命令补齐:在PATH变量搜索命令并补齐(PATH变量必须正常,输入要补齐命令的字符数一定能够唯一标识这条命令;tab键补齐)

        按tab键两次,列出以某个字符开始的所有的命令

    # echo $PATH   //查看PATH变量的值

    路径和文件补齐:在系统路径中查找

    命令行补齐功能不能补齐选项

    5.2:命令替换(经常用到shell脚本编程中) $(command)或者 `command`(两边是反撇号)

    命令替换就是把命令中的子命令替换成子命令执行结果的过程

     # echo "字符串"

     ""(双引号):弱引用(可是实现变量的替换,把变量名替换为变量值)

     ``(反撇号):命令引用

     ''(单引号):强引用(不能完成变量替换)  

6.命令行通配:globbing

     *:匹配任意长度的任意字符

     ?:匹配任意单个字符

     []:匹配指定范围内的任意单个字符

       如:[ab] [a-m] [a-z] [A-Z] [a-zA-Z] [0-9] [a-zA-Z0-9]

     [^]:匹配指定范围外的任意单个字符

       如:[^a-z] [^0-9]

     [:space:]:表示空格

     [:punct:]:表示所有标点符号

     [:lower:]:表示所有小写字母

     [:upper:]:表示所有大写字母

     [:alpha:]:表示所有字母(包括大小写)

     [:digit:]:表示所有数字

     [:alnum:]:表示所有数字和大小写字母  

7.变量  

8.编程


人生就像赛跑,不在乎你是否第一个到达终点,而在乎你是否跑完全程。