学习shell 与shell脚本 学习笔记

简介:

一般模式:

编辑模式:

命令行命令模式: 一般模式下输入:/ ?都会进入命令行模式

我们写vi命令中最常用的方法:

一般模式:

0 移动到这一行的最前面字符处

$移动到这一行的最后面字符处G 移动到这个文件的最后一行

gg移动到这个文件的第一行

n n为数字 光标向下移动n行

/word 从光标位置开始向下搜索一个名为word的字符串

:n1. n2s/word1/word2/g n1 n2 为数字,在n1与n2行之间寻找word1,然后替换成word2

1.$s/word1/word2/g 从头到尾搜索并替换

1.$s/word1/word2/gc 替换的时候需要确认

x X :x是向后删除一个字符,X是向前删除一个字符

dd 删除光标所在的那一行

ndd :n为数字 从光标位置开始,删除向下n列

yy:复制光标所在的那一行

p,P:p是贴在光标的下一行,P是贴在光标的上一行。

u 复原上一个操作

[ctrl]+r 重做上一个操作

. 这个是小数点,意思是重复前一个操作,如果想重复删除,重复粘贴,按下小数点就可以

一般模式:

:set nu 显示行号

变量设置的规定:

1. 变量与变量内容以=来连接

2. 等号两边不能直接接空格符

3. 变量名称只能是英文字母或者数字,但数字不能是开头字符

4. 若有空格,可以使用双引号或者单引号将变量内容结合起来,注意:苏昂引号的特殊字符可以保持变量特性,单引号内的特殊字符仅为一般字符

5. 必要时需要以转义字符\将特殊字符变成一般符号

6. 命令中套命令,用反引号

7. 若变量需要扩展变量内容可以这样:$PATH:/home/staid这样的形式扩展

8. 若改变两需要在其他子程序中执行,则需要用export使变量变成环境变量,如export PATH

9. 通常大写字符为系统默认变量,自行设置的变量可以使用小写字母

10. 取消变量的方法为:unset 变量名称

env列出当前shell环境下的所有变量及其内容

随机数:RANDOM, 这个变量的内容介于0~32767之间

declare –i 申明一个整型的数

[root@staid ~]# declare -i number=$RANDOM*10/32767;echo $number

除了env里面的变量,还有可以用set列出来的变量。set的变量是当前shell下有效

$? 上一个命令执行的状态返回值,成功就是0,不成功就是不同的数,反正不会是0

自定义变量转变为环境变量:export

declare

r 将变量配置为只读。 
x 指定的变量会成为环境变量,可供shell以外的程式来使用。 
i 将后面的变量定义为整数数字。

语系设置:locale

变量键盘读取,数组 与声明:read array declare

read 读取来自键盘输入或者文件的变量

read

-p:后面可以接提示符

-t:后面可以接当代的秒数

[root@staid ~]# read -p "keyin your name:" -t 30 named;echo $named

与文件系统及程序的限制关系:ulimit

ulimit

-H 必定不能超过设定的值

-S:可以超过,发警告信息

[root@staid ~]# vbird="/home/staid/testing/test.x.sh"

[root@staid ~]# echo ${vbird}

/home/staid/testing/test.x.sh

[root@staid ~]# echo ${vbird##/*/}

test.x.sh

[root@staid ~]# echo ${vbird#/*/}

staid/testing/test.x.sh

[root@staid ~]# echo ${vbird%%/*}

[root@staid ~]# echo ${vbird%%/*/}

/home/staid/testing/test.x.sh

[root@staid ~]#

有个图在这儿插入

history命令

history 5

history –c

环境设置文件:bashrc ~/.bashrc ~/.profile profile…., /etc/inputrc source

/etc/sysconfig/i18n 设置语系

/etc/profile 设置变量

个人设置值(~/.bash_profile ~/.bash_login ~/.profile)

~/.bashrc

~/.bash_history

source /etc/profile 来让新加入的变量生效

ls -lda /etc/*[35]*

ls –lad /etc/[!a-z]*

cut命令

[root@staid ~]# echo $PATH|cut -d ":" -f 5

/sbin

[root@staid ~]# echo $PATH|cut -d ':' -f 5

/sbin

[root@staid ~]#

-d分隔符 –f 第几段

last看看这个月的登录者的信息

grep

-c 统计搜索字符串的次数

-i忽略大小写

-n顺序输出行号

-v反向选择

sort

-f 忽略大小写

-n使用纯数字排序

-r反向排序

-u 就是相同的数据中,仅出现一行

-k 按照那个字段来进行排序

uniq

-i忽略大小写

-c 统计计数

wc

-l 仅显示多少行

-w 仅显示多少字

-m多少字符

tee [–a](累加) file 既显示到屏幕上又打印到file文件里

tr 可以用来删除一段消息中的文字,或者是进行文字消息的替换 、

tr –d SET1

-d 删除消息中的SET1字符串

tr –s

替换重复的字符

[root@staid ~]# last |tr '[a-z]' '[A-Z]' 小写字母全部大写

将DOS文件的换行符^M符号删除:

[root@staid ~]# cat /home/test/dostxt|tr -d '\r'

\r指的是DOS换行符。

tar –cvf - /home |gra –xvf –

将home的文件爱你打包但是打包的数据不记录到文件,而是传送到stdout。



本文转自guoli0813 51CTO博客,原文链接:http://blog.51cto.com/guoli0813/350989,如需转载请自行联系原作者

相关文章
|
3月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
135 1
|
4月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
2月前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
81 2
6种方法打造出色的Shell脚本
|
2月前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
99 1
|
2月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
93 2
|
3月前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
72 6
|
2月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
3月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
95 12
|
3月前
|
存储 运维 监控
自动化运维:使用Shell脚本简化日常任务
【9月更文挑战第35天】在IT运维的日常工作中,重复性的任务往往消耗大量的时间。本文将介绍如何通过编写简单的Shell脚本来自动化这些日常任务,从而提升效率。我们将一起探索Shell脚本的基础语法,并通过实际案例展示如何应用这些知识来创建有用的自动化工具。无论你是新手还是有一定经验的运维人员,这篇文章都会为你提供新的视角和技巧,让你的工作更加轻松。
115 2
|
4月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余