天天看点

linux笔记

shell

命令行解释器,是用户与系统沟通时的媒介

linux采用bash为其默认shell

系统可以使用的shell记录在/etc/shells 中

GNU计划一个组件

支持命令行输入。操作历史查询,快捷键。使用量

预定义变量:

给定一个变量;

还可以使用echo ${a}:但两者有区别:

用a=$a123时他会认为将a123里内容给a,因为a123里没有内容,所以输出结果为空。用a=${a}123 输出结果为正确

删除一个变量:

      unset a

变量:set能查看所有变量

      本地变量

      环境变量:用在全部的工作环境中 env只能查看环境变量

系统通过预定义环境变量来定义shell

         预先定义好的变量。

常用预定义变量:

            HOME:当前用户的主目录

            PATH:当前用户的可执行文件搜索路径

            LANG:程序应该使用的默认语言

列出所有支持的语言:locale -a

            PS1:行提示符

\d 代表星期

\H 代表完整主机名

\h 获取主机名第一个名字

\t 显示:时 分 秒 (24小时)

\T 显示时间(12小时)

\A 只能显示:时 分(24小时)

\u 当前用户账户名称

\v bash版本

\w 完整工作目录名称(root家目录)

\W basename列出当前工作目录的最后一个目录名

\# root用户

\$ 普通用户

更改:

export 变量名 将自定变量转换为环境变量

history

在bash中输入history指令可以查询用户的过往操作

内存中记录的过往指令数根据环境变量中HISTSIZE而定

history表中存储在内存中,用户logout时会记录入用户主目录下的.bash_history文件中,下次login时载入

.bash_history中的指令数根据环境变量中的HISTFILESIZE而定

强制执行将内存中指令存以.bash_history不用注销时才写入

调用过往指令

       使用!来调用过往指令:

  !!重复执行上一条指令

  !a:重复执行上一条指令

  !number:重复执行上一条在history表中记录号码为number的指令

  !-number:重复执行前第number条指令 

可以用ctrl+r来在history表中查询某条过往指令

alias

在shell下键入alias可以查询当前alias列表

用户可以alias来为一条命令取一个简单的别名

用户也可以用unalias来一条别名记录

alias记录在shell中总是先行

手工创建:

取消别名:unalias

命令行表达式:

       命令行输出---------“”

           将一串字符当成一个字符串来对待,如果字符串中包含特 殊含义的字符,则转义

$ \ ! `不以被双引号""禁掉其他都可以

       命令行输出---------‘’

           将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,不转义

禁止所有特殊符号。包括$ ` ! \

        执行引用符--------''

           引用命令执行的结果

首先执行pwd 然后将执行结果传给ls -al执行

命令行表达式二:

                数学运算-------------$[]

          在括号内的表达式会被数学计算

先将中括号数学运算得出结果赋于临时变量,然后再将临时变量显示

                逸脱符---------------\

          用于取消命令行中字符的特殊含义

加入逸脱符系统认为空格是普通符号

          用于表示一行未结束

命令行表达式三:

            命令行结束符----------;

       用于在一行内分隔两个独立命令,表示一行已结束,作用相当于回车键

pwd ; ls -l

            子shell激活-----------()

       在小括号内的命令行表示激活一个子shell后在子shell中运行

 HOME会激活一个子shell在子shell命令中运行,也不会传给另外一个shell

   逻辑运算符

  shell命令行支持在同一行的两条命令中插入&&(逻辑与)与||(逻辑或)

     &&:当前一条指令执行成功再执行后一条指令

     ||:当前一条指令执行失败时再执行后一条指令

登录shell

         默认情况下,在shell下改变变量,umask alias只在此次登录中有效,一旦logout后再login则设定恢复初始值

         一个通过登录而得到的shell,一般是用户的初始shell

         在登录shell下激活的shell采用登录shell的环境设定

         登录shell从配置文件中读取其环境设定

定制登录shell

        bash 在用户登录时从四个文件中读取环境设定:

     全局设置文件:设定系统环境变量(也可以设定自定义变量)

                  /etc/profile     针对系统所有用户

                  /etc/bashrc      可自定变量或全名,路径

     用户设置文件:

                ~/.bashrc          功能与/etc/bashrc一样    区别:只针对特定用户

               ~/.bash_profile     功能与/etc/profile一样   区别:只针对特定用户

其 他shell设定文件

     ~/.bash_logout:用户logout的时候自动执行

     ~/.bash_history:用户在login时自动读取其内容并加载到内存history记录中,logout时将内存history记录写入

    ./etc/profile.d/*.sh:在/etc/profile中被执行,其中的环境设定,也会被全局引用

启动读取文件顺序:

1. /etc/profile

2. /etc/profile.d/*.sh

3. ~/.bash-profile

4. ~/.bashrc

5. /etc/bashrc

su 开启一个非登录shell    su - 开启一个新的shell

非登录shell过程:

 ~/.bashrc

/etc/bashrc

/etc/profile.d/*.sh

常用快捷键:

    Ctrl+d输入已结束。相当于shell下一个exit

    Ctrl+c:键盘中断请求

    Ctrl+s &ctrl +q :暂停/恢复屏幕输出

    ctrl+l:清屏相当于clear

   Tab:自动补完命令行与文件名

       tab键双击可以列出所有可能匹配的选择

继续阅读