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

Linux - 数据流重定向、管道符、环境变量配置文件的加载

概述

想了解Linux编程,shell脚本是绕不开的关键知识点,原计划写一个整篇来分享shell的来龙去脉,但知识点过于繁杂,先分享一下学习shell的准备工作,数据流重定向、管道符、环境变量配置文件的加载,有助于知识更好的理解、再实际生产中的运用。

shell

shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。

bash脚本执行方式

1、赋予执行权限,直接运行

chmod 755 stark.sh
./stark.sh

2、通过Bash调用执行脚本

bash stark.sh

Bash的基本功能

命令别名与快捷键

1、查看别名alias
2、设置别名 alias ls='ls -l'
3、删除别名 unalias 别名

但是需要注意的是,alias设置在重启系统后会失效,想永久生效写入在配置文件中。

vim .bashrc
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

Bash命令生效顺序:

  • 第一顺位执行用绝对路径或相对路径执行的命令。
  • 第二顺位执行别名。
  • 第三顺位执行Bash的内部命令。
  • 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。

常用快捷键

Ctrl + c:强制终止当前命令
Ctrl + l:清屏
Ctrl + a:光标移动到命令行首
Ctrl + e:光标移动到命令行尾
Ctrl + u:从光标位置删除到行首
Ctrl + z:把命名放入后台
Ctrl + r:在历史命令中搜索

数据流重定向

输出的信息不在输出在显示器上,把正确/错误的信息输出在文件中,本来输出到显示器的内容输出在指定的文件中,所以叫做 数据量重定向。

  • 1> 以覆盖的方法将【正确的数据】输出到指定的文件或者设备上
  • 1>> 以追加的方法将【正确的数据】输出到指定的文件或者设备上
  • 2> 以覆盖的方法将【错误的数据】输出到指定的文件或者设备上
  • 2>> 以追加的方法将【错误的数据】输出到指定的文件或者设备上

/dev/null垃圾桶黑洞设备与特殊写法,作用是不输出任何信息

管道符
  • ; 分号代表多个命令连接,前后命令没有关系,只是单纯的连接
  • && 用地址符连接,前后都成功才会成功。
  • || 命令1不正确执行,才会执行命令2,反之也一样
  • | 管道符的作用是把命令1的数据结果,做进行进一步的筛选

环境变量配置文件简介

shell变量类型:

  • 用户自定义变量(本地变量)
  • 环境变量:定义每个用户的操作环境,环境变量配置文件中主要是定义对系统操作环境生效的系统默认环境变量。如PATH等。
  • 预定义环境

在这里插入图片描述

1、用户登录时加载的配置文件

/etc/profile
/etc/profile.d/
~/.bash_profile
~/.bashrc
/etc/bashrc

2、用户注销时加载的配置文件

~/.bash_logout

3.本地终端欢迎信息

/etc/issue
/etc/motd #登录后的欢迎信息

相关文章:

  • 数据库ER图相关概念及其画法
  • LabVIEW继电器触点接触电阻自动测试
  • 社交媒体与新闻:Facebook在信息传播中的角色
  • Rider 打开Unity项目 Project 全部显示 load failed
  • 搭建通讯猫类似的TCP服务端
  • 如何阅读xml电子发票
  • java-集合-List集合
  • C++ unordered_set使用
  • Java零基础学习20:集合的练习
  • x-cmd pkg | perl - 具有强大的文本处理能力的通用脚本语言
  • linux系统mysql8单机多实例+主从复制部署
  • vue 样式隔离原理
  • mybatisplus做SQL拦截添加自定义排序
  • 【HTML 基础】介绍
  • 大语言模型-大模型基础文献
  • 【Amaple教程】5. 插件
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • C# 免费离线人脸识别 2.0 Demo
  • CSS实用技巧干货
  • Date型的使用
  • Docker: 容器互访的三种方式
  • Laravel 中的一个后期静态绑定
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • socket.io+express实现聊天室的思考(三)
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • 程序员最讨厌的9句话,你可有补充?
  • 使用putty远程连接linux
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 线性表及其算法(java实现)
  • 找一份好的前端工作,起点很重要
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #### go map 底层结构 ####
  • #图像处理
  • #在 README.md 中生成项目目录结构
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (Ruby)Ubuntu12.04安装Rails环境
  • (笔试题)分解质因式
  • (二)windows配置JDK环境
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (四)汇编语言——简单程序
  • (译) 函数式 JS #1:简介
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .bat批处理(一):@echo off
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • /proc/vmstat 详解
  • @Transactional 详解
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试