shell 的特性:命令行展开,变量赋值,以及文件层次标准(history)

bash默认会保存以前执行过的命令列表

当前shell的进程保存在缓冲区中

缓冲区中的命令会在shell退出后保存在文件中    .bash history

使用上下箭头可以翻看此前执行过的命令

history:

!数字  :  执行history中第数字条命令

!!   :  上一条命令

!-数字:表示执行命令列表中的倒数第数字条命令

ESC .  : 执行上个命令的最后参数

! string:执行命令列表中最后一个以string开头的命令

- d :删除第数字条记录

-c:清空history列表

-a:追加当前会话的命令到历史列表中去

命令历史相关的环境变量

HISTSIZE :查看历史命令中可以保存的个数

HISTFILE:历史命令保存的文件

HISTFILESIZE : 历史文件中可以保存的个数

HISTCONTROL:控制命令历史的生成机制

ignoredups:忽略记录重复的目录,连续的重复命令

ignorespace:以空格开头的命令不会被记录

ignoreboth:同时具有上面两种特性

以.开头的文件为隐藏文件,使用    ls -a查看

shell中的变量赋值:

变量名=值

注意:变量名在赋值时不需要在前面加$符号

变量名只能包含数字,字母,和下划线,并且不能以数字开头

变量名区分大小写

尽量能见名知义

FHS:文件层次标准

/bin        存放可执行的二进制程序,普通用户和管理员都可执行的命令

/sbin       管理员才能执行的命令

运行正常功能的程序存放位置

/usr/bin

/usr/sbin

用来存放第三方软件的程序

/usr/local/bin

/usr/local/sbin

/boot    存放系统引导程序 :内核,ramfs文件 ,bootloader(grub)

/dev      设备文件

/etc       配置文件

/etc/sysconfig : 系统级别的应用

/etc/init.d         :系统服务脚本

/home    普通用户,默认在/home下有一个与其名称同名的目录,作为用户的家目录

/root       管理员的家目录

/lib ,/lib64    库文件

/media        专用挂载位置,通常用于挂载可携带设备

/mnt          专用茬位置,用于挂载额外的存储设备

/misc         杂项,备用目录

/opt          可选目录,通常用于安装第三方软件

/proc       所显示的文件都不是文件,伪文件系统,运行中的内核参数映射

/sys         伪文件系统,系统级别的用于配置硬件设备相关参数

/srv        为服务提供数据存放位置的

/tmp       临时文件系统,默认存放30天

/usr         shared 所有遵循协议的系统都可以使用   readonly  只读

/usr/include    头文件存放位置

/var         经常发生变动的文件

/var/log

/var/lock

/var/run

/var/cache

时间: 2024-08-26 04:55:50

shell 的特性:命令行展开,变量赋值,以及文件层次标准(history)的相关文章

Linux命令之bash的基础特性(1)(命令历史、命令补全、路径补全、命令行展开。)

命令历史 history: 环境变量: HISTSIZE:命令历史记录的条数 HISTFILE:~/.bash_history HISTFILESIZE:命令历史文件记录历史的条数 history -d OFFSET : 删除某条历史记录 history + 数字:显示最近n条历史记录命令 调用历史命令: !+数字:例如!3:重复第三条历史命令 !!:重复上一条命令 !string:最近一次以指定字符串开头的命令 调用上一条命令最后一个参数: !$ ESC  然后再按  . Alt + . 控制

bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

bash特性:命令执行状态返回值 bash命令的执行状态分为两种:?1. 成功,状态返回值为0.?2. 失败,状态返回值为1-255.bash使用特殊变量$?保存最近一条命令的执行状态结果:echo $? bash命令的执行结果:成功 bash命令的执行结果:成功 bash命令的执行结果:失败 bash命令的执行结果:失败 bash特性:命令行展开 ~:可以展开当前登录用户的家目录.~USERNAME:可以展开指定用户的家目录.{}:分组符号,承载以逗号,为分割符号的路径列表,并将其展开为多个路

Linux (rz、sz命令行)与本地电脑 命令行上传、下载文件

Linux 与本地电脑直接交互, 命令行上传.下载文件. 一.lrzsz命令行安装: 1.rpm安装:(链接: http://pan.baidu.com/s/1cBuTm2 密码: vijf) rpm -ivh lrzsz-0.12.20-22.1.x86_64.rpm 2.yum 安装: yum install lrzsz 二.命令使用: 1.发送到本地: sz 文件名 2.上传到服务器: rz -be 在弹出的框中选择文件,上传文件的用户和组是当前登录的用户

Linux命令行下svn ignore忽略文件或文件夹用法

Linux命令行下svn ignore忽略文件或文件夹用法 一.忽略单个目录 1.忽略文件夹 假如目录oa.youxi.com是从svn checkout出来的,在服务器本地目录添加了material,但是不希望把material加入版本控制,因此我们需要忽略掉这个目录首先使用svn status命令查看当前状态[[email protected] oa.youxi.com]# svn status? htdocs/admin/adv/material 添加需要忽略的目录,貌似必须得进入该目录之

MAC - 命令行中用sublime打开指定文件,使用ln命令建立软链接

目前sublime是mac下最好的文本编辑软件,经常要使用它打开一些文件,例如html,js,txt,json等文件,但是sublime2默认不支持在命令行下调用,经过研究发现可以用建立软连接的方式调用,同样原因应该可以用到mac下其它不支持命令行的软件 系统版本:10.9.4 可以使用 open -a /Applications/Sublime\ Text\ 2.app composer.json 但是每次这样输太麻烦,可以用建立软连接的方式调用 ln -s /Applications/Sub

在命令行中加参数的文件复制程序

这篇博文介绍使用命令行参数的编程方法,载体是用于文件复制的程序.这也是我用Markdown编辑器写的第一篇博文.Markdown在写<逆袭大学>时用过,写博文是第一次. 本文正文: 引子 下面的程序,可以完成由a.txt到b.txt的复制. #include <iostream> #include <fstream> using namespace std; int main( ) { char ch; ifstream infile("a.txt"

如何使用命令行编译和运行java文件

相信大家现在一般都在使用IDE环境来开发运行java文件,但我觉得可以在命令行里面简单运行java文件,技多不压身. 接下来我来说一下编译和运行java文件: 第一步,首先下一个入门程序(注意:一定要将程序里面的类名跟保存的文件名称写成一样) 第二步,进入到java文件保存的目录(注意:必须要进入到保存的目录,否则运行会出错) 第四步使用javac HelloWorld.java编译源程序会生成一个.class的中间代码 第五步使用java HelloWorld运行程序(注意java后面的程序结

bat批处理下如何像shell一样将命令执行的效果赋值给变量

在bat下如何实现像shell一样,把执行命令行后的结果赋值给变量呐? 刚开始,可真难为到我了.随着对bat批处理知识熟悉的加深. 学习到了!!! 举个 栗子: svnlook  uuid  C:\Repository\test          # 这行命令什么意思呐.它是svn服务器的命令(因为最近在搞svn的东西啦). # 所以这行命令实现的效果是 返回 test 仓库的 UUID shell 下会这样实现: UUID=`svnlook uuid C:\Repository\test` 

shell如何解析命令行以及eval命令

1.1 shell解析命令行 shell读取和执行命令时的大致操作过程如下图: 以执行以下命令为例: echo -e "some files:" ~/i* "\nThe date:$(date +%F)\n$name's age is $((a+4))" >/tmp/a.log 假设在执行该命令前,已赋值变量"name=longshuai"和"a=24",于是重定向到/tmp/a.log中的结果为: some files