【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的一些基本指令
相关文章
|
21天前
|
Ubuntu Linux vr&ar
IM跨平台技术学习(十二):万字长文详解QQ Linux端实时音视频背后的跨平台实践
本文详细记录了新版QQ音视频通话在 Linux 平台适配开发过程中的技术方案与实现细节,希望能帮助大家理解在 Linux 平台从 0 到 1 实现音视频通话能力的过程。
48 2
|
1天前
|
Ubuntu 算法 Linux
嵌入式Linux的学习误区
**嵌入式Linux学习误区摘要** 1. **过度聚焦桌面Linux** - 许多学习者误将大量时间用于精通桌面Linux系统(如RedHat、Fedora、Ubuntu),认为这是嵌入式Linux开发的基石。 - 实际上,桌面Linux仅作为开发工具和环境,目标不应是成为Linux服务器专家,而应专注于嵌入式开发工具和流程。 2. **盲目阅读Linux内核源码** - 初学者在不了解Linux基本知识时试图直接研读内核源码,这往往导致困惑和挫败感。 - 在具备一定嵌入式Linux开发经验后再有针对性地阅读源码,才能有效提升技能。
10 4
|
12天前
|
Ubuntu 应用服务中间件 Linux
Linux学习之Ubuntu 20中OpenResty的nginx目录里内容和配置文件
总的来说,OpenResty的Nginx配置文件是一个强大的工具,它允许你以非常灵活的方式定义你的Web服务的行为。
15 2
|
14天前
|
人工智能 Unix Linux
【初识Linux】Linux环境配置、Linux的基本指令 一
【初识Linux】Linux环境配置、Linux的基本指令 一
|
24天前
|
算法 Unix Linux
【linux】详解linux基本指令
【linux】详解linux基本指令
|
24天前
|
监控 Java Linux
Linux下JVM相关指令详解及案例介绍
Linux下JVM相关指令详解及案例介绍
22 1
|
16天前
|
Linux 网络安全 Docker
【Linux】Linux常用指令合集精讲,一篇让你彻底掌握(万字真言)3
【Linux】Linux常用指令合集精讲,一篇让你彻底掌握(万字真言)
12 0
|
16天前
|
Linux 网络安全 开发工具
【Linux】Linux常用指令合集精讲,一篇让你彻底掌握(万字真言)2
【Linux】Linux常用指令合集精讲,一篇让你彻底掌握(万字真言)
17 0
|
16天前
|
Linux
【Linux】Linux常用指令合集精讲,一篇让你彻底掌握(万字真言)1
【Linux】Linux常用指令合集精讲,一篇让你彻底掌握(万字真言)
18 0
|
22天前
|
监控 网络协议 安全
Linux基本指令之网络通信命令
Linux基本指令之网络通信命令