美文网首页Linux学习之路
Linux编程基础知识进阶篇(指令)

Linux编程基础知识进阶篇(指令)

作者: 浪尖的游鱼 | 来源:发表于2018-12-28 01:11 被阅读2次

综述

linux常用的语言就是shell和python,首先我们得先了解语言的概念


总述

重定向

<<-EOF
EOF


重定向

vim bash.sh

编写一个简单的bash档如下:

cd /home/
ls
子shell&当前shell

我们可以看到用./执行bash档时,没有进入到/home目录下,这种我们称为在子shell中执行,其不影响当前shell的状况(有时候执行成功没有效果的原因)。但是无论是. 执行还是source执行我们都成功进入了home路径下,这我们称之为在当前shell执行

loginshell 和 noliginshell

su nologinshell 不加载用户的shell
su - loginshell 加载用户的shell


加载用户shell&不加载用户shell

可以很明显的看出来,当用不加载用户的shell加载用户时,是不会具有当前加载用户的权限的,很像windows中的游客模式

查看历史记录

history历史记录缓存
~/.bash_history退出后写入缓存
~/.bash_logout退出后执行


linux系统历程

在这一层,顺带按图索骥,理解一下linux系统开机的历程。红字:系统层开机/切换用户历程;蓝字:用户层开机/切换用户历程;黄字:用户层关机历程。
曾经玩过一个游戏:在用户指令关机时,会有一辆小火车开过,所以我们可以把调用小火车开过的程式调用写在?

GNU/bash shell特点

1、命令和文件的自动补齐 shift
2、命令的历史记忆功能:上下键、!number 执行第多少条命令、
!string 找到最近以string开头的命令、!& 上一个命令最后的参数、
!! 执行上一个命令、^R 搜索历史命令
3、别名功能:alias 查看别名、unalias 取消别名、(命名前加\斜线跳过别名)
alias xx=’xx’ 定义临时别名、vim ~/.bashrc 定义永久别名
4.快捷键:^D 退出、^A 光标移动到命令最前、^E 光标移动到命令最后、
^L 清屏、^U 往前的删掉、^K 往后的删掉、^Y 撤销、^M 回车
^S 锁屏、^Q 解除锁屏
5.前后台作业控制:& 后台不保留、nohup 后台保留、screen


新控制台界面 切换界面
tty 看终端、C、Z 将进程暂停到后台去、jobs查看进程
bg 让进程在后台工作、fg 让进程回到前台、kill %杀进程
一个使用技巧:vim ^Z fg
6.输入输出重定向
0,1,2 0进程打开的输入的文件,1进程打开的输出的文件,2进程打开的输出错误的文件
>输出重定向(覆盖)、>>输出重定向(不覆盖)
2>&1 、&> 混合输出、cat < /etc/hosts
7.管道: | tee 截流输入到文件里面 -a追加到文件里面去
8.bash -vx xxx 调试运行
>与|tee的区别

命令排序

; && || (命令返回值echo &?)


&符号相关

元字符

*任意多个字符
?任意一个字符
[]匹配括号内任意一个字符
()在子shell中执行
{}集合
\转义字符
注意点:echo -e “a\tb”

echo颜色输出命令

这是啥 文字色彩 底色

printf格式化输出文本

变量

变量

$? 前一条命令的执行成功与否
$1 传入的第一个参数 $2 $3 位置变量


环境变量
系统级的变量

没有使用环境变量的必要性


其他的变量

中途小练习

练习内容:读取用户指定文档的ip连通性


答案

变量的赋值

变量的赋值

变量的运算

变量的运算1 变量的运算2

bc计算器


bc计算机OR?

变量内容的删除与替换

内容的删除
索引切片操作:echo ${url:5:5}
ina.c
内容的替换

替代

变量的替代1 变量的替代2 变量的替代3 变量的替代4 变量的替代5

假设我们定义了一个变量为:

file=/dir1/dir2/dir3/my.file.txt
可以用${ }分别替换得到不同的值:
${file#*/}:删掉第一个/ 及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file##*/}:删掉最后一个/  及其左边的字符串:my.file.txt
${file#*.}:删掉第一个.  及其左边的字符串:file.txt
${file##*.}:删掉最后一个.  及其左边的字符串:txt
${file%/*}:删掉最后一个 /  及其右边的字符串:/dir1/dir2/dir3
${file%%/*}:删掉第一个/  及其右边的字符串:(空值)
${file%.*}:删掉最后一个 .  及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.*}:删掉第一个 .   及其右边的字符串:/dir1/dir2/dir3/my

记忆的方法为:

#是去掉左边(键盘上#在$的左边)
%是去掉右边(键盘上%在$的右边)
单一符号是最小匹配;两个符号是最大匹配
${file:0:5}:提取最左边的5 个字节:/dir1
${file:5:5}:提取第5 个字节右边的连续5个字节:/dir2
也可以对变量值里的字符串作替换:
${file/dir/path}:将第一个dir 替换为path:/path1/dir2/dir3/my.file.txt
${file//dir/path}:将全部dir 替换为path:/path1/path2/path3/my.file.txt

利用${ } 还可针对不同的变数状态赋值(沒设定、空值、非空值):

${file-my.file.txt} :假如$file 沒有设定,則使用my.file.txt 作传回值。(空值及非空值時不作处理) 
${file:-my.file.txt} :假如$file 沒有設定或為空值,則使用my.file.txt 作傳回值。(非空值時不作处理)
${file+my.file.txt} :假如$file 設為空值或非空值,均使用my.file.txt 作傳回值。(沒設定時不作处理)
${file:+my.file.txt} :若$file 為非空值,則使用my.file.txt 作傳回值。(沒設定及空值時不作处理)
${file=my.file.txt} :若$file 沒設定,則使用my.file.txt 作傳回值,同時將$file 賦值為my.file.txt 。(空值及非空值時不作处理)
${file:=my.file.txt} :若$file 沒設定或為空值,則使用my.file.txt 作傳回值,同時將$file 賦值為my.file.txt 。(非空值時不作处理)
${file?my.file.txt} :若$file 沒設定,則將my.file.txt 輸出至STDERR。(空值及非空值時不作处理)
${file:?my.file.txt} :若$file 没设定或为空值,则将my.file.txt 输出至STDERR。(非空值時不作处理)
${#var} 可计算出变量值的长度:
${#file} 可得到27 ,因为/dir1/dir2/dir3/my.file.txt 是27个字节

相关文章

  • Linux编程基础知识进阶篇(指令)

    综述 linux常用的语言就是shell和python,首先我们得先了解语言的概念 重定向 <<-EOFEOF v...

  • XDH_LESSON3

    LINUX基础学习 昨日复习 1.初步认识指令式编程与函数式编程,了解到指令式编程思维方式。2.了解指令式编程下J...

  • awk介绍

    Linux指令中文说明传送入口 整理自Linux指令中文说明 文本和数据进行处理的编程语言awk 是一种编程语言,...

  • Linux系统学习之:常用命令

    man命令 man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮...

  • Linux指令学习(一)

    man man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等...

  • Scratch少儿编程进阶篇1-垃圾分类

    垃圾分类—Scratch少儿编程进阶篇1 一. 前言 进阶篇是Scratch编程的综合应用,通过进阶篇的内容,希望...

  • Scratch少儿编程进阶篇2-城市绿化

    城市绿化—Scratch少儿编程进阶篇 前言 进阶篇是Scratch编程的综合应用,通过进阶篇的内容,希望大家能够...

  • Scratch少儿编程进阶篇4-中国风唐诗

    中国风唐诗—Scratch少儿编程进阶篇 前言 进阶篇是Scratch编程的综合应用,通过进阶篇的内容,希望大家能...

  • Scratch少儿编程进阶篇3-孙悟空大战白骨精

    孙悟空大战白骨精—Scratch少儿编程进阶篇 前言 进阶篇是Scratch编程的综合应用,通过进阶篇的内容,希望...

  • man命令

    man man命令是linux下的帮助指令,通过man可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息...

网友评论

    本文标题:Linux编程基础知识进阶篇(指令)

    本文链接:https://www.haomeiwen.com/subject/hdujlqtx.html