当前位置: 首页 > news >正文

济宁网站建设 智雅公司建一个网站多少钱

济宁网站建设 智雅,公司建一个网站多少钱,企业网站建设可分为什么层次,私密浏览器免费版的优缺点1.输出重定向2.多命令批量执行(; 、&&、 ||)3.脚本不同方式执行的区别(source、bash、sh、./)4.理解环境变量5.export6.引号的使用last.命令相关 1.输出重定向 3种数据流: stdin:标准输入&#xf…

  • 1.输出重定向
  • 2.多命令批量执行(; 、&&、 ||)
  • 3.脚本不同方式执行的区别(source、bash、sh、./)
  • 4.理解环境变量
  • 5.export
  • 6.引号的使用
  • last.命令相关

1.输出重定向

3种数据流:

stdin:标准输入,代码0,重定向符号<<<
stdout:标准输出,代码1,重定向符号>>>
stderr:标准错误输出,代码2,重定向符号2>2>>

>2>覆盖写入
>>2>>追加写入


创建一个py脚本分别输出标准输出和错误输出:

map@gzdt-map-poi-yingxiang-offline04 test$ cat logging_demo.py 
print(1)
print(1 / 0)

标准输出&错误输出分别重定向到两个不同文件:
python logging_demo.py >a.file 2>b.file,或者
python logging_demo.py 1>a.file 2>b.file,1可以省略。

标准输出&错误输出重定向到同一个文件:
python logging_demo.py >c.file 2>&1,或者
python logging_demo.py &> c.file

Q1:怎么理解2>&1?
A1:将文件描述符 2(标准错误)重定向到文件描述符 1(标准输出)。
Q2:为什么python logging_demo.py 2>&1 >c.file不可以?
A2:先2>&1会将标准错误输出重定向到标准输出(一般是终端),之后再重定向标准输出到c.file,这只会改变标准输出到c.file,标准错误输出仍然输出到原标准输出(终端)。

2.多命令批量执行(; 、&&、 ||)

;:前后命令不相关的连续执行。例如cat a ; touch b,无论a文件存不存在前面一个命令能否正确执行,后一个命令都会执行,b文件被创建。
&&:前后命令相关的连续执行,只有当前面命令能正确执行($?=0)时,后面的命令才会执行。例如cd dir && pwd,dir存在才会打印dir的路径。
||:前后命令相关的连续执行,只有当前面命令不能正确执行($?≠0)时,后面命令才会执行。前面命令如果能正确执行则后面的命令不再执行。例如cd dir || mkdir dir,如果dir存在,直接进入,不存在则创建。

3.脚本不同方式执行的区别(source、bash、sh、./)

bash、sh、以及相对路径或绝对路径的方式执行,相当于在当前进程中新开了一个子进程用来执行脚本,脚本执行完子进程销毁,子进程中定义的变量&环境不会回传给父进程。
source方式执行相当于在当前进程中执行脚本内容,脚本中的变量&环境操作会影响当前进程。

特别需要注意,管道操作并不会传递环境变量,管道中的每个子进程的环境变量都继承自父进程,例如下面在set_env.sh脚本中设置python环境变量并输出。

map@gzdt-map-poi-yingxiang-offline04 coordinate$ sh ./set_env.sh
Python 2.7.2map@gzdt-map-poi-yingxiang-offline04 coordinate$ sh ./set_env.sh | python -V
Python 3.6.5
Python 2.7.2

从输出结果也可以看到:管道操作并非后面的进程在前面的进程执行完后启动,而是同时启动,只有当前面进程的标准输出是后面进程的标准输入时,前面进程才会一定先于后面进程执行完。

1)bash与sh的区别:可以简单理解为,bash在sh的基础上,增加了更多的拓展特性,适合编写更复杂的脚本,兼容sh。实际生产环境中很多sh仍然链接指向到bash。
2)./相对路径的方式执行时,具体是bash执行还是sh执行,取决于脚本首行的shebang是#!/bin/bash还是#!/bin/sh

4.理解环境变量

这块刚接触linux的时候可能会比较不容易理解,甚至会因为害怕影响别人的系统环境而不敢随意修改…,现在想从进程的角度来理解环境变量。

linux中的环境变量可以分为3个层级:系统级、用户级、会话级。系统级和用户级的修改都需要通过修改相关配置文件实现,修改后如果不重启需要source刷新生效。会话级的环境变量可通过export直接在shell中修改。

日常开发中经常会出现多用户共用linux开发机、多人使用相同用户账号共用linux开发机的情况,每次通过iterm或SecureCRT这样的终端软件连接linux服务器时,都相当于新开了一个会话,其实也就是新起了一个shell进程,这个进程的初始环境变量来源于系统级的环境变量文件和用户级的环境变量文件配置,因为进程间的资源隔离,所以无论是多用户账号登陆,还是单用户账号多人共享登陆,每个shell中的环境变量操作(除非修改用户或系统环境变量配置文件)互不影响,属于会话级别的操作,当断开连接的时候会话结束进程销毁,下次重新连接时新shell进程的环境变量又会根据配置文件初始化。

因此从进程资源的角度来说,只要不修改物理配置文件,是不会影响其它用户的。

5.export

export也是一个环境变量相关的命令。linux中在当前shell中执行一个命令,大多时候都是新起一个子进程执行,这些子进程初始的环境变量继承自当前shell父进程。如果不使用export,当前设置的环境变量只会在当前shell有效,不会继承给子shell。

map@gzdt-map-poi-yingxiang-offline04 coordinate$ value=1
map@gzdt-map-poi-yingxiang-offline04 coordinate$ echo $value
1
map@gzdt-map-poi-yingxiang-offline04 coordinate$ bash
Package bash-completion was not found in the pkg-config search path.
Perhaps you should add the directory containing `bash-completion.pc'
to the PKG_CONFIG_PATH environment variable
No package 'bash-completion' found
bash: /yum: 没有那个文件或目录
manpath: 警告:已经设定了 $MANPATH,忽略 /etc/man_db.conf
manpath: 警告:已经设定了 $MANPATH,忽略 /etc/man_db.conf
map@gzdt-map-poi-yingxiang-offline04 coordinate$ echo $valuemap@gzdt-map-poi-yingxiang-offline04 coordinate$
map@gzdt-map-poi-yingxiang-offline04 coordinate$ export value=1
map@gzdt-map-poi-yingxiang-offline04 coordinate$ echo $value
1
map@gzdt-map-poi-yingxiang-offline04 coordinate$ bash
Package bash-completion was not found in the pkg-config search path.
Perhaps you should add the directory containing `bash-completion.pc'
to the PKG_CONFIG_PATH environment variable
No package 'bash-completion' found
bash: /yum: 没有那个文件或目录
manpath: 警告:已经设定了 $MANPATH,忽略 /etc/man_db.conf
manpath: 警告:已经设定了 $MANPATH,忽略 /etc/man_db.conf
map@gzdt-map-poi-yingxiang-offline04 coordinate$ echo $value
1
map@gzdt-map-poi-yingxiang-offline04 coordinate$

所以也为什么能理解,在修改物理配置文件中的环境变量时,为什么都是export xxx=xxx,因为要让登陆时的shell父进程中的环境变量可以被所有子进程继承。

环境变量设置一般遵循export PATH1=PATH2:PATH3:$PATH1的格式,:用来分隔目录路径,表示在原变量值$PATH1的基础上,新增加PATH2PATH3。在使用时会从左往右查找,找到后就不再往后查找。

6.引号的使用

shell中的引号包括单引号''、双引号""、反引号``
单引号:强引用,引号内的任何内容都会被当作字面量处理,不会进行变量替换或者命令替换。
双引号:弱引用,引号内的变量可以被解释替换。
反引号:用于命令替换,反引号内的内容被当作shell命令执行,并将命令的执行结果用来替换原内容。和$()同样的作用,shell中推荐使用$()进行命令替换。

引号在嵌套使用时,遵循从左往右匹配原则,解释方式也只跟最外层引号相关,不受内层引号类型影响。比如shell中拼接一段用双引号包含路径的sql字符串,sql='..."${path}"...'错误,因为最外层单引号,所以内层都会被当字面量解释。可以sql='..."'${path}'"...',后面这种方式相当于3部分拼接而成:..."${path}"...

last.命令相关

https://blog.csdn.net/atwdy/article/details/137874868

http://www.yayakq.cn/news/131176/

相关文章:

  • 网站建设实训指导书建设网站的步骤
  • 网站开发好了 怎么发布成都装饰网站建设
  • 长沙优化网站多少钱东莞人才市场档案接收电话
  • 普陀区网站建设公司万户做的网站安全吗
  • 电脑做网站主机网站建设公司哪家好 在线磐石网络
  • 模板网站为什么做不了优化郑州做网站建设公司哪家好
  • 鄂州网站制作哪家好莱芜杂谈
  • 中国工程建设招聘信息网站合肥建设网网站
  • 创建网站的快捷方式大连网站建设平台
  • 计算机(网站建设与维护)男人和女人做羞羞的事情网站
  • 一般可以建些什么种类的网站崔凯 本地wordpress
  • 网页视频怎么下载到电脑国际网站怎么做优化
  • 如何开发网站快三直播十大平台直播间
  • 家具网站源码做数据新闻的网站
  • 简述企业网站维护的重要性印刷 技术支持 东莞网站建设
  • 郑州网站建设价位公司网站建设多少费用兴田德润在哪里
  • 个人网站要不要备案php 开源的企业网站
  • 美食网站开发的背景建站过程
  • 网站推广关键词工具网站建设怎么在图片上加字
  • 摄影工作室网站设计软件开发流程八个步骤
  • 做包子网站有哪些专门做创意门头的网站
  • 打开网站提示建设中电商平台代运营公司
  • 关于宠物的网站网页设计广州住建网站
  • 江门网站推广多少钱沈阳工程建设监理咨询
  • 商品展示网站源码微信h5制作平台
  • 网站登录账号密码保存在哪里网站 用户登陆 模板
  • 海南专业网站运营托管优化型网站的好处
  • 盐城市滨海县建设局网站任务网站(做任务学技能的)
  • 无锡设计公司排名3 如何进行网站优化设计
  • 郑州做网站优化公司仿第四城地方门户网站模板