管道符、重定向与环境变量

输入输出重定向

    输入重定向:将文件内容导入到命令中;输出重定向:将命令执行后显示到屏幕上的内容导入到文件中,不在屏幕中显示。共分为:标准输入重定向(文件描述符为0)、标准覆盖输出(1)、标准追加输出(1)、错误覆盖输出(2)、错误追加输出(2)。0,1可省略不写,2必须要写。  

    标准输入:wc -l < zsx.txt  等效于 cat zsx.txt | wc -l    也可以直接: wc -l zsx.txt     命令 << 截止符 直到输入内容为截止符(再确认)为止,将输入内容作为命令的输入  如 wc -l << over

    标准输出: 命令 > 文件 覆盖,即清空原文件内容   命令 >> 文件  追加   如果命令执行后显示的是出错信息,如 ls -l xxx(xxx为不存在的文件),则依然会在屏幕上显示信息,不会写入到文件中   

    错误输出: 命令 2> 文件 覆盖  命令 2>> 文件 追加    标准与错误信息都输出:  命令 >> 文件 2>&1 追加 或者  命令 &>> 文件 追加   命令 &> 文件 覆盖

管道命令符

    命令A | 命令B 前一个命令的输出(不会在屏幕上显示)作为后一个命令的输入。 
    grep "/sbin/nologin" /etc/passwd | wc -l              ls -l /etc | more
    命令A | 命令B | 命令C ······

通配符 * ? [] {} (也叫正则表达式)

    *匹配零个或多个字符; ?匹配单个字符; [0-9]匹配数字0至9中的单个数字;[135]匹配1、3、5中的单个数字;[a-z]   [abc]            {1,3,5}匹配匹配1、3、5中的单个数字,且没有的数据项会报错    ls -l  /dev/sda{1,3,5}   ls -l  /dev/sda{12,1,23,24}  [a-z][A-Z]匹配的 是两个字符,第一个为小写,第二个为大写。

转义字符

     \(反斜杠) :将其后面的一个变量变为单纯的字符串   ''(单引号):转义其中的所有变量为单纯的字符串  
    ``(反引号):把其中的命令执行后返回结果   ""(保留其中的变量属性,不做转义处理)  
    $为变量提取符号(是一个变量)   VALUE=5 //定义一个变量VALUE值为5     echo "the value is $VALUE"   $ $表示显示当前程序的进程号码   echo "the value is $ $VALUE"     输出为 the value is 3427VALUE  echo"the value is \$ $VALUE" 输出为 the value is $5  echo 'the value is $ $VALUE' 输出为 the value is$$VALUE      echo `uname -a`  与 uname -a的效果一样 也等价于: echo $(uname -a)    即 `uname -a`与$(uname -a)是等效的   `命令`与$(命令)等效

环境变量

     Linux系统中的变量名都为大写(规定),环境变量是用来定义系统运行环境的一些参数,如:用户家目录、存放路径等。可用env命令查看当前用户所有的环境变量。  不同用户的环境变量值都不一定相同,Linux为每个用户提供独立的、合适的工作环境  HOME 用户的家目录 HISTSIZE 输出的历史命令条数 HISTFILESIZE保存的历史命令条数   SHELL 用户使用的SHELL解释器名称(/bin/bash,为一个二进制文件)  MALL 邮件保存路径 RANDOM生成一个随机数字    PS1 Bash解释器的提示符,可以自己定义(修改其值即可)  PATH 解释器搜索用户执行命令的路径。USER  系统的当前用户   

      在Linux系统中一切都是文件,命令也是文件,服务也是一种文件,而对服务程序进行配置自然也就是编辑程序的配置文件,即在配置一个服务时就是在修改这个服务的配置文件。系统中的硬件都会以硬件-文件的形式进行映射,形成设备文件存放在/dev中。命令在Linux系统中执行时会发生4个步骤:判断用户是以绝对路径(/bin/ls)还是相对路径(ls)的方式输入命令,如果是绝对路径,则直接可以得到命令文件,进行执行,否则需要到PATH中去找(当然内部命令不需要);判断用户输入的命令是否为别名命令;判断命令是内部命令还是外部命令,内部命令(解释器内部的命令)直接执行,外部命令则需要查找该命令的命令文件(PATH);Bash解释器在会在环境变量PATH中的多个路径中依次查找对应的命令文件(若有多个相同名字的这个文件,则第一个找到就不再找了,因此黑客可能会创建一个跟其同名的木马文件)。PATH中的路径的增加和删除都会影响到Bash解释器对命令的查找,因为有了PATH,/bin/ls 与 ls才会有相同的效果。 修改PATH: PATH=$PATH:/root/bin 即增加一个路径。Linux有4种命令:路径命令(占所有命令的1%);alias别名(2%);内部命令(1%);外部命令(96%)。
    变量由变量名和变量值两部分组成,可以轻松创建:  WORKDIR=/root/work  cd $WORKDIR  但是这样创建的变量为局部变量,即不能被其它用户使用,可以使用export命令将其提升为全局变量。export WORKDIRsu命令和su - 命令最大的本质区别就是:前者只是切换了身份,但Shell环境仍然是原来用户的Shell(环境不变);而后者连用户和Shell环境一起切换成新用户身份了。只有切换了Shell环境才不会出现PATH环境变量错误。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/385474.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++ Primer | 0 】字符串函数实现

1. memcpy函数原型&#xff1a; void* memcpy(void* dst, const void* src, size_t size); void* memmove(void* dst, const void* src, size_t size); 分析&#xff1a; source和destin所指的内存区域可能重叠&#xff0c;但是如果source和destin所指的内存区域重叠,那么这个…

编写Shell脚本(批处理,一次执行多条命令)

Bash终端的优势&#xff1a;1.上下键重复执行命令&#xff1b;2.tab键自动补齐&#xff1b;3.提供有用的环境变量&#xff1b;4.批处理。 shell脚本文件建议以.sh为后缀。 其实vim创建文本文件时&#xff0c;对名字无要求&#xff0c;但最好规定格式。 echo $SHELL&#xff08…

判断用户的参数(条件测试语句)

说明$?: $&#xff1f;为上一次命令的执行返回值&#xff0c;若上一次命令正常执行&#xff0c;则返回0&#xff1b;若执行出错&#xff0c;则返回一个非0的随机数。比如创建一个已经存在的目录&#xff0c;则返回一个非0数。 另外&#xff0c;测试语句成立返回0&#xff0c…

流程控制语句(bash)

1.if控制语句 if then fi if then else fi if then elif then elif then else fi if 条件表达式 then 命令序列&#xff08;满足条件才执行&#xff09; #注意&#xff0c;如果if与then&#xff08;elif与then&#xff09;写在同一行&#xff0c;要用;隔开&#xff…

用户身份与文件的权限(普通权限、特殊权限、隐藏权限和文件控制列表ACL)

用户身份 root用户是存在于所有类UNIX操作系统中的超级用户&#xff0c;它拥有最高的系统所有权。root用户的用户身份号码UID为0&#xff0c;UID相当于用户的身份证号码一样&#xff0c;具有唯一性。管理员用户&#xff08;超级用户&#xff09;UID为0&#xff1b;系统用户UID为…

存储结构与磁盘划分

文件系统层次化标准&#xff08;FHS&#xff0c;file system hierarchy standard&#xff09; 在windows操作系统中&#xff0c;要找到一个文件需要先进入该文件所在的磁盘分区&#xff08;如C:\等 C:\ZSX\zsx.txt&#xff09;&#xff0c;然后在进入该分区下的一个具…

Linux中常用文件的含义

在Linux中配置了服务文件后&#xff0c;需要重启该服务&#xff0c;配置信息才会生效。 /etc/passwd 保存了系统中所有用户的信息&#xff0c;一旦用户的登陆终端设置为/sbin/nologin&#xff0c;则不再允许登录到系统 /etc/shadow与/etc/passwd均为用户信息文件 /…

64. 最小路径和

给定一个包含非负整数的 m x n 网格&#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 示例: 输入: [[1,3,1],[1,5,1],[4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。…

Linux本地yum源配置以及使用yum源安装各种应用程序

将软件包传送到Linux中后&#xff0c;挂载&#xff0c;然后配置yum软件仓库&#xff0c;最后就可以使用yum来安装相应的应用程序了。假设挂载目录为/tmp/ruanjianbao&#xff0c;则下面说明配置本地yum仓库的过程&#xff1a; &#xff08;1&#xff09;cd /etc/yum.repos.d/…

gcc与g++编译器

首先在Linux(RHEL7.0)上安装gcc&#xff1a;yum install gcc gcc-c -y 其中gcc-c是为了能够编译c源代码&#xff0c;即g。 gcc为Linux C/C下重要的编译环境&#xff0c;是GUN项目中符合ANSIC标准的编译系统&#xff0c; gcc可以编译C、C、Objective-C、Java、Fortran、Pascal…

【Leetcode | 49】230. 二叉搜索树中第K小的元素

给定一个二叉搜索树&#xff0c;编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。 说明&#xff1a; 你可以假设 k 总是有效的&#xff0c;1 ≤ k ≤ 二叉搜索树元素个数。 示例 1: 输入: root [3,1,4,null,2], k 1 3 / \ 1 4 \ 2 输出: 1 示例 2: 输入…

gcc编译器的整个工作过程

gcc hello.c ./a.out 或者 gcc hello.c -o hello ./hello ./表示执行当前目录下的可执行程序或脚本程序。 首先gcc需要调用预处理程序cpp&#xff0c;由它负责展开在源文件中定义的宏&#xff0c;并向其中插入“#include”语句所包含的内容&#xff1b;接着gcc会调用…

宏定义对调试代码的作用

以如下代码为例&#xff1a; //head.h #ifndef __HEAD_H__ #define __HEAD_H__#define NUM1 10 #define NUM2 20 #endif//sum.c #include <stdio.h> //直接在标准库中查找 #include "head.h" //先在工作目录中查找&#xff…

【第15章】多重继承

1. 虚基类介绍 多继承时很容易产生命名冲突&#xff0c;即使我们很小心地将所有类中的成员变量和成员函数都命名为不同的名字&#xff0c;命名冲突依然有可能发生&#xff0c;比如非常经典的菱形继承层次。如下图所示&#xff1a; 类A派生出类B和类C&#xff0c;类D继承自类B和…

gcc编译器与g++编译器的区别

gcc与g编译器的程序文件分别为&#xff1a;/usr/bin/g和/usr/bin/gcc。 gcc 和 GCC 是两个不同的东西&#xff0c;GCC:GNU Compiler Collection(GUN 编译器集合)&#xff0c;它可以编译C、C、JAV、Fortran、Pascal、Object-C、Ada等语言。gcc是GCC中的GUN C Compiler&#xff0…

1. 排序算法

一、概述 假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;若经过排序&#xff0c;这些记录的相对次序保持不变&#xff0c;即在原序列中&#xff0c;r[i]r[j]&#xff0c;且r[i]在r[j]之前&#xff0c;而在排序后的序列中&#xff0c;r[i]仍…

1036. 跟奥巴马一起编程(15)

美国总统奥巴马不仅呼吁所有人都学习编程&#xff0c;甚至以身作则编写代码&#xff0c;成为美国历史上首位编写计算机代码的总统。2014年底&#xff0c;为庆祝“计算机科学教育周”正式启动&#xff0c;奥巴马编写了很简单的计算机代码&#xff1a;在屏幕上画一个正方形。现在…

库文件与头文件

首先说明库文件与头文件在gcc中的具体使用方法&#xff0c;然后说明两者的区别与联系。 库文件即库函数&#xff0c;如printf和scanf函数。以libgtdf.so库文件为例&#xff08;库文件在命名时都以lib开头&#xff0c;因此使用-l选项去链接指定的库文件时可以省略lib三个字母&am…

gcc的常用参数

-c 编译成目标文件.o&#xff08;只编译不链接&#xff09; gcc -c hello.s -o hello.o -o 指出输出文件名&#xff0c;输出文件名跟在-o后面。如果不使用这一选项&#xff0c;则缺省的输出文件名为a.out。gcc hello.c -o hello.exe&#xff08;在Linux中该项后缀名无要求&a…

1027. 打印沙漏(20)

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”&#xff0c;要求按下列格式打印 ************ *****所谓“沙漏形状”&#xff0c;是指每行输出奇数个符号&#xff1b;各行符号中心对齐&#xff1b;相邻两行符号数差2&#xff1b;符号数先从大到小顺序递减…