shell基础命令

在这里插入图片描述
3、!字符串(字符串大于等于一),列:!pw表示执行历史命令中最近一次以pw开头的命令。

[root@localhost ~]# !pw
pwd
/root

二、命令和文件名补全
tab键可以补全一个指令、一个路径或者一个文件名。连续按两次tab键,系统就会把所有的文件名和命令都列出来。
三、别名
alias可以把常用且长的命令,另取一个简单易记的指令。
1、直接执行alias命令可以看到预设的命令

[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

2、自定义命令的别名,格式为 alias[命令别名]=[‘具体的别名’]

[root@localhost ~]# alias gjzh='pwd'   定义pwd为gjzh
[root@localhost ~]# gjzh       输出pwd的结果
/root
[root@localhost ~]# unalias gjzh      解除别名
[root@localhost ~]# gjzh       再次输入,无果
-bash: gjzh: command not found

四、通配符
可以使用*来匹配零个或多个字符,用?来匹配一个字符

[root@localhost ~]# ls -d /tmp/4_6/test*
ls: cannot access /tmp/4_6/test*: Not a directory
[root@localhost ~]# ls -d /tmp/4_6/t*
ls: cannot access /tmp/4_6/t*: Not a directory
[root@localhost ~]# ls -d /tmp/4_6/*
ls: cannot access /tmp/4_6/*: Not a directory
[root@localhost ~]# ls -d /tmp/*
/tmp/4_6
/tmp/systemd-private-faa5b212d40e431683cdcfc7b9e1305e-vgauthd.service-hb4DRA
/tmp/systemd-private-faa5b212d40e431683cdcfc7b9e1305e-vmtoolsd.service-Orw4NX
[root@localhost ~]# touch /tmp/11
[root@localhost ~]# ls -d /tmp/??
/tmp/11

五、输入 |输出重定向
输入重定向用于改变命令的输入,输出重定向用于改变命令的输出。输出重定向常用,常用于将命令的结果输入到文件中,而不是屏幕上。
输入重定向的命令为 <
错误重定向命令为2>

[root@localhost ~]# mkdir /tmp/10
[root@localhost ~]# cd /tmp/10
[root@localhost 10]# ll
total 0
输出重定向命令为 >
[root@localhost 10]# echo '123' > 1.txt
[root@localhost 10]# ll
total 4
-rw-r--r--. 1 root root 4 Apr 15 10:19 1.txt
[root@localhost 10]# cat 1.txt
123
追加重定向命令为 >>
[root@localhost 10]# echo '986' >> 1.txt
[root@localhost 10]# cat 1.txt
123
986

六、管道符
管道符 | ,用于将前一个指令的输出作为后一个指令的输入

[root@localhost ~]# cat /etc/passwd |grep wc -l
21

七、作业控制
当运行进程时,
1、ctrl+Z可以暂停当前进程
2、fg 可以恢复当前进程
3、bg可以使它到后台运行,也可以ctrl+C结束进程
4、jobs可以看到被暂停或后台运行的任务。注意:当使用jobs命令可以看到两个以上命令时,使用fg和bg命令就要加上编号。

创建一个进程
[root@localhost ~]# vi test
gjzh zaishanhelingzhong        随便编写

按Esc键后,使用ctrl+Z暂停当前进程
[1]+  Stopped                 vi test

查看刚才的进程
[root@localhost ~]# jobs
[1]+  Stopped                 vi test
按fg恢复当前进程
[root@localhost ~]# fg
vi test
gjzh zaishanhelingzhong
[1]+  Stopped                 vi test    (ctrl+Z)

bg在后台运行
[root@localhost ~]# bg
[1]+ vi test &

[1]+  Stopped                 vi test
[root@localhost ~]# bg 1      进程中的编号为1的后台运行
[1]+ vi test &
[root@localhost ~]# jobs 1
[1]+  Stopped                 vi test
[root@localhost ~]# cat test >1.txt
[root@localhost ~]# ll
total 16
-rw-r--r--. 1 root root   83 Apr 15 14:43 1.txt
-rw-------. 1 root root 1316 Oct 30 00:06 anaconda-ks.cfg
-rw-r--r--. 1 root root  106 Apr 14 15:13 student.txt
-rw-r--r--. 1 root root   83 Apr 15 11:19 test

[root@localhost ~]# vmstat 1 > /tmp/1.log
^Z           (ctrl+Z暂停)
[2]+  Stopped                 vmstat 1 > /tmp/1.log
[root@localhost ~]# jobs      查看进程列表
[1]-  Stopped                 vi test
[2]+  Stopped                 vmstat 1 > /tmp/1.log
[root@localhost ~]# bg 1       指定后台运行
[1]- vi test &
[root@localhost ~]# jobs       查看进程列表
[1]+  Stopped                 vi test
[2]-  Stopped                 vmstat 1 > /tmp/1.log

5、有些进程是使用jobs不会显示出来,而想要关闭这些进程则早就先知道他们的pid,知道pid的两种方法:

后面的&符是显示出pid的意思
[root@localhost ~]# vmstat 1 > /tmp/1.log &
[3] 9080

[root@localhost ~]# ps aux |grep vmstat
root       9079  0.0  0.0 148316  1344 pts/0    T    14:49   0:00 vmstat 1
root       9080  0.0  0.0 148316  1340 pts/0    S    14:51   0:00 vmstat 1
root       9082  0.0  0.0 112660   968 pts/0    S+   14:51   0:00 grep --color=auto vmstat
使用kill命令结束进程
[root@localhost ~]# vmstat 1 > /tmp/1.log &
[4] 9101
[root@localhost ~]# kill 9101
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值