Shell学习(一)——基础命令

news2024/11/16 20:23:09

01 find、grep

find

find pathname -options 
  • pathname 查找的目录路径, 例如 .表示当前目录, /表示根目录
  • -name 按文件名查找文件 (递归查找文件)
  • -size 按文件大小查找文件
  • -mtime 按文件修改时间查找文件,例如 -mtime -2 查找 48 小时内修改过的文件。

example:

find . -name '*.log'
find . -size +1000c
find . -name '*.log' -mtime +5

grep

grep "search_string" filename
  • grep -i "search_string" filename 使用 -i 选项可以忽略大小写进行搜索。
  • grep -r "search_string" filename 使用 -r 选项可以递归地搜索指定目录及其子目录中的所有文件。
  • grep -n "search_string" filename 使用 -n 选项可以显示匹配行的行号。
  • grep -l "search_string" filename 使用 -l 选项可以只显示包含匹配字符串的文件名,而不显示匹配的行。
  • grep -w"search_string" filename 使用 -w 选项可以只匹配整个单词,而不是部分匹配。

02 awk、sed

awk

awk 是一种编程语言,用于在文本文件中进行模式扫描和处理。它可以用来处理结构化数据,如 CSV 文件。以下是一些常见的 awk 用法:

基本用法

awk 'pattern {action}' filename

例如,打印文件中的所有行:

awk '{print}' filename
awk "{print $0}" finename

按字段分隔符处理

awk -F ',' '{print $1, $2}' filename

这将以逗号为分隔符,打印文件中的第一和第二列,适合处理csv文件

条件处理

awk '$3 > 100 {print $1, $2}' filename

这将打印第三列大于 100 的行的第一和第二列。

内置变量

  • NR:当前记录数(行号)。
  • NF:当前记录中的字段数。
  • FS:字段分隔符,默认是空格或制表符。

sed

sed -i "s|${old_string}|${new_string}|g" filename
# 文本替换、行插入、删除、查找

sed 是一种流编辑器,用于对文本进行逐行处理和编辑。它可以用来执行替换、删除、插入等操作。以下是一些常见的 sed 用法:

基本替换

sed 's/old/new/' filename

这将把文件中第一次出现的 old 替换为 new

全局替换

sed 's/old/new/g' filename

这将把文件中所有出现的 old 替换为 new

删除行

sed '3d' filename

这将删除文件中的第三行。

插入行

sed '2i\\This is a new line.' filename

这将在文件的第二行前插入一行 This is a new line.

行打印:

sed -n '2,4p' filenmae
sed -n 'p' file.txt
#  打印一个范围内的行,如打印第 2 到第 4 行
#  打印每一行

这将同时执行多个编辑命令。

03 chmod、ls

chmod

chmod 命令用于更改文件或目录的权限。基本语法如下:

chmod [选项] 模式 文件

例如,将文件 example.txt 的权限设置为 755

chmod 755 example.txt

这表示文件所有者有读、写、执行权限,组用户和其他用户有读、执行权限

ls

ls 命令在 Linux 系统中用于列出目录内容。它可以显示当前目录下的文件和子目录,并且可以显示文件类型、权限、大小等信息。以下是一些常见的用法和选项:

  1. 基本用法
    • ls:列出当前目录下的文件和子目录。
    • ls [目录]:列出指定目录下的文件和子目录。
  2. 常用选项
    • a:显示所有文件,包括隐藏文件(以 . 开头的文件)。
    • l:以长格式显示文件信息,包括权限、所有者、大小和修改时间。
    • h:与 l 结合使用,以人类可读的格式显示文件大小(例如 KB、MB)。
    • r:逆序显示文件和目录。
    • t:按修改时间排序,最近修改的文件排在最前面。
    • R:递归显示目录中的所有文件和子目录。
  3. 实例
    • ls -l:以长格式显示当前目录中的文件和目录信息。
    • ls -a:显示当前目录中的所有文件,包括隐藏文件。
    • ls -lh:以人类可读的格式显示当前目录中的文件大小。
    • ls -t:按修改时间排序显示当前目录中的文件和目录。
    • ls -R:递归显示当前目录中的所有文件和子目录。

04 echo、ps

echo

  • 基本功能
    • echo是一个用于在终端输出文本的简单命令。它可以将指定的字符串、变量值等内容显示在屏幕上,是在编写脚本或者简单的命令行交互中常用的工具。
  • 语法格式
    • echo [选项] [字符串]
  • 常见选项及示例
    • n选项:不输出换行符。例如,echo -n "Hello"输出Hello后不会换行,这样可以在同一行继续输出其他内容。如果接着执行echo " World",输出结果将是Hello World在同一行。
    • e选项:启用转义字符的解释。例如,echo -e "First line\\nSecond line"会输出两行内容,其中\\n是换行符。还可以使用其他转义字符,如\\t表示制表符,用于格式化输出。
  • 应用场景
    • 信息输出:在脚本中用于向用户输出提示信息、变量的值等。例如,echo "The value of variable x is $x"可以显示变量x的值。
    • 简单的文本生成:可以用于快速生成简单的文本文件。例如,echo "This is a test file content." > test.txt会创建一个名为test.txt的文件,并将指定的文本内容写入其中。

ps

  • 基本功能
    • ps用于查看系统中的进程状态信息。它可以显示正在运行的进程的各种细节,如进程 ID(PID)、用户 ID(UID)、CPU 使用率、内存占用等,帮助用户了解系统的运行情况。
  • 语法格式
    • ps [选项]
  • 常见选项及示例
    • ef选项:显示所有进程的详细信息。例如,ps -ef会输出包括 UID、PID、PPID(父进程 ID)、C(CPU 使用率)、STIME(启动时间)、TTY(终端)、TIME(累计 CPU 时间)、CMD(命令)等信息,用于查看系统中正在运行的所有进程。
    • aux选项:与ef类似,但输出格式稍有不同,并且可以方便地查看 CPU 和内存使用率等信息。例如,ps -aux | grep firefox可以查找firefox进程的相关信息,通过管道符|grep命令结合,可以筛选出包含firefox相关内容的进程信息。
  • 应用场景
    • 进程监控:在系统管理中,用于监控系统中的进程运行情况,查看是否有异常进程占用过多资源或者是否有恶意进程在运行。
    • 故障排查:当系统出现性能问题或者某个应用程序异常时,通过ps命令可以查看相关进程的状态,辅助定位问题,比如查看进程是否因为内存不足而崩溃或者 CPU 使用率过高导致系统卡顿。

05 top、free

top

  • 基本功能
    • top是一个动态查看系统资源使用情况的命令。它实时显示系统中各个进程的 CPU 使用率、内存使用率、进程 ID 等信息,并且会不断更新显示内容,让用户能够及时掌握系统的运行状态。
  • 运行方式和显示内容
    • 直接在终端输入top即可运行。第一行显示系统的运行时间、用户数、负载等情况;第二行显示进程相关的统计信息;下面的行则是各个进程的详细信息。
  • 操作方式
    • 可以通过按键来操作top。例如,按M键可以按照内存使用率排序进程,按P键可以按照 CPU 使用率排序进程,按q键可以退出top命令。
  • 应用场景
    • 系统性能实时监控:在服务器管理或者高性能计算环境中,实时监控系统的 CPU 和内存等资源的使用情况,以便及时发现资源瓶颈或者性能问题。
    • 进程资源管理:通过观察进程的资源占用动态变化,决定是否需要对某些进程进行优化或者终止,比如当一个进程长时间占用大量 CPU 资源导致系统性能下降时,可以通过top观察后采取相应措施。

free

  • 基本功能
    • free用于查看系统内存使用情况,包括物理内存、交换空间(如果有)等的总量、已使用量、空闲量等信息,让用户了解系统内存资源的分配和使用状态。
  • 语法格式
    • free [选项]
  • 常见选项及示例
    • h选项:以人类可读的方式显示内存信息,如将字节单位转换为 GB、MB 等。例如,free -h会显示总的内存量、已使用内存量、空闲内存量等信息,并且单位是比较直观的,如1.0G512M等。
    • m选项:以 MB 为单位显示内存信息。例如,free -m会将内存信息以 MB 为单位进行展示,方便用户在不需要精确字节数的情况下快速了解内存的大致使用情况。
  • 应用场景
    • 系统资源规划:在安装新软件或者配置服务器时,通过free命令查看系统内存的剩余情况,判断是否有足够的内存来支持新的应用程序或服务。
    • 性能优化:当系统出现性能问题,怀疑是内存不足导致时,使用free命令查看内存使用细节,确定是否需要增加物理内存或者优化内存使用的程序。

06 ln、mount

ln

ln 命令在 Linux 系统中用于创建文件或目录的链接。它有两种主要类型的链接:硬链接和软链接(符号链接)。

硬链接是指多个文件名指向同一个文件数据块。删除一个硬链接不会影响其他硬链接。软链接则类似于 Windows 系统中的快捷方式,指向另一个文件或目录。

以下是 ln 命令的基本用法和常见选项:

  1. 创建硬链接
    • 语法:ln [源文件] [目标文件]
    • 示例:ln file1.txt file2.txt,这会创建一个名为 file2.txt 的硬链接,指向 file1.txt
  2. 创建软链接
    • 语法:ln -s [源文件或目录] [目标文件或目录]
    • 示例:ln -s /path/to/file1.txt /path/to/link1.txt,这会创建一个名为 link1.txt 的软链接,指向 /path/to/file1.txt
  3. 常用选项
    • b:在覆盖目标文件之前进行备份。
    • d:允许超级用户创建目录的硬链接。
    • f:强制执行,覆盖已有文件。
    • i:交互模式,覆盖文件前提示用户确认。
    • n:把符号链接视为一般目录。
    • s:创建软链接。
    • v:显示详细的处理过程。
  4. 实例
    • 创建一个指向 log2013.log 的软链接 link2013ln -s log2013.log link2013
    • 创建一个指向 log2013.log 的硬链接 ln2013ln log2013.log ln2013

mount

mount 命令在 Linux 系统中用于挂载文件系统。以下是一些常见的用法和选项:

  1. 基本用法
    • mount [选项] 设备 挂载点
    • 例如:sudo mount /dev/sda1 /mnt/dev/sda1 设备挂载到 /mnt 目录。
  2. 常用选项
    • t <文件系统类型>:指定文件系统的类型,例如 ext4ntfs 等。
    • o <选项>:指定挂载选项,比如读写权限、访问控制等。例如,o ro 表示只读挂载,o rw 表示读写挂载。
    • a:挂载 /etc/fstab 中定义的所有文件系统。
    • r:以只读方式挂载。
    • w:以读写方式挂载。
    • L <标签>:根据标签挂载设备。
    • U <UUID>:根据 UUID 挂载设备。
  3. 实例
    • /dev/hda1 挂载到 /mnt 目录:mount /dev/hda1 /mnt
    • 以只读方式挂载 /dev/hda1mount -o ro /dev/hda1 /mnt
    • 使用 loop 模式挂载 ISO 文件:mount -o loop /tmp/image.iso /mnt/cdrom
  4. 卸载文件系统
    • 使用 umount 命令卸载文件系统:sudo umount /mnt
    • 如果文件系统正在使用,可以使用 l 选项进行“懒卸载”:sudo umount -l /mnt

07 which、cat

which

  • 基本功能
    • which是一个在 Linux 和 Unix 系统中用于查找可执行文件位置的命令。当你在终端中输入一个命令名称时,系统会在环境变量PATH所指定的一系列目录中查找对应的可执行文件,which命令的作用就是明确地告诉你这个可执行文件的具体位置。
  • 语法格式
    • which [选项] [命令名称]
  • 常见选项及示例
    • 一般情况下,直接使用which加上命令名称即可。例如,which ls会返回ls命令的完整路径,如/bin/ls。这表示当你在终端执行ls命令时,实际上是在执行/bin/ls这个文件。
    • a选项:用于列出所有匹配的可执行文件路径。例如,系统中可能安装了多个版本的 Python,which -a python会列出所有名为python的可执行文件路径,可能包括/usr/bin/python/usr/local/bin/python等,这样你就能清楚地看到不同版本 Python 的位置。

cat

  • 基本功能
    • cat主要用于查看文件内容、合并文件或者创建简单的文件。它可以将文件的内容输出到终端屏幕上,也可以将多个文件的内容按顺序合并输出。
  • 语法格式
    • cat [选项] [文件名称]
  • 常见选项及示例
    • 一般情况下,cat [文件名]可以查看文件内容。例如,cat file.txt会将file.txt文件中的内容显示在屏幕上。
    • n选项:在显示文件内容时,对每一行进行编号。例如,cat -n another_file.txt会在输出文件内容的同时,在每行前面加上行号,方便用户查看和引用文件中的特定行。
    • >>>操作符:cat可以和这些操作符结合用于文件创建和内容追加。例如,cat > new_file.txt会创建一个名为new_file.txt的文件,用户可以在终端输入内容,按Ctrl + D结束输入,内容就会保存到文件中。cat file1.txt >> file2.txt则会将file1.txt的内容追加到file2.txt的末尾。
  • 应用场景
    • 文件查看:快速查看文本文件的内容,如查看配置文件、日志文件等。
    • 文件合并和简单编辑:在脚本编写或者简单的文件处理中,用于合并文件内容或者创建简单的文本文件,如将多个日志文件合并为一个文件进行分析。

08 rm、df

rm

  • 基本语法
    • rm [选项]... 文件或目录...
  • 常用选项
    • f(force):强制删除文件或目录,不提示确认信息。例如,如果要强制删除一个名为test.txt的文件,可以使用rm -f test.txt。这个选项在编写脚本时很有用,因为它不会因为文件不存在或者权限问题而中断脚本的执行。
    • r(recursive)或R:递归地删除目录及其内容。当要删除一个非空目录时,必须使用这个选项。例如,要删除名为test_dir的目录及其内部的所有文件和子目录,可以使用rm -r test_dir
    • i(interactive):在删除每个文件或目录之前,提示用户进行确认。例如,rm -i file1.txt file2.txt会在删除file1.txtfile2.txt之前分别询问用户是否真的要删除。

df

  • 基本语法
    • df [选项]... [文件系统]...
  • 常用选项
    • h(human - readable):以人类可读的格式显示磁盘空间大小,例如将字节数转换为 KB、MB、GB 等单位。例如,df -h会以更直观的方式显示磁盘空间信息,如1K1M1G等单位,而不是原始的字节数。
    • T:显示文件系统类型。除了磁盘空间信息外,还会显示每个文件系统的类型,如ext4xfs等。例如,df -T会列出文件系统类型,这样用户可以清楚地知道每个挂载点对应的文件系统类型。
    • m:以 MB 为单位显示磁盘空间大小。这在比较不同文件系统的空间大小时很方便,例如,df -m会将磁盘空间信息以 MB 为单位显示。

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

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

相关文章

MySql 日期周处理方式

MySql 日期周处理方式 最近在做数仓相关工作&#xff0c;最近遇到 几个问题&#xff0c; 1、计算指定日期是一年中的第几周&#xff0c;周一为周的第一天 2、计算周的开始时间&#xff0c;结束时间 3、计算周对应的年 比如 2023-01-01 WEEKOFYEAR(2023-01-01) 是2022年的52周&…

STM32 BootLoader 刷新项目 (十) Flash擦除-命令0x56

STM32 BootLoader 刷新项目 (十) Flash擦除-命令0x56 1. STM32F407 BootLoader 中的 Flash 擦除功能详解 在嵌入式系统中&#xff0c;BootLoader 的设计是非常关键的部分&#xff0c;它负责引导主程序的启动、升级以及安全管理。而在 STM32F407 等 MCU 上实现 BootLoader&…

【Homework】【5】Learning resources for DQ Robotics in MATLAB

Lesson 5 代码-TwoDofPlanarRobot.m 表示一个 2 自由度平面机器人。该类包含构造函数、计算正向运动学模型的函数、计算平移雅可比矩阵的函数&#xff0c;以及在二维空间中绘制机器人的函数。 classdef TwoDofPlanarRobot%TwoDofPlanarRobot - 表示一个 2 自由度平面机器人类…

Uniapp 引入 Android aar 包 和 Android 离线打包

需求&#xff1a; 原生安卓 apk 要求嵌入到 uniapp 中&#xff0c;并通过 uniapp 前端调起 app 的相关组件。 下面手把手教你&#xff0c;从 apk 到 aar&#xff0c;以及打包冲突到如何运行&#xff0c;期间我所遇到的问题都会 一 一 进行说明&#xff0c;相关版本以我文章内为…

你可以通过以下步骤找到并打开 **Visual Studio 开发者命令提示符**:

你可以通过以下步骤找到并打开 Visual Studio 开发者命令提示符&#xff1a; 1. 通过开始菜单查找 打开 开始菜单&#xff08;点击屏幕左下角的 Windows 图标&#xff09;。在搜索框中输入 Developer Command Prompt。你应该看到以下几种选项&#xff08;具体取决于你的 Visu…

北京大学c++程序设计听课笔记101

基本概念 程序运行期间&#xff0c;每个函数都会占用一段连续的内存空间。而函数名就是该函数所占内存区域的起始地址&#xff08;也称“入口地址”&#xff09;。我们可以将函数的入口地址赋给一个指针变量&#xff0c;使该指针变量指向该函数。然后通过指针变量就可以调用这个…

(时序论文阅读)TimeMixer: Decomposable Multiscale Mixing for Time Series Forecasting

来源论文iclr2024 论文地址&#xff1a;https://arxiv.org/abs/2405.14616 源码地址&#xff1a; https://github.com/kwuking/TimeMixer 背景 数据是有连续性&#xff0c;周期性&#xff0c;趋势性的。我们这篇文章主要围绕的是用MLP结构来预测数据的周期性具体为&#xff…

Springboot 使用EasyExcel导出含图片并设置样式的Excel文件

Springboot 使用EasyExcel导出含图片并设置样式的Excel文件 Excel导出系列目录&#xff1a;★★★★尤其注意&#xff1a;引入依赖创建导出模板类逻辑处理controllerservice 导出效果总结 Excel导出系列目录&#xff1a; 【Springboot 使用EasyExcel导出Excel文件】 【Springb…

【论文分享】基于街景图像识别和深度学习的针对不同移动能力老年人的街道步行可达性研究——以南京成贤街社区为例

全球老龄化趋势加剧, 许多城市中老年人数量不断增加&#xff0c;而现有街道和社区基础设施往往未能满足其步行安全和便利需求。本次我们给大家带来一篇SCI论文的全文翻译&#xff0c;该论文通过探讨不同步行能力的老年人对城市步行环境的需求&#xff0c;提供了关于如何改善城市…

LM2 : A Simple Society of Language Models Solves Complex Reasoning

文章目录 题目摘要简介相关工作方法论实验结果结论局限性 题目 LM2&#xff1a;简单的语言模型社会解决复杂推理问题 论文地址&#xff1a;https://aclanthology.org/2024.emnlp-main.920/ 项目地址&#xff1a; https://github.com/LCS2-IIITD/Language_Model_Multiplex 摘要…

【因果分析方法】MATLAB计算Liang-Kleeman信息流

【因果分析方法】MATLAB计算Liang-Kleeman信息流 1 Liang-Kleeman信息流2 MATLAB代码2.1 函数代码2.2 案例参考Liang-Kleeman 信息流(Liang-Kleeman Information Flow)是由 Liang 和 Kleeman 提出的基于信息论的因果分析方法。该方法用于量化变量之间的因果关系,通过计算信息…

[含文档+PPT+源码等]精品基于springboot实现的原生Andriod手机使用管理软件

软件开发环境及开发工具&#xff1a; 数据库管理工具&#xff1a;phpstudy/Navicat或者phpstudy/sqlyog 开发工具&#xff1a;Android Studio 后台管理系统涉及技术&#xff1a; 后台使用框架&#xff1a;Springboot 前端使用技术&#xff1a;Vue,HTML5,CSS3、JavaScript等…

(三十三)队列(queue)

文章目录 1. 队列&#xff08;queue&#xff09;1.1 定义1.2 函数1.3 习题1.3.1 例题&#xff08;周末舞会&#xff09; 2. 双向队列&#xff08;deque&#xff09;2.1 定义2.2 函数2.3 题目2.3.1 例题&#xff08;打BOSS&#xff09; 1. 队列&#xff08;queue&#xff09; 队…

常用数据类型

1.数值类型 分为整型和浮点型 double(3,1)&#xff1b;长度是3&#xff0c;小数点后是1&#xff0c;比如99.5&#xff0c;10.0&#xff0c;20.8 这里的float和double与java中的类似&#xff0c;都是IEEE 754标准的浮点数&#xff0c;精度会丢失&#xff0c;存在一定误差&#…

Vue3 -- 集成sass【项目集成5】

集成sass&#xff1a; 看过博主的 配置styleLint工具应该已经安装过 sass sass-loader 了&#xff0c;所以我们只需要加上我们的 lang"scss"即可。 <style scoped lang"scss"></style>给项目添加全局样式文件&#xff1a; 在src文件夹下创建…

【云原生系列--Longhorn的部署】

Longhorn部署手册 1.部署longhorn longhorn架构图&#xff1a; 1.1部署环境要求 kubernetes版本要大于v1.21 每个节点都必须装open-iscsi &#xff0c;Longhorn依赖于 iscsiadm主机为 Kubernetes 提供持久卷。 apt-get install -y open-iscsiRWX 支持要求每个节点都安装 N…

Springboot集成ElasticSearch实现minio文件内容全文检索

一、docker安装Elasticsearch &#xff08;1&#xff09;springboot和Elasticsearch的版本对应关系如下&#xff0c;请看版本对应&#xff1a; 注意安装对应版本&#xff0c;否则可能会出现一些未知的错误。 &#xff08;2&#xff09;拉取镜像 docker pull elasticsearch:7…

Diff 算法的误判

起源&#xff1a; 设想一下&#xff0c;假如你桌面上的文件都没有文件名&#xff0c;取而代之的是&#xff0c;你使用通过文件的位置顺序即index来区分它们———第一个文件&#xff0c;第二个文件&#xff0c;以此类推。也许这种方式可行&#xff0c;可是一旦你删除了其中的一…

D69【 python 接口自动化学习】- python 基础之数据库

day69 Python 执行 SQL 语句 学习日期&#xff1a;20241115 学习目标&#xff1a; MySQL 数据库&#xfe63;- Python连接redis 学习笔记&#xff1a; redis数据库的用途 使用Python访问redis数据库 使用Python对redis数据库进行读写操作 总结 1. redis是一款高性能的键…

飞书文档只读限制复制

飞书文档只读限制复制 场景描述解决方式插件安装测试 场景描述 当使用飞书时&#xff0c;可能会存在无对方文档编辑/管理权限&#xff0c;对方只给自己开放只读权限的时候&#xff0c;此时如果文档较重要&#xff0c;需要本地保存一份&#xff0c;但是又无法复制文档或直接屏蔽…