【Linux系列】【基础版】第三章 Shell基础知识
3. Shell基础知识3.1 Shell的由来
3.1.1 Bourne Agin Shell
3.1.2 其他的shell, 有 zsh, ksh等
3.2 查看有没有shell
3.2.1 yum list | grep zsh
3.2.2 ls /root/.bash_history
3.2.3 echo $HISTSIZE -> vi /etc/profile 修改HISTSIZE的值 -> source /etc/profile
3.2.4 history -c //清空命令历史(内存中的)
3.2.5 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
3.2.6 vi /etc/profile
3.2.7 chattr +a ~/.bash_history//只能被追加,不会被删除
3.2.8 !!//最后一条命令;!n// !words //
3.3 安装参数补全源
3.3.1 yum install -y bash-completion //安装参数补全源后需要重启电脑(reboot)才生效
3.3.2 systemctl restart network.service //重启网络服务
3.3.3 rpm -qa bash-completion
3.4 alias 配置文件
3.4.1 vi .bashre //alias的配置文件(一部分)
3.4.2 cd /etc/profile.d///alias其他的一部分配置文件
3.4.3 Tab键:
3.4.3.1 按一下匹配命令和参数
3.4.3.2 按两下显示匹配信息供选择
3.5 通配符
3.5.1 * 匹配所有字符 ls *.txt
3.5.2 ? 匹配一个字符 ls ?.txt
3.5.3 ls .txt
3.5.4 ls {1,2}.txt
3.5.5 重定向 cat 1.txt > 2.txt
3.5.6 追加重定向 cat 1.txt >> 2.txt
3.5.7 错误重定向 lsaaa 2> a.txt
3.5.8 追加错误重定向 lsaaa 2>> a.txt
3.5.9 wc -l < 1.txt //输入重定向,wc -l查看文本行数;左边需要是命令
3.5.10 ls .txt aaa.txt &> a.txt//&> 为正确错误重定向
3.5.11 ls .txt aaa.txt >1.txt 2>a.txt//将正确的和错误的区分开
3.6 管道符和作业控制
3.6.1 cat 1.txt | wc -l
3.6.2 cat 1.txt | grep 'aaa'
3.6.3 ctrl + z //暂停一个任务
3.6.4 df -h //查看磁盘使用量
3.6.5 fg //前台frontGround
3.6.5.1 fg IDNumber
3.6.6 jobs //查看后台或已停止的任务
3.6.7 bg //后台background
3.6.7.1 bg IDNumber
3.6.8 vmstate 1//动态的显示系统状态
3.6.9 sleep 100 //暂停100秒
3.6.9.1 sleep 100 & //把命令放到后台运行
3.6.9.2 ps aux| grep sleep //查看进程
3.7 shell变量
3.7.1 env //查看系统的环境变量
3.7.2 set 命令
3.7.2.1 set |grep 111//查找111
3.7.2.2 set 命令包含了很多变量,并且包含用户自定义的变量
3.7.2.3 a=111//自定义变量
3.7.2.4 set 用来显示本地变量,env 用来显示环境变量, export 用来显示和设置环境变量
3.7.3 export 全局变量
3.7.3.1 export aming=linux
3.7.3.2 echo $aming
3.7.3.3 bash//进入子bash
3.7.3.4 echo $aming
3.7.3.5 unset aming //取消环境变量
3.8 环境变量的配置文件
3.8.1 系统层次的
3.8.1.1 /etc/profile用户环境变量,交互,登录时才执行
3.8.1.2 /etc/bashrc用户不用登录,执行shell就失效
3.8.2 系统层次的
3.8.2.1 ~/.bashrc
3.8.2.2 ~/.bash_profile
3.8.2.3 ~/.bash_history
3.8.2.4 ~/.bash_logout
3.8.3 PS1变量
3.8.3.1 PS1='\[\033\u@\h\[\033:\[\033\w\[\033\$'
3.8.3.2 a='a$bc'
3.8.3.3 a=a"$b"c
3.8.3.4 . .bash_profile和source .bash_profile,此处.和source都是加载使生效的作用
3.8.3.5 [登录的用户@主机名-所在的目录(最后的层级)]
3.8.3.6 PS1='' //修改PS1
3.8.3.7 echo $PS1//打印PS1的值
3.8.4 登录的用户@主机名-所在的目录(最后的层级)
3.8.5 特殊字符
3.8.5.1 *//任意个任意字符
3.8.5.2 ? //任意一个字符
3.8.5.3 #//注释
3.8.5.4 \//脱义字符 e.g.c=\$a\$behco c
3.8.5.5 |//管道字符
3.9 cut 和 sort命令
3.9.1 cat /etc/passwd |head -2 |cut -d ":" -f 1-3//-d表示分割;-f表示段
3.9.2 cut -d//分隔符; -f//指定段号; -c//指定第几个字符
3.9.3 sort -n//以数字排序(字母认为是0); -r//反序; -t//分隔符 -kn1/-kn1,n2
3.10 wc ,uniq, split 和 tee 命令
3.10.1 wc -l //统计行数; wc -m//统计字符数; wc -w//统计词
3.10.2 cat -A 1.txt//输出行中假设为123$, 其中$代表换行符
3.10.3 uniq 去重(需要先排序) uniq -c//统计行数
3.10.3.1 sort 1.txt |uniq -c
3.10.4 split -b//按字节为单位进行切割 split -l//按行数进行切割
3.10.5 LC_ALL=C//为了去除所有本地化的设置,让命令正确的执行
3.10.6 tee 重定向,并把之前的结果打印在屏幕上
3.10.6.1 sort 1.txt |uniq -c |tee a.txt
3.10.6.2 tee -a //表示追加
3.10.6.3 >a.txt//清空a.txt
3.10.7 tr替换字符
3.10.7.1 echo "aminglinux" |tr '' ''
3.11 一些特殊字符
3.11.1 $ 变量前缀 !$ 表示取前一次执行的命令
3.11.2 ;多条命令写到一行,用分号分割
3.11.3 ~ 用户家目录,正则中表示匹配符
3.11.4 &放到命令后面,会把命令丢到后台
3.11.5 >重定向 >>追加重定向 2>错误重定向 2>>追加错误重定向 &>将错误的和正确的全部重定向到一个文件中
3.11.6 [] 指定一个字符中的一个
3.11.7 || 或者&& 并且
3.11.8 [-d aminglinux] || mkdir aminglinux //-d判断是否是一个目录且是否存在
页:
[1]