Linux常用命令总结~认识与学习bash

变量键盘读取、数组与声明:read,array,declare

read

read [-pt] variable
参数:
-p : 后面可以接提示符
-t : 后面可以接等待的秒数。

# read -p "Please keyin your name :" -t 30 named
提示用户30秒内输入自己的大名,将该输入字符串作为名为named的变量内容

declare

declare/typeset
declare 或typeset是一样的功能,就是声明变量的类型。如果使用declare后面并没有接任何参数,那么bash就会主动将所有变量名称与内容全部调出来。

declare [-aixr] variable
参数:
-a : 将后面名为variable的变量定义成为数组(array)类型
-i : 将后面名为variable 的变量定义成为整数数字(integer)类型
-x : 用法与export 一样,就是将后面的variable变成环境变量
-r : 将变量设置成为 readonly 类型,该变量不可被更改内容,也不能重设

# declare -i sum=100+300+50
450  

变量类型默认为“字符串”,所以不指定变量类型,则1+2为一个字符串而不是计算式。
如果需要非字符串类型的变量,那就得要进行变量的声明才行。

数组变量类型

# var[1]="small min"
# var[2]="big min"
# var[3]="nice min"
# echo "${var[1]},${var[2]},${var[3]}"

对于数组变量类型,建议直接以${数组}的方式来读取

ulimit
可以用于限制用户的某些系统资源,包括可以打开的文件数量、可以使用的CPU时间、可以使用的内存总量等。

ulimit [-SHacdfltu] [配额]
参数:
-a : 后面不接任何参数,可列出所有的 限制额度
-f : 此shell可以创建的最大文件容量,单位为KB
-l :可用于锁定的内存量
-t : 可使用的最大CPU时间
其他可以自己用man ulimit进行查看

# ulimit -f 10240
限制用户仅能创建10MB以下的容量的文件

若改天你一直无法创建一个大容量的文件,记得查看ulimit的信息。
想要复原ulimit的设置最简单的方法就是注销再登录。

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

变量设置方式说明
${变量#关键字}若变量内容从头开始的数据符合“关键字”,则将符合的最短数据删除
${变量##关键字}若变量内容从头开始的数据符合“关键字”,则将符合的最长数据删除
${变量%关键字}若变量内容从尾向前的数据符合“关键字”,则将符合的最短数据删除
${变量%%关键字}若变量内容从尾向前的数据符合“关键字”,则将符合的最长数据删除
${变量/旧字符串/新字符串/}若变量内容符合“旧字符串”,则第一个旧字符串会被新字符串替换
${变量//旧字符串/新字符串}若变量内容符合“旧字符串”,则全部的旧字符串会被新字符串替换

命令别名设置: alias , unalias

# alias lm='ls -l | more'

至于如果要取消命令别名的话,可以使用unalias 
# unalias lm

历史命令:history

history [n]
history [-c]
history [-raw] histfiles
参数:
n : 数字,是要列出最近的n条命令行的意思
-c : 将目前的shell中的所有的history内容全部消除
-a : 将目前新增的history命令新增入histfiles中,若没有加histfiles,则默认写入~/.bash_history
-r : 将histfiles的内容读到目前这个shell的history记忆中。
-w : 将目前history记忆内容写入histfiles中

# history 3

# !number
# !command
# !!
参数:
number : 执行第几条命令的意思
command : 由最近的命令向前搜寻命令串开头为command的那个命令,并执行
!! : 就是执行上一个命令

# !66
# !!
# !al

bash 的登录于欢迎信息: /etc/issue,/etc/motd

你想要让用户登陆后取得一些信息,例如你想要让大家都知道的信息,那么可以将信息加入/etc/motd 里面去。
# vi /etc/motd
Hello everyone

bash 的环境配置文件

我们前面讲过,命令别名、自定义变量在你注销bash后就会失效,所以你想保留你的设置,就得要将这些设置写入配置文件才行。

login shell : 取得bash时需要完整的登录流程的,就称为 login shell。
non-login shell : 取得bash接口的方法不需要重复登录的举动。

login shell 其实只会读取下面两个配置文件:

  1. /etc/profile :这是系统整体的设置,最好不要修改
  2. ~/.bash_profile 或 ~/.bash_login 或 ~/.profile : 属于用户个人设置,你要改自己的数据,就写入这里。

/etc/profile (login shell 才会读 )

设置整体环境,没事不要随便修改
这个文件设置的主要变量有:

PATH : 会依据UID决定PATH变量要不要含有sbin的系统命令目录;
MAIL : 依据账号设置好用户的mailbox 到 /var/spool/mail/账号名;
USER: 根据用户的账号设置此变量的内容;
HOSTNAME: 依据主机的hostname命令决定此变量内容;
HISTSIZE: 历史命令记录条数。

它还会去调用外部的设置数据

  • /etc/inputrc
    其实这个文件并没有被执行。不建议修改
  • /etc/profile.d/*.sh
    其实这是个目录内的众多文件。在/etc/prifile.d/这个目录内且扩展名为.sh ,另外用户能有r的权限,该文件就会被/etc/profile调用。
  • /etc/sysconfig/i18n
    这个文件是由/etc/profile.d/lang.sh调用的。也是bash默认使用何种语系的重要配置文件。

~/.bash_profile(login shell 才会读)
bash 在读完了整体环境设置的/etc/profile并借此调用其他配置文件后,接下来则会读取用户的个人配置文件。在login shell的bash环境中,所读取的个人偏好配置文件其实主要有三个:

  1. ~/.bash_profile
  2. ~/.bash_login
  3. ~/.profile

其实bash的login shell 设置只会读取上面三个文件的其中一个,而读取的顺序则是依照上面的顺序。

其实~/.bash_profile会再调用 ~/.bashrc 的设置内容。

source : 读入环境配置文件的命令

source 配置文件名

# source ~/.bashrc 
将主文件夹的 ~/.bashrc 的设置读入目前的bash环境中
# . ~/.bashrc

利用source 或小数点(.)都可以将配置文件的内容读进目前的shell环境中。

~/.bashrc (non-login shell 会读)
这里面会主动调用/etc/bashrc这个文件,而/etc/bashrc帮我们定义出下面的数据:

  • 依据不同 的UID规定umask的值
  • 依据不同的UID规定提示符(就是PS1变量)
  • 调用/etcprofile.d/*.sh的设置
  • 其他相关配置文件: /etc/man.config 、~/.bash_history 、~/bash_logout
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值