Linux系统 shell基础(一)(编辑中)

shell是操作系统中重要的应用,尤其对linux这种命令行模式的操作系统,shell具有重要的意义。

一、什么是shell

shell是一个命令解释器,提供用户和机器之间的交互。每次我们登录系统后,出现的界面就是shell,相当于我们在界面输入命令,shell把我们输入的内容转换成系统能够理解的内容传递给系统去执行。shell支持特定的语法,有点像c语言,支持逻辑判断,if while语句。

这就是基本的shell。
centos7默认的shell是bash,系统中还支持其他类型的shell,比如zsh、ksh。

二、历史变量(HISTSIZE)介绍及其参数

centos7系统中当前用户输入的命令都储存在用户的家目录下,比如root用户命令就存在/root/.bash_history文件中。

这个文件能储存的命令的数量由HISTSIZE变量决定。这个变量初始值为1000

每次退出终端时,你敲过的命令就会保存在/root/.bash_history文件中。
HISTSIZE变量值的设置在/etc/profile中,这个文件中能够更改很多系统的参数,包括记录命令的数量,记录命令的格式等等。

1、修改系统记录的命令数量
在/etc/profile文件中操作,用vi或者vim打开,定位到46行(顺便复习下vim命令,46j)

更改框中数值为你想要的数值,比如说5000

保存退出,用source命令重载下下 系统的profile使改动生效

看下结果,搞定!

2、修改记录内容,记录每条命令执行的时间
分两种情况,一种是仅对当前终端生效,断开后失效。
命令:HISTTIMEFORMAT="%Y%m%d %H:%M:%S"

永久在/root/.bash_history增加这个内容需要更改/etc/profile文件,操作如下:
跟前面一个例子一样,在/etc/profile文件中操作,用vi或者vim打开,定位到46行(顺便复习下vim命令,46j)

在HISTSIZE行下加入“HISTTIMEFORMAT="%Y%m%d %H:%M:%S"”内容

保存退出,用source命令重载下下 系统的profile使改动生效

断开连接重登下系统,看结果,搞定!

3、永久保存命令的历史纪录
只要给当前用户的家目录中的/root/.bash_history文件加上+a权限即可,即使你设定了HISTSIZE的大小,他仍然会记录你输入的所有命令。
命令:chattr +a ~/.bash_history

4、执行history记录中最后一条命令
命令:!!(两个感叹号)

5、运行第XX条命令
命令:!X(数字)

6、执行历史纪录中最近的一条以条关键字开头的那条历史命令
比如我要执行最近一条init开头的命令,输入!init 他就会执行history记录中最近的那条。可以看到是init 0.

原文地址:http://blog.51cto.com/11934539/2059372

时间: 2024-11-09 10:25:00

Linux系统 shell基础(一)(编辑中)的相关文章

Linux系统管理初步(四)Linux系统的防火墙-netfilter 编辑中

一.Linux的防火墙 防火墙是日常应用中一个重要的维护内容,从防火墙开始我们才真正接触生产环境,网络安全越来越受重视,学好这部分内容是学好运维的重要一步. 一般情况下,桌面级环境中很少有人关注过防火墙,甚至杀毒软件都不装,对防火墙的操作当然不熟悉.真实生产环境中不可能不开防火墙. linux的防火墙在centos6(含)前是netfilter,centos7开始使用新的firewalld,一般的我们从netfilter学起,firewalld是兼容netfilter的规则的. 二.netfil

Linux系统 shell基础(三)

一.shell中的特殊符号 号:通配符,可以匹配零个或任意多个字符? 号:单配符,#号:注释符,该符号后跟的命令或参数不会执行\号:加注在特殊符号前使其失去指令意义|管道符:把一条命令的结果传递给另外一条命令,注意后一条命令不是什么命令都可以,一般是针对文档的命令.例如less.more.head.tail.grep.sed.awk等等.$ :变量前缀,!¥; 多条命令写到一行时用;分割~ 用户家目录替代符,root的家目录,正则中表示匹配符& 放在命令末尾表示把命令放到后台 把正确和错误的结果

linux系统构建基础学习笔记——操作

linux系统构建 ********************************************************                  ---交叉编译环境构建--- 安装arm-linux-gcc-4.3.2 (交叉编译器) tar xzvf arm-linux-gcc-4.3.2.tgz -C /cd /usr/local/arm/4.3.2/bin./arm-linux-gcc -v在/etc/bashrc文件的最后添加如下一行:   export PATH=

linux系统驱动基础学习笔记

Linux驱动: 角色:应用程序 API      操作系统      驱动       实际硬件 功能:1.对设备进行初始化和释放2.把数据从内核传送到硬件和从硬件读取数据3.检测和处理设备出现的错误 Linux驱动程序类型:字符设备:由文件系统管理    (通过设备文件访问)块设备:由文件系统管理网络设备:由协议栈管理      (通过socket访问) 查看系统设备文件ls -l /devcat /proc/devicescat /sys/power/state 属性:文件类型   主设备

linux系统应用层基础面试题目(很完整,暂时没看)

一.填空题: 1. 在Linux系统中,以 文件 方式访问设备 . 2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统. 3. Linux文件系统中每个文件用 i节点 来标识. 4. 全部磁盘块由四个部分组成,分别为引导块 .专用块 . i节点表块 和数据存储块. 5. 链接分为: 硬链接 和 符号链接 . 6. 超级块包含了i节点表 和 空闲块表 等重要的文件系统信息. 7. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,则该八进制数为: 64

Linux学习之六-Linux系统的基础优化

Linux系统的基础优化 何谓'优化'.顾名思义,优化就是采取某些措施使某个东西或者某事物变得更加优异,出色.对于Linux而言,在初期安装好系统之后,也需要对其进行一定的基础优化,可分为安全上的优化,性能上的优化,安装常用软件包等. 1.selinux的优化 查看selinux状态getenforce 临时关闭setenforce 0 永久关闭selinux 需修改相应配置文件vi /etc/selinux/config 或者利用Linux命令中的sed替换 sed -i 's#SELINUX

Linux系统shell脚本编程——生产实战案例

Linux系统shell脚本编程--生产实战案例     在日常的生产环境中,可能会遇到需要批量检查内网目前在线的主机IP地址有哪些,还可能需要检查这些在线的主机哪些端口是开放状态,因此依靠手工来检查是可以实现,但比较费时费力,所以需要结合shell脚本来实现批量检查的功能,那么今天就来做个小小的实验. 1.开发脚本前准备 一般大家都知道,测试主机是否在线,常用的命令无非就是ping.nmap,因此,首先找一个地址来测试下ping命令的效果 [[email protected] scripts]

Linux学习 -- Shell基础 -- Bash基本功能

历史命令 history -c   clear -w   写入 ~/.bash_history 默认保存1000条, 可在/etc/profile中修改 调用 Tab补全 命令.目录.文件 命令别名 alias 别名='原命令' 命令执行顺序: 绝对路径或相对路径 > 别名 > Bash的内部命令 > $PATH环境变量中找到的第一个命令(外部命令) 配置文件:/root/.bashrc 删除:unalias 别名 常用快捷键 输入输出重定向 标准输入输出 输出重定向 注意:2和>

Linux系统常用基础命令

Linux系统常用基础命令 cd->切换目录: pwd->显示当前所在的绝对目录; chmod->用于改变linux系统文件或目录的访问权限; ls->不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等; mkdir->创建文件夹; rm->删除一个目录中的一个或多个文件或目录; rmdir->从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限;注意:不能删除非空目录; mv-&g