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

Linux-常用的Shell命令

文章目录

  • 前言
  • 常用的Shell命令
    • 文件和目录管理
      • 查看文件、目录信息
      • 查看文件内容
      • 查看文件类型
      • 查找文件
      • 查找内容
      • 查看目录大小
      • 创建文件
      • 删除文件
      • 拷贝文件
      • 移动文件
      • 创建目录
      • 删除目录
      • 拷贝目录
      • 压缩文件
      • 解压文件
    • 路径相关操作
      • 目录切换
      • 显示当前路径
    • 用户、用户组管理
      • 创建用户
      • 删除用户
      • 创建用户组
      • 删除用户组
      • 切换用户
    • 系统相关操作
      • 显示网络配置信息
      • 重新启动
      • 关机
      • 系统帮助手册
      • 进程查看
      • 进程实时运行状态查看
      • 数据同步写入磁盘
    • 软件管理
      • 更新软件资源到本地
      • 安装软件
      • 卸载软件
      • 使用软件包安装(.deb)


前言

本篇分享:

Linux操作系统常用的Shell命令

环境介绍:

系统:Linux


常用的Shell命令

文件和目录管理

查看文件、目录信息

在终端该命令可以显示文件和目录的名称、大小、创建日期、修改日期等基本信息,以及权限、所有者、所属组等更详细的信息。 例如ls -l可以显示详细的文件信息,ls -a可以显示隐藏文件等。

指令:
ls常用参数:
l -- 显示文件名、文件类型、权限、拥有者、文件大小等详细信息。
a -- 显示所有文件及目录 (. 开头的隐藏文件也会列出)。
R -- 若目录下有文件,则以下之文件亦皆依序列出。示例:
ls -l 列出当前工作目录下所有文件的详细信息

查看文件内容

使用 cat 命令可以查看文本文件的内容。在命令行中输入 cat 命令,后面加上文件名,即可显示文件的所有内容。

指令:
cat常用参数:
n/number -- 由 1 开始对所有输出的行数编号。示例:
cat file.txt

此外,还可以使用 cat 命令将多个文件的内容合并输出到一个文件中。例如,如果要将 file1.txtfile2.txt 的内容合并输出到 output.txt 文件中,可以使用以下命令:

cat file1.txt file2.txt > output.txt

在这个命令中,> 符号用于将输出重定向到 output.txt 文件中,而 cat 命令则用于将 file1.txtfile2.txt 的内容合并输出。

查看文件类型

使用file命令可以查看文件的类型,包括二进制可执行文件、文本文件、图片、压缩文件等等。执行该命令时,会返回文件的类型以及其他相关信息。

指令:
file示例:
file file.txt 查看file.txt文件类型

具体地,使用file命令时,可以在终端中输入file 文件名,例如:file example.txt。执行后,会返回如下所示的结果:

example.txt: ASCII text

这里的输出结果表明该文件类型为ASCII文本文件。当文件类型为二进制文件时,输出结果可能会显示为:

example.bin: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=..., stripped

其中,ELF表示该文件类型为可执行文件,64-bit表示文件位数为64位,x86-64表示文件为x86架构编译的,dynamically linked表示该文件使用了动态链接库,/lib64/ld-linux-x86-64.so.2为解释器路径,BuildID表示文件的构建ID,stripped表示该文件没有调试符号。

查找文件

使用find命令可以查找指定目录下符合条件的文件。除了基本的文件名和目录名匹配外,还可以按文件类型、文件大小、文件修改时间等条件进行搜索。

指令:
find常用参数:
name -- 根据文件名查找示例:
find / -name "file.txt" 在根目录下查找file.txt文件

查找内容

使用 grep 命令可以在文件或者文本流中查找特定字符串或模式,并输出匹配的行。

指令:
grep常用参数:
d -- 指定要查找的是目录。示例:
grep hello hello.c 在hello.c中查找hello字符串,并打印出该字符串的行。

查看目录大小

使用du命令可以查看指定目录(或文件)的磁盘使用情况。

指令:
du常用参数:
h -- 以K、M、G为单位,提高可读性。示例:
du -h dir 查看目录dir的大小

创建文件

使用touch命令可以创建一个新的空白文件,或者更新已有文件的访问和修改时间。在使用touch命令创建文件时,如果文件已经存在,它将被更新为当前的访问和修改时间。

指令:
touch示例:
touch file.txt 创建文件名为file.txt的文件

删除文件

rm命令可以删除文件,但是需要非常小心,因为删除的文件将不可恢复。

指令:
rm常用参数:
r -- 递归删除,包括目录下的子目录。
f -- 强制删除,无需确认,不存在也不提醒。示例:
rm file.txt 删除file.txt文件
rm -rf dir 删除dir目录

拷贝文件

使用cp命令可以将一个文件从一个位置复制到另一个位置。

指令:
cp常用参数:
r -- 递归复制,将复制该目录下所有的子目录和文件。 
a -- 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。
d -- 复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。 示例:
cp file1.txt file2.txt 复制文件内容file1.txt到file2.txt
cp -r dir ./newdir 递归复制目录dir到newdir

移动文件

当使用 mv 命令时,我们可以对文件进行重命名,也可以将文件移动到不同的目录中。

指令:
mv常用参数:
i  -- 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件。示例:
mv file1 file2 移动文件内容file1到file2。若无file2,相当于文件重命名
mv ./dir1 ./dir2 移动目录dir1到dir2。若无dir2,相当于目录重命名

创建目录

使用mkdir命令可以在Linux或类Unix系统上创建新目录。

指令:
mkdir常用参数:
p -- 目录不存在则创建。示例:
mkdir -p dir1/dir2 dir1不存在则自动创建dir1

删除目录

使用rmdir命令可以删除一个空目录。

rmdir,一般使用rm
rm -rf dir 递归删除目录dir

拷贝目录

使用 cp 命令可以将一个目录及其所有子目录和文件复制到另一个目录。

cp
使用:cp -r dir ./newdir 递归复制目录

压缩文件

使用tar命令可以将一个或多个文件或目录压缩成一个.tar文件。

指令:
tar常用参数:
c -- 创建文件。
z -- 调用gzip来进行压缩。
v -- 显示所有过程。
f -- 压缩文件名字,切记,这个参数是最后一个参数,后面只能文件名。 示例:
tar -czvf text.gz text.c text.h 将text.c、text.h打包压缩为text.gz

解压文件

使用 tar 命令可以将一个或多个文件或目录打包成一个 tar 包,也可以解压缩已经存在的 tar 包。

指令:
tar常用参数:
x -- 解压。
z -- 调用gzip来进行解压。
v -- 显示所有过程。
f -- 压缩文件名字,切记,这个参数是最后一个参数,后面只能文件名。 示例:
tar -xzvf text.gz 解压名为text.gz的压缩包

路径相关操作

目录切换

使用 cd 命令可以切换当前的工作目录。

指令:
cd示例:
cd ~ 家目录
cd - 回到上一次目录

显示当前路径

使用pwd命令可以显示当前所在目录的绝对路径。

指令:
pwd

用户、用户组管理

创建用户

使用useradd命令可以创建一个新用户。

指令:
useradd常用参数:
d -- 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
g -- 指定用户所属的用户组。示例:
useradd -d /home/user1 -m user1 增加一个user1用户,指定用户目录为/home/user1

删除用户

使用userdel命令可以删除一个用户账号。

指令:
userdel常用参数:
r -- 把用户的主目录一起删除。 示例:
userdel -r user1 删除用户名为user1的用户

创建用户组

当我们在 Linux 中添加新的用户时,我们还需要为该用户创建一个用户组。这个用户组将为该用户提供文件和目录的访问权限,并决定该用户是否拥有管理员或其他特权。

以下是使用 groupadd 命令的介绍:

指令:
groupadd常用参数:
g --  指定新用户组的组标识号(GID)。示例:
groupadd group1 创建组名为group1的组
groupadd -g 666 group1 创建组名为group1的组并制定组的标识号为666

删除用户组

使用groupdel命令可以删除指定的用户组。

指令:
groupdel示例:
groupdel group1 删除组名为group1的组

切换用户

使用su命令可以切换用户身份。默认情况下,su命令切换到root用户身份,但也可以指定要切换到的其他用户身份。

指令:
su示例:
su user1 切换到user1用户
su root 切换到root用户

系统相关操作

显示网络配置信息

使用 ifconfig 命令可以查看当前计算机的网络配置信息,包括网卡的IP地址、MAC地址、子网掩码、广播地址等信息。

指令:
ifconfig

重新启动

使用reboot命令可以重启Linux系统。需要注意的是,重启前最好保存所有未保存的工作和数据,以免数据丢失。

指令:
reboot

关机

使用 poweroff 命令可以安全地关机系统。

指令:
poweroff

系统帮助手册

使用 man 命令可以查看 Linux 系统中的手册页。

指令:
man

以下是对该命令的扩充说明:

  1. 基本用法:使用 man 命令加上你想要查找的命令名或者文件名即可。例如,man ls 会显示 ls 命令的手册页,man cp 会显示 cp 命令的手册页。
  2. 手册页的章节:手册页按照章节分类,每个章节包含不同类型的信息。以下是手册页的章节列表:
  • 第 1 章:用户命令,例如 lscp 等。
  • 第 2 章:系统调用,这些调用是操作系统核心提供的接口。
  • 第 3 章:库函数,这些函数通常由 C 语言库提供。
  • 第 4 章:特殊文件,例如设备文件、管道和 socket。
  • 第 5 章:文件格式和约定,例如 passwdfstab 等文件格式。
  • 第 6 章:游戏和演示程序。
  • 第 7 章:杂项。
  • 第 8 章:系统管理员命令,例如 mountreboot 等。

你可以在命令后面加上章节号来查找特定章节的手册页。例如,man 1 ls 会显示 ls 命令的用户手册页,man 2 open 会显示 open 系统调用的手册页。

  1. 搜索手册页:可以使用 / 命令在手册页中搜索关键字。例如,/search 会在手册页中查找 “search” 关键字,并跳转到第一个匹配的位置。按下 n 键可以查找下一个匹配的位置,按下 N 键可以查找上一个匹配的位置。
  2. 离开手册页:按下 q 键即可退出手册页。

进程查看

使用ps命令可以查看当前系统正在运行的进程

指令:
ps常用参数:
a -- 显示所有进程,包括其他用户的进程。
u -- user 显示指定用户的进程信息。
x -- 显示不属于终端的进程信息。
e -- 显示所有进程,等同于"-A"选项。示例
ps -aux

进程实时运行状态查看

使用top命令可以实时查看系统中的进程状态和资源占用情况。除了查看进程的PID、进程名和占用CPU、内存等资源的情况,还可以使用top的交互式命令进行进程管理和排序。

指令:
top

下面是一些常用的top命令操作:

  • 进程排序:在top命令运行时,可以使用下面的快捷键来对进程进行排序,例如按下Shift+P按照CPU使用率进行排序,按下Shift+M按照内存使用率进行排序等。
    • P:按照CPU使用率进行排序
    • M:按照内存使用率进行排序
    • T:按照时间/累计时间进行排序
    • N:按照PID进行排序
    • K:按照进程优先级进行排序
  • 进程管理:在top命令运行时,可以使用下面的快捷键来管理进程,例如按下k键可以杀死指定的进程。
    • k:杀死指定的进程,需要输入要杀死的进程的PID
    • r:修改指定的进程的优先级,需要输入要修改的进程的PID和新的优先级值
    • h:显示帮助信息
    • q:退出top命令

数据同步写入磁盘

使用sync命令可以将系统的内存缓冲区中的数据写入磁盘,以确保数据的持久性。sync命令不需要任何参数,直接执行即可。

但需要注意的是,sync命令只是将缓存的数据写入磁盘,如果系统挂掉或掉电等意外情况发生时,依然有可能会造成数据的丢失。因此,在重要的数据操作完成后,建议使用sync命令将数据写入磁盘,并进行数据备份等措施以确保数据的安全性。

指令:
sync 将缓冲区数据写入磁盘

软件管理

更新软件资源到本地

sudo apt-get update

安装软件

sudo apt-get install 软件名

卸载软件

sudo apt-get remove 软件名

使用软件包安装(.deb)

sudo dpkg -i 安装包名称

相关文章:

Linux-常用的Shell命令

文章目录前言常用的Shell命令文件和目录管理查看文件、目录信息查看文件内容查看文件类型查找文件查找内容查看目录大小创建文件删除文件拷贝文件移动文件创建目录删除目录拷贝目录压缩文件解压文件路径相关操作目录切换显示当前路径用户、用户组管理创建用户删除用户创建用户组…...

Go语言基础:数组定义及循环遍历

前言 大家好,我是沐风晓月,本文go语言入门-掌握go语言函数收录于《go语言学习专栏》专栏,此专栏带你从零开始学习go语言,持续更新中,欢迎点赞收藏。 🏠个人主页:我是沐风晓月 🧑个人…...

【树与二叉树】二叉树顺序结构实现以及堆的概念及结构--详解介绍

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录1. 二叉树顺序结构2.…...

天狗实战(二)SpringBoot API开发详解 --SpringMVC注解+封装结果+支持跨域+打包(下)

本文目录 前言专栏介绍一、创建SpringBoot项目1.1 添加springboot依赖1.2 创建启动类1.3 创建控制器类1.4 Run 或 Debug二、开发图书管理API2.1 web层BookAdminControllerBookVO2.2 service层BookServiceBookServiceImplBookBO2.3 dal层...

实验一 Windows系统安全实验【网络安全】

实验一 Windows系统安全实验【网络安全】前言推荐实验一 Windows系统安全实验3.1 帐户和口令的安全设置3.1.1 实验目的3.1.2 实验环境3.1.3 实验内容和步骤1. 删除不再使用的帐户并禁用guest帐户2.启用密码策略和帐户锁定策略3.查看“用户权限分配”4.查看“用户组权限分配”5.…...

蓝桥杯正确的解题姿势

在做算法题的过程中最忌讳的就是上来就一顿乱敲,一开始我就是这样,但随着不断的刷题和老师的指导,总结了自己的刷题方法 示例题目 三角回文数 问题描述 对于正整数 n, 如果存在正整数 k使得 n123...kk(k1)/2 , 则 n 称为三角数。例如, 66066 …...

【mysql】性能优化

目录一、硬件与操作系统二、架构设计层面的优化三、mysql程序配置优化四、mysql执行优化一、硬件与操作系统 1.使用高性能cpu,提高计算能力 2.增大可用内存,提高读取能力 3.提高硬盘的读写速度,使用专用的固态硬盘 4.增大网络带宽&#xff0c…...

Jupyter安装与远程使用过程记录

Jupyter安装与远程使用过程记录 文章目录Jupyter安装与远程使用过程记录Jupyter在线试用在服务器上安装Jupyter Notebook配置服务器远程连接首先保证ip地址连通性其次开启服务器访问端口然后在服务器启动服务最后测试连通性后续使用教程Jupyter在线试用 官网适用,感…...

Swift入门

基本数据类型 Int、UInt:整数型、非负整数Float、Double:单精度浮点数、双精度浮点数Bool:布偶值String、Character:字符串、字符 其他类型 Array, Dictionary:数组、字典StructClassvar:变量let&#x…...

【HashMap】jdk1.8中HashMap的插入扩容源码学习分析

jdk1.8中HashMap的插入扩容源码学习分析 一、成员变量 首先介绍HashMap中各个成员变量的作用,在HashMap中有以下成员变量 size记录了HashMap中键值对的个数 loadFactor(加载因子)用来决定size达到容量的百分之多少时触发扩容机制 默认是0…...

Linux编译器-gcc/g++ 使用

在介绍gcc/g的使用前我们先了解一下两者的不同 gcc时主要编译c语言,而g主要编译c的,但是两者的选项是相同的,因此我们以gcc和c语言为例来讲解。背景知识 gcc和g都是编译器其核心作用将文本类文件翻译成二进制可执行 那么其过程是怎样的&…...

网络安全专家最爱用的9大工具

网络安全专家,不是你认为的那种搞破坏的 “黑客”。网络安全专家,即 “ethical hackers”,是一群专门模拟网络安全专家攻击,帮助客户了解自己网络的弱点,并为客户提出改进建议的网络安全专家。 网络安全专家在工作中&a…...

Linux内核设计与实现第四章学习笔记

文章目录Linux内核设计与实现第四章学习笔记具体场景Linux调度算法传统的调度公平调度调度的实现时间记账调度器实体虚拟实时进程选择调度器入口睡眠和唤醒抢占和上下文切换用户抢占内核抢占实时调度策略Linux内核设计与实现第四章学习笔记 进程优先级:Linux中采用…...

i.MX9352——介绍一款多核异构开发板

本篇来介绍一款多核异构的Linux开发板——OK-MX9352-C开发板。 1 开发板硬件介绍 OK-MX9352-C开发板由核心板和底板组成,核心板采用处理器芯片为NXP的i.MX9352,这是一款多核异构的芯片,核心板基础配置如下 CPU:2Cortex-A551.5G…...

【Python】一文学会面向对象?当然可以的

文章目录前言一、万物皆对象二、类也是对象三,元类总结前言 在大家学习python的时候,一定听说过一句话: 在我们python中万物皆对象,不管是整数、字符串、列表、字典这些基本数据类型,还是函数、以及自定义类创建出来…...

ElasticSearch - SpringBoot整合ES:精确值查询 term

文章目录00. 数据准备01. ElasticSearch 结构化搜索是什么?02. ElasticSearch 结构化搜索方式有哪些?03. ElasticSearch 全文搜索方式有哪些?04. ElasticSearch term 查询数字?05. ElasticSearch term 查询会不会计算评分&#xf…...

【GPT4】微软对 GPT-4 的全面测试报告(2)

欢迎关注【youcans的GPT学习笔记】原创作品,火热更新中 微软对 GPT-4 的全面测试报告(1) 微软对 GPT-4 的全面测试报告(2) 【GPT4】微软对 GPT-4 的全面测试报告(2)2. 多模态与跨学科的组合&…...

Docker打包exe运行环境

Docker打包exe运行环境 本文运行环境 Window安装Docker环境 修改配置 点击Switch to Window containers OS/Arch 变为 windows/amd64 拉取window镜像 访问Nano Server找到需要的Window版本拉取镜像 运行镜像测试 进入到容器内部 其他内容就自由发挥啦~~ 参考内容…...

springboot+vue田径运动会成绩管理系统java

springboot是基于spring的快速开发框架, 相比于原生的spring而言, 它通过大量的java config来避免了大量的xml文件, 只需要简单的生成器便能生成一个可以运行的javaweb项目, 是目前最火热的java开发框架 田径运动会成绩管理系统,主要的模块包括首页、个人中心、赛…...

我能“C”——详解操作符(上)

目录 1.操作符的分类: 2. 算数操作符 3.移位操作符 4.位操作符 5.赋值操作符 6.单目操作符 7.关系操作符 8.逻辑操作符 THE END 1.操作符的分类: 操作符也叫运算符 算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

今日科技热点速览

🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

2025季度云服务器排行榜

在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...