shell(一)

shell(一)

在shell中,按home是行首,按end是行尾.

shell中作业(jobs)控制

如果下载或者vi一个东西,那么按ctrl+z 可以暂时暂停这个进程.并且放入后台.

[nicaine@iZ2zec61wsgboa6h0j9jjfZ test]$ wget http://nginx.org/download/nginx-1.16.1.tar.gz
--2019-12-07 22:28:13-- http://nginx.org/download/nginx-1.16.1.tar.gz
Resolving nginx.org (nginx.org)... 62.210.92.35, 95.211.80.227, 2001:1af8:4060:a004:21::e3
Connecting to nginx.org (nginx.org)|62.210.92.35|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1032630 (1008K) [application/octet-stream]
Saving to: ‘nginx-1.16.1.tar.gz’

4% [=> ] 41,709 25.1KB/s ^Z
[1]+ Stopped wget http://nginx.org/download/nginx-1.16.1.tar.gz

其中[1]+ 这个1就是作业号.
jobs 可以显示作业号.

使用bg %作业号 来使后台暂停的程序继续在后台运行.

bg %1

[1]+ wget http://nginx.org/download/nginx-1.16.1.tar.gz &
4% [=> ] 49,901 321B/s eta 51m 2s [20% [===========> ] 214,405 1.35KB/s in 2m 35s

2019-12-07 22:30:50 (1.35 KB/s) - Read error at byte 214405/1032630 (Connection reset by peer). Retrying.

--2019-12-07 22:30:51-- (try: 2) http://nginx.org/download/nginx-1.16.1.tar.gz
Connecting to nginx.org (nginx.org)|62.210.92.35|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 1032630 (1008K), 818225 (799K) remaining [application/octet-stream]
Saving to: ‘nginx-1.16.1.tar.gz’

57% [++++++++++++======================> ] 597,311 29.0KB/s eta 13s

使用fg %作业号 来使后台暂停的程序继续在前台运行.

fg %1

[nicaine@iZ2zec61wsgboa6h0j9jjfZ test]$ fg %1
wget http://nginx.org/download/nginx-1.16.1.tar.gz
95.211.80.227, 62.210.92.35, 2001:1af8:4060:a004:21::e3
Connecting to nginx.org (nginx.org)|95.211.80.227|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1032630 (1008K) [application/octet-stream]
Saving to: ‘nginx-1.16.1.tar.gz’

0% [ ] 0 --.-K/s ^

同样的vi编辑器也可以.
在命令后面加& 也表示在后台运行.  

| > >> < << 

echo nihao | base64
打印nihao然后通过base64输出

echo 'aaa'>a.txt
把aaa写入到a.txt.这是覆盖写

echo 'bbb'>>a.txt
把bbb写入到a.txt.这是追加写

base64 < a.txt
把a.txt文件内容通过base64输出.

<<
常用的是编辑文件
cat > xx.txt <<EOF
[nicaine@iZ2zec61wsgboa6h0j9jjfZ test]$ cat >xx.txt <<EOF
> ASDFSD
> fasdf
>
> afsad
> fsadf
> fsdfas
> nihfosadfsadfsadfasdf
> EOF
[nicaine@iZ2zec61wsgboa6h0j9jjfZ test]$ cat xx.txt
ASDFSD
fasdf

afsad
fsadf
fsdfas
nihfosadfsadfsadfasdf

就是一个简易的编辑器.  

或者 和 并且
|| &&

shell变量

[nicaine@iZ2zec61wsgboa6h0j9jjfZ test]$ var=aaa
[nicaine@iZ2zec61wsgboa6h0j9jjfZ test]$ echo $var
aaa

变量默认值,当没设置的时候为aad变量为nicaine 加号和减号相反.如果是问号,则是报错信息
[nicaine@iZ2zec61wsgboa6h0j9jjfZ test]$ echo ${aad-nicaine}
nicaine

[nicaine@iZ2zec61wsgboa6h0j9jjfZ test]$ echo ${aad?caocuoxinxi}
bash: aad: caocuoxinxi

引号(单引号,双引号,反引号)

单引号不解析变量
双引号解析变量
反引号,当成命令执行
如果执行./aa.sh aaa bbb ccc 表示三个参数
如果./aa.sh "aaa bbb ccc" 表示一个参数
如果./aa.sh 'aaa bbb ccc' 表示一个参数
如果./aa.sh `ls` 表示把ls的输出作为参数