001 linux 导学

2023-10-31

前言

本文建立在您已经安装好linux环境后,本文会向您介绍Shell的一些常用指令

什么是linux

Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发
布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统,并在全球范围内得到了广泛的使用和支持。Linux具有稳定、安全、灵活和可定制的特点,被广泛应用于个人计算机、服务器、移动设备和嵌入式系统等领域。(关于linux的发展历史还有许多,这里不一一列出)
Linux的主要组成部分:
内核(Kernel):Linux内核是操作系统的核心部分,负责管理硬件设备、内存管理、进程管理、文件系统等底层功能。它提供了与硬件交互的接口,使得应用程序可以在硬件上运行。

Shell:Shell是用户与操作系统交互的接口,可以通过命令行界面(如Bash、Zsh等)或图形界面(如GNOME、KDE等)来操作和管理系统。Shell提供了一系列命令和脚本语言,用于执行各种操作和管理任务。

文件系统(File System):Linux支持多种文件系统,如Ext4、XFS、Btrfs等。文件系统负责管理文件和目录的存储、组织和访问,提供了对文件的读写、复制、删除等操作。

应用程序和工具:Linux操作系统拥有丰富的开源应用程序和工具,如文本编辑器(如Vim、Emacs)、办公套件(如LibreOffice)、图形处理工具(如GIMP)、网络工具(如Firefox、Chrome)、编程工具(如GCC、Python)等。这些应用程序和工具可以满足不同用户的需求。

图形界面(Graphical User Interface,GUI):Linux提供了多种图形界面,如GNOME、KDE、Xfce等,使得用户可以通过图形化方式操作和管理系统,而不仅仅依赖于命令行界面。

Shell

首先先向您介绍Shell(用户与操作系统交互的接口)
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。
而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?
从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
将使用者的命令翻译给核心(kernel)处理。
同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

帮助理解:如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的且有让你心动的MM小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash

基础命令行操作

添加新用户

adduser + (用户名) 输入密码:passwd +(用户名)

在此之前,先看几个概念
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
在这里插入图片描述
/ :根目录是整个文件系统的顶级目录,用符号/表示。它是文件系统中所有其他目录和文件的起点。
/user目录是存放用户相关文件的位置,该目录下包含了用户的主目录,个人设置,文档,下载文件等。具体来说,/user目录下的/user/bin存放用户可执行的命令,/user/lib存放共享库文件
/bin:目录是存放二进制可执行文件的位置
/etc:存放系统配置文件的位置,该目录存放着许多重要的配置文件
/dev目录是存放设备文件的位置。设备文件是用来与硬件设备进行交互的借口,包括磁盘驱动器。串口。usb设备、打印机等。

cd

cd . . : 返回上级目录 cd /home/litao/linux/ : 绝对路径 例如:进入dir2目录下的MyFile目录里的dir目录

在这里插入图片描述
在这里插入图片描述

cd . . /day02/ : 相对路径

. .表示上级目录,表示在目前目录中的上级目录中的day02
例如:当前我们处于dir2目录下的MyFile目录中的dir1目录下
我们想要到MyFile目录下的dir目录中

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

cd ~:进入用户家目录

一般地我们进入用户家目录存放相关文件
(tips:su + 用户名,切换到普通用户,下一篇文章会涉及)
在这里插入图片描述

cd -:返回最近访问目录

pwd

作用: 显示当前用户所在目录

touch

用法:touch + 文件名 作用:创建文件

mkdir

用法:mkdir + 目录名 作用:创建目录

tips:可以根据第一列的文件属性,d就是目录,-就是普通文件
(关于文件属性,下一篇文章会涉及)
在这里插入图片描述

rmdir指令与rm指令

用法:

rmdir [-p] [dirName]
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
rm [-f-i-r-v] [dirName/dir]
-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件

mv

用法:mv [选项] 源文件或目录 目标文件或目录

作用:mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录

1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。

在这里插入图片描述

2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。

在这里插入图片描述

3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

cp

语法:cp [选项] 源文件或目录 目标文件或目录 功能: 复制文件或目录

说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,
则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存
在的目录,则会出现错误信息
常用选项:
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链
接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
将test1文件copy到dir2目录下
在这里插入图片描述
将整个MyFile目录copy到dir2目录下
在这里插入图片描述

cat

语法:cat [选项] [文件] 功能: 查看目标文件的内容

常用选项:
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
在这里插入图片描述

more

语法:more [选项] [文件] 功能:more命令,功能类似 cat

常用选项:
-n 对输出的所有行编号
q 退出more

less

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!
除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
语法: less [参数] 文件
功能:
less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前
不会加载整个文件。

head

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的
开头至标准输出中,而 tail 想当然尔就是看档案的结尾。

语法: head [参数]… [文件]…
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

选项
-n<行数> 显示的行数

输出重定向 >

tips : echo打印
将echo本应打印在显示屏上的内容输入到文件中(输入前会先清空原文件内容)
在这里插入图片描述

追加重定向 >>

在这里插入图片描述

tail

tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.

语法: tail[必要参数][选择参数][文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

选项:
-f 循环读取
-n<行数> 显示行数

|管道

以下是一个test.txt文件里的内容
要求输出最后倒数五行的前三行
在这里插入图片描述
在这里插入图片描述
我们可以通过管道 | 来完成这件事
相当于 输出 | 输入( | 前输出到 | 后处理)

uniq去重

用法:uniq + 文件名
作用:对相邻的信息进行压缩
在这里插入图片描述

sort

用法:sort + 文件名 作用: 对文件进行排序

wc - l

用法:wc -l +文件名 作用:统计一个文件的行数

在这里插入图片描述

find

Linux下find命令在目录结构中搜索文件,并执行指定的操作。
Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。

语法: find pathname -options
在这里插入图片描述

man

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man
语法: man [选项] 命令

小结

本文主要介绍了关于Shell的一些基础指令,关于linux更加深入的内容将会在接下来介绍。如果文本存在疏漏或错误的地方,还请您能够指出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

001 linux 导学 的相关文章

随机推荐

  • 生产者/消费者代码(使用notify和wait实现)

    package cn wzy Lock import java util Random public class ConsumerAndProducer static String food new String 5 static Stri
  • TypeScript入门二(类型)

    1 TypeScrip 的静态类型 TypeScript 的一个最主要特点就是可以定义静态类型 英文是 Static Typing 那到底是什么意思那 太复杂的概念性东西这里就不讲了 你可以简单的理解 静态类型 为 就是你一旦定义了 就不可
  • js 数据转换(保留两位小数,去除前面多余的0等)

    保留两位小数 不够的添0补齐 function changeTwoDecimal f x var f x parseFloat x if isNaN f x return 0 var f x Math round x 100 100 var
  • 为什么const 定义的对象和数组可以改变它的值呢

    碰到这个问题我第一反应是肯定不能改变 如果要改变值的话 用const定义干嘛 然后不信邪在浏览器控制台试试结果 卧槽 但是定义一个基本类型 确实改不了 那为什么const 定义的对象和数组可以改变它的值呢 我来为大家解释一下 都知道对象和数
  • Unity3D实战【七】Cinemachine & Post Processing 摄像机跟踪和后处理

    一 摄像机跟随 1 PackManger中安装Cinemachine 2 点击菜单栏的Cinemachine gt Create Virtual Camera 会代替原来的Main Camera 3 调整参数 Body Framing Tr
  • js中根据已知key得到某对象中相对应的value的方法

    给自己打个小广告 有开发APP 小程序 网站 后台系统需求 或者 想学习前端的可以私信我哈 var key accountBingFlag1 var value obj key var key accountBingFlag1 var va
  • 如何用git命令生成Patch和打Patch

    在程序员的日常开发与合作过程中 对于code的生成patch和打patch 应用patch 成为经常需要做的事情 什么是patch 简单来讲 patch中存储的是你对代码的修改 什么是生成patch 生成patch就是记录你对代码的修改并将
  • python-selenium-规避检测,无头浏览器

    1 无头浏览器 取消的浏览器的可视化界面 在一定程度上加了自动化速度 chrome options Options chrome options add argument headless chrome options add argume
  • Eclipse 解决JSON parse error: Invalid UTF-8 总结 完善

    今天在本地测试通过的代码 部署之Tomcat 服务器 前端同事给我反馈如下的错误信息 org springframework http converter HttpMessageNotReadableException message JS
  • 下载的python没有pip_python – 所有依赖项都不会通过“pip download”下载

    我正在尝试使用可以在没有互联网连接的计算机上重新安装的软件包来设置本地目录 但是我遇到了一些软件包的问题 我首先下载包 pip download r requirements txt d my packages no binary all
  • python_元组_1.07

    一 元组 1 定义 python的元组与列表类似 不同之处在于元组的元素一旦定义就不能修改 添加 删除 可以访问 元组使用小括号 列表使用方括号 元组创建很简单 只需要在括号中添加元素 并使用逗号隔开即可 course chinese ma
  • 微信小程序-消息提示框实例

    做Android的时候对toast是很熟悉的 微信小程序开发中toast也是重要的消息提示方式 提示框 wx showToast OBJECT 显示消息提示框 OBJECT参数说明 示例代码 wx showToast title 成功 ic
  • 第5讲:业务扩展模型图

    业务扩展模型图主要是将雨雾流程相关的重要人 事 物及这个业务流程所要达成的目标做一个链接 不过有关业务流程的内部细节 通常不会在这张图中介绍 一 元素 1 1 流程 Process 代表一连串有意义的工作流程 在一个 流程 中通常要达成一个
  • myeclipse出现Could not find the main class原因分析

    昨天晚上像往常一样打开myeclipse 随便运行一个类 run as java application 居然弹出Could not find the main class Program will exit 按照以往的经验 做如下检查 编
  • 【Unity】ShaderToys——将大神们写的shader搬到unity中来吧

    这篇文章翻译自国外的一篇文章 这里是原文链接 正在使用unity的你是否在shader toy上发现很多牛逼哄哄的shader却不知道如何使用 那么这篇文章就是帮助你来进行转换的 本文只是基础文章 那些对HLSL CG GLSL都很熟悉的大
  • 后台权限管理系统(2)——系统基础数据的展示

    目录 1 页面效果展示 2 具体实现 2 1 订单管理模块 2 1 1 订单展示页面 2 1 2 订单详情页面 1 页面效果展示 实现效果如下 订单管理页面 产品管理页面 2 具体实现 2 1 订单管理模块 2 1 1 订单展示页面 点击订
  • opencv imread图像读取不成功

    不论是imread读取相对路径还是绝对路径 如果imread读取不成功 显示Nnoe 很有可能是你的路径名字中含有中文 检查你的路径中是否含有中文 有的话将其改为英文 1 相对路径示例 import cv2 假如图像文件位于当前工作目录下的
  • 对 TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1)函数在PWM应用中的理解

    注意 以下为本人理解 并非权威 仅做参考 虚心接受指正 首先看原函数如下 void TIM SetCompare1 TIM TypeDef TIMx uint16 t Compare1 Check the parameters assert
  • JSONP解决跨域数据访问问题

    介绍 JSONP JSON with Padding 是JSON 的一种 使用模式 可用于解决主流浏览器的跨域数据访问的问题 还是那句话 JSONP虽然用不到 但是要了解 后续要用CORS JSONP实现原理 由于浏览器同源策略的限制 网页
  • 001 linux 导学

    前言 本文建立在您已经安装好linux环境后 本文会向您介绍Shell的一些常用指令 什么是linux Linux是一种自由和开放源代码的类UNIX操作系统 该操作系统的内核由林纳斯托瓦兹在1991年首次发 布 之后 在加上用户空间的应用程