《Linux就该这么学》学习笔记(二)
目录
管道命令符
输入输出重定向
命令行通配符
PATH变量
一些重要的环境变量
管道命令符
管道命令符“|”的作用是将前一个命令的标准输出作为后一个命令的标准输入,格式为“ 命令A |命令B”。
//使用echo为用户改密码
user@user-virtual-machine:~/shell$ echo "root" | passwd --stdin root
输入输出重定向
输出重定向:
符号 | 作用 |
命令 > 文件 | 将标准输出重定向到文件(清空原文件的内容) |
命令 2> 文件 | 将标准错误输出重定向到文件 (清空原文件的内容) |
命令 >> 文件 | 将标准输出重定向到文件(在原文件中追加) |
命令 2>> 文件 |
将标准错误输出重定向到文件(在原文件中追加) |
命令 >> 文件 2>$1 | 将标准输出和标准错误一起重定向到文件(在原文件中追加) |
输出重定向:
符号 | 作用 |
命令 < 文件 | 将文件作为标准输入 |
命令 << 分界符 | 从标准输入中读入,直到遇到“分界符”才停止 |
命令 < 文件1 > 文件2 | 将文件1作为命令标准输入,并将标准输出到文件2 |
命令行通配符
通配符 | 作用 |
* | 匹配零个或多个字符 |
? | 匹配任意单个字符 |
[0-9] | 匹配范围内的数字 |
[abc] | 匹配已出的任意字符 |
//匹配所有sda开头的文件
user@user-virtual-machine:~$ ls /dev/sda*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda3//匹配sda后有一个字符的文件
user@user-virtual-machine:~$ ls /dev/sda?
/dev/sda1 /dev/sda2 /dev/sda3//匹配sda后包含0-9任意一个数字的文件
user@user-virtual-machine:~$ ls /dev/sda[0-9]
/dev/sda1 /dev/sda2 /dev/sda3//匹配sda后包含1或3或5的文件
user@user-virtual-machine:~$ ls /dev/sda[135]
/dev/sda1 /dev/sda3
特殊字符拓展:
字符 | 作用 |
\(反斜杠) | 转义后面的一个字符 |
''(单引号) | 转义所有的字符 |
""(双引号) | 变量依旧生效 |
``(反引号) | 执行命令语句 |
//定义变量
user@user-virtual-machine:~$ PRICE=5//使用$取变量
user@user-virtual-machine:~$ echo "Price is $PRICE"
Price is 5//不能直接输出$
user@user-virtual-machine:~$ echo "Price is $$PRICE"
Price is 2451PRICE//使用转义字符输出$
user@user-virtual-machine:~$ echo "Price is \$$PRICE"
Price is $5//使用单引号$不能输出变量,因为''会把所有字符转义
user@user-virtual-machine:~$ echo 'Price is \$$PRICE'
Price is \$$PRICE//使用反引号将执行命令
user@user-virtual-machine:~$ echo `uname -a`
Linux user-virtual-machine 5.15.0-52-generic #58-Ubuntu SMP Thu Oct 13 08:03:55 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
PATH变量
alias命令用于设置命名的别名,格式为:“alias 别名=命令”。
//为命令“cp -i”起别名
user@user-virtual-machine:~/shell$ alias cp="cp -i"
user@user-virtual-machine:~/shell$ cp tr.txt tr2.txt
cp:是否覆盖'tr2.txt'? n//取消别名
user@user-virtual-machine:~/shell$ unalias cp
PATH是“解释器的助手”,她负责告诉bash用户要执行的命令可能放在那里,bash会在这些目录中找。
user@user-virtual-machine:~/shell$ $PATH
bash: /home/user/.vscode-server/bin/8fa188b2b301d36553cbc9ce1b0a146ccb93351f/bin/remote-cli:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin: 没有那个文件或目录
变量PATH中的每一个目录只用使用冒号分隔“:”
//为PATH变量添加新值
user@user-virtual-machine:~/shell$ PATH=$PATH:/root/bin
一些重要的环境变量
变量名称 | 作用 |
HOME | 用户主目录 |
SHELL | 当前shell是哪个程序 |
HISTSIZE | 历史命令记录条数 |
邮件邮箱文件 | |
LANG | 语系数据 |
RANDOM | 随机数字 |
PS1 | bash提示符 |
HISTFILESIZE | history命令存储数量 |
PATH | 在路径中的目录查找执行文件 |
EDITOR | 默认文本编辑器 |
用户可以使用:“ 变量名=值 ”的方式定义一个新的变量,通过此方法定义的变量只可在当前用户中使用,要想别的用户也能使用此变量可以将变量定义为全局变量。
定义全局变量的方式:“export 变量名=值”;
《Linux就该这么学》学习笔记(二)相关推荐
- PyTorch学习笔记(二)——回归
PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...
- MATLAB学习笔记——二维和三维绘图
MATLAB学习笔记--二维和三维绘图 近期练习matlab的二维和三维绘图,整理一下,以防忘记. 文章目录 MATLAB学习笔记--二维和三维绘图 一.二维绘图 1.plot命令 2.fplot 命 ...
- 嵌入式系统设计师学习笔记二十八:嵌入式程序设计③——高级程序设计语言
嵌入式系统设计师学习笔记二十八:嵌入式程序设计③--高级程序设计语言 解释程序和编译程序 编译器的工作阶段示意图 语法错误:非法字符,关键字或标识符拼写错误 语法错误:语法结构出错,if--endif ...
- 计算鬼成像学习笔记二:二阶关联函数探究
计算鬼成像学习笔记二:二阶关联函数探究 1 一阶关联函数 2 二阶关联函数 3 二阶关联如何重构物体 4 差分鬼成像关联公式 5 归一化鬼成像关联公式 1 一阶关联函数 一阶关联函数是光场的电场强度之 ...
- qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...
- [转载]dorado学习笔记(二)
原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...
- tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数
tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报 分类: tensorflow(4) 目录(?)[+] 本笔记目的 ...
- Scapy学习笔记二
Scapy学习笔记二 Scapy Sniffer的用法: http://blog.csdn.net/qwertyupoiuytr/article/details/54670489 Scapy Snif ...
- Ethernet/IP 学习笔记二
Ethernet/IP 学习笔记二 原文链接:http://wiki.mbalib.com/wiki/Ethernet/IP 1.通信模式 不同于源/目的通信模式,EtherNet/IP 采用生产/消 ...
- Java学习笔记二:数据类型
Java学习笔记二:数据类型 1. 整型:没有小数部分,允许为负数,Java整型分4种:int short long byte 1.1 Int最为常用,一个Int类型变量在内存中占用4个字节,取值范围 ...
最新文章
- .NET Core 配置Configuration杂谈
- 【干货】浅谈分布式数据库中间件之分库分表
- layui动态生成的下拉框被遮住
- mysql select内部原理_数据库SQL SELECT查询的工作原理
- 数的划分(信息学奥赛一本通-T1440)
- 怎么截取网页全图_FastStone Capture长截图怎么使用?滚动截图教程
- mysql中列的默认值
- 微信小程序-简易计算器
- 题库:queryset数据类型的特性
- OpenDRIVE坐标系解读
- Windows开启SSH连接
- 驱动精灵万能网卡版单文件版 v9.61
- 反汇编工具OD(OllyDebug)
- 普林斯顿宣布开源 25 核处理器
- Eslint代码规范
- day184-2018-12-21-英语流利阅读-待学习
- nico老是显示服务器升级,Nico会员服务条款
- 美国计算机游戏设计专业排名,美国游戏设计专业大学排名TOP5推荐!
- AEJoy —— 表达式之无缝循环摆/扭动【JS】
- 采用京东方屏幕的华为mateX2将难以与三星的折叠手机竞争
热门文章
- 在机房如何利用极域反控制老师的电脑呢
- 关于虚拟机克隆后如何给克隆出来的虚拟机配ip
- java lamda表达式去重
- Matlab 错误使用 plot 矢量长度必须相同
- Linux用户管理— 用户组管理命令
- 屏幕小于6英寸的手机_6英寸屏幕真的大么?你可能对“全面屏”有什么误解!详解全面屏手机那些事...
- vscode 打开文件不覆盖
- 小米手机5怎么卡刷开发版开启root超级权限
- 华为如何分屏_资讯华为实现手机和平板“微信双登”:使用体验更上一层楼
- 微信公众号调用接口显示的错误码含义