• 001 linux 导学


    前言

    本文建立在您已经安装好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更加深入的内容将会在接下来介绍。如果文本存在疏漏或错误的地方,还请您能够指出。

  • 相关阅读:
    [1166]CDH集群删除主机节点
    万物互联时代,谷歌、亚马逊Alexa、homekit该如何选择?
    关于生命周期的面试题vue
    ROS opencv 人脸识别
    Python:获取域名ssl证书信息和到期时间!
    计算机导论模拟试题一标准答案
    『力扣刷题本』:轮转数组
    Java如何从字符串中提取数字
    数据库被攻击需要注意什么
    Particle Swarm Optimization粒子群优化算法(PSO算法)概念及实战
  • 原文地址:https://blog.csdn.net/Moonnight_bit/article/details/132839046