linux基本功能

bash的基本功能

命令别名 alias

alias 别名=‘原命令’ alias vi='vim'

这里将cp复制的命令取名为copyok,可以看到命令是生效的,这个命令是临时生效的,开机启动就会消失,除非将它写入到配置文件中,让别名永久生效 vi  /root/.bahsrc 等 配置文件。但是,请注意,虽然有别名,但是原命令依然生效

alias  查询命令

    这里可以查询到,刚才给cp复制命令取得别名,同时从下面的结果显示也可以看出来,为什么平时输入命令,没有带选项参数,但是却可以实现和参数一样的功能,也是通过这种方式实现的

删除别名 unalias 别名

    删除刚才cp命令的别名,可以看到这个命令已经删除了

 

 

 

命令执行顺序

    输入一个命令时,它是怎么调用系统的脚本的呢,如果多个脚本都对命令做了不同的定义,它会不会发生冲突呢,Linux是通过给命令做了一个执行顺序,当输入一个命令是,它会按照以下的执行方式去执行命令

  1. 第一顺位执行用绝对路劲和相对路径,如 ls 命令,它是有一个绝对的路径的

  1. 第二顺位使用别名的命令,如果没有路径找到,它会查看这个命令是不是别名,如刚才的copyok命令
  2. 第三顺位使用bash内部命令  (cd 是bash命令,所以whereis 没有找到文件)

4.第四顺位$PATH环境变量

 

bash常用快捷键

ctrl+U 删除光标之前的命令

ctrl+R 搜索历史命令

ctrl+c 退出当前区域控

ctrl+z 暂停,但是程序还在后台运行

Bash输入输出重定向

例子 /dev/stdin/键盘输入       

/dev/stdout 显示器标准输出    

/dev/sdterr显示器的错误输出

此链接是对stdin stdout sdterr的介绍https://blog.csdn.net/weixin_34415923/article/details/90687333

 

0代表标准输入  1代表标准输出   2代表标准错误输出重定向

标准输出重定向 命令>文件(覆盖方式输出到文件),这里的意思是将命令的结果输出到文件中,如下

 

命令>>文件(追加方式输出到文件),这里并不会进行覆盖,会追加文件中而已

 

 

标准错误输出重定向  错误命令2 >文件(覆盖)     错误命令2>>文件(追加) 

如果命令的实行不确定是正确的输出还是错误输出,那么就要用一下的命令

使用命令: 命令&>文件,以覆盖的方式把正确和错误的信息输出到文件中

 

命令&>>文件中   追加方式输出到文件中

 

但是上面的命令有个不好的地方,错误和正确的输出都放到同一个文件中,对于数据的管理很不方便,那么就要用一下的命令来做区分

命令>>文件1  2>>文件2 正确则输出到文件1中,错误输出到文件2中

统计文件的信息

wc [选项] [文件名]    -c统计字节数   -w统计单词数  -l 统计行数

 

统计行数,word,字节数(bytes)

多命令执行与管道符

;分号  命令1;命令2  命令之间没有逻辑关系 

其中dd命令是一个智能拷贝文件的命令,可指定复制文件的大小 ,指定的转换等功能,具体的解释看链接:https://www.cnblogs.com/linuxde/p/8719253.html

 

&&   命令1 &&命令2   命令之间是与的关系  命令1成功了,才会执行命令2

 

 

||    命令1||命令2    命令之间是或之间的关系   命令1和命令2只能执行其中一个

用法判断命令是否能够执行 命令&& echo yes ||echo no 判断文件是否能够正确执行

 

管道符 |

命令1 |命令2   

命令1的正确输出当作命令2的操作对象   例子 ll -l |grep etc

    grep  [选项]  搜索内容      其中 --color=auto显示颜色

用户变量

计算机内存单元,存放的值可以改变,变量可以是一个文件,也可以是一个数字,保存暂时信息

变量的设置规则

       字母、下划线、数字组成,但是数字不能走为变量的开头,默认类型是字符串型

       变量用等号连接,但是等号左右两边不能有空格,如果变量的值如果有空格,需要用单引号或双引号包括

变量的分类

用户自定义变量

name=123

name='$name'456     输出就是123456

    从这里可以看出,看出$符号输出变量的值,单引号里面的内容会忽略特殊字符的含义

,双引号则不会忽略特殊字符。这里的变量设置只是临时,开机则没有生效。

命令set查看变量

变量删除 :unset 变量名

注意:这里的变量不会变为环境变量,只是临时的。

 

 

 

环境变量

    用户自定变量旨在当前的shell中生效,环境变量会对当前的shell和这个shell的所有子shell当中生效。如果把环境set变量写入到相应的配置文件中,则对所有的shell都生效

    设置环境变量   pstree 查看shell的层次

    可以看到使用的shell是bash

可以看到环境变量PATH,在当前shell和其子shell都生效

export 变量名=变量值

自定义变量如何变为环境变量

name=123

export name

系统常见的环境变量

    PATH 系统查找命令的路径

    变量叠加 PATH="$PATH":路径         

    PS1  定义系统提示符的变量,PS1是定义这里的,[root@localhost]#

    PS1 的解释如下https://blog.csdn.net/qq_34208467/article/details/81019467

位置参数变量

    $n  n为数字  $0代表命令本身  $!1$9代表第一个到第九个的参数,10个以上的参数需要用大括号包括  如${10}

    $*  这个变量命令行的参数,但是所有参数作为一个整体

    $@ 同上,但是所有参数当作一个个区分

    $#  统计命令中所有的参数,包括$0

    所有参数都会接收,但是会匹配

执行时,echo $0 会输出命令的本身 ./test.sh

下面就根据这个,做了一个加法计数器

执行

预定义变量   

    是Bash中已经定义好的变量,变量的作用是固定的

常见预定义变量:

    $0:保存当前程序或脚本的名称

    $*:保存传递给脚本或进程的所有参数

    $$:当前进程给脚本的PID号

    $!:后台运行的最后一个进程的PID号

    $?:用于返回上一条命令是否成功执行。如果成功执行,将返回数字0,否则返回非零数字(通常情况下都返回数字1)。

    $#:用于保存脚本的参数个数

虽然有报错,但是可以忽略不计

环境变量配置文件简介

    source命令 

        source 配置文件

       配置文件定义系统默认的环境变量 如 PATH  HISIZE PS1 

配置文件类型

/etc/profile  /etc/profile.d/*,sh    /etc/bashrc  针对所有用户生效

~/,bash_profile ~/.bashrc        只对当前用户生效

环境配置文件的作用

    系统的语言环境,加载文件的顺序基本是由环境变量定义的

    命令环境变量加载的顺序 /etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout

    环境变量是逐个文件加载出来的,越往后加载就可能覆盖前面的值,所有后面的环境变量优先级越来越高

    用户输入用户名密码,先读/etc/profile /etc/profile  和/etc/bashrc 定义了一些重复环境变量,但是并不会覆盖,因为他们定义的环境使用情况不一样

环境变量   其他配置文件和登录信息

注销生效的配置文件文件   ~/.bash_logout

历史文件配置文件 ~/.bash_history 历史的配置文件都保存在了这里。

 

shell登录信息

    本地终端欢迎信息:/etc/issue   针对本地,重启配置文件生效

    他各个参数的意义如下图所示

    其中\r等是参数,表示显示相关信息。定义如下:

    \d 插入本地时间的日期

    \l 插入当前的tty终端号

    \m 插入机器系统类型

    \n 插入主机名hostname

    \o 插入domain name

    \r 插入系统内核名称

    \t 插入系统时间

    \s 插入操作系统名称

    \u 插入当前已经登录的用户数量n,\U 插入“n users”字段

    \v 插入操作系统的版本

配置shell的登录界面

重新启动系统,配置文件生效,出现配置文件设置的信息

    远程终端欢迎信息 /etc/issue.net 但是上面的配置信息没有生效,ssh需要配置ssh的配置文件,远程终端的欢迎信息才鞥你生效

   

登录后欢迎信息,本地和远程都生效 /etc/motd

配置文件

重新登录调用了配置文件

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值