Linux与shell命令行学习

文章目录

  • 走进shell
  • 基本的bash shell命令
    • 2.1 遍历目录 cd
    • 2.2 查看文件和目录列表 ls
    • 2.3 创建文件 touch
    • 2.4 复制文件 cp
    • 2.5 自动补全 tab
    • 2.6 链接文件 ln
    • 2.7 文件重命名 mv
    • 2.8 删除文件 rm
    • 2.9 创建目录 mkdir
    • 2.10 删除目录 rmdir
    • 2.11 查看文件类型 file
    • 2.12 查看整个文件 cat、more、less
    • 2.13 查看部分文件 tail、head
  • 更多的bash shell命令
    • 3.1监测程序 ps、top、kill
      • 探查进程 ps
      • 实时监测进程 top
      • 结束进程 kill、killall
    • 3.2监测磁盘空间
      • 3.2.1挂载存储媒体 mount
      • 3.2.2 卸载 umount
      • 3.2.3 df命令
      • 3.2.4 du命令
    • 3.3处理数据文件
      • 3.3.1 排序数据 sort
      • 3.3.3搜索数据 grep
      • 3.3.4压缩数据 gzip
      • 3.3.5归档数据 tar
  • Linux环境变量

走进shell

快捷键描述
Ctrl+Shift+加号放大终端的字体
Ctrl+减号缩小终端的字体
Ctrl+Shift+C复制
Ctrl+Shift+V粘贴
Ctrl+Shift+F打开find功能,提供文本查找
Ctrl+Shift+N启动一个新的shell会话
Ctrl+Shift+Q/W终止当前会话

基本的bash shell命令

常见的Linux目录名称:
image.png

2.1 遍历目录 cd

使用 cd 后面既可以跟文件名,也可以跟路径名。
路径参数有两种:
(1)绝对文件路径
绝对文件路径以“/”作为起始,指明虚拟文件系统的根目录。因此,如果要指 向usr目录所包含的bin目录下的用户二进制文件,可以使用如下绝对文件路径:/usr/bin

  • 显示当前会话的目录:pwd
  • 从任意目录跳回主目录:cd 或 cd~

(2)相对文件路径
相对文件路径不以代表根目录的正斜线(/)开头,而是以目录名(如果用户准备切换到当前工作目录下的一个目录)或是 一个特殊字符开始。
有两个特殊字符可用于相对文件路径中:

  • 单点符(.),表示当前目录;
  • 双点符(…),表示当前目录的父目录,也就是上级目录。

2.2 查看文件和目录列表 ls

  • 显示当前目录的文件和列表: ls
  • 可用带-F参数的ls命令轻松区分文件和目录,文件夹后面会有“/”ls -F
  • 显示隐藏文件,文件名以“.”开头:ls -a
  • 列出当前目录下包含的子目录中的文件:ls -F -R
  • 显示了目录中每个文件的更多相关信息:ls -l
  • 用过滤器来决定应该在输出中显示哪些文件或目录:ls -l my_script
    • 问号(?)代表一个字符;
    • 星号(*)代表零个或多个字符。

2.3 创建文件 touch

创建空文件:touch file

2.4 复制文件 cp

对系统管理员来说,在文件系统中将文件和目录从一个位置复制到另一个位置可谓家常便饭。cp命令可以完成这个任务。

  • cp命令需要两个参数——源对象和目标对象:cp _source destination_。当source和destination参数都是文件名时,cp命令将源文件复制成一个新文件,并且以destination命名。新文件就像全新的文件一样,有新的修改时间。
  • 加上-i选项,强制shell询问是否需要覆盖已有文件:cp -i test_one test_two
  • 同样可以使用绝对路径和相对路径进行复制:
    • cp -i test_one /home/test/doc
    • cp -i test_one doc/
  • 如果需要将一个带有很长的源对象名的文件复制到当前工作目录中时,单点符能够简化该任务:
    • cp -i /etc/NetworkManager/NetworkManager.conf .
  • 在一条命令中递归地复制整个目录的内容:cp -R Scripts/ Mod_Scripts
  • 可以在cp命令中使用通配符,将所有以script结尾的文件复制到Mod_Scripts目录中:
    • cp *script Mod_Scripts/

2.5 自动补全 tab

在使用命令行时,很容易输错命令、目录名或文件名。实际上,对长目录名或文件名来说,输错的几率还是蛮高的。这正是制表键自动补全挺身而出的时候。制表键自动补全允许你在输入文件名或目录名时按一下制表键,让shell帮忙将内容补充完整。

2.6 链接文件 ln

如需要在系统上维护同一文件的两份或多份副本,除了保存多份单独的物理文件副本之外,还可以采用保存一份物理文件副本和多个虚拟副本的方法。这种虚拟的副本就称为链接。链接是目录中指向文件真实位置的占位符。在Linux中有两种不同类型的文件链接:符号链接、硬链接。
(1)符号链接
符号链接就是一个实实在在的文件,它指向存放在虚拟目录结构中某个地方的另一个文件。这两个通过符号链接在一起的文件,彼此的内容并不相同。
ln -s data_file sl_data_file
image.png
(2)硬链接
硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但是它们从根本上而言是同一个文件。引用硬链接文件等同于引用了源文件。要创建硬链接,原始文件也必须事先存在,只不过这次使用ln命令时不再需要加入额外的参数了。
ln code_file hl_code_file
image.png
说明:**只能对处于同一存储媒体的文件创建硬链接。要想在不同存储媒体的文件之间创建链接, **
只能使用符号链接。

2.7 文件重命名 mv

mv指令不仅可以对文件进行重命名,还可以用来移动文件的位置。
移动文件会将文件名从fall更改为fzll,但inode编号和时间戳保持不变。这是因为mv只影响文件名
image.png
使用mv命令把文件fzll从/home/christine移动到了/home/christine/Pirctures。和刚才一样,这个操作并没有改变文件的inode编号或时间戳。
image.png
说明:和cp命令类似,也可以在mv命令中使用-i参数。这样在命令试图覆盖已有的文件时,就会得到提示。

2.8 删除文件 rm

bash shell中没有回收站或垃圾箱,文件 一旦删除,就无法再找回。因此,在使用rm命令时,要养成总是加入-i参数的好习惯
image.png
rm命令的另外一个特性是,如果要删除很多文件且不受提示符的打扰,可以用 **-f **参数强制删除。

2.9 创建目录 mkdir

在Linux中创建目录很简单,用mkdir命令即可。
image.png
要想同时创建多个目录和子目录,需要加入 -p 参数。
image.png

2.10 删除目录 rmdir

默认情况下,rmdir命令只删除空目录。因为我们在New_Dir目录下创建了一个文件my_file,所以rmdir命令拒绝删除目录。要解决这一问题,得先把目录中的文件删掉,然后才能在空目录上使用rmdir命令
image.png
rmdir并没有-i选项来询问是否要删除目录。可以在整个非空目录上使用rm命令。使用 -r 选项使得命令可以向下进入目录,删除其中的文件,然后再删除目录本身。当需要删除大量目录和文件时,这一点尤为有效。
image.png
这种方法虽然可行,但很难用。一口气删除目录及其所有内容的终极大法就是使用带有
-r参数和-f参数
的rm命令。
image.png

2.11 查看文件类型 file

image.png

2.12 查看整个文件 cat、more、less

(1)cat
只显示文本内容,没有行号显示。
image.png
-n 参数会给所有的行加上行号。
image.png
如果只想给有文本的行加上行号,可以用 -b 参数,也就是说空行不用显示。
image.png
如果不想让制表符出现,可以用 **-T **参数。
image.png

(2)more
cat命令的主要缺陷是:一旦运行,你就无法控制后面的操作,cat命令有点繁琐。文件的文本会在显示器上一晃而过。
more命令会显示文本文件的内容,但会在显示每页数据之后停下来。
image.png
可以通过按空格键或回车键以逐行向前的方式浏览文 本文件。浏览完之后,按q键退出。
(3)less
less提供了一些极为实用的特性,能够实 现在文本文件中前后翻动,而且还有一些高级搜索功能。
less命令的操作和more命令基本一样,一次显示一屏的文件文本。除了支持和more命令相 同的命令集,它还包括更多的选项。

2.13 查看部分文件 tail、head

(1)tail命令
使用tail命令浏览文件最后10行的效果。
tail log_file
通过加入-n 2使 tail命令只显示文件的最后两行。
tail -n 2 log_file
(2)head命令
显示文件前10行的文本。
head log_file
类似于tail命令,它也支持-n参数,这样就可以指定想要显示的内容了
head -5 log_file

更多的bash shell命令

3.1监测程序 ps、top、kill

探查进程 ps

image.png
image.png

实时监测进程 top

ps命令虽然在收集运行在系统上的进程信息时非常有用,但也有不足之处:它只能显示某个特定时间点的信息。如果想观察那些频繁换进换出的内存的进程趋势,用ps命令就不方便了。而top命令刚好适用这种情况。top命令跟ps命令相似,能够显示进程信息,但它是实时显示的。

结束进程 kill、killall

kill命令可通过进程ID(PID)给进程发信号。默认情况下,kill命令会向命令行中列出的全部PID发送一个TERM信号。遗憾的是,你只能用进程的PID而不能用命令名,所以kill命令有时并不好用。
image.png
killall命令非常强大,它支持通过进程名而不是PID来结束进程。killall命令也支持通配符,这在系统因负载过大而变得很慢时很有用。
image.png

3.2监测磁盘空间

3.2.1挂载存储媒体 mount

挂载的意义:Linux文件系统将所有的磁盘都并入一个虚拟目录下。在使用新的存储媒体之前,需要把它放到虚拟目录下。这项工作称为挂载(mounting)。
默认情况下,mount命令会输出当前系统上挂载的设备列表。
image.pngimage.png
手动将U盘/dev/sdb1挂载到/media/disk,可用下面的命令:
mount -t vfat /dev/sdb1 /media/disk
image.png
image.png
image.png

3.2.2 卸载 umount

image.png
image.png
上例中,命令行提示符仍然在挂载设备的文件系统目录中,所以umount命令无法卸载该镜像文件**。一旦命令提示符移出该镜像文件的文件系统,umount命令就能卸载该镜像文件。**

3.2.3 df命令

image.png
image.png

3.2.4 du命令

image.png
image.png

3.3处理数据文件

3.3.1 排序数据 sort

如果你本期望这些数字能按值排序,就要失望了。默认情况下,sort命令会把数字当做字 符来执行标准的字符排序,产生的输出可能根本就不是你要的。解决这个问题可用-n参数,它会告诉sort命令把数字识别成数字而不是字符,并且按值排序。
image.png
另一个常用的参数是-M,按月排序。Linux的日志文件经常会在每行的起始位置有一个时间戳,用来表明事件是什么时候发生的。
image.png
image.png

3.3.3搜索数据 grep

image.png
image.png
image.png

3.3.4压缩数据 gzip

image.png
image.png

3.3.5归档数据 tar

image.png
image.png
image.png

Linux环境变量

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

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

相关文章

ElementUI浅尝辄止19:Badge 标记

出现在按钮、图标旁的数字或状态标记。 1.如何使用&#xff1f; 可展示新消息数量。 //定义value属性&#xff0c;它接受Number或者String。<el-badge :value"12" class"item"><el-button size"small">评论</el-button> <…

ABAP BAPI_ACC_DOCUMENT_POST 中 EXTENSION1的用法

BAPI_ACC_DOCUMENT_POST 在过账会计凭证时候&#xff0c;经常会发现一些标准字段在参数中并没有 可以通过CMOD/SMOD增强出口--》ACBAPI01--》EXIT_SAPLACC4_001--》ZXACCU15 示例代码&#xff1a; DATA: wa_extension TYPE bapiextc,it_extension TYPE STANDARD TABLE OF ba…

springboot整合Interceptor

1.定义两个拦截器 一. package com.boot.intercept.intercept;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.H…

软件工程概述

软件工程概述 软件工程指的是应用计算机科学、数学及管理科学等原理&#xff0c;以工程化的原则和方法来解决软件问题的工程&#xff0c;目的是提高软件生产效率、提高软件质量、降低软件成本。 1. 计算机软件 计算机软件指的是计算机系统中的程序及其文档。程序是计算任务的…

圆圈加数字的css

方式一 .circle { width: 50px; height: 50px; border-radius: 50%; background-color: #f00; color: #fff; text-align: center; line-height: 50px; } .circle::before { content: attr(data-number); display: block; } <div class"circle" data-number"…

C++学习笔记--函数重载(2)

文章目录 1.3、Function Templates Handling1.3.1、Template Argument Deduction1.3.2、Template Argument Substitution 1.4、Overload Resolution1.4.1、Candidate functions1.4.2、Viable functions1.4.3、Tiebreakers 1.5、走一遍完整的流程1.6、Name Mangling1.7、总结 1.…

咖啡喝完还能建房?掺入混凝土强度高30%

咖啡是全世界消耗量最高的饮料&#xff0c;这也导致咖啡渣的数量相当大很特别&#xff0c;据估计&#xff0c;全球每年会产生1800万吨废弃咖啡残渣&#xff0c;其中大多数最终被填埋处理。它们会在垃圾填埋场中分解&#xff0c;释放出甲烷&#xff0c;而甲烷引起的全球变暖效应…

深度ESP32 PWM教程如何在ESP32 中使用PWM

关于ESP32PWM的简要说明 ESP32 SoC 满载了非常有用的外设&#xff0c;PWM 就是其中之一。是的。ESP32 的芯片中有一个专用的 PWM 硬件模块。脉宽调制或简称PWM是一种成熟且广泛使用的供电技术。 您可以使用 ESP32 的 PWM 来驱动 LED、电机&#xff08;普通直流电机和无刷电机…

ROS多话题同步回调

文章目录 ExactTime PolicyApproximateTime Policy参考ExactTime Policy 这种方法要求输入的消息的时间戳必须完全相同才调用回调函数。 #include <message_filters/subscriber.h> #include <message_filters/synchronizer.h> #include <message_filters/sync…

qt文件操作

对话框练习 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//字体按钮 void Widget::on_ztbtn_clicked() {//调用QFontDia…

在Spring Boot中使用Redis 5的Stream

引言 Redis是一个开源的高性能键值对存储系统&#xff0c;而Redis 5引入了新的数据结构——Stream&#xff08;流&#xff09;。Stream可以用于高效地保存和处理事件流数据。在本文中&#xff0c;我们将学习如何在Spring Boot应用程序中使用Redis 5的Stream功能。 步骤 步骤…

01_Flutter之下拉刷新和上拉加载

一.创建页面 由于我们需要请求网络&#xff0c;并将返回的数据渲染到页面上&#xff0c;所以需要继承StatefulWidget&#xff0c;本文涉及的接口&#xff0c;取自鸿神的玩android开放API class ProjectListPage extends StatefulWidget {overrideState<StatefulWidget>…

AMEYA360:士兰微推出600A/1200V IGBT汽车驱动模块,提升充电速度与行驶动力

随着人们对环保意识的提高和汽车驾驶体验感的不断追求&#xff0c;新能源汽车的市场需求逐渐增大&#xff0c;已然成为汽车发展的大趋势&#xff0c;但是新能源汽车充电时间长、续航里程短等问题仍然是汽车厂商和车主们的痛点。因此&#xff0c;需要更好的汽车驱动产品来实现“…

Java和Kotlin的Field在继承中的不同表现

Kotlin是一个宣称与Java兼容性较好的语言&#xff0c;但在接触后发现一些技术还是有“概念上”的冲突&#xff0c;本文就记录下两者对象的Field&#xff08;中文的说法有字段、域、属性、成员变量&#xff0c;下文若出现这些表达&#xff0c;指的都是这个东西&#xff09;在继承…

js摄像头动态检测

利用摄像头每一秒截图一次图像。然后计算2次图像之间的相似度。 如果相似度低于98%就会报警。 var video document.getElementsByClassName(inputvideo)[0]; video.innerHTML "<video classinput_video idcamera autoplay width640px height380px></video>…

工厂模式 与 抽象工厂模式 的区别

工厂模式&#xff1a; // 抽象产品接口 interface Product {void showInfo(); }// 具体产品A class ConcreteProductA implements Product {Overridepublic void showInfo() {System.out.println("This is Product A");} }// 具体产品B class ConcreteProductB impl…

windows10使用wheel安装tensorflow2.13.0/2.10.0

安装过程 安装虚拟环境安装virtualenv安装满足要求的python版本使用virtualenv创建指定python版本的虚拟环境 安装tensorflow2.13.0安装tensorflow-docs直接下载使用wheel下载 在VSCode编辑器中使用虚拟环境下的包 安装虚拟环境 这里笔者使用的是 virtualenv进行虚拟环境搭建的…

大数据平台之元数据

目录 一、表、字段元数据 二、作业元数据 一、表、字段元数据 表、字段元数据主要可以分为原始信息和附加信息两大类&#xff0c;原始信息包含&#xff1a;表名、表备注、字段名、字段类型、字段备注、表的大小、分区信息等&#xff0c;附加信息可以是跟表、字段相关的包含一…

VIRTIO-BLK代码分析(2)VIRTIO驱动分析

QEMU模拟的VIRTIO设备同时也是PCIE设备&#xff0c;Guest中VIRTIO PCIE驱动与之匹配&#xff0c;根据设备驱动模型&#xff0c;最终触发probe函数virtio_pci_probe()。该probe函数使能PCIE设备&#xff0c;并注册VIRTIO设备&#xff0c;并与VIRTIO-BLK匹配&#xff0c;触发VIRT…