山南网站建设做网站需要什么费用
news/
2025/9/23 15:22:11/
文章来源:
山南网站建设,做网站需要什么费用,微网站建设招聘,网页设计师培训费用图片大全文章目录 Linux Shell脚本文件vim编辑器vi的使用 认识Bash变量环境变量用户操作变量delcare与typeset 命令的别名与历史命名 正则表达式Shell ScriptsShell Scripts良好习惯第一个shell其他shell例子 - 来自鸟哥linux私房菜语法介绍shell 的调试 Linux Shell脚本文件
vim编辑器… 文章目录 Linux Shell脚本文件vim编辑器vi的使用 认识Bash变量环境变量用户操作变量delcare与typeset 命令的别名与历史命名 正则表达式Shell ScriptsShell Scripts良好习惯第一个shell其他shell例子 - 来自鸟哥linux私房菜语法介绍shell 的调试 Linux Shell脚本文件
vim编辑器
vi的使用
一般指令模式 以vi打开一个文件就是vi一般指令模式编辑模式 在一般指令模式下按【i o a r】等按钮会进入编辑模式按Esc退出编辑模式命令模式在一般指令模式中输入【: / ?】按钮有可以进入命令模式进行保存查找等操作。
vi aa.txt
# 输入I之后随便写入然后点Esc退出输入然后加wq保存退出编辑模式按键说明
光标移动
按键说明h 或者左箭头光标向左移动一个字符j 或者下箭头光标向下移动一个字符k 或者上箭头光标向上移动一个字符l 或者右箭头光标向右移动一个字符
你还可以输入数字之后按对应的移动按键以达到一次移动多行的命令
按键说明ctrl f屏幕向下移动一页 相当于page down 按键ctrl b屏幕向上移动一页 相当于page up 按键ctrl d屏幕向下移动半页ctrl u屏幕向上移动半页向下一行,且移动到行头-向上移动一行,且移动到行头n space向后移动n个字符0 或者 Home移动到行头$ 或者end移动到行尾H M L G当前也最上第一个字符中间行第一个字符最后行第一个字符 ,移动到最后一行n G移动到n行gg移动到第一行n Enter向下移动n行
查找与替换
按键说明/word向光标之下查询第一个名称为word的字符串 回车之后光标在该单次第一个字符?word向光标之上查询第一个名称为word的字符串 回车之后光标在该单次第一个字符:n1,n2s/word1/word2/g在n1 n2行中查询 word1 并且用word2替换:1,$s/word1/word2/g在 全文中查询 word1 并且用word2替换:1,$s/word1/word2/gc在 全文中查询 word1 并且用word2替换,替换前询问是否替换
删除复制和粘贴
按键说明x或者X删除一行这种的光标所在字符[n]x删除一行中的n个字符dd删除一行[n]dd向下删除n行d[n]G删除光标所在行到到n行的数据dG删除光标到最后的数据包括光标行d$删除该行光标到最后的字符d0删除改行光标之前的字符(不包含光标)yy复制一行p或者P向下粘贴复制的内容[n]yy复制n行y[n]G复制光标到n行的数据yG复制光标到最后的数据y0复制光标到开头的内容y$复制光标到结尾的内容J将光标所在列与下一列合并,中间使用空格c删除行u向后退一步 相当于windows中的ctrl Zctrlr向前一步相当于windows中的ctrl Y.重复执行上一个命令
一般模式切换到编辑模式说明
按键说明i 或者 I进入插入模式i从当前光标出插入a 或者 A进入插入模式a为从当前光标所在的下一个字符插入o 或者 O进入插入模式从当前光标的下一列开始插入r 或者 R进入插入模式替换当前字符并且插入R的时候会一直替换到按下ESC为止Esc终止编辑模式进入一般指令模式
一般模式切换到命令模式说明
按键说明:w写入:w!强制写入跟权限有关:q退出:q!强制退出:wq保存退出ZZ文件无变化则直接退出有变化则保存退出:w [filename]写道文件filename:r [filename]读取另外一个文件数据:n1,n2 w [filename]将n1到n2行写入filename文件:!command暂时离开vi 执行command按enter回到vi:set nu显示行号:set nonu取消行号
认识Bash
尝试执行一下命令吧
type ls
type -t ls
type -a ls
type cd在控制台输入随机字符之后尝试下面按键组合
按键说明ctrlu /ctrl k删除光标之前的字符串/删除光标之后的字符串ctrla /ctrl e移动光标到最前面/最后面
变量
执行一下命令吧
echo $variable
echo $PATH
echo ${PATH}echo ${myname}
mynameaaa # 不能有空格
echo ${myname}
unset myname
echo ${myname}变量规则 变量与内容用连接 等号的两边不能有空格 变量名称只能是英文字母与数字但是开头不能是数字 变量内容若有空格符可以使用双引号或者单引号’将变量的内容结合起来但是 双引号内的特殊字符可以保持原有特性单引号内的字符则会变成字符串 可以使用\将特殊字符变成一般字符 在一串指令的执行中还需要时候用其它指令信息时候可以使用或者$符号将指令包起来 若变量为扩增变量内容时候使用${变量} 加来累加 若该变量需要用在其他程序执行则使用export来使变量编程环境变量 通常大写字符是系统变量小写字符是自定变量 取消变量的方法为unset 变量名称
环境变量
执行以下命令吧
env
set
PS1[\u\h \w \A #\#]$
PS1\[\e]0;\u\h: \w\a\]${debian_chroot:($debian_chroot)}\u\h:\w\$
echo $?
12nameasd
echo $?
echo $?HOME代表用户的家目录 SHELL告诉我们这个shell使用的是那个程序 HISTSIZE这个是历史命令有关这个是记录的命令条数 MAIL使用mail收信的时候使用的是这个邮箱 PATH执行文件的搜索路径或者是库的路径 使用 : 分割 LANG语系数据 RANDOM随机数的变量
PS1 是shell前面显示的内容
$?是接收的回传的信息
用户操作变量
read atest # 执行之后 随便输入一些内容
echo ${atest}read -p mmm: -t 10 aaa # 10秒内输入变量aaa 提示信息为mmm
echo ${aaa}
delcare与typeset
delcare是将参数作为某种类型定义
a :arrayi :integerx :与export一样将后面的参数设置成环境变量r :read only 不能改变内容也不能unset
sum10030050
echo ${sum}
delcare -i sum10030050
echo ${sum}declare -x sum
export | grep sumdeclare -r sum
sumaaadeclare x sum
declare -p sum命令的别名与历史命名
执行以下命令吧
ls -al | more
alias lmls -al | more
lm历史命名
history
!615 # 615换成你们执行的lm的行号或者是其他的行号
!!
!al好多命令啊就不介绍了反正也记不住用到了再查吧
正则表达式
兼容POSIX的特殊符号
符号含义[:alnum:]代表英文大小写和数字0-9 A-Z a-z[:alpha:]代表英文大小写A-Z a-z[:blank:]代表空格键与Tab键两者[:cntrl:]代表键盘上的控制按键 CR LF Tab Del等[:digit:]代表数字0-9[:graph:]代表除了空格符号空格键与Tab键以外的其他字符[:lower:]代表小写字符 a-z[:print:]代表可以被打印出来的字符[:punct:]代表标点符号[:upper:]代表大写字符 A-Z[:space:]代表空格字符空格键 Tab CR等[:xdigit:]代表16进制数字类型 包括 0-9 A-F ,a-f的数字与字符
正则表达式字符整理
RE字符意义与范例^word意义查找开头是word行grep -n ‘^#’ aa.txtword$意义查找行位是word的行grep -n ‘!$’ aa.txt.意义代表一定有一个任意字符的字符grep -n ‘e.e’ aa.txt\转义字符*意义代表任意多个字符grep -n ‘ess*’ aa.txt[list]意义代表符合字符集RE的字符里面列出想要的字符grep -n ‘g[ld]’ aa.txt[n1-n2]意义代表符合RE的字符里面列出想要的字符范围grep -n ‘[A-Z]’ aa.txt[^list]意义字符集符合RE字符且不要列出的字符grep -n ‘oo[^t]’ aa.txt\{n, m\}意义连续n到m个的字符意义若为{n}则是联系n个的前一个字符意义若为{n, }则是连续n个以上的前一个RE字符grep -n ‘go\{2,3\}g’ aa.txt
正则表达式的延伸
RE字符意义与范例意义重复一个或者以上的前一个RE字符grep -n ‘god’ aa.txt意义另个或者一个的前一个RE字符grep -n ‘go?d’ aa.txt|意义用或的方式找出字符串grep -n ‘gd|good’ aa.txt()意义找出群组字符串grep -n ‘g(la|oo)d’ aa.txt()意义多个重复群组字符串判断echo AxyzxyzxyzxyzC | grep ‘A(xyz)C’
Shell Scripts
shell script 的用处
自动化管理追踪与管理系统的重要工作简单的入侵检测连续指令单一化简单的数据处理跨平台支持
Shell Scripts良好习惯
功能版本信息作者与联系方式版权宣告方式历史记录特殊指定使用绝对路径方式下达需要的环境变量需要提前告知
第一个shell
# !/bin/bash
# Program:
# User input ...
# History
#
read -p Please Input your first name: firstname
read -p Please Input your last name: lastname
echo -e your name is ${firstname} ${lastname}其他shell例子 - 来自鸟哥linux私房菜
利用日期建立文件
# !/bin/bash
# Program:
# User input ...
# History
#
echo -e i will use touch command to create 3 files.
read -p please input your filename : fileuser
filename${fileuser:-filename}
date1$(date --date2 days ago %Y%m%d)
date2$(date --date1 days ago %Y%m%d)
date3$(date %Y%m%d)
file1${filename}${date1}
file2${filename}${date2}
file3${filename}${date3}
touch ${file1}
touch ${file2}
touch ${file3}数值计算
# !/bin/bash
# Program:
# User input ...
# History
#
echo -e you should input 2nums i will multiplying them\n
read -p first number firstnu
read -p first number secnu
total$((${firstnu}*${secnu}))
echo -e \n the result of ${firstnu}*${secnu} is ${total}# !/bin/bash
# Program:
# User input ...
# History
#
echo -e this program will calculate pi value\n
echo -e you should inpyt a float number to calculate pi value.\n
read -p value checking
num${checking:-10}
echo -e start calculate pi value,wait
time echo scale${num}; 4*a(1) | bc -lq以上的脚本都可已正常执行。
语法介绍
入参使用
$# # 入参个数
$ # 入参全拼
${1} # 第一个入参以此类推条件表达式
if [ 条件 ]; then# 条件成立执行内容
fiif [ 条件 ]; then
elif[ 条件 ]; then
else
ficase $变量名称 in第1个变量)# 程序;;第2个变量)# 程序;;*)# 不包含第一个变量的其他变量;;
esacfunction
function fname() {# 程序段
}循环
while [ condition ]
do# 程序
doneuntil [ condition ]
do# 程序
donefor var in con1 con2 con3 ...
do# 程序
donefor (( 初始值; 限制值; 执行步阶 ))
do# 程序
doneshell 的调试
sh -n aa.sh # 检查语法是否错误不执行
sh -n aa.sh # 列出执行过程
sh -x aa.sh # 使用到的内容显示在屏幕上
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912971.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!