前端之家收集整理的这篇文章主要介绍了
【Linux系列】【基础版】第三章 Shell基础知识,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
3.Shell基础知识
3.1Shell的由来
3.1.1BourneAginShell
3.1.2其他的shell,有zsh,ksh等
3.2查看有没有shell
3.2.1yumlist|grepzsh
3.2.2ls/root/.bash_history
3.2.3echo$HISTSIZE->vi/etc/profile修改HISTSIZE的值->source/etc/profile
3.2.4history-c//清空命令历史(内存中的)
3.2.5HISTTIMEFORMAT="%Y/%m/%d%H:%M:%S"
3.2.6vi/etc/profile
3.2.7chattr+a~/.bash_history//只能被追加,不会被删除
3.2.8!!//最后一条命令;!n//!words//
3.3安装参数补全源
3.3.1yuminstall-ybash-completion//安装参数补全源后需要重启电脑(reboot)才生效
3.3.2systemctlrestartnetwork.service//重启网络服务
3.3.3rpm-qabash-completion
3.4alias配置文件
3.4.1vi.bashre//alias的配置文件(一部分)
3.4.2cd/etc/profile.d///alias其他的一部分配置文件
3.4.3Tab键:
3.4.3.1按一下匹配命令和参数
3.4.3.2按两下显示匹配信息供选择
3.5通配符
3.5.1*匹配所有字符ls*.txt
3.5.2?匹配一个字符ls?.txt
3.5.3ls[0-9].txt
3.5.4ls{1,2}.txt
3.5.5重定向cat1.txt>2.txt
3.5.6追加重定向cat1.txt>>2.txt
3.5.7错误重定向lsaaa2>a.txt
3.5.8追加错误重定向lsaaa2>>a.txt
3.5.9wc-l<1.txt//输入重定向,wc-l查看文本行数;左边需要是命令
3.5.10ls[12].txtaaa.txt&>a.txt//&>为正确错误重定向
3.5.11ls[12].txtaaa.txt>1.txt2>a.txt//将正确的和错误的区分开
3.6管道符和作业控制
3.6.1cat1.txt|wc-l
3.6.2cat1.txt|grep'aaa'
3.6.3ctrl+z//暂停一个任务
3.6.4df-h//查看磁盘使用量
3.6.5fg//前台frontGround
3.6.5.1fgIDNumber
3.6.6jobs//查看后台或已停止的任务
3.6.7bg//后台background
3.6.7.1bgIDNumber
3.6.8vmstate1//动态的显示系统状态
3.6.9sleep100//暂停100秒
3.6.9.1sleep100&//把命令放到后台运行
3.6.9.2psaux|grepsleep//查看进程
3.7shell变量
3.7.1env//查看系统的环境变量
3.7.2set命令
3.7.2.1set|grep111//查找111
3.7.2.2set命令包含了很多变量,并且包含用户自定义的变量
3.7.2.3a=111//自定义变量
3.7.2.4set用来显示本地变量,env用来显示环境变量,export用来显示和设置环境变量
3.7.3export全局变量
3.7.3.1exportaming=linux
3.7.3.2echo$aming
3.7.3.3bash//进入子bash
3.7.3.4echo$aming
3.7.3.5unsetaming//取消环境变量
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.3PS1变量
3.8.3.1PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$'
3.8.3.2a='a$bc'
3.8.3.3a=a"$b"c
3.8.3.4..bash_profile和source.bash_profile,此处.和source都是加载使生效的作用
3.8.3.5[登录的用户@主机名-所在的目录(最后的层级)]
3.8.3.6PS1=''//修改PS1
3.8.3.7echo$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\$behcoc
3.8.5.5|//管道字符
3.9cut和sort命令
3.9.1cat/etc/passwd|head-2|cut-d":"-f1-3//-d表示分割;-f表示段
3.9.2cut-d//分隔符;-f//指定段号;-c//指定第几个字符
3.9.3sort-n//以数字排序(字母认为是0);-r//反序;-t//分隔符-kn1/-kn1,n2
3.10wc,uniq,split和tee命令
3.10.1wc-l//统计行数;wc-m//统计字符数;wc-w//统计词
3.10.2cat-A1.txt//输出行中假设为123$,其中$代表换行符
3.10.3uniq去重(需要先排序)uniq-c//统计行数
3.10.3.1sort1.txt|uniq-c
3.10.4split-b//按字节为单位进行切割split-l//按行数进行切割
3.10.5LC_ALL=C//为了去除所有本地化的设置,让命令正确的执行
3.10.6tee重定向,并把之前的结果打印在屏幕上
3.10.6.1sort1.txt|uniq-c|teea.txt
3.10.6.2tee-a//表示追加
3.10.6.3>a.txt//清空a.txt
3.10.7tr替换字符
3.10.7.1echo"aminglinux"|tr'[al]''[AL]'
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[-daminglinux]||mkdiraminglinux//-d判断是否是一个目录且是否存在
原文链接:https://www.f2er.com/bash/390575.html