bash 学习
学习bash shell 第一天
在百度百科上找的解释
笨办法bash shell ---- 离开舒适区,刻意练习
为什么使用shell编程 ----可以把一些复杂的命令简单化,自动的实现默些功能,有规律的可以用shell来做
不适合使用shell编程

学习bash shell 网站https://wangdoc.com/bash/
实验准备
[root@bash ~]# uname -a
Linux bash 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@bash ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
vim的配置文件
系统级/etc/vimrc
用户级$HOME/.vimrc
对比vi和vim差异
[root@bash ~]# ll /usr/bin/vi
-rwxr-xr-x. 1 root root 928056 Oct 14 2020 /usr/bin/vi
[root@bash ~]# ll /usr/bin/vim
-rwxr-xr-x. 1 root root 2337208 Dec 16 2020 /usr/bin/vim
[root@bash ~]# rpm -qf /usr/bin/vi
vim-minimal-7.4.629-7.el7.x86_64
[root@bash ~]# rpm -qf /usr/bin/vim
vim-enhanced-7.4.629-8.el7_9.x86_64
也可以查看vi或vim的版本来对比差异
[root@bash ~]# vim --version | more # +syntax
[root@bash ~]# vi --version | more # -syntax
配置vim 语法高亮 显示行号
语法高亮 # export $TERM=xterm
[root@bash ~]# echo $TERM #在putty中
xterm
显示行号 :set number
[root@bash ~]# vi /etc/vimrc #在全局下设置 加上 set number
配色方案
[root@bash ~]# ls /usr/share//vim/vim74/colors/
blue.vim delek.vim evening.vim murphy.vim README.txt slate.vim
darkblue.vim desert.vim koehler.vim pablo.vim ron.vim torte.vim
default.vim elflord.vim morning.vim peachpuff.vim shine.vim zellner.vim
字体颜色
[root@bash ~]# vi /etc/vimrc #在全局下设置 加上colorscheme evening
第一个练习
[root@bash ~]# touch 05-30-01.sh
[root@bash ~]# vim 05-30-01.sh
1 # 清除
2 # 以root身份运行
3
4 cd /var/log
5 cat /dev/null > messages # null 类似与黑洞 进去了出不来
6 cat /dev/null > wtmp # 日志文件
7 echo "log 清除成功!"
[root@bash ~]# chmod +rx 05-30-01.sh
[root@bash ~]# ./05-30-01.sh
log 清除成功!
第二个练习
[root@bash ~]# vim 05-30-3.sh
1 #!/bin/bash
2 #一个bash脚本的正确开头部分
3
4 #当然要以root身份运行这个脚本
5
6 # 如果使用变量,这样更加灵活,优雅
7 LOG_DIR=/var/log
8
9 cd $LOG_DIR
10
11 cat /dev/null > messages
12 cat /dev/null > wtmp
13 echo "清除成功"
14 exit # 这个命令是一个正确,合适的退出的办法
15 #不带任何参数的exit,将返回退出的状态码
[root@bash ~]# chmod +rx 05-30-3.sh
[root@bash ~]# ./05-30-3.sh
清除成功
练习代码
[root@bash ~]# vim 05-30-2.sh
1 #!/bin/bash
2 #联系:显示时间和日期,列出所有登录的用户,系统运行时间
3 #并将上述信息保存到一个log file中
4
5 LOG_FILE=/temp/02-lab1.log
6 date
7 w
8 uptime
9
10 echo "" >> $LOG_FILE
11 date >> $LOG_FILE
12 w >> $LOG_FILE
13 uptime >> $LOG_FILE
14[root@bash ~]# ./05-30-2.sh
Mon May 30 18:17:28 CST 2022
18:17:28 up 5:52, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 10:04 6:44m 0.30s 0.30s -bash
root pts/0 192.168.114.1 14:38 0.00s 0.31s 0.00s /bin/bash ./05-
18:17:28 up 5:52, 2 users, load average: 0.00, 0.01, 0.05
#!/bin/bash
# 说明:这是一个联系date的脚本
echo "The number of days since the year's beginning is `date +%j`."
# +%j 用给出今年是本年的第几天
# 注意不要少了+号
echo "THE number of seconds elconds since 1970/07/01 is `date +%s`."
# +%s 将输出从UNIX元年到现在为止的秒数
PREFIX=temp
SUFFIX=$(date +%s)
FILENAME=$PREFIX.$SUFFIX
echo $FILENAME
#这是一种常用的非常好的办法来生成的“唯一”临时文件的方法
#拍砖:但是,如果在一秒内需要有多个临时文件呢?
#但是,总是要比$$要一些
exit 0
bash 学习的更多相关文章
- Linux基础知识回顾及BASH学习
2019-2020-030189224 <网络攻防技术与实践>第一周学习总结 Linux基础知识错题回顾 1.Linux中使用(B)命令新建空白文件. A .mkdir B .touch ...
- 跟着鸟哥学Linux系列笔记3-第11章BASH学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...
- bash学习
if 的使用 declare -i x=10 if [ $x -lt 14 ];then echo $x'小于14'; elif [ $x -gt 9 ];then echo $x'大于9'; els ...
- bash学习之变量的显示和设置
显示变量:echo $MAIL或者 echo ${MAIL} [CJP@CJP ~]$ echo $MAIL /var/spool/mail/CJP [CJP@CJP ~]$ echo ${MAIL} ...
- bash学习之环境变量
1.查看系统存在的环境变量env 和 export env命令:查看环境变量 [CJP@CJP ~]$ env HOSTNAME=CJP SHELL=/bin/bash HISTSIZE=1000 U ...
- BASH 学习笔记小结
1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在 ...
- linux bash学习(一)
1.请你以 read 指令的用途,撰写一个 script ,他可以让使用者输入:1. first name 与 2. last name, 最后并且在屏幕上显示:“Your full name is: ...
- git Bash 学习
,ranh新建一个本地仓库并与github连接的方法 注:该终端也具有按tab键补全功能,应该合理应用 1. 新建一个文件夹,并将git bash的位置转到相应文件夹下(cd 命令转移) 2.git ...
- bash学习记录
bash: 管理员: 提示符# 普通用户:提示符$ 环境变量 A=3(变量是指内存空间,A指的是内存空间的名称-变量标示符) PS1 \u@\h:\w\$ \u用户名 \h主机名 \w工作目录的 ...
- bash 学习笔记
shell:能够操作应用程序的接口就称为shell. Linux由C编写的. TAB键的使用 alias:设置别名
随机推荐
- VScode之远程开发
之前使用过PyCharm的远程开发,很好用,不过还是有几个局限性: 只能用于Python语言: 本地和服务器都需要有一份代码,这两份代码是完全同步的: 一.配置免密远程登录 1.首先检查本地是否有已生 ...
- 数据库管理软件之DataGrip
DataGrip 是由JetBrains公司推出的数据库管理软件,DataGrip支持几乎所有主流的关系数据库产品,如DB2.Derby.H2.MySQL.Oracle.PostgreSQL.SQL ...
- HZNU Winter Trainning 7 补题 - Zeoy
CodeForces - 1660C 题目传送门:https://vjudge.net/contest/535955#problem/C 题意:询问一个字符串最少删去几个字符,能够把这个字符串变成aa ...
- Mybatis【4】-- 关于Mybatis别名定义
代码直接放在Github仓库[https://github.com/Damaer/Mybatis-Learning ],可直接运行,就不占篇幅了. 我们下面需要改进的是别名,也趁这个机会介绍一下别名的 ...
- linux 安装 docker
1.安装 yum-utils yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 --skip-broken 执行如果 报错 ...
- Ant Design Pro项目ProTable怎么获取搜索表单值
前情 公司有经常需要做一些后台管理页面,我们选择了Ant Design Pro,它是基于 Ant Design 和 umi 的封装的一整套企业级中后台前端/设计解决方案. 产品效果图 最新接到的一个后 ...
- 介绍 MSTest Runner - CLI, Visual Studio 等更多
介绍 MSTest Runner - CLI, Visual Studio 等更多 https://devblogs.microsoft.com/dotnet/introducing-ms-test- ...
- PG 实现 Dynamic SQL
CREATE OR REPLACE FUNCTION public.exec( text) RETURNS SETOF RECORD LANGUAGE 'plpgsql' AS $BODY$ BEGI ...
- 权限控制(acl,rbac)
目录 一.权限控制(acl,rbac) 一.权限控制(acl,rbac) 将来我们编写的项目主要分成两类:公司内部项目和互联网项目 公司内部项目 使用RBAC-基于角色的访问控制 什么是RBAC? R ...
- okhttp3设置代理(http/https)
最近项目网络请求需要设置代理,记录一下.http和https都可以. OkHttpClient.Builder builder = new OkHttpClient.Builder(); //代理服务 ...