linux基础(五)

现在看到bash,在写这篇博客的时候已经是第二遍看了

type:bash的内置命令

不加任何参数时,会显示是外部命令还是内部命令

-t:列出的字眼的意思

        file:外部命令

        alias:有别名

        builtin:内部命令

-p:后面接的是外部命令,才会显示完整的文件名

-a:将所有含name的命令都列出来,包括别名


命令的执行:


shell的变量功能


例如:username=/var/spool/mail/user      ......$username.......  直接输入$username代替

变量:就是以一组文字或符号等,来替代一些设置或是一串保留的数据




变量的显示与设置:echo和unset

设置就是=号   XXX=yyyyy     

双引号和单引号:双引号带便原有的特性,单引号仅为一般字符

引号必须要配对,不管单双

`:1旁边的按键,命令行里首先执行`后面的。

例:ll `whereis path`   先执行whereis


环境变量

env

主要注意以下几个:

HOME:代表用户的主文件夹

SHELL:告知目前这个环境使用的shell是哪个程序

HISTORY:记录历史信息的条数

MAIL:读取邮件信箱文件

PATH:执行文件查找的路径

LANG:语系数据

RANDOM:“随机数”的变量



所有变量

set

PS1:提示符的设置

\d:显示日期

\H:完整的主机名

\h:仅取主机名在第一个小数点前的名字

\T:显示时间

\A:显示时间

\u:目前账户名称

\v:BASH的版本信息

\w:完整的工作目录名称

\W:列出工作目录名称

\#:执行的第几个命令

\$:提示符   root为#   其他为$




export  

自定义变量转出环境变量



locale

影响显示结果的语系变量

一般记住LANG和LC-ALL就可以了


系统默认的语系定义在/etc/sysconfig/i18n

变量的有效范围

环境变量=全局变量

自定义变量=局部变量



变量键盘读取、数组与声明:

read:

-p:后面接提示符

-t:后面可以接“秒数”


read atest

this is a test

输入了可以显示



read -p 'please keyin your name:' -t 30 named






declare/typeset:

声明变量的类型

-a:将变量定义为数组型

-i:将变量定义为整数数字型

-x:将变量变为环境变量

-r:将变量设置为只读型

-p:单独列出变量的类型



数组变量类型

array




与文件系统及程序的限制关系

ulimit

-H:严格的设置,必定不能操过这个数值

-S:警告设置

-a:列出所有的限制额度

-c:限制内核文件最大容量

-f:可以创建的单个文件最大容量

-d:可以使用的最大断裂内存

.......  一般做ulimit -a就能看到怎么做 



变量内容的删除、替代与替换

#代表删除,从变量的最前面开始向右删除,删除最短的那个

##代表删除最长的

echo ${path#/*bin:}

%从最后开始向前删除,删除最短那个

%%删除最长那个

echo ${path%:*bin}



替换功能

echo ${path/bin/BIN}  替换第一个

echo ${path//bin/BIN}  替换所有



变量的测试与内容替换

echo ${username-root}   如果没有username,那就取root

username=${username:-root}  如果用:后变量为空或未设置,都能以后面的内容替换


unset str

var=${str-newer}               得出var=newer  str=


str=older   

var=${str-newer}             得出var=older    str=older


unset str

var=${str=newer}            得出var=newer   str=newer


str=older

var=${str=newer}           得出var=older   str=older






unset str

var=${str?无此变量}    




命令的别名和历史命令

alias、unalias

其实就一条:alias XXX=XXXX       

如果要永久设置的话,一般是在~/.bashrc里面




历史命令

history

!!:执行上一个命令

!数字:代表执行地几条

!file:代表找开头是file的命令,执行



type -a 命令查找的顺序


/etc/issue   /etc/motd

/etc/issue:tty登陆的时候显示的信息

/etc/motd:telnet登陆的时候显示的信息




bash环境变量配置

login和non-login shell  

用户名和密码登陆的是login  不用的是non-login

/etc/profile是系统整体设置

~/.bash_profile    ~./bash_login      ~/.profile属于个人用户设置



看/etc/profile文件




/etc/inputrc

一般不修改


/etc/profile.d/*.sh

扩展名为sh的文件



/etc /sysconfig/i18n

系统默认语系


这三个文件login shell只会读取其中一个,顺序如下

~/.bash_profile

~/.bash_login

~/.profile


改变/etc/profile和~/.bash_profile需要source来更新生效。

source filename:




etc/bashrc是redhat特有的

如果.bashrc被误删除了,可以复制etc/skel/.bashrc到家目录  再进行修改


stty -a

列出目前环境的所有按键选项

^代表ctrl

eof:end of file  结束   

intr:代表中断

kill:代表删除现在命令行上面的所有文字

quit:代表送出个quit信号

start:在某个程序停止后,重新启动他的output



设置的话 stty XXX  ^XXX





通配符

*:代表任意字符

?:代表一定有一个任意字符

[]:代表一定有括号里面的一个字符

【-】:在编码顺序内癿所有字符

【^]:代表反向

例:找出 /etc/ 底下以 cron 为开头癿档名

ll -d /etc/cron*





数据流重导向

>     >>

>代表正确的数据输出到某个文档内

>>代表累加形式

cat /etc/passwd>ls1          cat /etc/shadow>>ls1 (ls1的内容就会是passwd+shadow)的内容了



<  <<

cat > catfile < ~/.bashrc

建立catfile,内容从.bashrc中得到

<<代表输入特定字符结束

cat>test<<end

输入end就会结束


管道命令

cut  

-d:后面接分割字符

-f:依据-d

-c:指定的字符长度

cut -d ':' -f 3 /etc/passwd

cut -c 12-20  截取12-20这几个字符


grep

搜寻文档

-a:以text形式找

-c:计算找到的次数

-i:忽略大小写

-n:输出行号

-v:反向选择

--color=auto:自动加亮标记

例:

last |grep 'root'     

last | grep 'root' -v -n 



sort

排序

-f:忽略大小写

-b:忽略前面的空格

-M:以月份来排序

-n:以数字来排序

-r:反向排序

-u:有重复只列出一个

-t:分隔符   

-k:以区间来排序

例:cat /etc/passwd |sort -t ':' -k 3  -n



重复只列出一个

uniq

-i:忽略大小写

-c:计数



cat /etc/passwd | cut -d ':' -f 3| sort -n |uniq -c




wc:

计数

-l:列出行数

-w:列出英文单词数

-m:列出字符数




tee:

双重引导

-a:累加

例:last |tee /testfile

这个命令和>的区别就是会在屏幕上面显示出来而已





字符转换命令

tr:【-ds】

替代或者删除信息

-d:删除信息

-s:去掉重复的字符

cat /passwd |tr '[a-z][A-Z]'



col:把tab键转成空格键




join:

有相同的字符时,可以连接起来


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值