当前位置: 首页 > 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;…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么&#xff1f;它的作用是什么&#xff1f; Spring框架的核心容器是IoC&#xff08;控制反转&#xff09;容器。它的主要作用是管理对…...