linux学习随笔九

主学shell基础的知识

站在用户的角度:shell的类型

登录式shell:正常通常是某些终端登录

su - USERNAME

su -l USERNAME

非登录式shell

su USERNMAE

图形终端下打开命令窗口

自动执行的shell脚本

kash的配置文件:

全局配置:/etc/profile /etc/profile.d/*.sh

                /etc/bashrc

个人配置:~/.bash_profile, ~/.bashrc

功能:

profile类的文件

设定环境变量

运行命令或脚本


bashrc类的文件

设定环境变量

定义命令别名


登录式shell如果读取配置文件:

/etc/profile -->/etc/profile.d/*.sh-->~/.bash_profile-->/.bashrc-->/etc/bashrc

非登录式shell如果配置文件:

~/.bashrc -->/etc/bashrc-->/etc/profile.d/*.sh

我们都知道电脑包括控制器(指令)、运算器、存储器

总线包括:地址总线(内存寻址)、数据总线(传输数据)、控制总线(控制命令)

寄存器:cpu暂时存储器

I/O设备:硬盘等输入输出设备

input设备

output设备:

系统设定:默认输出设备,标准输出STDOUT,1

默认输入设备:标准输入 STOIN,0

标准错误输出:STDERP,2

I/O重定向:

> :覆盖输出

>>:追加输出

例:ls var >> /tmp/var.out

set -c 禁止对已经存在文件使用覆盖重定向,强制覆盖重定向

set +c关闭上述功能

标准输出与错误输出不是同一种数据流

2>:重定向错误输出

2>>:追加方式

如:ls /var > /tmp/var3.out 2>/tmp/err.out

      ls /var > /tmp/var4.out 2>/tmp/var4.out

&>:重定向标准输出或错误输出至同一个文件

&>>

<:输入重定向

<<:here Document

EOF:end of file =end

cat >> /tmp/myfile.txt<<EOF 在脚本中生成文件


管道:前一个命令的输出作为后一个命令的输入

命令1|命令2|命令3|.......

例:echo "hello world" |tr 'a-z''A-Z'

echo "redhat" |passwd --stdin hive

cut -d: -f3 /etc/passwd |sort -n

tee: 保存并显示

echo "hello,world" |tee/tmp/hello.out

wc -l /etc/passwd |cut -d'' -f1

ls -l /usr/bin /head -1

cut -d: -f1 /etc/passwd /sort -n

head -6 /etc/inittab |tail -1

tail -9 /etc/ passwd |head -1|cut -d: -f1,7|tee /tmp/users

ls -d /etc/pa*|wc -l

echo "alias cls=clear">>~/.bashrc


文件查找的需要:grep、egrep、fgrep

grep:根据模式搜索文本,并符合模式的文本显示出来

pattern:(模式)文本字符和正则表达式的元字符组合而成匹配条件

i:忽略大小写

v:显示没有被模式匹配到的行

--color 显示颜色

-o:只显示被模式匹配到的字符串

alias grep='grep --color' 取别名

grep -o'root' /etc/passswd

正则表达式:REGULAR,EXPRESSION,REGEXP

元字符:

. :

* :

.* :

\?:

\{m,n\}:匹配其前面的字符至少m次,至多n次

\{1,\},匹配其前面的字符至少1次,至多0spacer.gif

\{0,3\}:匹配其前面的字符至少0次,至多3次

grep ‘a \{1,3\}b' text.txt

位置锚定:

^:锚定行首,此字符后面的任意内容必须出现在行首

grep '^r..root' /etc/passwd

$:锚定行尾,此字符钱的任意内容必须出现在行尾

^$:空白符

[ ]:匹配指定范围内的任意字符

[^ ]:匹配指定范围外任意字符

[:digit:] [:lower:] [:upper:] [:punct:] [:space:][:alpha:] [:alnum:]

grep '[[:digit:]]$' /etc/inittab

\< 或\b:锚定词首,其后面的任意字符必须作为词首部出现

\> \b :锚定词尾,其前面的任意字符必须作为词尾部出现

分组:

\(\)

\(ab\) *:ab可以出现0次或任意次

\1:引用第一个左括号以及与之对应的右括号包括的所有内容

\2:  \3:

正则表达式:包括基本正则表达式(BASIC REGEXP) 扩展正则表达式(EXTENDED REGEXP)

基本正则表达式:

. :

[ ]:

[^ ]:

次数匹配:

*:

\?:

\{m,n\}:

.*:

锚定:

^:

$:

\< \b:

\> \b:

\(\):

\1,\2,\3......

grep :使用基本正则表达式定义的模式来过滤文本命令

i:

-v:

-o:

--color:

-E:使用扩展正则表达式

-A#:显示匹配的行和这行后面的行

-B#:显示匹配的行和这行前面的行

-C#:显示匹配的行和这行前后的行

grep -A 2 '^core id' /proc/cpuinfo


扩展正则表达式:

字符匹配:

.  [ ] [^ ] 跟基本表达式相同

次数匹配:

*  ?

+:匹配其前字符至少一次

{m,n}

位置锚定:

^ $ \< \>

分组:

():分组

\1,\2,\3...

或者

|:or

如:C|cat :是Cat或cat呢还是C或cat呢

grep -E 'C| cat' test6.txt

gerp --color -E'C|cat' test6.txt

grep --color -E'(C|c)at' test6.txt

grep --color -E '^[[:space:]]+' /boot/grub/grub.conf

grep -E=egrep(支持扩展正则表达式使用命令)

如显示1到255之间的数字

egrep --color‘\<([1-9][1-9][0-9]|[0-9]2[0-4][0-9]25[0-5]>\>' /boot/grub/grub.conf

显示ip地址:

ifconfig |egrep -o '上面的.\>.\

                                        \>1. |{3}

ip地址:

5类:A B C D E

A:1-127

B:128-191

C:192-223

你可能感兴趣的:(linux,profile,配置文件,控制器,寄存器)