跟阿铭学Linux第十章答案,shell基础知识

  1. 系统环境变量配置文件:

/etc/profle /etc/bashrc

个人环境变量配置文件:

.bash_profile(用户登录时执行)

 .bashrc(登录或打开shell时执行)

 .bash_history(历史命令)

 .bash_logout(退出shell时执行)

#后面的内容表示注释,使用#时,#前面应加上空格,否则就不是注释。

\ 脱义字符(类似其它语言的转义字符)

Cut 要想用-f设置区块,必须用-d设置分隔符

Sort 要想使用-k对区域内的字符串排序,必须用-t设置分隔符

参数后跟分隔符的时候中间可以没有空格,分隔符可以不用引号括起来了,跟数字也一样,比如:head -n5 /etc/passwd | sort -t: -k3

Uniq 不会改变源文件,如果要将去重的结果存下来,应该将结果输出到新文件。

Tee:将文件写入后面的文件,并显示在屏幕上,相当于把输出流分成了两份。例子:echo "abcdefg" |tee hijklmn.txt

Split –l(按行) -b(按块大小)

!$: 上条命令的最后一个变量

 

 

 

 

2.

1)临时更改:HISTSIZE=10000

永久更改:

进入/etc/profile

普通用户没有权限,所以切换到root。

2) Shell中双引号保留原有字符的特殊含义,单引号可以去掉原有字符的特殊含义。所以我们有两种改法:PS1="[\u@\h \W]\\$ ";PS1=‘[\u@\h \W]\$ ‘

3) ls|tr '[a-z]' '[A-Z]' 能将改变的结果列出来

使用for循环加tr命令,能直接改变文件的名字。

4) sort -t: -k5 passwd

5) cut -d: -f3 passwd

6)/etc/profile : 所有用户在登录时被执行,里面保存着环境变量和开机需要执行的一些命令。

/etc/bashrc : 所有用户登录需要执行的命令

.bash_profile:登录或者打开shell都会被执行

.bashrc 个人用户在登录时被执行,里面保存着环境变量和开机需要执行的一些命令。登录时执行一次

/etc(比如:/etc/profile和/etc/bashrc)文件夹下的配置文件时系统级的配置文件,所有用户都会使用;.开头的文件(比如.bashrc和.bash_profile)是用户级的文件;/etc/profile和.bash_profile只在用户登录的时候执行;/etc/bashrc和.bashrc文件每打开一个bash都会被执行。*profile一般都会调用*bashrc。

~/.bash_profile 是交互式、login 方式进入 bash 运行的,意思是只有用户登录时才会生效。

~/.bashrc 是交互式 non-login 方式进入 bash 运行的,用户不一定登录,只要以该用户身份运行命令行就会读取该文件。

 

# /etc/profile  # System wide environment and startup programs, for login setup

# /etc/bashrc  # System wide functions and aliases

# .bash_profile  # User specific environment and startup programs

#.bashrc  # User specific aliases and functions

7)声明一个变量,使其进入子shell后也生效

8)变量名可以用数字字母下划线,但是不能以数字开头。

9)当命令在运行时按ctrl + z,命令就会在后台停止,再输入bgn,命令会在后台运行,输入fgn命令会被调到前台运行。在命令后加上 &后执行,命令会直接在后台运行。

10)ls test*

11) ls |tee abc.txt

12)别名:alias la='ll -a',输入la,显示所有文件

   也可以使用变量:la='ls -a'

13)bash shTest.sh  > abc.log 2>&1 &

    shTest.sh运行后会有标准输出和标准错误输出,> abc.log表示将标准输出重定向到abc.log ,2>&1表示将标准错误输出重定向到标准输出。

14) split -b 10M passwd byBolockSize

   split -l 5 passwd byLine

15)   ;就是执行完这一条语句执行下一条语句,&&是与的意思,当&&前面的命令为false(没有返回值,执行失败)时,式子的结果一定是false,没必要在看(执行)&&后面的命令;||是或的意思,当||前面的命令执行结果为true(命令执行成功),式子的结果一定是true,没必要再执行||后面的命令。

lll&&ls

echo 'lll&&ls'

echo 左边是假的,式子结果一定为假,右边不会执行

pwd||ls

echo 'pwd||ls'

echo 左边是真的,式子结果一定为真,右边式子不会执行

pwd&&ls

echo 'pwd&&ls'

echo 会执行

lll||ls

echo 'lll||ls'

echo 会执行

echo 或运算符用在,需要式子执行其中一个的时候,即不确定前面的式子是否会执行失败,后面的式子当做前面的式子

echo 执行失败时的保险

echo 与运算符用在,当前面的式子执行成功了之后,才去执行后面的式子,适合有序执行的几条命令,

echo 有一条命令执行出错,后面的命令都会停止执行

16)把设置变量的语句添加在某用户根目录下的.bashrc文件里面。

17)env只能列出系统变量,set能列出系统变量和用户变量。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值