Shell基础 - Bash基础功能
- 历史命令 history
选项: -c 清空历史命令 -w 立即保存历史命令
Linux 下输入过的历史命令,都会保存在根目录下的:~/root/.bash_history 文件中
默认保存 1000 条,可在 /etc/profile 文件中修改环境变量
!ser : 执行最后一条以 ser 开头的命令
!! : 再次执行上一条命令 - 定义别名
# alias vi = “vim” // 重启系统消失
# unalias vi
永久生效
# vi /root/.bashrc - 输出重定向
标准输出重定向:命令 > 文件 覆盖的方式 命令 >> 文件 追加的方式
标准错误输出重定向:错误命令 2> 文件 覆盖方式 错误命令 2>> 文件 追加方式
a、以覆盖的方式,把正确输出和错误输出都保存到同一个文件
格式:命令 > 文件 2>&1
命令 &> 文件
b、以追加的方式,把正确输出和错误输出追加到同一个文件
格式:命令 >> 文件 2>&1
命令 &>> 文件
c、把正确的输出追加到文件 1,错误输出追加到文件 2
格式:命令 >> 文件 1 2>> 文件 2 - 脚本执行连接符
; 代表顺序执行 eg: 命令 1; 命令 2
&& 上一条命令成功执行了再执行下一条 eg: 命令 1&& 命令 2
|| 上一条命令执行不成功才执行 eg: 命令 1|| 命令 2
| 命令 1 的正确输出作为命令二操作的对象 eg: 命令 1| 命令 2 - grep 命令
# grep [选项] "搜索内容" 文件
选项:
-i : 忽略大小写
-n:输出行号
-v:反向查找
–color=auto 搜索出的关键字用颜色显示 - 自定义变量
变量可以由字母、数字、下划线组成,但是不能以数字开头
变量的类型默认都为字符串类型,如果需要进行数值运算,必须修改变量类型为数值型
变量用等号连接,等号2边都不能有空格,若变量值有空格,需要使用单引号包括
如果需要增加变量的值,变量需要用双引号包含:“$变量名”或者用${变量名}包含
如果把命令的结果作为变量值赋予变量,需要使用反引号或$()包含命令
变量设置:a=123
变量调用:echo $name
变量查看:set
变量删除:unset name 预定义变量
预定义变量 作用 $? 最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行,如果变量值非0,证明上一个命令执行不正确。 (echo $?) $$ 当前进程的进程号(PID) $! 后台运行的最后一个进程的进程号(PID)
接收键盘输入
# read [选项] [变量名]
选项:
-p "提示信息" 在等待read输入时,输出提示信息
-t 秒数 read命令会一直等待用户输入,指定等待时间
-n 字符数 read命令只会接受指定的字符数,就会执行
-s 隐藏输入的数据,适用于密码输入
代码例子:#! /bin/bash read -t -p "please input your name: " name
# 提示请输入姓名,等待10秒,将用户输入保存到变量名name中
echo "Name is $name" read -s -t -p "please enter your age: " age
# 年龄是隐私,用"-s" 选项隐藏输入
echo -e "\n"
echo "Age is $age" read -n -t -p "please select you gender[M/F]: " gender
# 使用"-n 1" 选项只接收一个输入字符就会执行(不用回车)
echo -e "\n"
echo "Sex is $gender"Code
declare声明变量类型
# declare [+/-] [选项] 变量名
选项:
-:给变量设定类型属性
+:取消变量的类型属性
-i:将变量声明为整数型
-x:将变量声明为环境变量
-p:显示指定变量的被声明的类型
其他方法:数值运算使用:cc = $(($aa+$bb)) 或 cc = $[$aa+$bb]
- 只显示目录,横排显示
ls -l |grep ^d |awk '{printf "%s ",$9}'|sort -n
竖排显示
ls -l |grep ^d |awk '{{printf "%s \n",$9}}' |sort -n - 求2个文件交集
sort a b | uniq -d (都存在) - 求2个文件差集
sort a b b | uniq -u (a存在 b不存在)
Shell基础 - Bash基础功能的更多相关文章
- Shell编程——bash基础知识
# Bash中自动补全时忽略大小写 # 编辑~/.inputrc(没有的话,就新建一个),在最后加一行: set completion-ignore-case on # 若要用方向键Up,Down来搜 ...
- linux笔记:shell基础-bash基本功能
历史命令的调用: 命令和文件补全(如果当前有多个可选的补全,则按2次tab键,可以列出所有的可选项): 命令别名: 让别名永久生效: 删除别名: bash常用快捷键: 标准输入输出: 输出重定向: 输 ...
- Linux学习 -- Shell基础 -- Bash基本功能
历史命令 history -c clear -w 写入 ~/.bash_history 默认保存1000条, 可在/etc/profile中修改 调用 Tab补全 命令.目录.文件 命令别名 ...
- shell脚本语法基础汇总
shell脚本语法基础汇总 将命令的输出读入一个变量中,可以将它放入双引号中,即可保留空格和换行符(\n) out=$(cat text.txt) 输出1 2 3 out="$(cat te ...
- cmd 与 bash 基础命令入门
身为一个程序员会用命令行来进行一些简单的操作,不是显得很装逼嘛!?嘿嘿~ ヾ(>∀<) cmd 与 bash 基础命令入门 简介 CMD 基础命令 ...
- SHELL脚本--变量(基础)
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 变量存在于内存中.假设变量str,设置或修改变量属性时,不带$ ...
- linux的基本操作(shell 脚本的基础知识)
shell 脚本的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本 ...
- shell 脚本编写基础
在进行Linux测试时编写脚本是必不可少的,Shell脚本的名称可以随便定义,也不要什么后缀名,例如可以写abc,smartzip这类名称,运行时只要键入 ./smartzip就能运行脚本了.. 每行 ...
- Shell编程入门基础上
前言 为什么学 Shell Shell 脚本语言是实现 Linux/UNIX 系统管理及自动化运维所必备的重要工具, Linux/UNIX 系统的底层及基础应用软件的核心大都涉及 Shell 脚本的内 ...
- SHELL脚本编程基础知识
SHELL脚本编程基础知识 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux之父Linus有一句话很经典:"Talk is cheap, show me the ...
随机推荐
- 01-HTML介绍
1.WEB标准 web准备介绍: w3c:万维网联盟组织,用来制定web标准的机构(组织) web标准:制作网页遵循的规范 web准备规范的分类:结构标准.表现标准.行为标准. 结构:html.表示: ...
- codeforces#580 D. Kefa and Dishes(状压dp)
题意:有n个菜,每个菜有个兴奋值,并且如果吃饭第i个菜立即吃第j个菜,那么兴奋值加ma[i][j],求吃m个菜的最大兴奋值,(n<=18) 分析:定义dp[status][last],statu ...
- Python_计算文件夹大小
计算文件夹大小 os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.path.join(path1[, path2[, ...]]) 将 ...
- Python之加密模块
hashlib模块 加密方式以md5方式加密举例 是标准模块,直接导入即可 还有其他的加密方式,比如:.sha1()..sha224()..sha256()等,加密后的字符串长度更长,安全性更高 一. ...
- 一个出色的表格(React实现__ES5语法)
本文主要是<React快速上手开发>一书中,第三章的内容代码整理,因为书中的代码零零散散,所以自己将整理了一下. 排序和编辑功能 <script> var header = [ ...
- Docker : Tomcat Clustering with Load Balancer (Tomcat and Nginx)
Tomcat Clustering Series Part 5 : NginX as Load Balancer - Ramki Technical Bloghttps://www.ramkitech ...
- VS2008引入头文件包含目录和lib库目录
全局级别的引入 为VS所有项目设置包含目录和库目录,对所有项目都有效 如下图所示:工具-选项-项目和解决方案-VC++目录-包含文件:在此添加头文件目录即可 工具-选项-项目和解决方案-VC++目录- ...
- oracle创建视图时一些问题
这几天创建视图的时候,遇见的问题. 一:创建视图的时候Oracle-报错:文字与格式字符串不匹配(ORA-01861) 我创建的时候用的 是to_date 然后我改成了to_char select X ...
- [转帖]迎战AMD 7nm 64核EPYC 英特尔至强也玩起了胶水以及性价比
迎战AMD 7nm 64核EPYC 英特尔至强也玩起了胶水以及性价比 Intel 最强CPU 从最开始的双核 到现在的 28核 发展迅猛. https://www.cnbeta.com/article ...
- mybatis事务管理机制详解
1.mybatis事务的配置和使用 mybatis事务有两种使用方式: (a):使用JDBC的事务管理机制:即使用java.Sql.Connection对象完成对事务的提交,回滚和关闭操作. (b): ...