学习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月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
420 9
|
3月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
310 3
|
6月前
|
Shell
Shell脚本循环控制:shift、continue、break、exit指令
使用这些命令可以让你的Shell脚本像有生命一样动起来。正确使用它们,你的脚本就能像一场精心编排的舞蹈剧目,既有旋律的起伏,也有节奏的跳跃,最终以一场惊艳的表演结束。每一个动作、每一个转折点,都准确、优雅地完成所需要表达的逻辑。如此,你的脚本不只是冰冷的代码,它透过终端的界面,跳着有节奏的舞蹈,走进观众——使用者的心中。
270 60
|
3月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
9月前
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
5月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
567 0
|
7月前
|
存储 Unix Shell
确定Shell脚本在操作系统中的具体位置方法。
这对于掌握Linux的文件系统组织结构和路径方面的理解很有帮助,是我们日常工作和学习中都可能使用到的知识。以上讲解详细清晰,应用简便,是每一个想要精通操作系统的计算机爱好者必备的实用技能。
182 17
|
7月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
200 4
|
7月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
404 3
|
8月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
631 25