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

[日常使用] Shell常用命令

Shell是什么?

Shell简介

Shell是操作系统的外壳,是用户与操作系统内核之间的主要接口。它接收用户的命令并将其传递给内核执行,然后将执行结果返回给用户。Shell不仅是一个命令解释器,也是一种强大的编程语言。常见的Shell分为图形界面Shell和命令行Shell两类,如Windows的资源管理器和cmd命令窗口。不同系统有不同的Shell,比如在Linux系统中常见的是Bourne Again Shell(即bash)。

  • 在Windows系统中,资源管理器(explorer.exe)是图形Shell,而cmd和PowerShell则是命令行Shell。

  • Dos和Cmd区别

  • [日常使用] Windows快捷键组合“Win + R“常用命令

Shell脚本

Shell脚本是由一系列Shell命令组成的文件,利用Shell的功能编写的程序。通过编写Shell脚本,用户可以轻松地执行多个命令,实现批量处理和自动化维护。

Shell用途

  1. 控制进程和文件,以及启动和控制其他程序。
  2. 减少重复输入和交互操作,实现批量处理和自动化维护,减轻管理负担。

日常使用

常用命令总结

  • ls: 列出当前目录的文件清单。

    • ls -a:显示所有文件,包括隐藏文件。
    • ls -l:显示详细文件信息。
  • cd: 切换当前目录。

    • cd /:进入根目录。
    • cd ..:返回上一级目录。
    • cd -:返回上一次的目录。
  • pwd: 显示当前工作目录。

  • mkdir 和 rmdir: 创建和删除目录。

    • mkdir -p /path/to/directory:递归创建目录。
    • rmdir -p /path/to/directory:递归删除目录。
  • cp: 复制文件或目录。

    • cp file1 ../destination:复制文件到另一个目录。
    • cp file1 file2:复制并重命名文件。
    • cp -r directory1 directory2:复制目录并重命名。
  • mv: 移动或重命名文件或目录。

    • mv file1 ../destination:移动文件到另一个目录。
    • mv file1 file2:重命名文件。
    • mv file1 ../destination/file2:移动并重命名文件。
  • rm: 删除文件或目录。

    • rm -i:交互式删除,会提示确认。
    • rm -r:递归删除目录及其内容。
    • rm -f:强制删除文件或目录。
  • du 和 df: 显示磁盘使用情况和剩余空间。

    • du -sh directory:显示目录总大小。
    • du -sh ./*:显示当前目录下所有文件和目录的大小。
  • cat: 查看文件内容。

    • cat file1:显示文件内容。
    • cat file1 file2 > file3:合并文件1和文件2,并保存为文件3。
  • head 和 tail: 显示文件头部和尾部。

    • head -n file:显示文件的前n行。
    • tail -n file:显示文件的后n行。
    • tail -f file:实时查看文件新增内容。
  • wc: 统计文件的行数、字数和字节数。

    • wc -l:统计行数。
    • wc -w:统计字数。
    • wc -c:统计字节数。
  • grep: 在文件中搜索指定模式。

    • grep 'pattern' file:在文件中搜索模式。

    • grep 'pattern' file1 file2:在多个文件中搜索模式。

      Example:

      # 在文件中搜索包含指定关键字(`keyword`)的行,并将匹配到的行输出到标准输出。
      grep 'keyword' file1
      grep 'keyword' file1 file2
      
      • grep 'keyword' file1:这个命令在单个文件file1中搜索包含关键字keyword的行。grep命令会打开文件file1,逐行搜索文件内容,如果找到包含关键字的行,就将该行输出到标准输出。如果file1中有多个匹配行,它们将以原始顺序输出到标准输出。

      • grep 'keyword' file1 file2:这个命令与前一个命令类似,但它在两个文件file1file2中搜索关键字keywordgrep命令会逐个打开这两个文件,逐行搜索文件内容,如果找到包含关键字的行,就将该行输出到标准输出。如果两个文件中都有匹配行,它们将按照文件顺序先后输出到标准输出。

  • 管道和xargs: 用于命令之间的数据传输和处理。

    • command1 | command2:将command1的输出作为command2的输入。

    • command | xargs:将命令输出作为参数传递给另一个命令。

      Example:

      # 这段代码是两个常用的Unix/Linux命令行操作的结合,用于查找特定文件并删除它们。
      ls | grep keyword
      find /path/to/directory -name "*.txt" | xargs rm
      
      • ls | grep keyword:这个命令首先使用ls命令列出当前目录下的所有文件和文件夹,然后通过管道|将其输出传递给grep命令。grep命令用于在输入中搜索包含指定模式(即keyword)的行,并将匹配到的行输出到标准输出。因此,这个命令的作用是在当前目录下搜索包含特定关键字的文件或文件夹。

      • find /path/to/directory -name "*.txt" | xargs rm:这个命令首先使用find命令在指定目录下(/path/to/directory)递归搜索所有以.txt为后缀的文件,并将搜索到的文件名输出到标准输出。然后,通过管道|将这些文件名传递给xargs命令,xargs命令用于构造和执行命令行命令。在这个例子中,xargs将每个文件名作为参数传递给rm命令,rm命令用于删除文件。因此,这个命令的作用是删除指定目录下所有以.txt为后缀的文件。

  • awk: 用于文本处理的强大工具。

    • awk '{print $1}' file:打印文件的第一列。

      Example:

      # 这句命令是一个典型的Unix/Linux命令行管道操作,显示系统中最近5个登录用户的用户名。。
      last -n 5 | awk '{print $1}'
      
      • last:这是一个用于显示系统登录日志的命令。通常,它会列出系统中所有用户的登录历史记录。如果没有参数指定,它会列出所有的登录历史记录。但是,在这个命令中,使用参数-n 5,它告诉last命令只显示最近的5个登录记录。

      • |:这是一个管道符号,它的作用是将一个命令的输出发送到另一个命令的输入。在这个命令中,它将last命令的输出传递给awk命令。

      • awk '{print $1}':这是一个用于文本处理和数据提取的强大工具。在这个命令中,awk将每一行输入作为记录,并根据空格将每行分割成字段(默认情况下,字段分隔符是空格)。{print $1}表示打印每行的第一个字段。

相关文章:

[日常使用] Shell常用命令

Shell是什么? Shell简介 Shell是操作系统的外壳,是用户与操作系统内核之间的主要接口。它接收用户的命令并将其传递给内核执行,然后将执行结果返回给用户。Shell不仅是一个命令解释器,也是一种强大的编程语言。常见的Shell分为图…...

QT+OSG/osgEarth编译之八十七:osgdb_p3d+Qt编译(一套代码、一套框架,跨平台编译,版本:OSG-3.6.5插件库osgdb_p3d)

文章目录 一、osgdb_p3d介绍二、文件分析三、pro文件四、编译实践一、osgdb_p3d介绍 P3DXML是Panda3D引擎中使用的一种文件格式,用于描述3D场景的层次结构和属性。它是一种基于XML(eXtensible Markup Language)的文本格式,可以被Panda3D引擎读取和解析。 P3DXML文件包含了…...

寒假 day13

1.请编程实现二维数组的杨慧三角 #include<stdio.h> #include<string.h> int main(int argc, const char *argv[]) { int n,i,j;printf("please enter n:");scanf("%d",&n);int arr[n][n];for(i0;i<n;i){for(j0;j<i;j){if(j0 || ij…...

探索微信小程序的奇妙世界:从入门到进阶

文章目录 一、什么是微信小程序1.1 简要介绍微信小程序的定义和特点1.2 解释小程序与传统应用程序的区别 二、小程序的基础知识2.1 微信小程序的架构2.2 微信小程序生命周期的理解2.3 探索小程序的目录结构和文件类型 三、小程序框架和组件3.1 深入了解小程序框架的核心概念和原…...

容器库(4)-std::forward_list

std::forward_list是可以从任何位置快速插入和移除元素的容器&#xff0c;不支持快速随机访问&#xff0c;只支持正向迭代。 本文章的代码库&#xff1a; https://gitee.com/gamestorm577/CppStd 成员函数 构造、析构和赋值 构造函数 可以用元素、元素列表、迭代器或者另…...

Netty Review - 服务端channel注册流程源码解析

文章目录 PreNetty主从Reactor线程模型服务端channel注册流程源码解读入口 serverBootstrap.bind(port) 源码流程图 Pre Netty Review - ServerBootstrap源码解析 Netty Review - NioServerSocketChannel源码分析 Netty主从Reactor线程模型 Netty 使用主从 Reactor 线程模型…...

冒泡排序平均需要跑多少趟:拉马努金Q函数初探

摘要: 拉马努金Q函数在算法分析中的应用&#xff0c;初步体验 【对算法&#xff0c;数学&#xff0c;计算机感兴趣的同学&#xff0c;欢迎关注我哈&#xff0c;阅读更多原创文章】 我的网站&#xff1a;潮汐朝夕的生活实验室 我的公众号&#xff1a;算法题刷刷 我的知乎&#x…...

Shell 学习笔记(三)-shell变量

Shell 语言是一种动态类型和弱类型语言, 因此,在Shell中无需显示地声明变量, 且变量的类型会根据不同的操作符而发生变化. 静态类型语言: 在程序编译期间就确定变量类型的语言, 如java, C等 动态类型语言: 在程序运行期间才确定变量类型的语言, 如PHP, Python等. 一 shell变量…...

新冠:2022和2024两次新冠感染的对比

第一次 2022年底第一次放开管控&#xff0c;95%以上的人都感染了一次奥密克戎 症状 第一天&#xff1a;流涕&#xff0c;咽痛。 第二天&#xff1a;高烧40度&#xff0c;全身疼痛&#xff0c;动不了。没有胃口&#xff0c;头晕想吐。 吃了白加黑退烧药&#xff0c;清开灵颗粒…...

笔记:《NCT全国青少年编程能力等级测试教程Python语言编程二级》

NCT全国青少年编程能力等级测试教程Python语言编程二级 ISBN:9787302565857 绪论 专题1 模块化编程 考查方向 考点清单 考点 模块化编程 (一)模块化编程思想:结构清晰、降低复杂度;提高代码复用率;易于扩展、维护,方便阅读、优化。 …...

顶级思维方式——认知篇五(思想的觉醒)

目录 1、 女性的地位觉醒 2、电视剧《天道》之高人思维&#xff1a;丁元英为什么讲“人间黑白颠倒”&#xff1f; 3、 创业公司, 更应该大胆的创新. 4、 做到一定职务的时候&#xff0c; 你一定想到在你这个地位上你要做什么 1、 女性的地位觉醒 过去引以为鉴的例子&…...

面试技术栈 —— 2024网易雷火暑期实习真题

面试技术栈 —— 2024网易雷火暑期实习真题 1. 最长递增子序列。2. 集中限流和单机限流你觉得哪个好&#xff1f;3. redis部署服务器配置&#xff0c;为什么不用哨兵&#xff1f;4. 讲讲分布式session的原理。5. 数据库&#xff1a;表数据量大了&#xff0c;如何分表&#xff1…...

【小赛1】蓝桥杯双周赛第5场(小白)思路回顾

我的成绩&#xff1a;小白(5/6) 完稿时间&#xff1a;2024-2-13 比赛地址&#xff1a;https://www.lanqiao.cn/oj-contest/newbie-5/ 相关资料&#xff1a; 1、出题人题解&#xff1a;“蓝桥杯双周赛第5次强者挑战赛/小白入门赛”出题人题解 - 知乎 (zhihu.com) 2、矩阵快速幂&…...

docker (二)-yum二进制部署

yum安装docker&#xff08;Linux&#xff09; 安装环境&#xff1a;CentOS 7.9 一 如果之前安装了旧版docker&#xff0c;请先删除 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotat…...

【深度学习】S2 数学基础 P2 线性代数(下)

目录 范数的意义范数的数学意义范数之于深度学习的意义 L1 范数与 L2 范数L1 范数L2 范数 小结 本节博文是线性代数第二部分&#xff0c;主要内容为 L 1 L1 L1 范数与 L 2 L2 L2 范数&#xff1b;有关线性代数基础知识&#xff0c;请访问&#xff1a;【深度学习】S2 数学基础…...

【软考高级信息系统项目管理师--考试内容大纲篇】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;软考高级–信息系统项目管理师 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 软考高级信息系统项目管理师--考试内容大纲篇 1.信息化发展2.信息技术发展3.信息系…...

C语言——枚举类型

&#x1f4dd;前言&#xff1a; 在之前的文章中我们已经讲解了自定义类型中的结构体类型和联合体类型&#xff0c;现在我们再充分学习一下C语言中的枚举类型&#xff1a; 1&#xff0c;什么是枚举类型 2&#xff0c;枚举类型的定义和变量的声明 3&#xff0c;对变量进行赋值 &a…...

linux---内存管理

一 虚拟内存 即使是现代操作系统中&#xff0c;内存依然是计算机中很宝贵的资源&#xff0c;看看你电脑几个T固态硬盘&#xff0c;再看看内存大小就知道了。 为了充分利用和管理系统内存资源&#xff0c;Linux采用虚拟内存管理技术&#xff0c;利用虚拟内存技术让每个进程都有…...

v-model原理

v-model原理 v-model原理表单类组件封装v-model简化代码 v-model原理 1.原理&#xff1a; v-model本质上是一个语法糖。例如应用在输入框上&#xff0c;就是value属性 和 input 事件的合写 <template><div id"app" ><input v-model"msg"…...

波奇学Linux:文件系统

磁盘认识 磁盘被访问的基本单元是扇区-512字节。 磁盘可以看成多个同心圆&#xff0c;每个同心圆叫做磁道&#xff0c;多个扇区组成同心圆。 我们可以把磁盘看做由无数个扇区构成的存储介质。 要把数据存到磁盘&#xff0c;先定位扇区&#xff0c;用哪一个磁头&#xff0c;…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...