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

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

思维导图

学习目标:

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


学习内容:

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

  1. Linux 的诞生和版本问题以及应用场景
  2. 如何搭建Linux的环境(大致)
  3. 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的一些指令。

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

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

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

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

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指令的一些选项
cd // 作用是进行路径切换

cd .. // 回退到上级路径
cd .  // 表示当前路径

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

     

3.4.3.2 用户家目录

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

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

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

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

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

桌面的本质是文件夹

当你登陆windows时:

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

3.5 alias指令

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

3.6 which指令

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

3.7 touch指令

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个:

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

3.11  cat指令

cat XXXXXX

cat用法:cat XXXX

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

3.12 mv指令

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

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

功能 :

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

3.13 cp指令

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

cp用途:复制文件或目录

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

3.14 重定向

>      //输出重定向
>>     //追加重定向
<      //输入重定向 

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

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

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

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

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

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

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

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 后面加秒数,亦即『过几秒后关机』

学习产出:

  1. Linux 的诞生和版本问题以及应用场景
  2. 如何搭建Linux的环境
  3. Linux的一些基本指令
相关文章
|
9天前
|
人工智能 Unix Linux
Linux下的基本指令介绍
在早期的操作系统中,键盘先于鼠标出现,操作系统最初并无图形化界面,依赖指令进行交互。Xshell的复制粘贴不同于常规,需用Ctrl+Insert复制,Shift+Insert粘贴。
28 0
Linux下的基本指令介绍
|
7天前
|
安全 Linux 数据安全/隐私保护
Linux基础——Linux常见基本指令(上)
Linux基础——Linux常见基本指令(上)
12 1
|
8天前
|
Linux
【Linux操作系统】基本指令-2
【Linux操作系统】基本指令
【Linux操作系统】基本指令-2
|
15天前
|
Linux 虚拟化 iOS开发
Linux系统——远程连接Linux系统(图形化、命令行、使用命令行学习Linux系统、FinalShell)
Linux系统——远程连接Linux系统(图形化、命令行、使用命令行学习Linux系统、FinalShell)
19 3
|
16天前
|
物联网 Linux 芯片
学习嵌入式是选择单片机还是Linux?
单片机通常指的是一种集成了处理器、存储器和各种外设接口的微控制器芯片,常见的有STC、51系列、AVR、ARM Cortex-M等。单片机具有低成本、低功耗、实时性强等特点,适用于对资源要求较低、功耗要求较低、实时性要求较高的嵌入式系统。学习单片机开发可以让您深入了解嵌入式系统的底层原理和硬件编程,对于对嵌入式系统底层开发感兴趣的人来说,是一个很好的选择。
17 4
|
1天前
|
Linux
杨校老师带你走进Linux操作系统的学习(一)
杨校老师带你走进Linux操作系统的学习(一)
7 0
|
4天前
|
Linux
【Linux驱动学习(1)】USB与input子系统,linux统一设备模型,枚举,USB描述符深入剖析
【Linux驱动学习(1)】USB与input子系统,linux统一设备模型,枚举,USB描述符深入剖析
|
7天前
|
机器学习/深度学习 Linux
Linux基础——Linux常见基本指令(下)
Linux基础——Linux常见基本指令(下)
8 0
|
7天前
|
Linux Windows
Linux基础——Linux常见基本指令(中)
Linux基础——Linux常见基本指令(中)
8 0
|
8天前
|
安全 Linux
【Linux操作系统】基本指令-1
【Linux操作系统】基本指令