Linux下:指令的理解、本质、shell

文章目录

  • 理解
  • 文件的属性
  • 目录结构
  • 快捷键
    • 上下
    • history
    • table两下
    • CTRL + C
    • CTRL + D
    • 关机命令
  • 文件互传
  • shell命令及其运行原理
  • 指令的本质
  • 命令
    • whoami
    • who
    • pwd
    • ls
    • clear
    • cd
    • tree
    • ctrl + c
    • touch
    • stat
    • mkdir
    • rmdir && rm
    • man
    • cp
    • mv
    • which
    • alisa
    • cat
    • tac
    • echo
    • `>` 输出重定向
    • `>>` 追加重定向
    • `<` 输入重定向
    • more
    • less
    • head
    • tail
    • `|` 命令行管道
    • date 时间
    • cal
    • find
    • which
    • whereis
    • grep
    • sort
    • uniq
    • wc
    • kill -9
    • 打包压缩
      • zip/unzip
      • tar

理解

  • 先有的键盘,后有的鼠标

  • 先有的指令,后有的图形化界面

  • 指令操作和图形化界面操作在本质上没有区别,只在形式上存在区别

  • Linux下一切皆文件

    • 减少linux系统的编码维护成本

文件的属性

  • 文件名、大小等,这些文件的属性,本质上也是数据,是数据就要被计算机记录下来。不论是文件内容还是文件属性都要被存储。

  • 属性也是数据。

  • 即使是一个新创建的文件,也是要占据磁盘空间的。

  • 文件 = 文件内容 + 文件属性

  • 所有的文件操作在本质上,要么对文件内容进行操作,要么对文件属性进行操作。

  • 在Linux操作系统中,以.开头的是隐藏文件

目录结构

  • . 当前路径,一个点指向自己

  • .. 上级路径,两个点指向上级目录

  • 任何一个目录都存在这两种

  • 同级目录下,不能存在同名文件,或者同名目录

目录结构

  • Linux的整体目录结构是一棵多叉树的样子。
  • 叶子结点:一定是一个普通文件。
  • 非叶子结点:一定是目录。
  • 访问一个文件的本质,需要先找到它。
  • 找到一个文件的本质是在一棵多叉树中进行结点的查找。
  • 几乎所有的操作系统,文件夹或者目录的结构都是树状的。

路径

  • 路径的本质就是一颗多叉树的搜索路径。
  • 路径具有唯一性,所以路径可以用来标识指定文件/目录的位置。

路径分隔符

  • Linux路径分隔符:/
  • Windows路径分隔符:\
  • 两个正(反)斜杠之间的一定是一个目录(文件夹)

根目录

  • Linux根目录:/
  • 根目录也是目录,根目录里面可以存放其他的目录

相对路径
从根目录/开始,以根目录为基准点,定位到一个叶子结点文件的方式,形成的路径,称为绝对路径

绝对路径
以自身当前所处的目录为参考点,定位到一个叶子结点文件的方式,形成的路径,称为相对路径

  • 一般在配置文件中使用

家目录

  • root的家目录:/root或者说是~
  • 普通用户的家目录:home/username或者说是~
  • 在登录的时候,默认登录所处的路径,就是当前登录用户的家目录。

快捷键

上下

上下选择历史命令

history

查看历史命令

table两下

命令自动补齐
  • 空行连续t两次,显示系统中所有的指令
  • 输入’x’ 快速两次table,显示以’x’开头的所有指令
  • 输入’x’一次table,直接补齐以x开头的指令或者文件

CTRL + C

结束

CTRL + D

退出当前用户

关机命令

  • shutdown -t 30
    三十秒之后关机
  • shutdown -h
    立即关机
  • shutdown -r
    将系统的服务停掉之后重启

文件互传

  • yum install -y lrzsz

从Linux传到Windows

  • sz file
    将file文件从Linux传到windows

从Windows到Linux

  • 直接从win界面将文件拖拽到xshell界面

从Linux1传到Linux2

  • scp file.zip user@testip
    从linux1中将file.zip文件传到ip地址为testip的Linux服务器中用户为user的目录中

shell命令及其运行原理

以命令行为表现形式的软件,称为shell外壳程序,命令行解释器bash

在命令行中输入的命令称之为shell命令,负责将shell命令进行接收的叫做shell外壳程序

操作系统

  • 广义:内核+外壳
    外壳:命令行、图形化界面
  • 狭义:内核

操作系统的内核->shell外壳->指令操作/开发操作

为什么需要shell外壳
因为操作系统本身的易用程度和安全方面的考虑,一般不允许用户直接去访问操作系统。用户想要直接访问操作系统,需要的知识储备等的要求非常高。所以需要shell外壳。
什么是shell外壳
核心工作:在用户和内核之间,将使用者的命令翻译给操作系统核心(kernel)处理,同时将核心的处理结果翻译给使用者。
shell运行原理
shell本质上也是一个执行起来的程序(进程),系统启动期间,这个程序一直存在。对于有风险的或者用户自定义的指令,shell都是通过创建子进程的方式让子进程去执行有风险的指令。

如果将shell比作媒婆,bash就是王婆,也有sh是李婆。

每次你进行xshell登录的时候,操作系统都要给你这个用户的当前登录,新启动一个shell或者bash。每次关闭的时候也会自动回收创建的shell或者bash。

指令的本质

命令的本质就是二进制或者说可执行文件
  • 存放在usr/bin/目录下
  • 所有的指令基本上都在/usr/bin目录下的可执行程序
  • 将我们自己写的命令拷贝到这个目录下的这个过程就叫做安装
  • 卸载就是将这个目录下的指定的可执行程序删除

命令

whoami

查看当前账号是哪个账号

who

查看当前有哪些账号登录了这个机器

pwd

查看当前所处的工作目录

ls

  • ls
    查看当前目录下的文件信
    打印当前目录下所有文件名属性
  • ls -l
    显示当前目录下文件的属性列表
  • ls -a
    显示当前目录下的隐藏文件
  • ls -l -a
  • ls -a -l
  • ls -al
  • ls -la
    四个命令没有区别
  • ll == ls -l
  • ls -d
    只显示当前目录

clear

清屏

cd

更改工作目录,切换路径
  • cd 绝对路径/相对路径
  • cd -:跳转到最近一次所处的目录
  • cd ~:跳转到到当前用户的家目录

tree

将当前目录以树状结构打印出来
  • 安装:yum install -y tree

ctrl + c

终止当前命令运行

touch

  • 创建普通文件
  • 更改文件时间

stat

  • 查看文件更详细的属性信息
  • 查看文件的ACM时间:access、modify、change

mkdir

  • 创建目录 mkdir filenmame
  • 创建路径 mkdir -p file1/file2/file3

rmdir && rm

建议用于删除空目录
删除文件/目录
rm删除时,默认不删除隐藏文件
  • rm filename 删除文件
  • rm -r filename 递归删除目录
  • rm -rf filename 强制递归删除文件/目录,并且不询问
  • rm -i filename删除之前询问
    有意思的:rm -rf /
  • rm -rf * 删除目录中所有未隐藏的文件,隐藏文件不删除

man

在线手册
  • yum install -y man-pages

  • man man 询问man手册,man怎么使用

  • man ls 在手册中查看ls

  • man中一共有九种手册,默认是第一种

  • 第一种手册是Linux系统命令手册

  • 第三种手册是C/C++库函数手册

  • man 3 printf
    默认不带手册编号,使用1号手册
    带手册编号就在数字手册中查找

  • man 手册编号 查找的指令/方法

cp

拷贝

文件拷贝

  • cp filename .. 将filename这个文件拷贝到上级目录下

目录文件

  • cp -rf dirname ..将dirname这个目录拷贝到上级目录下
  • cp -rf dirname dirnamenew 将dirname这个目录拷贝到当前目录下,拷贝之后重新命名为dirnamenew
  • cp -rf dirname /root/test 将dirname这个目录拷贝到root目录下,并且重命名为test
  • cp -rf /root/dirname/* test 将root/dirname目录下的所有文件拷贝到test目录中,不包括隐藏文件

mv

移动、剪切

mv ../test . 将上级目录中的test目录移动到当前目录
mv file ../ 将当前目录下的file文件移动到上级目录下
mv file ../filename 将当前目录下的file文件移动到上级目录,并且重命名为filename
mv file filename 将当前目录下的file文件重命名为filename

which

查看指定命令在系统的什么路径下
  • which ls

alisa

别名
  • alisa 110 = 'ls -lls -l指令设置一个110的别名

cat

打印文件内容
  • cat filename 将filename文件的内容打印出来

  • cat -n filename 打印文件内容的时候带行号

  • cat -s filename 不输出多行空行

  • cat -b filename 对非空行输出行编号

  • cat 直接输入cat回车,输入什么打印什么,”复读机“

    • cat从键盘文件读取什么,就像显示器文件写入什么
    • cat默认读取,是从键盘文件中输入
  • cat < testfile 将本来应该从键盘文件中读入内容,更改为从普通文件testfile中进行输入

  • 用途:打印短小的内容

tac

逆向打印文件内容

echo

默认向显示器文件进行写入
  • echo "hello world" 将“hello world” 写入到终端窗口/显示器/控制台文件
  • echo "hello world" > filename 将”hello world“写入到filenam文件中,如果文件不存在则会新建一个名字为filename 的文件。

> 输出重定向

输出重定向,将原本写入的方向的文件更改
  • 输出重定向每次写入,都会先清空原始文件的内容,再写入
    新建空文件
  • > filename 如果filename不存在,创建一个filename文件
    清空文件
  • > oldfile oldfile文件已经存在,并且oldfile文件中存储有内容,此时将文件中的内容进行清空

>> 追加重定向

追加重定向,向目标文件中,在原始文件内容的基础上追加内容,并且每次追加都会换行

< 输入重定向

输入重定向,将原本读取数据的目标文件,更改为别的文件读取

more

不推荐
查看文件,只能下翻,不能上翻

less

查看文件,可以上下翻动,输入`/xxx`可以进行搜索并且定位到位置

head

默认打印文件的前10行
  • head -20 filename 打印文件的前20行

tail

默认打印尾部的后10行
  • tail -5 filename 打印文件的倒数5行

| 命令行管道

管道`|`的左边是入口,右边是出口,流动的是数据
管道左侧的输出,作为管道右侧的输入
head -80010 filename | tail -10 | tac | head -3

解释,使用head命令从filename文件从提取出前面的80010行数据作为输入给tail,tail命令从这80010行数据中提取倒数10行的数据作为输入给tac,tac将这10行数据倒序后输入给head,head从这10行数据中提取前三行打印出来

date 时间

打印日期时间,支持自定义格式化输出
  • date +%Y-%m-%d_%H:%M:%S 按照年月日时分秒的形式打印当前时间
  • date +%s 输出当前时间戳
  • date -d @0 时间戳转化为年
  • date +%Y-%m-%d_%H:%M:%S -d @0将时间戳转化为年月日时分秒

时间戳:时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

因为中国在东八区和实际的时间戳相差八小时,计算时需要减去8小时

cal

默认打印当前月份的日历
  • cal 1949打印1949年1~12月的日历

find

在目录结构中搜索文件,并执行指定的操作
  • find /root/home/yc -name filename
    /root/home/yc路径下按照名称查找与filename名字相同的文件

which

默认在user/bin目录下查找指令
  • which who

whereis

查找文件,指令,文档,压缩包等

grep

匹配,在文件中匹配搜索字符串,将找到的行打印出来
  • grep 'A' test.c在文件test.c中匹配A,将存在A的行显示出来,严格区分大小写

  • grep -i 'A' test.c在文件test.c中匹配A,将存在A的行显示出来,不区分大小写

  • grep -n 'A' test.c将匹配到的行显示出来,并且显示行号

  • grep -v 'A' test.c忽略匹配到的行,显示没有匹配到的行

    grep主要作用是用于行过滤。

  • `ps axj | grep ‘sleep’ 在ps输出的进程中查找带有sleep关键字的进程

  • cat /var/log/messages* | grep -i 'error'在日志信息中查找带有error关键字的日志

sort

按照文件中行的ascii进行排序打印
  • sort filename
  • sort -r filename逆向打印

主要作用:按照相同的规则将相同的放在一起

uniq

将文本文件中相邻的行如果是重复的只保留一行
  • uniq -u filename 将文本文件中相同的行只保留一行,即使他们不相邻
  • -d 只显示重复的行
  • c 打印的同时打印重复了多少次

文本去重,先sort再uniq

  • sort dilename | uniq 先将文本中相同的行放在一起,然后再进行去重

wc

字符统计
  • wc -l按行统计

kill -9

干掉一个进程

打包压缩

  • 多个文件打包压缩成一个文件,防止文件丢失
  • 压缩之后,体积小,更节省空间
  • 压缩之后,体积小,再进行网络传输的时候,更节省时间

zip/unzip

  • yum install -y zip

压缩

  • zip filename.zip test/*
    将test目录下的所有文件打包压缩,压缩包的名字为filename.zip
  • zip file.zip test
    将test目录打包压缩为file.zip,但是解压之后发现压缩包中没有文件
    zip打包压缩目录,默认不包括目录中的文件
  • zip -r file.zip test
    将test目录包括里面的所有文件,打包压缩为file.zip,包括隐藏文件

解压

  • unzip filename.zip
    将filenema.zip解压到当前目录
  • unzip file.zip -d test
    将file.zip解压到test目录下

tar

`.tgz`后缀压缩包文件

压缩

  • tar -czf file.tgz test
    将test目录使用tar的方式打包压缩为file.tgz
    解压
  • tar -xzf file.tgz
    将file.tgz文件解压到当前目录
  • tar -xzf file.tgz -C test
    将file.tgz文件解压到test目录

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在Windows安装Ollama大语言模型工具并实现无公网IP异地远程使用

文章目录 前言1. 运行Ollama2. 安装Open WebUI2.1 在Windows系统安装Docker2.2 使用Docker部署Open WebUI 3. 安装内网穿透工具4. 创建固定公网地址 前言 本文主要介绍如何在Windows系统快速部署Ollama开源大语言模型运行工具&#xff0c;并安装Open WebUI结合cpolar内网穿透软…

数字乡村创新实践探索农业现代化路径:科技赋能农业产业升级、提升乡村治理效能与农民幸福感

随着信息技术的快速发展和数字化时代的到来&#xff0c;数字乡村建设正成为推动农业现代化、提升农业产业竞争力、优化乡村治理以及提高农民幸福感的重要途径。本文将围绕数字乡村创新实践&#xff0c;探讨其在农业现代化路径中的积极作用&#xff0c;以及如何通过科技赋能实现…

立创-IS61LV5128AL-10TLI功能参数及连接方法

IS61LV5128AL-10TLI功能和参数介绍-公司新闻-配芯易-深圳市亚泰盈科电子有限公司 制造商:ISSI 产品品种:静态随机存取存储器 RoHS:是 存储容量:4 Mbit 安排:512 k x 8 访问时刻:10 ns 最大时钟频率:100 MHz 接口类型:Parallel 电源电压-最大:3.63 V 电源电压-最小:3.135 V 电源…

eNSP-OSPF综合实验

目录 实验要求 配置IP 构建外部RIP协议用户组 配置公网通 构建MGRE隧道 创建隧道 配置下一跳解析协议&#xff08;NHRP&#xff09; OSPF私网通 area 0&#xff08;公网区域不宣告&#xff09;&#xff1a; area 1&#xff1a; area 2&#xff1a; area 3&#xff…

案例实践 | InterMat:基于长安链的材料数据发现与共享系统

案例名称&#xff1a;InterMat-基于区块链的材料数据发现与共享系统 ■ 建设单位 北京钢研新材科技有限公司 ■ 用户群体 材料数据上下游单位 ■ 应用成效 已建设10共识节点、50轻节点&#xff0c;1万注册用户 案例背景 材料是构成各种装备和工程的物质载体&#xff0c…

【C++题解】1345. 玫瑰花圃

问题&#xff1a;1345. 玫瑰花圃 类型&#xff1a;基本运算、小数运算 题目描述&#xff1a; 有一块nn&#xff08;n≥5&#xff0c;且 n 是奇数&#xff09;的红玫瑰花圃&#xff0c;由 nn 个小正方形花圃组成&#xff0c;现要求在花圃中最中间的一行、最中间的一列以及 4 个…

cesium加载倾斜影像数据(模拟雨、雪、雾、无人机飞行、测距、箭头标绘、电子围栏等)

实现效果如下&#xff1a; 功能菜单如下&#xff1a; 加载倾斜影像核心代码&#xff1a; var palaceTileset new Cesium.Cesium3DTileset({url: http://127.0.0.1:9002/tileset.json,//控制切片视角显示的数量&#xff0c;可调整性能maximumScreenSpaceError: 0.1,maximumNum…

Real3DPortrait照片对口型,数字人,音频/视频驱动数字人

先看效果 上传一张图片和一段音频&#xff0c;照片如下&#xff1a; 合成后效果如下&#xff1a; 照片对口型-音频驱动 支持音频驱动和视频驱动&#xff0c;视频可以使照片有参照视频中的口型和和动作。 项目地址 https://github.com/yerfor/Real3DPortrait 我的环境 win…

CentOS-Stream-9升级openssh9.7p

CentOS Stream 9 ssh -V需要的RPM包 openssh-9.7p1-1.el9.x86_64.rpm openssh-clients-9.7p1-1.el9.x86_64.rpm openssh-server-9.7p1-1.el9.x86_64.rpm 编译openssh openssh官方只提供源码包&#xff0c;我们选择自己将源码编译为rpm包来升级环境的openssh&#xff0c;需要…

UE5 C++ 使用TimeLine时间轴实现开关门

一.添加门头文件 和 声明 #include "Components/TimelineComponent.h" #include"Components/BoxComponent.h" UPROPERTY(EditAnywhere,BlueprintReadWrite,Category "MyCurve")UCurveFloat* MyCurveFloat;UPROPERTY(EditAnywhere, BlueprintR…

前端网络---http缓存

什么是http缓存&#xff1f; 1、HTTP 缓存会存储与请求关联的响应&#xff0c;并将存储的响应复用于后续请求。 2、缓存的原理是在首次请求后保存一份请求资源的响应副本&#xff0c;当用户再次发起相同请求时&#xff0c;判断缓存是否命中&#xff0c;如果命中则将前面的响应…

如何保障UDP传输中数据文件不丢失?

UDP协议因其低时延和高速传输的特性&#xff0c;在实时应用和大量数据传输领域中发挥着不可或缺的作用。但是&#xff0c;由于UDP是一种无连接的通讯协议&#xff0c;它并不确保数据包的顺序、完整性和可靠性。 为了解决UDP传输中数据一致性的问题&#xff0c;技术专家们进行了…

HTML不常用的文本标签

1.标签如下&#xff1a; 代码及相关内容 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>不常用的文…

2024第二十一届五一数学建模C题思路 五一杯建模思路

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…

大数据测试:构建Hadoop和Spark分布式HA运行环境

随着大数据技术的不断发展&#xff0c;Hadoop和Spark已成为处理大规模数据的热门框架。在生产环境中&#xff0c;高可用性&#xff08;HA&#xff09;是至关重要的&#xff0c;以确保数据处理和分析任务不受中断。本文将详细介绍如何构建 Hadoop和Spark分布式HA运行环境&#x…

Ubuntu 22.04 配置VirtualBox安装Windows 10虚拟机

Ubuntu 22.04 配置VirtualBox安装Windows 10虚拟机 文章目录 Ubuntu 22.04 配置VirtualBox安装Windows 10虚拟机1.安装virtualbox2.下载Window.iso文件并载入3.问题解决3.1 Kernel driver not installed (rc-1908)3.2 VT-x is disabled in the BIOS for all CPU modes 4.安装Wi…

中文编程入门(Lua5.4.6中文版)第十三章 Lua 文件操作

在《Lua世界》的冒险旅途中&#xff0c;勇士们时常需要与神秘的文本卷轴打交道。为了更好地掌握这些知识宝藏&#xff0c;Lua I/O库提供了两种强大的探索模式&#xff1a;简单模式和完全模式&#xff0c;助你轻松应对各类文献挑战。 简单模式&#xff1a;初识卷轴 简单模式如…

如何精心挑选合适的软件公司

选择一家合适的软件公司对于小程序商城的开发与运营而言&#xff0c;具有举足轻重的意义。面对市场上琳琅满目的软件公司&#xff0c;如何找到那个真正适合自己的合作伙伴呢&#xff1f;接下来&#xff0c;我们将从需求分析、公司资质、项目案例、服务态度和成本效益五个方面&a…

Linux0.11 源码中的内存分页机制

学习Linux的源码&#xff0c;《深入linux 内核架构》这本书看起来就让人害怕&#xff0c;然后就想着看看早期的linux版本的源码&#xff0c;从网上查看资料发现linux0.11 这个版本有很多人拿来当成教学版本&#xff0c;而且也有很多的参考书以这个版本作为基础来讲解&#xff0…

【数据挖掘】实验8:分类与预测建模

实验8&#xff1a;分类与预测建模 一&#xff1a;实验目的与要求 1&#xff1a;学习和掌握回归分析、决策树、人工神经网络、KNN算法、朴素贝叶斯分类等机器学习算法在R语言中的应用。 2&#xff1a;了解其他分类与预测算法函数。 3&#xff1a;学习和掌握分类与预测算法的评…