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:设置别名
随机推荐
- 内网穿透之frp
官网文档:https://gofrp.org 1 Frp介绍frp 是一个开源.简洁易用.高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议.frp 项目官网是 h ...
- Docker可视化容器管理工具之Portainer
官网:https://www.portainer.io/ 仓库地址:https://hub.docker.com/r/portainer/ Portainer 是一个轻量级的管理 UI ,可让你轻松管 ...
- ContosoRetailDW数据库恢复问题
https://www.microsoft.com/en-us/download/details.aspx?id=18279 下载 ContosoBIdemoBAK.exe和ContosoBIdemo ...
- Codeforces Round 890 (Div. 2)
Tales of a Sort 题解 找到最大的能够产生逆序对的数即可 暴力\(O(n^2)\)枚举即可 const int N = 2e5 + 10, M = 4e5 + 10; int n; in ...
- shp转featureclass
public void ConvertShapefileToFeatureClass() { // Create a name object for the source (shapefile) wo ...
- js面试题-代码实现
新 API 最新的 url 参数获取的 API? URLSearchParams // 有如下一个url: http://localhost?a=1&b=2 function getUrlPa ...
- .NET 7 中的限流
.NET 中的限流 https://devblogs.microsoft.com/dotnet/announcing-rate-limiting-for-dotnet/ 这里我们要宣布的是集成为 .N ...
- 2024年1月Java项目开发指南2:项目设计
确定软件架构 1.前端用什么技术,什么框架,什么版本 2.后端用什么技术,什么框架,什么版本 3.用些什么软件,软件版本? 比如: 前端:vue3 + Element-Plus + Axios 后端: ...
- 【转载】理解分布式id生成算法SnowFlake
分布式id生成算法的有很多种,Twitter的SnowFlake就是其中经典的一种. https://segmentfault.com/a/1190000011282426 概述 SnowFlake算 ...
- nginx如何配置代理转发
Nginx是个厉害的服务器,可以配置多个服务器,一个server就是一个服务器server { listen 80; server_name *.yourdomain ...