Linux系统Bash的常用功能 (2)

在使用Linux时,有时候我们会忘记一些命令的具体参数,此时我们可以通过命令补全功能,来实现补全.补全的按键是TAB.灵活运用命令补全功能,不但可以提高输入效率,还能减小误输入概率.实在是,棒棒哒!

● 命令别名(alias)

有时候我们需要给指定命令设置别名,比如说,一个命令过长,我们可以使用Bash提供的这一特性来将其简化一下.

● Bash程序脚本(Shell)

在Linux上面,Shell脚本发挥着及其强大的功能,我们的主机管理,日常维护,都离不开Shell脚本的支持.

● Shell通配符

除了以上功能外,BASH还支持很多简单的通配符,这对于我们的维护减小了很大的负担.

Bash-Shell常用命令

好了,看了这么多理论,是不是有点懵圈,没关系,我也懵了,不过接下来,我们来点干货,开始实战,看一下Bash常用的相关命令吧.前面的理论可以不看,会操作就行.

◆alias 设置别名◆

alias命令用来设置指令的别名,我们可以使用该命令可以将一些较长的命令进行简化,使用alias时,用户必须使用单引号\'\'将原来的命令引起来,防止特殊字符导致错误,alias命令的作用只局限于该次登入的操作,若要每次登入都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件 /etc/bashrc 中,如果是对指定用户生效则要写入用户家目录中的 ~/.bashrc 中.

这里我不得不罗嗦一下,关于不同类型命令的执行顺序,面试时可能会问到.

NO.1 用绝对路径或相对的方式执行命令
NO.2 别名命令
NO.3 bash 内置命令
NO.4 根据环境变量定义的目录查询找到的命令

[root@localhost ~]# alias --help 命令语法:[ alias [原命令]="新命令" ] -p #打印已经设置的命令别名 [root@localhost ~]# unalias --help 命令语法:[ unalias [命令] ] ◆history 历史命令◆

history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件,该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令.例如:要执行第2个历史命令,则输入!2.

历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取.在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制.

[root@localhost ~]# history --help 命令语法:[ history [选项] ] -c #清空当前历史命令 -a #将历史命令缓冲区中命令写入历史命令文件中 -r #将历史命令文件中的命令读入当前历史命令缓冲区 -w #将当前历史命令缓冲区命令写入历史命令文件中 "!n" #重复执行第n条历史命令 "!!" #重复执行上一条命令 "!字符" #重复执行最近一条以此字符开头的命令 ◆ulimit 磁盘限制◆

ulimit命令用来限制系统用户对shell资源的访问,想象一个状况:我的 Linux 主机里面同时登陆了十个人,这十个人不知怎么搞的,同时开启了 100 个文件,每个文件的大小约 10MBytes,请问一下,我的 Linux 主机的内存要有多大才够,10*100*10 = 10000 MBytes = 10GBytes这样我们的Linux就完蛋了,为了要预防这个情况的发生,所以我们的 bash 是可以『限制用户的某些系统资源』的,包括可以开启的文件数量,可以使用的 CPU 时间,可以使用的内存总量等等.

[root@localhost ~]# ulimit --help 命令语法:[ ulimit [选项] ] -c #清空当前历史命令 -H #严格限制,不能超过此限制 -S #宽限模式,可超过,超过后有警告 -a #列出所有系统限额信息 -f #此Shell可创建的最大容量,默认KB -d #进程可用最大断裂内存(seqment)容量 -l #可用于锁定的内存(lock)量 -t #可使用最大CPU时间,(单位为秒) -u #单一用户可使用最大进程数量

来看一下它的结果的解析吧.

[root@localhost ~]# ulimit -a core file size (blocks, -c) 0 #core文件的最大值为100 blocks data seg size (kbytes, -d) unlimited #进程的数据段可以任意大 scheduling priority (-e) 0 file size (blocks, -f) unlimited #文件可以任意大 pending signals (-i) 98304 #最多有98304个待处理的信号 max locked memory (kbytes, -l) 32 #一个任务锁住的物理内存的最大值为32KB max memory size (kbytes, -m) unlimited #一个任务的常驻物理内存的最大值 open files (-n) 1024 #一个任务最多可以同时打开1024的文件 pipe size (512 bytes, -p) 8 #管道的最大空间为4096字节 POSIX message queues (bytes, -q) 819200 #POSIX的消息队列的最大值为819200字节 real-time priority (-r) 0 stack size (kbytes, -s) 10240 #进程的栈的最大值为10240字节 cpu time (seconds, -t) unlimited #进程使用的CPU时间 max user processes (-u) 98304 #当前用户同时打开的进程(包括线程)的最大个数为98304 virtual memory (kbytes, -v) unlimited #没有限制进程的最大地址空间 file locks (-x) unlimited #所能锁住的文件的最大个数没有限制
Bash-Shell操作环境

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwzssd.html