所有分类
  • 所有分类
  • 其它

Linux –必备指令集

 

前言:

  • 本文介绍linux系统的常识与入门指令,对比windows系统
  • 博主收集的资料New Young,连载中。
  • 博主收录的问题:New Young
  • 转载请标明出处:New Young

常识

  1. Linux下一切皆文件—时刻牢记这句话
  2. Linux下的指令很多,但是常用的不多,不要逾越当前的知识面去做你不该的猜想,比如钻牛角尖。
  3. 软件都需要有日志信息
  4. Linux系统,一般使用老的,经典的内核版本,因为老的安全性已考察,新的仍是未知。
  5. 几乎所有的操作系统,管理文件的方式,基本都是采用多叉树的形式

image-20220510105632579

  1. Xshell对于不同文件采取不同的配色方案,方便进行识别,也可以进行更改

image-20220510200931644

  1. Xshell中的cv大法是:

复制 :crl +insert

粘贴:shift+insert

  1. 通过 ctrl +r ,输入某些字符,会自动检索到含有这些字符的指令。
  2. Linux只有2种用户:root与普通用户,用户也是一种文件—再次体现Linux下一切皆文件
  3. 清空当前Xshell的屏幕指令:clear;其实相当于翻到下一页,并不于是真的清空屏幕

image-20220510132855898

  1. linux是有隐藏不显示的文件,比如上级指令“…”与当前“.”,其实都是执行文件,—-再次体现Linux下一切皆文件。

image-20220510190000590

  1. Linux下也可以编译.c和.cpp文件,用到的是gcc与g++编译器。

文件与目录

image-20220510111612990

Windows中,我们的文件夹做为了路径名,同时也是目录名。我们可以发现在目录下即文件夹我们仍可以创建一个新的目录或者普通文件。从这可以看出目录也是一种文件,即可以写即创建文件或者目录,也可以读即进入目录。

因此在Linux中有种说法:Linux一切皆文件。

image-20220510105632579

当前与上级

image-20220510110545309

windows中可以通过可视化窗口中的交互界面跳转到上级目录即跳转到父亲节点那行。同时Windows中也有存储最近访问过的路径,这样可以方便直接在2个不为同一个父亲节点的2文件间的跳转。

但是Linux是不需要可视化的交互界面的,因此Linux中用

2个.即“…”来表示上级,用1个. 即“.”表示当前。

如果想完成跳转到上级系统搭配 –cd指令—下面详细介绍

路经

image-20220510112404529

我们知道,Windows下,采用多叉树的形式将每个文件存放在磁盘上,而表示文件的位置有2种方式,即回答” 我在哪里+我是谁“问题:

绝对路径:从根节点开始的,唯一的标识文件位置的路径,因为每个节点只有一个父亲节点且从根开始

相对路径:从当前路径下,通过上级等操作来跳转其他文件。很显然,相对路径不具有唯一性,兄弟节点不唯一。

用户

  1. Linux下只有2种用户,但是对于这个2种用户可以有不同的角色,因此对于一个用户,它可以是文件的拥有者,创建等角色。

root用户:可以想象是房东,拥有一切操作权限

普通用户:可以想象是住户,拥用一定的操作权限。

  1. 普通用户和root用户是不在同一个目录中的,

root用户:在root目录下

普通用户:在一个为home的目录下

  1. 从2可以看出,用户其实也是一种文件:Linux下一切皆文件。

image-20220510125714596

文件相关指令

tree指令

  • 以树的形式显式当前目录下的所有文件
  • Xshell默认是没有tree指令,需要执行一个指令,等待安装完成即可

root下

yum install -y tree

//可能会因为软件问题,该指令不行的话,使用下面指令

yum install -y epel -release

  • tree 常用指令

image-20220510212640536

增删用户的指令(!!!)

useradd

  • 添加用户只能在root用户下进行,普通用户不具有创建用户的权限。
useradd +新用户名
  • 一旦创建一个新的用户,必须立马给其设置密码,如果passwd后不跟用户名,默认给当前用户修改密码
passwd +用户名

image-20220510131117681

userdel 与rm

  • 删除用户必须在root用户下—–root 下才有权限删除普通用户。

userdel建议使用

userdel -rf +用户名

image-20220510193608551

  • rm-用户删除文件,但是因为root具有所有的权限,另外用户本质也是一种文件,因此可以通过rm删除用户。

image-20220510194303241

增删文件的指令(!!!)

这里是对目录文件与普通文件,其它文件没学到

touch

  1. 在当前目录下创建一个普通文件,如果文件已存在,对文件内容不产生任何影响。
  2. touch也会于访问,修改,改变时间相联系,下节进行详细讲解。

rm

删除普通文件或者目录文件

image-20220511213413284

mkdir

  • 在当前目录下,创建一个目录文件,如果目录文件已存在者失败,即不能在mkdir时,出现同名情况。

image-20220510201056734

  • 也可以递归.
  • 3创建多个目录

image-20220511161205895

rmdir

只能删除空目录文件

image-20220510203851375

image-20220510203216239

rm与rmdir

rm可以删除目录文件(搭配-r),也可以删除普通文件,更可以在root下删除用户,而rmdir很局限,只能删除空目录文件。

建议直接使用rm,具有普适性

进入文件(w文件)

普通文件与目录文件的进入方式是不同的,更多使用的是vim,将在下节进行讲解

普通文件

针对的是进入文件是需要权限的,权限具体在下一节介绍。

image-20220510205105797

目录文件

进入目录使用的 cd 指令,具体的cd指令,后面详细讲

image-20220510210005298

查看文件全部内容

  1. 如果想查看大的文件,不想进入文件,比如查看日志信息,代码等,可以使用less。more,cat,tac指令,但是更推荐使用less指令,less很灵活
  2. 也可使用head与tail搭配使用查阅特点行的文件内容

cat

功能

cat 一次性,正序打印完文本内容

image-20220512104346152

tac

功能

一次性逆序打印完本文内容

image-20220512104044495

more

功能

分批打印文本内容,通过回车键下翻,只能通过回车键进行向下打印,而且在不借助鼠标时,不能翻阅已打印的内容,用q退出more

image-20220512105808645

less(!!!)

功能

  1. less 分批次打印文本内容,可以使用上下键进行上下翻;
  2. less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
  3. less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!

选项

image-20220512121753106

查看文件首尾内容

head

格式

head +选项+文件

功能

  1. head 用来显示档案的开头至默认是==标准输出(屏幕)==中,也可以是管道,默认head命令打印其相应文件的开头10行 ,文件可以有多个

    image-20220512124730076

  2. 如果后面不跟文件名,默认将输入信息作为内容打印到屏幕上

image-20220512123012475

选项

image-20220512124710021

tail

格式

tail [必要参数]+ [选择参数] +[文件]

功能

  1. 用于显示指定文件末尾内容到标准输出流中,不指定文件时,作为输入信息进行处理。常用查看日志文件。

    image-20220512124924302

选项

image-20220512125110428

查看文件中间内容

用到重定向与管道。

image-20220512152619111

ls(!!!)

功能:

显示当前目录文件的内容或者普通文件的信息,默认是显示目录文件下的内容,可以搭配选项-d,只显示目录的信息

形式:

ls +选项+文件名

常用选项

image-20220511181039830

pwd

功能:

以绝对路径的形式,显示当前所在位置。

image-20220510215755768

cd指令(!!!)

格式:

cd +绝对路径或者相对路径

功能:

跳转到指定路径下,进行后续的操作

常用选项

image-20220510222501183

which

功能:

查看特点指令的系统路径

格式:

which +指令

image-20220511181835279

alias

格式

alias 别名 = ‘指令 –color=auto’

功能:

  1. 当一个指令很复杂时,可以使用alias起别名。这也就是为什么Linux下一些简单的指令符与复合后的指令功能效果是一样的。

    image-20220511183421046

  2. 可以自己设置别名,但是新的别名不能已存在,别名的生命期只在当前会话中,一但Xshell退出就销毁了。另外也不建议对存在的别名取别名,因为这可能会污染Linux的命令池。

    image-20220511184045001

whoami

功能

打印当前用户名

image-20220511191643452

man(!!!)

功能:

  1. Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助
  2. 可能在某些云服务器上man指令不存在,可以使用

    yum install -y man-pages安装man手册

格式

man [选项] 命令

常用项

image-20220511201601030

选项手册号 解释 注意
1 shell的指令手册 man默认是1号手册
2 系统调用函数 常用
3 库函数 常用
4 特殊文件(通常在 /开发中找到)
5 文件格式和约定,例如 /etc /passwd
6 游戏指令
7 杂项(包括宏包和约定),例如 男人(7),格罗夫(7)
8 系统管理命令 通常仅适用于根)
9 内核例程[非标准]

image-20220511202748359

cp-拷贝

格式

cp +src(源文件) + dest(目标文件)

功能:

image-20220511220859134

mv-剪切

格式

mv src dest

功能

将src文件剪切到dest中

image-20220511222243545

时间相关指令

date

显示时间

格式

date [OPTION]…+[FORMAT]

功能

  1. 在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下 ,注意大小写,+后面没有空格
    • %H : 小时(00…23)
    • %M : 分钟(00…59)
    • %S : 秒(00…61)
    • %X : 相当于 %H:%M:%S
    • %d : 日 (01…31)
    • %m : 月份 (01…12)
    • %Y : 完整年份 (0000…9999)
    • %F : 相当于 %Y-%m-%d

    image-20220512153649048

  2. 设定时间方面
    • date -s //设置当前时间,只有root权限才能设置,其他只能查看。
    • date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
    • date -s 01:01:01 //设置具体时间,不会对日期做更改
    • date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
    • date -s “01:01:01 20080523″ //这样可以设置全部时间
    • date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
    • date -s “20080523 01:01:01″ //这样可以设置全部时间

时间戳

  1. Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒 。
  2. 时间对于我们,对于计算机都非常重要,通过时间,我们可以查询信息,通过时间我们可以准确完成某些事等等,因此计算机中的任何软件都会有一个日志信息,记录计算机或者软件的属性等信息。

格式

时间->时间戳:date+%s

时间戳->时间:

date -d@秒数

date +Y… -d@秒数,格式化显示时间戳

image-20220512155229941

cal

显示日历(阳历),默认显示当前月的日历

image-20220512182512401

查找文件指令

find(非常重要!!!!!!!)

格式

find + 路径+文件名

功能

  1. 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘 )。
  2. Linux下find命令在目录结构中搜索文件,并执行指定的操作。
  3. Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
  4. 即使系统中含有网络文件系统( NFS), find命令在该文件系统中同样有效,只你具有相应的权限。
  5. 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统 。

选项

image-20220512190057243

grep

格式

grep +选项+字符串+文件

功能

在文件中搜索字符串,将找到的行打印出来,可搭配管道等

常用选项

  1. -i:忽略大小写的不同,所有大小写视为相同
  2. -n :顺便输出行号
  3. -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行

image-20220512191137040

image-20220512202814106

压缩文件指令

类似windows下的压缩软件,Linux下也可以压缩文件,指令有zip 与unzip,tar等

zip

格式

zip +选项+压缩报名+需要压缩的文件(可以是多个)。

功能

对目标文件进行压缩,为zip格式。默认只压缩目标文件,如果目标文件是目录的话,必须使用-r来递归压缩

image-20220512205253465

unzip

格式

unzip +压缩文件+选项+路径

功能

解压缩文件,默认解压到当前路径下,若压缩到其它位置,使用-d

image-20220512205615025

tar(!!!)

格式

功能

  1. 打包/解包,不打开它,直接看内容 .
  2. 一般在压缩时,使用 -czvf;解压缩时,使用-xzvf与 -C
  3. 压缩包的后缀是 “tgz”

    image-20220512211213107

选项

  1. -c :建立一个压缩文件的参数指令(create 的意思);
  2. -x :解开一个压缩文件的参数指令!
  3. -t :查看 tarfile 里面的文件!
  4. -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
  5. -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
  6. -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
  7. -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
  8. -C : 解压到指定目录

bc

功能

进行简单的浮点运算

image-20220512212522344

uname

功能

  1. uname用来获取电脑和操作系统的相关信息。
  2. uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息

    image-20220512213946968

  3. 通过unname查看的信息是Linux的发行版本,如果想查看内核版本 ,使用-r

    image-20220512213854527

常用选项

a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

显示验证码