shell基础

shell基础

一:记录历史命令:
history:列出历史命令

!!:连续!!执行上一条命令

!n:执行命令历史中的第n条命令

!字符串:表示输出历史最近一次以字符串开头的命令。

二:补全命令

tab

三:别名

alias:将一个长命令另取一个简单的指令,直接执行alias将看到所有得别命。

alias p='pwd'

unalias:用于解除所设置得别名。

unalias p

四:通配符

*:通配零个或者多个字符

?:匹配一个字符

五:输入输出重定向

<:输入重定向用于改变命令的输入

>:输出重定向,改变命令得输出,用于将命令得结果输入到文件中。

[root@mall ~]# touch 123.txt

[root@mall ~]# echo "123" >123.txt

[root@mall ~]# cat 123.txt

123

2>:错误重定向

>>:追加重定向

六:管道符

|:将前一个命令得输出作为后一个命令得输入

七:作业控制

jobs 查看后台任务

ctrl+z:暂停任务{

bg:后台运行

fg:恢复运行

}

ctrl+c:结束任务

八:变量

shell预设的,大写。作用运行某个命令无需输入路径,输入命令名。

echo $PATH :显示变量值

echo $HOME:显示home路径

/root

echo $LOGNAME::显示名

root

env:列出全局变量

XDG_SESSION_ID=4

HOSTNAME=mall

SELINUX_ROLE_REQUESTED=

TERM=vt100

SHELL=/bin/bash

HISTSIZE=5

SSH_CLIENT=192.168.200.1 62589 22

SELINUX_USE_CURRENT_RANGE=

OLDPWD=/usr/local/sbin

SSH_TTY=/dev/pts/1

USER=root

。。。。。。。

set:列出全局变量

自定义变量

# name=myname

echo $name

myname

unset取消变量

# unset name

# echo $name

环境变量文件

• /etc/profile 用户环境变量,交互,登录才执行

• /etc/bashrc 用户不用登录,执行shell就生效

• ~/.bashrc

• ~/.bash_profile

• ~/.bash_history

• ~/.bash_logout

特殊符号

* :任意一个任意字符

# ls a*

aa:

ab:

?:匹配一个字符

# ls a?

aa:

ab:

# ls

aa  ab  abad  abasds  compose  Docker  images  image.sh  install.sh  Kubernetes  kubernetes_base.sh  yaml

# :注释字符

:脱义字符(将后面得特殊字符还原成普通字符)

# ls a*

ls: cannot access a*: No such file or directory

| :管道符

# cat aa | wc -l

cat: aa: Is a directory

0

管道符相关命令

cut 分割,-d 分隔符 -f 指定段号 -c 指定第几个字符

# cat /etc/passwd | cut -d ':' -f 1 | head -5

root

bin

daemon

adm

lp

sort 排序, -n 以数字排序 -r 反序 -t 分隔符 -kn1/-kn1,n2  -u 去重复

# head -n5 /etc/passwd | sort -t: -k3 -n

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

wc -l 统计行数 -m 统计字符数 -w 统计词

# wc -l /etc/passwd

21 /etc/passwd

uniq 去重, -c统计行数

# vi kkk.txt

11

22

11

33

# sort kkk.txt | uniq

11

22

33

# sort kkk.txt | uniq -c

      2 11

      1 22

      1 33

tee 和>类似,重定向的同时还在屏幕显示

tr 替换字符,tr 'a' 'b',大小写替换tr '[a-z]' '[A-Z]'

# vi kkk.txt

aaa

aaa

dcasd

# cat kkk.txt | tr '[a-z]' '[A-Z]'

AAA

AAA

DCASD

split 切割,-b大小(默认单位字节),-l行数

# split -b  500 /etc/passwd

# ls

 xaa  xab  xac

$ 变量前缀,!$组合,正则里面表示行尾

;多条命令写到一行,用分号分割

~ 用户家目录,后面正则表达式表示匹配符

& 放到命令后面,会把命令丢到后台

> >> 2> 2>> &>

[ ] 指定字符中的一个,[0-9],[a-zA-Z],[abc]

原文地址:https://www.cnblogs.com/daiqinghui/p/14723803.html