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.rhkb.cn/news/133047.html

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

相关文章

常用的管理方法论分享

在多年的软件研发团队管理过程中,我积累了一些方法,跟大家分享。 软件研发团队非常注重成本和效率,大多数管理者是从一线开发者升上去的。往往非常善于解决技术问题,但不知道如何管理下属,如何对待上级,如…

【深度学习】 Python 和 NumPy 系列教程(廿四):Matplotlib详解:2、3d绘图类型(10)3D箱线图(3D Box Plot)

目录 一、前言 二、实验环境 三、Matplotlib详解 1、2d绘图类型 2、3d绘图类型 0. 设置中文字体 1. 3D线框图(3D Line Plot) 2. 3D散点图(3D Scatter Plot) 3. 3D条形图(3D Bar Plot) 4. 3D曲面图…

mysql的索引结构

索引概述 索引( index )是帮助 MySQL 高效获取数据的数据结构 ( 有序 ) 。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些…

学会SpringMVC之自定义注解各种场景应用,提高开发效率及代码质量

目录 一、简介 ( 1 ) 是什么 ( 2 ) 分类 ( 3 ) 作用 二、自定义注解 ( 1 ) 如何自定义注解 ( 2 ) 场景演示 场景一(获取类与方法上的注解值) 场景二( 获取类属性上的注解属性值 ) 场景三( 获取参数修…

访问者模式

图片转载自 #include<iostream> using namespace std; #include<list> /*模板工厂单例化&#xff0c;所有的商品被注册进工厂中*/ /*访问者模式&#xff08;行为型模式&#xff09; 访问者&#xff0c;被访问者 visit accept 让访问变成一种操作&#xff0c;不同…

【论文解读】元学习:MAML

一、简介 元学习的目标是在各种学习任务上训练模型&#xff0c;这样它就可以只使用少量的训练样本来解决新任务。 论文所提出的算法训练获取较优模型的参数&#xff0c;使其易于微调&#xff0c;从而实现快速自适应。该算法与任何用梯度下降训练的模型兼容&#xff0c;适用于…

前端JavaScript深拷贝与浅拷贝

&#x1f3ac; 岸边的风&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 引言 1. 深拷贝的实现 1.1 基本类型和特殊类型的处理 1.2 处理循环引用 1.3 性能优化 1.4 完整的深拷贝实现示…

[qt]vs2022+qt5.13.2代码报错QChartView不明确

报错类似下面&#xff1a; 鼠标指上去错误代码显示QChartView不明确,解决方法 在xxx.ui对应的头文件包含”ui_xxx.h“的前方添加如下代码&#xff1a; #include <qchart.h> QT_CHARTS_USE_NAMESPACE

赋能3D智慧校园!老子云数字孪生可视化,学校运维高效之选!

老子云专注于3D领域&#xff0c;自主研发3D可视化底层&#xff0c;已打造了行业智慧园区、智慧交通、智慧机房、智慧水利等标杆案例&#xff0c;构建了可视化数字孪生智慧体系&#xff0c;其中智慧校园不仅实现了技术上的三维落地&#xff0c;更是成为了管控超百万师生校园安全…

SwiftUI 中的几种毛玻璃效果

Preview Code // // testtt.swift // bill2 // // Created by 朱洪苇 on 2023/8/9. //import SwiftUIstruct testtt: View {var body: some View {ZStack {Image("bg1").blur(radius: 5) // 给背景图加模糊VStack {Text("ultraThinMaterial").padding()…

【Linux从入门到精通】线程 | 线程介绍线程控制

本篇文章主要对线程的概念和线程的控制进行了讲解。其中我们再次对进程概念理解。同时对比了进程和线程的区别。希望本篇文章会对你有所帮助。 文章目录 一、线程概念 1、1 什么是线程 1、2 再次理解进程概念 1、3 轻量级进程 二、进程控制 2、1 创建线程 pthread_create 2、2…

AI绘画Stable Diffusion原理之扩散模型DDPM

前言 传送门&#xff1a; stable diffusion&#xff1a;Git&#xff5c;论文 stable-diffusion-webui&#xff1a;Git Google Colab Notebook部署stable-diffusion-webui&#xff1a;Git kaggle Notebook部署stable-diffusion-webui&#xff1a;Git AI绘画&#xff0c;输入一段…

SpringMVC文件的上传下载JRebel的使用

目录 前言 一、JRebel的使用 1.IDea内安装插件 2.激活 3.离线使用 使用JRebel的优势 二、文件上传与下载 1 .导入pom依赖 2.配置文件上传解析器 3.数据表 4.配置文件 5.前端jsp页面 6.controller层 7.测试结果 前言 当涉及到Web应用程序的开发时&…

Android窗口层级(Window Type)分析

前言 Android的窗口Window分为三种类型&#xff1a; 应用Window&#xff0c;比如Activity、Dialog&#xff1b;子Window&#xff0c;比如PopupWindow&#xff1b;系统Window&#xff0c;比如Toast、系统状态栏、导航栏等等。 应用Window的Z-Ordered最低&#xff0c;就是在系…

uni-app 使用uCharts-进行图表展示(折线图带单位)

前言 在uni-app经常是需要进行数据展示&#xff0c;针对这个情况也是有人开发好了第三方包&#xff0c;来兼容不同平台展示 uCharts和pc端的Echarts使用差不多&#xff0c;甚至会感觉在uni-app使用uCharts更轻便&#xff0c;更舒服 但是这个第三方包有优点就会有缺点&#xf…

医院安全不良事件报告系统源码 PHP+ vue2+element+ laravel8+ mysql5.7+ vscode开发

不良事件上报系统通过 “事前的人员知识培训管理和制度落地促进”、“事中的事件上报和跟进处理”、 以及 “事后的原因分析和工作持续优化”&#xff0c;结合预存上百套已正在使用的模板&#xff0c;帮助医院从对护理事件、药品事件、医疗器械事件、医院感染事件、输血事件、意…

数字人员工成企业得力助手,虚拟数字人为企业注入高科技基因

随着互联网和人工智能技术的快速发展&#xff0c;以“数字员工”为代表的数字生产力&#xff0c;正在出现在各行各业的业务场景中。数字人员工的出现不是替代人类&#xff0c;而是通过技术提高工作效率&#xff0c;实现更加智能化的服务体验&#xff0c;帮助企业实现大规模自动…

网上企业订货系统功能列表介绍|企业APP订单管理软件

网上企业订货系统功能列表介绍|企业APP订单管理软件 后台功能列表 &#xff08;后台支持手机版本 订货APP,管理订单的APP&#xff09; 后台登陆 输入账号密码登录企业订货管理软件系统 后台首页 显示近日,月,年订单统计&#xff0c;和收款欠款等统计。 订单模块 新建订单 …

人脸识别三部曲

人脸识别三部曲 首先看目录结构图像信息采集 采集图片.py模型训练 训练模型.py人脸识别 人脸识别.py效果 首先看目录结构 引用文121本 opencv │ 采集图片.py │ 训练模型.py │ 人脸识别.py │ └───trainer │ │ trainer.yml │ └───data │ └──…

使用 Sealos 一键部署高可用 MinIO,开启对象存储之旅

大家好&#xff01;今天这篇文章主要向大家介绍如何通过 Sealos 一键部署高可用 MinIO 集群。 MinIO 对象存储是什么&#xff1f; 对象是二进制数据&#xff0c;例如图像、音频文件、电子表格甚至二进制可执行代码。对象的大小可以从几 B 到几 TB 不等。像 MinIO 这样的对象存储…