linux第七章---管道、环境变量、常用命令

news2024/11/18 10:32:25

1.管道

1.1概念:

管道类似于文件重定向,可以将前一个命令的stdout重定向到下一个命令的stdin
在这里插入图片描述

1.2要点:

  1. 管道命令仅处理stdout,会忽略stdeer
  2. 管道右边的命令必须要能接受stdin.
  3. 多个管道命令可以串联。

1.3与文件重定向的区别

  • 文件重定向左边为命令,右边伟文件。
  • 管道左右两边均为命令,左边有stdout,右边有stdin

举例
统计当前目录下所有python文件的总行数,其中findxargswc等命令可以参考常用命令这一节内容。

find . -name '*.py' | xargs cat | wc -l

注:xargsstdin转化为cat命令的参数

2.环境变量

2.1概念

Linux系统中会用很多环境变量来记录配置信息
环境变量类似于全局变量,可以被各个进程访问到。我们可以修改环境变量来方便地修改系统配置。

2.2查看

列出当前环境下所有的环境变量,

env			#显示当前用户的变量
set			#显示当前shell的变量,包括当前用户的变量
export		#显示当前导出成用户变量的shell变量

输出某个环境变量的值:

echo $PATH		#PATH为路径

2.3修改

环境变量的定义、修改、删除操作可以参考https://blog.csdn.net/m0_51366201/article/details/128276066这一章的内容。

为了将对环境变量的修改应用到未来所有环境下,可以将修改命令放到~/.bashrc文件中。
修改完的~/.bashrc文件后,记得执行source ~/.bashrc,来将修改应用到当前的bash环境下。
注:source ~/.bashrc相当于是把.bashrc再执行一遍。

为何将修改命令放到~/.bashrc,就可以确保修改会影响未来所有的环境呢?

  • 每次启动bash,都会先执行~/.bashrc
  • 每次ssh远程登录服务器,都会启动应该bash命令行给我们。
  • 每次tmux 新开一个pane,都会启动一个bash命令行给我们。
  • 所有未来新开的环境都会加载我们修改的内容。

2.4常见环境变量

  1. HOME:用户的家目录。
  2. PATH:可执行文件(命令)的存储路径。路径与路径之间用: 分隔 。当某个可执行文件同时出现在多个路径中时,会选择从左到右数第一个路径中的执行。下列所有存储路径的环境变量,均采用从左到右的优先顺序
  3. LD_LIBRARY_PATH:用于指定动态链接库(.so文件)的路径,其内容是以冒号分隔的路径列表。
  4. C_INCLUDE_PATH;C语言的头文件路径,内容是以冒号分隔的路径列表。
  5. CPLUS_INCLUDE_PATH:CPP的头文件目录,内容是以冒号分隔的路径列表。
  6. PYTHONPATH:Python导入包的路径,内容是以冒号分隔的路径列表。
  7. JAVA_HOME;jdk的安装目录。
  8. CLASSPATH:存放Java导入类的路径,内容是以冒号分隔的路径列表。

3.常用命令

Linux命令非常多,本节简单概述一部分。

3.1系统状况

  1. top:查看所有进程的想想(Linux的任务管理器)
  • 打开后,输入M:按使用内存排序
  • 打开后,输入P:按使用CPU排序
  • 打开后,输入q:退出
  1. df -h:查看硬盘使用情况
  2. free -h:查看内存使用情况。
  3. du -sh:查看当前目录占用的硬盘空间
  4. ps aux:查看所有进程
  5. kill -9 pid :杀死编号为pid的进程
  • 传递某个具体的信号:kill -s SIGTERM pid
  1. netstat -nt:查看所有网络链接
  2. w:列出当前登录的用户
  3. ping www.baidu.com:检测是否联网

3.2文件权限

  1. chmod :修改文件权限
  • chmod +x xxx:给xxx添加可执行权限
  • chmod -x xxx:去掉xxx的可执行权限
  • chmod 777 xxx:将xxx的权限改成777
  • chmod 777 xxx -R:递归修改整个文件夹的权限

在这里插入图片描述
777为将上面全部设置为1,即r读,w写,x执行,都可以进行。

3.3文件检索

  1. find /path/to/directory/ -name '*.py':搜索某个文件路径下的所有*.py文件
  2. grep xxx:从stdin中读入若干和数据,如果某行中包含xxx,则输出改行;否则忽略该行
  3. wc:统计行数、单词数、字节数
  • wc -l:统计行数
  • wc -w:统计单词数
  • wc -c:统计字节数
  1. tree:展示当前目录的文件结构
  • tree /path/to/directory/:展示某个目录的文件结构
  • tree -a:展示隐藏文件
  1. ag xxx:搜索当前目录下的所有文件,检索xxx字符串
  2. cut:分割一行内容
  • stdin中读入多行数据
  • echo $PATH | cut -d ':' -f 3,5:输出PATH:分割后第3、5列数据
  • echo $PATH | cut -d ':' -f 3-5:输出PATH:分割后第3-5列数据
  • echo $PATH | cut -c 3,5:输出PATH的第3、5列数据
  • echo $PATH | cut -c 3-5:输出PATH的第3-5列数据
  1. sort:将每行内容按字典序排序
  • 可以从stdin中读取多行数据
  • 可以从命令行参数在读取文件名列表
  1. xargs:将stdin中的数据用空格或回车分割成命令行参数
  • find . -name '*.py' | xargs cat | wc -l:统计当前目录下所有python文件的总行数

3.4查看文件内容

  1. more:浏览文件内容
  • 回车:下一行
  • 空格:下一页
  • b:上一页
  • q:退出
  1. less:与more类似,功能更全。
  • 回车:下一行
  • y:上一行
  • Page Down:下一页
  • Page Up:上一页
  • q:退出
  1. head -3 xxx:展示xxx的前3行内容
  • 同时支持从stdin读入内容
  1. tail -3 xxx:展示xxx末尾3行内容
  • 同时支持从stdin读入内容

3.5用户相关

  1. history:展示当前用户的历史操作。内容存放在~/.bash_history

3.6工具

  1. md5sum:计算md5哈希值
  • 可以从stdin读入内容
  • 也可以从命令行参数中传入文件名列表
  1. time command:统计command命令的执行时间
  2. ipython3:交互式python3环境。可以当做计算机,或者批量管理文件。
  • ! echo "Hello World"! 表示执行shell脚本
  1. watch -n 0.1 command:每0.1秒执行一次command命令
  2. tar:压缩文件
  • tar -zcvf xxx.tar.gz /path/to/file/* :压缩
  • tar -zxvf xxx.tar.gz:解压
  1. diff xxx yyy:查找文件xxxyyy的不同点

注:
(1)解压常用方法
tar -zxvf xxx.tar.gz -C yyy:可以将 xxx.tar.gz 解压到指定目录 yyy 中,x - extract。

3.7安装软件

  1. sudo command:以root 身份执行 command命令
  2. apt-get install xxx:安装软件
  3. pip install xxx --user --upgrade:安装python包

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

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

相关文章

Java平衡树之查找树的详解(1)

1.平衡树 之前我们学习过二叉查找树,发现它的查询效率比单纯的链表和数组的查询效率要高很多,大部分情况下,确实是这样的,但不幸的是,在最坏情况下,二叉查找树的性能还是很糟糕。例如我们依次往二叉查找树中…

c语言预处理(万字解析)

预处理一.总体概述1.注释去除2.宏替换二.宏定义(宏替换类型)1.数值宏常量2.字符串宏常量3.用宏定义注释符号4.用宏定义表达式(难点)1.第一种情况2.第二种情况5.#undef(宏的有效范围)1.两个问题2.#undef的使…

FLStudio2023水果软件哪个版本好用?功能区别对比

FL Studio是一款功能非常强大的音乐创作编辑软件它就是FL Studio(水果软件)。使用FL Studio中文版可以轻松帮我们制作自己的音乐唱片,拥有强大且专业的编曲混音创作工具,有需要的朋友不要错过。 水果,全称Fruity Loop Studio,简称…

量子计算(十六):其他类型体系的量子计算体系

文章目录 其他类型体系的量子计算体系 一、离子阴量子计算 二、原子量子计算 三、核自旋量子计算 四、拓扑量子计算 其他类型体系的量子计算体系 一、离子阴量子计算 离子研量子计算在影响范围方面仅次于超导量子计算。早在2003年,基于离子阴就可以演示两比特…

“转行做程序员”很难?这里有4个重要建议

近几年来,传统行业多处于经济下行,加上互联网行业的赚钱效应,想要转行到这一行的人越来越多,其中程序员这个行业更是很多人梦寐以求的。 但另一方面,我们也发现,这些想要转行的同学们往往会遇到很多困扰。…

推荐今日 火火火火 的开源项目

本期推荐开源项目目录:1. coding-interview-university2. 前端后台管理模板3. 钉钉聊天机器人4. 基于 ChatGPT 的 Neovim 插件5. 开源的分布式社交网络平台6. 分析社交媒体内容7. 用于绘制流程图的库01coding-interview-university这是一个汇集了软件工程师面试中常…

2023跨年代码(烟花+背景音乐)

文章目录前言效果展示使用方法源码学习HTML代码CSS代码前言 时光荏苒,白驹过隙。2022这一年又在忙碌中度过了,过去的一年,我们同努力,我们共欢笑,每一次成功都蕴藏着我们辛勤的劳动。 新的一年即将来到,我…

【linuxgdb】动态链接和静态链接的区别,gdb的基础使用

目录 1.gcc/c动态链接和静态链接的区别 2.gdb的基础使用 2.2使用gdb调试 1.gcc/c动态链接和静态链接的区别 1.1查看可执行文件是动态还是静态的 格式:file文件名 1.2动态链接和静态链接 静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的…

ARM S5PV210 串行通信接口详解

一、串行通信接口详解 1 0. 串口的名称 S5PV210 的数据手册中串口控制器在 section8.1串口的官方名称叫:universal asynchronous reciver and transmitter,通用异步收发器 英文缩写是uart,中文简称串口。 1. S5PV210 的串口控制器工作原理…

CSS -- 2D转换各属性讲解(translate,rotate,scale)

文章目录2D转换1 二维坐标系2 2D转换之移动 translate3 2D转换之旋转 rotate4 2D转换中心点 transform-origin5 2D转换之缩放scale6 2D转换综合写法7 2D转换总结2D转换 转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果 转换(t…

[ 常用工具篇 ] 使用 kali 实现网络钓鱼 -- setoolkit 详解实战(一)

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

密码学讲座PPT

来自山大密码学讲座的PPT。 一些密码学领域常用名词术语 Diffie-Hellman 密钥交换;Elgamal 加密和签名;DSA 签名;因相应的离散对数问题难解,大素数的原根可用于密钥交换;RSA加密和签名: 因大整数因子分解难算,合数可成…

JetPack 组件总结

文章目录JetPackLifecycle使用Lifecycle解耦页面和组件使用Lifecycle解耦Service与组件使用ProcessLifecycleOwner监听应用程序生命周期ViewModel 与 LiveDataViewModelLiveDataViewModel LiveData 实现Fragment间通信DataBinding 的意义与应用意义使用前的配置import标签事件…

SWPUCTF 2021 新生赛

😋大家好,我是YAy_17,是一枚爱好网安的小白,自学ing。 本人水平有限,欢迎各位大佬指点,一起学习💗,一起进步⭐️。 ⭐️此后如竟没有炬火,我便是唯一的光。⭐️ 目录 g…

Kotlin + Jpa + Querydsl

Kotlin Jpa Querydsl 本篇主要介绍一下 kotlin jpa querydsl . jpa querydsl 是我很喜欢的一种搭配,它能够让你写sql语句一样的去写代码 , 以前我也写过关于 java版本的, 本篇就来看看kotlin中如何去使用 1.引入插件 主要引入jpa插件 和 kapt Kotlin annotation processi…

【剧前爆米花--爪哇岛寻宝】Cloneable接口和深浅拷贝

作者:困了电视剧 专栏:《JavaSE语法与底层详解》 文章分布:这是一篇关于接口的文章,在本篇文章中我会分享Cloneable接口的用法和机制,同时从底层分析深拷贝和浅拷贝的区别。 Cloneable接口 Cloneable这类接口可以说是…

ZigBee硬件平台小记(CC2530)

文章目录1.CC2530射频模块特征2.CC2530射频模块主要技术指标3.调试器输出接口特点输出引脚排列1.CC2530射频模块特征 基于CC2530F256单芯片ZigBee SOC(System On Chip),集成8051内核模块尺寸:36mm x 26mmSMA底座,外接…

代码随想录训练营第56天|LeetCode 647. 回文子串、516.最长回文子序列

参考 代码随想录 题目一:LeetCode 647. 回文子串 如果用暴力求解,两层for循环加一层判断,两个遍历指针i和j构成一个区间,每次判断这个区间内的字符串是否为回文串,这样的求法时间复杂度为O(n^3)。这里使用动态规划可…

Jetpack Compose中的手势操作

点击事件 监听点击事件非常简单,使用 clickable 和 combinedClickable 修饰符即可满足需求: OptIn(ExperimentalFoundationApi::class) Composable fun ClickableExample() {Column{Box(Modifier.clickable { println("clickable") }.size(3…

异常检测原理及其在计算机视觉中的应用

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达这篇文章涵盖了三件事,首先什么是视觉角度的异常检测?用于异常检测的技术有哪些?它在哪里使用?异常检测是什么?…