关于减号是不会影响旧变量的,如果想要旧变量内容也一起替换掉的话,就需要使用等号=:
[linuxidc@ubuntu ~/Desktop/linux_study 13:20 #107]$unset str; var=${str=newvar}
[linuxidc@ubuntu ~/Desktop/linux_study 13:25 #108]$echo var="$var",str="$str"
var=newvar,str=newvar
[linuxidc@ubuntu ~/Desktop/linux_study 13:25 #111]$str="oldvar";var=${str=newvar}
[linuxidc@ubuntu ~/Desktop/linux_study 13:25 #112]$echo var="$var",str="$str"
var=oldvar,str=oldvar
命令别名和历史命令
命令别名设置alias和unalias
命令别名可以使常用的但是特别长的���令修改成比较简洁的命令,还有增设默认的选项在一些惯用的命令上面,可以预防一些不小心误删文件的情况发生。例如,查询隐藏文件,并且需要长的列出与一页一页翻看,那么需要执行“ls -l | more”,可以使用以下命令将其简化为lm:
[linuxidc@ubuntu ~ 13:35 #120]$alias lm="ls -l | more"
另外,命名别名的设置还可以替代既有的命令,例如,当以root登录,使用rm命令可以删除所有文件,因此要特别小心,rm提供一个参数让我们确认是否删除该文件-i:
[linuxidc@ubuntu ~ 13:35 #123]$alias rm="rm -i"
[linuxidc@ubuntu ~/Desktop/linux_study 13:39 #127]$rm 123
rm: remove write-protected regular empty file ‘123’? y
去掉刚才的命名别名:
[linuxidc@ubuntu ~/Desktop/linux_study 13:39 #128]$unalias rm
历史命令 history
查询曾经执行过的命令,最近4条:
[linuxidc@ubuntu ~/Desktop/linux_study 13:42 #131]$history 4
Bash Shell的操作环境
路径与命令查找顺序
设置echo的别名为echo-n,然后再查看echo执行的顺序:
[linuxidc@ubuntu ~/Desktop/linux_study 13:45 #132]$alias echo="echo -n"
[linuxidc@ubuntu ~/Desktop/linux_study 13:47 #134]$type -a echo
echo is aliased to `echo -n'
echo is a shell builtin
echo is /bin/echo
bash的登录与欢迎信息:/etc/issue,/etc/motd
终端环境设置:stty.set
如何查阅目前的一些按键内容呢?可以利用stty(setting tty终端机),stty可以帮助设置终端机的输入按钮代表意义。我们可以利用stty-a来列出目前环境中的所有按键列表。
linuxidc@ubuntu:~$ stty -a
speed 38400 baud; rows 37; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
如果想要stty进行相关的字符删除:
linuxidc@ubuntu:~$ stty erase ^h
除了stty之外,其实我们bash还有自己的一些终端机设置值set。
Linux Shell脚本 多线程
Linux Shell在while中用read从键盘输入