Linux shell基础知识

1.shell介绍与命令历史

什么是shell

  • shell 是一个命令解释器,提供用户和机器之间的交互
  • 支持特定语法,比如逻辑循环,判断
  • 每一个用户都可以有自己的特定shell
  • Centos7默认shell为bash
  • 还有zsh,ksh等

命令历史

  • history命令,可以查看以前输入过的所有命令,.bash_history 用来存放命令历史记录
  • history -c ,清空当前内存的命令历史,不过已经保存在文件的命令历史,不会删除
  • echo $HISTSIZE 用来查看可以存放的命令条数

HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S 给我们命令历史加上显示使用日期的时间,这里只是临时更改。

  • chattr +a ~/.bash_history 给我们的历史命令文件夹加上特殊权限这样别人就不能删除了,就算我们的变量设置的2000,就算到2000了系统也无法删除,永久保存

  • !!从新使用上一条命令,然后再次使用
  • !n使用命令历史中的第几条命令,然后再次使用

  • !world从后往前数找到最近以world开头的命令,然后再次使用

2.命令补全和别名

yum install -y bash-completion 安装参数补全软件

  • unalias 自定义之后的别名 取消别名的命令
  • vi .bashrc.bashrc 这个系统自带的文件

  • vi colorls.sh还有两个文件是在目录/etc/profile.d/里面,分别是colorls.sh和colorgrep.sh

3.通配符 输入输出重定向

  • *表示任意字符
  • ?表示一个任意的字符
  • ls [0-9].txt ,包含在方括号里的范围任选其一都会显示出来
  • ls {1,2}.txt , 包含在花括号里的任选其一

输入输出重定向

  • >将前面命令的输出输入到后面的文件里,而且是重写
  • >>将前面命令的输出输入到后面的文件里,它是追加内容,不会删除里面的内容
  • > 将这个命令的正常信息输出到一个文件里
  • 2> 将这个命令的错误信息输出到一个文件里
  • 可以一条命令分别指定正确和错误的信息输出到指定的文件
  • wc -l <1.txt 将文件的内容输入重定向到前面的命令里面去,只能输入到命令里

4.管道符与作业控制

  • | 把一个文件输出的内容传递给后面的一个命令
  • ctrl+z 可以暂停当前任务,其实他是放在后台运行了
  • fg 将后台运行任务调到前台来
  • jobs 查看后台运行的任务
  • bg 把任务调到后台去运行
  • &命令后面直接加&会将运行的命令直接丢到后台去运行
  • sleep 1000暂停1000秒

5.shell变量

  • env 获取变量信息,查看系统内置的变量
  • set 获取变量信息,不仅查看系统内置的变量,而且包含用户自定义的变量
  • 自定义变量 ,可以在set里找到

  • 变量名的规则:字母,数字下划线,首位不能是数字

  • 变量值有特殊符号的时候,要用单引号括起来(最好用单引号)

  • 变量的累加,用你双引号引起来

全局变量

  • w 查看当前有几个用户登录系统
  • echo $SSH_TTY 查看自己当前在哪个下

  • bash 打开另外一个bash,相当于打开一个新的终端
  • pstree 查看

  • 配置全局变量,只需要export一下,就行

  • 这个所谓全局变量是向下全局变量的,不会在上级shell生效
  • unset 用来取消变量

6.环境变量配置文件

  • 分为两个维度,分别是系统层次,用户层次

  • 系统层次

  • etc/profile 用户环境变量,交互,登录才执行

  • etc/bashrc 用户不用登录,执行shell就生效

  • 用户层次

  • ~/.bashrc

  • ~/.bash_profile

  • ~/.bash_history

  • ~/.bash_logout

  • 一般都是编辑用户下的配置文件

  • 想让自定义环境变量全局生效就写在/etc/profile文件里面

  • /bash_logout 用来编辑用户退出的时候,执行哪些命令
  • PA1变量是在 /etc/.bashrc里面定义的

7.bash_profile和bashrc区别

  • 【.bash_profile 与 .bashrc 的区别】

.bash_profile is executed for login shells, while .bashrc is executed for interactive non-login shells.

  • 【login shell 与 non-login shell 的区别】
  • 当你直接在机器login界面登陆、使用ssh登陆或者su切换用户登陆时,.bash_profile 会被调用来初始化shell环境
  • Note:.bash_profile文件默认调用.bashrc文件
  • .bash_profile中有如下内容
  • if [ -f ~/.bashrc ]; then
  •         . ~/.bashrc
  • fi 
  • 当你不登陆系统而使用ssh直接在远端执行命令,.bashrc 会被调用
  • 当你已经登陆系统后,每打开一个新的Terminal时,.bashrc 都会被再次调用

转载于:https://my.oschina.net/u/4000361/blog/2449539

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值