【Linux1】为什么要学习Linux,为什么互联网公司在招聘时,会提出要有Linux经验,及其使用;一些Linux常见指令

加油,旭杏 2024-08-14 10:37:01 阅读 61

思维导图

学习目标:

       在学习完C语言后,紧接着,我们要来学习Linux。为什么要学习Linux呢?因为在日常生活和工作中,我们一定会用到的,我们常常可以看见一些互联网公司在招聘时,会提出求职者要有Linux经验,为什么它会在互联网公司中频频出现,又为什么会在学完C语言后学习Linux呢?下面会讲。这一篇博客将会带领大家进入Linux的世界,在了解完Linux是如何出现的后,我们在来了解一下Linux的一些基本指令,望大家喜欢。


学习内容:

通过上面的学习目标,我们可以列出要学习的内容:

Linux 的诞生和版本问题以及应用场景如何搭建Linux的环境(大致)Linux的一些基本指令


一、Linux 的诞生和版本问题以及应用场景

       这一部分的知识点作为了解即可,小编写这一段内容是为回答我们在学习目标的地方残留的问题,也是编点小故事,锻炼一下小编的语文素养hhhhh!

1.1 Linux的诞生

       Linux 对于我们大家来说,可以说是既熟悉又不熟悉,为什么呢?因为在座的各位都听说过操作系统,对,没错,现在是互联网时代,几乎没有人没有听说过操作系统。而这里所说的Linux就是一种操作系统,是的,你没有听错,Linux是和Windows和Macos一样的,是一个操作系统。而且,这个操作系统的创作者只是一个大二的学生(真乃神人也)(有人大二创作Linux,有人夜里看海,有人Leetcode上第一道题目做不出来)(不是我hh)

       在之前的学习中,我们已经提到过操作系统是什么?为什么计算机要有操作系统这个东西,为什么我们不直接通过硬件进行操作系统?

       操作系统这个东西就是为了使人们生活变得方便而出现,操作系统本身就是一个软件,操作系统可以管理软件和硬件层次的内容,起到一个承上启下的作用。为了便于理解,我们举一个例子,在一个互联网公司中,有老板,员工,电脑等一下成员,我们来想一下,。员工(软件)可以进行管理电脑(硬件),老板(软件)可以通过一些方式进行管理员工(软件)。这里就说明了软件是可以管理软件,软件也可以管理硬件。

1.2 Linux 的版本问题

       为什么要谈及 Linux 版本问题呢?因为在世界中Linux的版本众多,如下图所示,为什么会有这个多版本呢?因为Linux在诞生之后,一直是以开源的身份在市面上留存,一些大佬们拿到这一份开源的代码,可以进行自己的编写和发明自己想要的功能,所以Linux的版本众多。

       但是,在这里我想谈论的问题是:Linux的版本大致分为两大类:商业化版本和技术版本。这里也只是大致了解,不用深入了解。

       在上面,我们说到了linux是开源的,说明你在linux上做的一些事情,你自己是可以看见,如果说别人对你的数据进行操作,你也是可以看见,但是windows和macos这两个操作系统不是开源,别人对你的数据进行操作,你是不知道的。

       而对于互联网公司来说,数据是很重要的。如果说,你用了一些闭源的操作系统,别人对你的数据进行一些不好的工作,你是不知道,这样公司的数据就不能保证安全性,所以这是选择Linux的一个原因。第二个原因是,操作系统的流畅度,因为Linux是开源的,所以有很多大佬在维护,流畅度是可以进行保证的,而windows和macos只有一些内部成员在维护。所以,在现在很多互联网公司都在使用Linux操作系统进行管理。

1.3 Linux 的应用场景

       基于这个linux的开源,稳定,安全的优点,使得Linux在应用的场合比较多,例如:Linux在服务器领域的发展,在桌面领域的发展,在移动嵌入式领域的发展,在云计算/大数据中的发展。你所使用的安卓手机也是在Linux的基础上发明出来的。Linux无处不在,太强大了,还是要学习的。

二、如何搭建Linux环境(大致)

       在之前,我们学校实习的过程中,我们用到的是虚拟机,下载文件和一写文档我无法上传,所以在这里我们用一个新的方式进行我们的Linux环境的布置,不过这种方式是需要花米的,但是简单。(想当年,用虚拟机配置环境时,花了很长的时间)上网搜阿里云服务器,我们购买一个服务器,然后找到公网IP,之后的步骤,网上应该有很多,这里就不在赘述了。

三、Linux 的一些基本指令

       我们搭配好Linux后,我们要学习一些指令,不能只停留在概念层面,要打代码,多打代码才能理解。这一篇文章,我们先来了解:ls指令,pwd指令,cd指令,whoami指令,最后在讲解指令时搭配使用文件路径。

3.1 文件一些知识点

3.1.1 重新认识指令

指令的本质是程序 --------- 指令、程序和可执行程序都是一回事情。

  

安装和卸载是在干什么?把可执行程序拷贝/删除到系统路径下。

3.1.2 文件的构成(属性+内容)

       大家有没有想过当我们创建一个空的文件时,到底有没有占据磁盘空间。答案是有的,因为在文件 = 文件属性 + 文件内容。而之前我们在学习C语言时,学习的一些关于文件的操作是对文件的内容进行操作的,并没有学习到对文件的属性进行操作的。在未来我们对文件的任何操作可以分为两类:1、对属性的操作(用指令控制文件);2、对内容的操作(用编程访问文件)。

       这就引出了ls指令,因为ls指令的作用是:罗列出当前目录下的文件名

3.2 ls 指令

       ls的作用是罗列出当前目录下的文件名。有些指令可能含有多个指令。下面,我们来学习一下ls的一些指令。

<code>ls -l // 列出文件的详细信息。也可以简写为:ll

<code>ls -la //列出目录下的所有文件,包括以 . 开头的隐含文件。code>

       在这里的红色部分圈起来的地方有两个符号,一个是一个点,一个是两个点,这是隐藏目录,在Linux的任何目录下都会默认具有两个隐藏目录。在平常的ls指令下是看不见,但是在ls -a的指令下可以看见,在后面的cd指令中来学习。

<code>ls -d //将目录像文件一样显示,而不是显示其下的文件code>

3.3 pwd 指令

pwd //显示用户当前所在的目录

       在windows操作系统和Linux操作系统都有文件路径的概念,为什么要有路径呢? 系统层面要唯一地标识文件,路径必须要统一性,任何一个文件只有一个父目录

3.4 cd 指令

3.4.1 了解一下Linux目录的树形结构

在目录中,一个文件的路径是具有唯一性的,任何一个文件只有一个父目录。 

3.4.2 有关目录、相对路径、绝对路径

       在我们用cd ..的指令一直回退,直到最后,退到了根目录。整个Linux的根目录是root,磁盘上的文件与目录被组成了目录树,这种目录树是一种多叉树。

相对路径:就是相对于本身开始,看是不是上一级,还是下一级,还是自身。 

绝对路径:就是从根目录开始写文件

3.4.3 有关cd的一些指令

3.4.3.1 cd指令的一些选项 

<code>cd // 作用是进行路径切换

 

<code>cd .. // 回退到上级路径

cd . // 表示当前路径

<code>cd - //返回最近访问目录

cd ~ //进入用户家目录 ----- 首次登陆,所处路径就是自己的用户家目录

       

 

3.4.3.2 用户家目录

下面来了解一下用户家目录

在windows操作系统下,我们的用户家目录是:C:\Users\HERUIXU,相信你们也有!

对于Linux操作系统下,我们也有用户家目录:

对于root账号来说,默认的用户家目录是:/root ---------- 超级管理员账号对于普通账号来说,默认的用户家目录是:/home/XXXX ------------ XXXX是新建的用户名称。

3.4.3.3 多用户操作系统 

因此,windows和Linux操作系统是多用户操作系统

桌面的本质是文件

当你登陆windows时:

确定是谁;根据用户名,找到该用户目录下的桌面文件夹;将桌面文件夹显示为图形化界面。

3.5 alias指令

用途:alias指令用于设置指令的别名,用户可利用 alias,自定指令的别名。

3.6 which指令

用途:要求系统中打印出我所指定的指令名称在系统中的所在路径。

3.7 touch指令

<code>touch file.txt

touch用法:touch XXXX

touch用途:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件

3.8 mkdir指令 

mkdir用法:mkdir XXXX

mkdir用途:在当前目录下创建一个名为 “XXXX”的目录

mkdir -p 指令:递归创建多个目录 

3.9  rmdir指令 && rm指令(重要)

rmdir用法:rmdir  XXXX

rm使用对象:具有当前目录操作权限的所有使用者

rmdir用途:删除空目录

    

rm用法:rm XXXX  ------ 最牛逼的是:rm -rf  慎用!!!!!!!!!!!!!

rm适用对象:所有使用者

rm用途:同时删除文件或目录

3.10 man指令 

man用法:man XXXX

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

我们只需要关心前3个:

是普通的命令是系统调用 , 如 open,write 之类的 ( 通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)是库函数

3.11  cat指令

<code>cat XXXXXX

cat用法:cat XXXX

cat用途:查看目标文件的内容

3.12 mv指令

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

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

功能 :

视 mv 命令中第二个参数类型的不同(是目标文件还是目标目录), mv 命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时, mv 命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

3.13 cp指令

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

cp用途:复制文件或目录

说明 : cp 指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息 

3.14 重定向

<code>> //输出重定向

>> //追加重定向

< //输入重定向

Linux的理念:一切皆文件,Linux可以通过统一的方式来进行文件或设备的访问。

普通文件和显示器的对比:

对于任何文件中,进行读和写文件;显示器设备->显示器文件->向显示器打印,向显示器文件进行写入。

重定向:每次进行重定向,都会从文件开始写入文件内容 

输出重定向:如果有这个文件,则会清空文件,将内容写入文件中;如果没有这个文件,则会创建这个文件,将内容写入文件中。本来应该显示到显示器,现在显示到文件中。

追加重定向:如果有这个文件,则不清空文件,将内容追加到文件后面;如果没有这个文件,则会进行创建这个文件,将内容写入文件中。

输入重定向:将文件中的内容读取出来。 

3.15 more指令

3.16 less指令

3.17 时间相关的指令

3.17.1 date指令

date使用特定时间显示时间:date +“%Y:%m:%d”

date用法:date +“......”

3.17.1.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

3.17.1.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″ //这样可以设置全部时间

3.17.2 时间戳

时间 -> 时间戳: date +%s 时间戳-> 时间:date -d@15087949502

3.18 cal指令

概念:cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历 “ 阳历 ” 又名 “ 太阳 历” ,系以地球绕行太阳一周为一年,为西方各国所通用,故又名 “ 西历 ”

命令格式 : cal [ 参数 ][ 月份 ][ 年份 ]

功能 : 用于查看日历等时间信息,如只有一个参数,则表示年份 (1-9999) ,如有两个参数,则表示月份和年份。

常用选项 :

-3 显示系统前一个月,当前月,下一个月的月历-j  显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)-y  显示当前年份的日历

3.19 find指令

find pathname -options

功能:用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)

常用选项:

-name   按照文件名查找文件

3.20 grep指令

功能: 在文件中搜索字符串,将找到的行打印出来

常用选项:

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

3.21 zip/unzip指令

zip test.zip test

功能: 将目录或文件压缩成 zip 格式

常用选项:

-r 递归处理,将指定目录下的所有文件和子目录一并处理

3.22 tar指令 

tar -czf XXXXX.tgz XXXXX

tar [-cxtzjvf]  文件与目录  .... 参数 :

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

3.23 bc指令

功能:bc命令可以很方便的进行浮点运算

3.24 uname –r指令

uname -XX

功能

uname

用来获取电脑和操作系统的相关信息。

补充说明

uname

可显示

linux

主机所用的操作系统的版本、硬件的名称等基本信息。

常用选项:

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

3.25  重要的几个热键[Tab],[ctrl]-c, [ctrl]-d

[Tab]按键---具有『命令补全』和『档案补齐』的功能 [Ctrl]-c按键---让当前的程序『停掉』 [Ctrl]-d按键---通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit

3.26  关机指令(关的是服务器的机)

shutdown -XX

常见选项:

-h:将系统的服务停掉后,立即关机。 -r:在将系统的服务停掉之后就重新启动 -t sec:-t 后面加秒数,亦即『过几秒后关机』 

学习产出:

Linux 的诞生和版本问题以及应用场景如何搭建Linux的环境Linux的一些基本指令



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。