Linux学习日记之Bash(一)

Shell

系统上合法的 shell 写入/etc/shells 文件
登入取得的shell记录在 /etc/passwd 文件

alias

命令别名设定功能
alias 显示所有命名别名
alias xx=‘xxx’ 设定别名
alias lm=‘ls -al’

unalias

取消命令别名
unalias lm

type

type [-typa] name

主要用于找出【执行档】而不是一般文件名
可以用于类似 which 指令的用途~找指令

typename 显示出 name是外部指令话说 bash 内建指令
-ttype 会将name 以底下这些字眼显示出他的意义
file 表示为外部指令
alias 表示该指令为命令别名所设定的名称
builtin 表示该指令为bush内建的指令功能
-p如果后面接的 name 为外部指令时,才会显示完整文件名
-a会由 PATH 变量定义的路径中,将所有含 name 的指令全部列出 来,包括 alias

\

跳脱及换行
\可以跳脱紧接着下一个字符

快速编辑

组合键 功能与示范
[ctrl] + u/k从光标处向 前/后 删除 指令串
[ctrl] + a/e让光标移动到整个指令串最 前/后 面

变量

变量即以一组文字或符号等,来取代一些设定或者是一串保留的数据

变量的取用 echo
echo $XXX 或者 echo ${XXX}
例如将mikey 这个变量名称的内容设定为 I

mikey=I (变量的设定)
echo ${mikey} (查看变量)

在bash中,但一个变量名称尚未被设定时,预设的内容是 【空】 的。

变量设定的规则
1.变量与变量内容以一个等号【=】来连结
mikey=yussi

2.等号两边不能直接空格
mikey =yussi
mikey= yussi

3.变量名称只能是英文字母与数字,但是开头字符不能是数字
5mikey= yussi

4.变量内若有空格可使用双引号【"】或者单引号【’】将变量内容结合起来

  • 双引号内的特殊字符如 $ 等,可以保留原有的特性。
    var=“lang is $LANG” 则 echo $var 可得 lang is zh_TW.UTF-8

  • 单引号内的特殊字符仅为一般字符(纯文本)
    var=’lang is $LANG‘ 则 echo $var 可得 lang is $LANG

5.可用跳脱字符 [ \ ] 将特殊符号如 [Enter],$,\,空格等)变成一般字符
myname=VBird\ Tsai

  1. 在一串指令的执行中,还需要籍由其他额外的指令提供信息时,可以使用反单引号【`】或[$]
    例如想要获取核心版本的设定
    version=${uname -r} 在 echo $version可得 3.1…0-229.e17.x86_64

7.若该变量为拓展变量内容时,则可用"$变量名称"或${变量}累加内容
PATH=" P A T H " : / h o m e / b i n 或 P A T H = PATH":/home/bin 或 PATH= PATH":/home/binPATH={PATH}:/home/bin

8.若该变量需要在其他子程序执行,则需要以 export 来使变量变成环境变量
export PATH

9.通常大写字母为系统默认变量,自行设定变量可以使用小写字母,方便判断(纯粹按照使用者兴趣与嗜好

10.取消变量的方法为使用 unset :【unset 变量名称】
unsrt myname

env

观察环境变量与常见环境变量说明

set

观察所有变量(包括环境变量与自定义变量)

PS1

提示字符的设定

\d 可显示出【星期 月 日】的日期格式 如“Mon Fer 2”
\H完整的主机名
\h仅取主机名第一个小数点之前的名字
\t显示时间,为 24 小时格式的【HH:MM:SS】
\T显示时间,为 12 小时格式的【HH:MM:SS】
\A显示时间,为 24 小时格式的【HH:MM】
@显示时间,为 24 小时格式的【am/pm】样式
\u目前使用者的账号名称
\vBASH版本信息
\w完整的工作目录名称,由根目录写起的目录名称,但家目录会以~取代
\W最后一个目录名
#下达的第几个指令
$提示字符,若为 root 时,提示字符为 # ,否则为 $

例如:

[dmtsai@mikey ~]$ cd/home
[dmtsai@mikey home]$ PS1='[\u@\h \w \A #\#]$ '
[dmtsai@mikey /home 16:22 #55]$

PID

目前这个 Shell 的线程代号
使用 echo $$ 可现实 PID 码

?

上一个执行的指令所回传的值
如果成功的执行该指令,则会回传一个 0 值,若执行过程中发生错误,则会回传一个非 0 的数值来取代

read

读取来自键盘输入的变量

-p后面可以接提示字母
-t后面可以接等待的 秒数

declare/typeset

宣告变量的类型

-a将后面名为variable 的变量定义成数组(array)类型
-i将后面名为variable 的变量定义成整数数字 (integer)类型
-x用法与export一样,将后面的 variable 变成环境变量
-r将变量设定成为 readonly 类型,该变量不可能被更改内存,也不能 unset

变量类型默认为【字符串】,所以不指定变量类型,则 1+2 为一个【字符串】 而不是【计算式】。
bash环境的数值运算,预设最多仅能达到整数形态,所以 1/3 结果是 0;

ulimit

ulimit [-SHacdfltu] [配额]

-H严格的设定,必定不能超过这个设定值
-S警告的设定
-a后面不接任何选项与参数,可列出所有的限制额度
-c限制每个核心文件的最大容量
-f建立最大文件容量
-d程序可使用的最大断裂内存容量
-l可用于锁定的内存量
-t可使用的最大 cpu 时间(单位为秒)
-u单一用户可以使用的最大程序数量

变量的删除,取代与替换

变量设定方式说明
${变量#关键词}若变量内容从头开始的数据符合 【关键词】,则将符合的最短数据删除
${变量##关键词}若变量内容从头开始的数据符合 【关键词】,则将符合的最长数据删除
${变量%关键词}若变量内容从尾向前的数据符合 【关键词】,则将符合的最短数据删除
${变量%%关键词}若变量内容从尾向前的数据符合 【关键词】,则将符合的最长数据删除
${变量/旧字符串/新字符串}若变量内容符合 【旧字符串】,则【第一个旧字符会被新字符串取代】
${变量//旧字符串/新字符串}若变量内容从头开始的数据符合 【关键词】,则【全部旧字符会被新字符串取代】

history

历史命令

n数字,意思是【要列出最近 n 笔命令行表】
-c将目前 shell 中所有 history 内容全部消除
-a将目前新增 history 指令新增入 histfiles 中, 若没有加 histfiles,则预设写入 -/.bash_history
-w将目前的 history 记忆内容写入 histfiles 中
-r将 histfiles 的内容读到目前这个 shell 的 history 记忆中
!number执行第几笔指令的意思 例如:!2
!command由最近的指令向前搜寻【指令开头为command】的那个指令,并执行
!!执行上一个指令【相当于按↑按键后,按 Enter】

学习总结:
bash的功能很方便,history和alias的功能让我特别惊喜和喜欢。变量的测试和内容替换这部分还是不是很明白。希望能够继续坚持下去!

                                                                         2020/2/27

参考鸟哥linux私房菜
本文章仅用于记录学习过程内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值