• Linux基础知识——(1)基本指令


    1 Linux简介

    1.1 Linux的起源

     Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
     Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
     Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    1.2 Linux 的发行版

     Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
    在这里插入图片描述
    在这里插入图片描述

    1.3 Linux系统的安装

     目前安装操作系统方式有2种:真机安装、虚拟机安装。

    • 真机安装:使用真实的电脑进行安装,像安装windows操作系统一样,真机安装的结果就是替换掉当前的windows操作系统;
    • 虚拟机安装:通过一些特定的手段,来进行模拟安装,并不会影响当前计算机的真实操作系统。

     如果是学习或者测试使用,强烈建议使用虚拟机安装方式。虚拟机目前有2个比较有名的产品:vmware出品的vmware workstation、oracle 出品的virtual Box。关于如何安装虚拟机,以及如何在虚拟机中安装Linux系统,可以参见网上其他文章。

    2 Linux系统的文件

    2.1 文件与文件夹(目录)

     文件:一般都是一个独立的东西,可以通过一些特定的工具进行打开,并且其中不能在包含除了文字以外的东西。
    在这里插入图片描述
     文件夹:可以在其中包含其他文件的东西。
    在这里插入图片描述

     本质上说,文件是数据的实体,而文件夹则是用于组织和管理文件的概念性容器。文件可以存储在文件夹中,而文件夹本身无法存储数据,它只是用来存放和管理文件。文件夹通过文件系统的层级结构来组织文件,使得用户能够更方便地定位和操作文件。
     Linux 本身也是一个基于文件形式表示的操作系统。Linux一切皆文件。在windows是文件的,在Linux下同样也是文件;在windows不是文件的,在Linux下也是以文件的形式存储的;
     日常学习中和日常工作中,对文件的操作有:创建文件、编辑文件、保存文件、关闭文件、重命名文件、删除文件、恢复文件。

    2.2 Linux系统的文件目录结构

     Linux 目录结构:

    • bin:全称binary,含义是二进制。该目录中存储的都是一些二进制文件,文件都是可以被运行的
    • dev:该目录中主要存放的是外接设备,例如盘、其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似windows下的分配盘符)。
    • etc:该目录主要存储一些配置文件。
    • home:表示“家”,表示除了root用户以外其他用户的家目录,类似于windows下的User/用户目录。
    • proc:process,表示进程,该目录中存储的是Linux运行时候的进程。 Root:该目录是root用户自己的家目录。
    • sbin:全称super binary,该目录也是存储一些可以被执行的二进制文件,但是必须得有super权限的用户才能执行。
    • tmp:表示“临时”的,当系统运行时候产生的临时文件会在这个目录存着。
    • usr:存放的是用户自己安装的软件。类似于windows下的program files。 Var:存放的程序/系统的日志文件的目录。
    • mnt:当外接设备需要挂载的时候,就需要挂载到mnt目录下。

    在这里插入图片描述

    3 文件与目录基本操作

    3.1 目录操作

    处理目录的常见命令见下表。

    项目Value
    ls(英文全拼:list files)列出目录及文件名
    cd(英文全拼:change directory)切换目录
    pwd(英文全拼:print work directory)显示目前的目录
    mkdir(英文全拼:make directory)创建一个新的目录
    rmdir(英文全拼:remove directory)删除一个空的目录
    cp(英文全拼:copy file)复制文件或目录
    rm(英文全拼:remove)删除文件或目录
    mv(英文全拼:move file)移动文件与目录,或修改文件与目录的名称

     在介绍上述命令详细用法之前,需要了解一下相对目录和绝对目录。

    • 路径可以分为两种:相对路径、绝对路径。
    • 相对路径:相对首先得有一个参照物(一般就是当前的工作路径);相对路径的写法:在相对路径中通常会用到2个符号“./”【表示当前目录下】、“../”【上一级目录下】。
    • 绝对路径:绝对路径不需要参照物,直接从根“/”开始寻找对应路径;

    (1)ls (列出目录)

     语法

    ls [-aAdfFhilnrRSt] 目录名称
    ls [–color={never,auto,always}] 目录名称
    ls [–full-time] 目录名称

     选项与参数:

    • -a :全部的文件,连同隐藏文件( 在Linux中,隐藏文件是以 '. ’ 开头的文件) 一起列出来(常用)
    • -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
    • -l :长数据串列出,包含文件的属性与权限等等数据;(常用)

     将目录下的所有文件列出来(含属性与隐藏档)
    在这里插入图片描述
     请注意,在Linux中,以“-”开头的都是文件,以“d”开头的都是文件夹。

    (2)pwd (显示目前所在的目录)

     pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。
    在这里插入图片描述

    (3)mkdir (创建新目录)

     如果想要创建新的目录的话,那么就使用mkdir (make directory)吧。

    mkdir [-mp] 目录名称

     选项与参数:

    • -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
    • -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!

    在这里插入图片描述
     加了这个 -p 的选项,可以自行帮你创建多层目录

    (4)rmdir (删除空的目录)

    rmdir [-p] 目录名称

     选项与参数:

    • -p :从该目录起,一次删除多级空目录

    (5)cp (复制文件或目录)

     cp 即拷贝文件和目录。

    cp [-adfilprsu] 来源档(source) 目标档(destination)
    cp [options] source1 source2 source3 … directory

     下面为复制一个文件,注意:Linux在复制过程中是可以重新对新位置的文件进行重命名的,但是如果不是必须的需要,则建议保持前后名称一致。
    在这里插入图片描述
     下面为复制一个文件夹,注意:当使用cp命令进行文件夹复制操作的时候需要添加选项“-r”【-r表示递归复制】,否则目录将被忽略
    在这里插入图片描述

    (6)rm (移除文件或目录)

    rm [-fir] 文件或目录

     选项与参数:

    • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
    • -i :互动模式,在删除前会询问使用者是否动作
    • -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

    (7)mv (移动文件与目录,或修改名称)

    mv [-fiu] source destination
    mv [options] source1 source2 source3 … directory

     选项与参数:

    • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
    • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
    • -u :若目标文件已经存在,且 source 比较新,才会升级 (update)

     复制一文件,创建一目录,将文件移动到目录中。
    在这里插入图片描述
     注意,文件和文件夹的重命名操作也是 mv 命令。
    在这里插入图片描述

    (8)管道

    管道符:|
    作用:管道一般可以用于“过滤”,“特殊”,“扩展处理”。
    语法:管道不能单独使用,必须需要配合前面所讲的一些指令来一起使用,其作用主要是辅助作用。
    案例1:过滤某个文件夹下所有包含“init”字符串的文件或文件夹
    在这里插入图片描述
    案例2:统计当前目录下文档的总个数
    在这里插入图片描述

    3.2 文件操作

     Linux系统中使用以下命令来查看文件的内容:

    • cat 由第一行开始显示文件内容
    • head 只看头几行
    • tail 只看尾巴几行
    • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
    • nl 显示的时候,顺道输出行号!
    • wc 统计文件内容信息(包含行数、单词数、字节数)

    (1)cat(直接打开文件)

     作用:cat有直接打开一个文件的功能

    cat 文件的路径

    在这里插入图片描述

    (2)head (查看一个文件的前n行)

     作用:查看一个文件的前n行,如果不指定n,则默认显示前10行。

    head -n 文件路径 【n表示数字】

    (3)tail(查看一个文件的未n行)

     查看一个文件的未n行,如果n不指定默认显示后10行.

    tail -n 文件的路径 n同样表示数字

    (4)less(查看文件,以较少的内容进行输出)

     作用:查看文件,以较少的内容进行输出,按下辅助功能键(数字+回车、空格键+上下方向键)查看更多

    less 需要查看的文件路径

    (5)wc(统计文件内容信息)

     作用:统计文件内容信息(包含行数、单词数、字节数)

    wc -lwc 需要统计的文件路径

     选项与参数:

    • -l:表示lines,行数
    • -w:表示words,单词数 依照空格来判断单词数量
    • -c:表示bytes,字节数
      在这里插入图片描述

    (6)输出重定向

     一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
     输出重定向有两种方式:

    • >:覆盖输出,会覆盖掉原先的文件内容
    • >>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加

     语法:

    正常执行的指令 > / >> 文件的路径

     注意:文件可以不存在,不存在则新建
     使用覆盖重定向,保存ls -la 的执行结果,保存到当前目录下的ls.txt在这里插入图片描述

    (7)find(查找)

     作用:用于查找文档(其参数有55个之多)

    find 路径范围 选项 选项的值

     选项:

    • -name:按照文档名称进行搜索(支持模糊搜索)
    • -type:按照文档的类型进行搜索;文档类型:“-”表示文件(在使用find的时候需要用f来替换),“d”表示文件夹

     案例1:使用find来搜索passed
    在这里插入图片描述
     案例2:使用find来搜索/etc下所有的文件夹。
    在这里插入图片描述

    4 用户和用户组管理

     Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
     用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
     每个用户账号都拥有一个惟一的用户名和各自的密码。
     用户在登录时键入正确的用户名和密码后,就能够进入系统和自己的主目录。
     在用户和用户组管理当中,需要格外注意三个文件:

    • /etc/passwd 存储用户的关键信息
    • /etc/group 存储用户组的关键信息
    • /etc/shadow 存储用户的密码信息

    4.1 用户管理

     打开 /etc/passwd ,我们截取最后几行
    在这里插入图片描述
     可以看出,该文件中每行的字段都是用冒号分隔开的,每行的格式为:

    用户名:密码:用户ID:用户组ID:注释:家目录:解释器shell

     以冒号分隔开的每个字段含义为:

    项目Value
    用户名:创建新用户名称,后期登录的时候需要输入;
    密码:此密码位置一般情况都是“x”,表示密码的占位;
    用户ID:用户的识别符;
    用户组ID:该用户所属的主组ID;
    注释:解释该用户是做什么用的;
    家目录:用户登录进入系统之后默认的位置;
    解释器shell:等待用户进入系统之后,用户输入指令之后,该解释器会收集用户输入的指令,传递给内核处理;

    (1)su(切换用户命令)

    su [用户名] (switch user)

     如果用户名不指定则表示切换到root用户。
    在这里插入图片描述
     切换用户需要注意的事项:

    • 从root往普通用户切换不需要密码,但是反之则需要root密码;
    • 切换用户之后前后的工作路径是不变的;
    • 普通用户没有办法访问root用户家目录,但是反之则可以;

    提示:所有跟用户操作的命令(除passwd外)只有root超级管理员有权限执行。以下所有的用户操作需要首先切换到root用户下。

    (2)useradd(添加用户)

    #useradd 选项 用户名

     常用选项:

    • -g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名。
    • -G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名。
    • -u:uid,用户的id(用户的标识符),系统默认会从1000之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义。
    • -c:添加注释。
    • -m:创建用户的主目录。

     案例:创建用户zhangsan,并且创建同名的主目录。
    在这里插入图片描述
     验证用户创建是否成功,可以通过下面两种方式之一。

    • 验证/etc/passwd的最后一行,查看是否有zhangsan的信息;
    • 验证是否存在家目录(在Centos下创建好用户之后随之产生一个同名家目录);

    (3)userdel (删除用户)

    userdel 选项 用户名

     常用选项:

    • -r:表示删除用户的同时,删除其家目录;

     案例:删除zhangsan用户
    在这里插入图片描述
     注意:已经登录的zhangsan用户删除的时候提示删除失败,这是需要 kill对应用户的全部进程。

    (4)usermod(修改用户)

    usermod 选项 用户名

     常用选项:

    • -g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
    • -G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
    • -u:uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ的自选靓号情况】
    • -l:修改用户名

     案例:新建用户李四,将李四的主组改为1000,附加组改为1001。
    在这里插入图片描述

    (5)passwd (设置密码)

     Linux不允许没有密码的用户登录到系统,因此前面创建的用户目前都处于锁定状态,需要设置密码之后才能登录计算机

    #passwd 用户名

     案例:设置lisi用户的密码
    在这里插入图片描述
     在设置密码的时候也是没有任何输入提示的,放心输入,确保两次输入的密码一致,按下回车即可。

    4.2 用户组管理

     每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
     用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
    在这里插入图片描述
     文件结构:
     用户组名:密码:用户组ID:组内用户名
     密码:X表示占位符,虽然用户组可以设置密码,但是绝大部分的情况下不设置密码;
     组内用户名:表示附加组是该组的用户名称;

    (1)用户组添加

    groupadd 选项 用户组名

     常用选项:

    • -g:类似用户添加里的“-u”,-g表示选择自己设置一个自定义的用户组ID数字,如果自己不指定,则默认从500之后递增;

    案例:使用groupadd指令创建一个新的用户组,组的ID为3001,命名为Administrator
    在这里插入图片描述

    (2)用户组编辑

    groupmod 选项 用户组名

     常用选项:

    • -g:类似用户修改里的“-u”,-g表示选择自己设置一个自定义的用户组ID数字
    • -n:类似于用户修改“-l”,表示设置新的用户组的名称

     案例:修改Administrators用户组,将组ID改为888.
    在这里插入图片描述

    (3)用户组删除

    groupdel 用户组名

     注意:当如果需要删除一个组,但是这个组是某个用户的主组时,则不允许删除;如果确实需要删除,则先从组内移出所有用户。

    5 系统相关命令

    (1)hostname

     作用:操作服务器的主机名(读取、设置)

    hostname 含义:表示输出完整的主机名
    #hostname -f 含义:表示输出当前主机名中的FQDN(全限定域名)

    (2)id

     作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…),该指令如果不指定用户则默认当前用户。

    #d 默认显示当前执行该命令的用户的基本信息
    id 用户名 显示指定用户的基本信息

    在这里插入图片描述

    (3)whoami

     作用:“我是谁?”显示当前登录的用户名,一般用于shell脚本,用于获取当前操作的用户名方便记录日志。

    whoami

    在这里插入图片描述

    (4)ps -ef

     作用:主要是查看服务器的进程信息
     选项含义:

    • -e:等价于“-A”,表示列出全部的进程
    • -f:显示全部的列(显示全字段)

     执行结果:
    在这里插入图片描述

    (5)top

     作用:查看服务器的进程占的资源(100%使用)

    进入命令:top (动态显示)
    退出命令:按下q键

     输出的结果:
    在这里插入图片描述
     表头含义:

    • PID:进程id;
    • USER:该进程对应的用户;
    • PR:优先级;
    • VIRT:虚拟内存;
    • RES:常驻内存;
    • SHR:共享内存;计算一个进程实际使用的内存 = 常驻内存(RES)- 共享内存(SHR)
    • S:表示进程的状态status(sleeping,其中S表示睡眠,R表示运行);
    • %CPU:表示CPU的占用百分比
    • %MEM:表示内存的占用百分比
    • TIME+:执行的时间
    • COMMAND:进程的名称或者路径;

     在运行top的时候,可以按下方便的快捷键:

    • M:表示将结果按照内存(MEM)从高到低进行降序排列;
    • P:表示将结果按照CPU使用率从高到低进行降序排列;
    • 1:当服务器拥有多个cpu的时候可以使用“1”快捷键来切换是否展示显示各个cpu的详细信息;

    (6)du -sh

     作用:查看目录的真实大小

    du -sh 目录路径

     选项含义:

    • -s:summaries,只显示汇总的大小
    • -h:表示以高可读性的形式进行显示
      在这里插入图片描述

    (8)ifconfig

     作用:用于操作网卡相关的指令。

    ifconfig (获取网卡信息)

    (9)kill

     作用:表示杀死进程(当遇到僵尸进程或者出于某些原因需要关闭进程的时候)

    kill 进程PID (语法需要配合ps一起使用)

    (10)reboot

     作用:重新启动计算机

    语法1:#reboot 重启
    语法2:#reboot -w 模拟重启,但是不重启(只写关机与开机的日志信息)

    (11)shutdown

     作用:关机

    #shutdown -h now “关机提示”
    或者 #shutdown -h 15:25 “关机提示”

    (12)man

     作用:manual,手册(包含了Linux中全部命令手册,英文)

    man 命令 (退出按下q键)

     例如,查看cp命令的手册内容。
    在这里插入图片描述

  • 相关阅读:
    一些k8s集群操作命令
    Windows Server 2019 搭建FTP站点
    Redis专题(六):Redis主从复制、哨兵搭建以及原理
    毫米波雷达在环境监测中的关键作用
    AVL树到底是什么?
    https服务部署指南
    09.逻辑回归
    数据结构学习笔记(VI):图
    测开 | Vue速查知识点
    HttpServletResponse实战之下载文件与动态验证码【Javaweb】
  • 原文地址:https://blog.csdn.net/mary288267/article/details/134441624