linux介绍与基本指令

前言

本次博客将会讲解linux的来源历史、linux操作系统的理解以及它的一些基本指令。

1.linux的介绍

linux的来源

linux的来源最初还是要说到unix操作系统的。

1968年,一些来自通用电器公司、贝尔实验室和麻省理工学院的研究人员开发了一个名叫Multics的特殊操作系统。Multics在多任务文件管理和用户连接中综合了许多新概念。
1969-1970年,AT&T的贝尔实验室研究人员Ken Tompson和Dennis Ritchie,在采用很多Multics特点的基础上开发了UINX系统。它运行在小型机上,满足了系统对科研环境的要求。从产生开始,UNIX就是一个有价值的、高效的、多用户和多任务的操作系统。

**肯·汤普森丹尼斯·里奇**他们是uinx的创始人。

基于unix,linux也诞生了。

1991年10月5日,赫尔辛基大学的一名研究生**Linus Benedict Torvalds(托瓦兹)**在一个Usenet新闻组(comp.os.minix)中宣布他编制出了一种类似UNIX的小操作系统,叫Linux。新的操作系统是受到另一个UNIX的小操作系统------Minix的启发,该系统是由一名叫Andrew S Tanenbaum的教师开发的。

linux开源

Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。严格来讲,Linux只是操作系统内核本身,但通常采用"Linux内核"来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具。

企业应用现状

Linux在服务器领域的发展

Linux服务器操作系统在整个服务器操作系统市场格局中占

据了越来越多的市场份额,已经形成了大规模市场应用的局面。

Linux在桌面领域的发展

近年来,特别在国内市场,Linux桌面操作系统的发展趋势非常迅猛。国内如中标麒麟Linux、红旗

Linux、深度Linux等系统软件厂商都推出的Linux桌面操作系统,目前已经在政府、企业、OEM等领域得到了广泛应用。

Linux在移动嵌入式领域的发展

Linux的低成本、强大的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应用,目前Linux以广泛应用于手机、平板电脑、路由器、电视和电子游戏机等领域。在移动设备上广泛使用的Android操作系统就是创建在Linux内核之上的。目前,Android已经成为全球最流行的智能手机操作系统,据2015年权威部门最新统计,Android操作系统的全球市场份额已达84.6%。

Linux在云计算/大数据领域的发展

互联网产业的迅猛发展,促使云计算、大数据产业的形成并快速发展,云计算、大数据作为一个基于开源软件的平台,Linux占据了核心优势;据Linux基金会的研究,86%的企业已经使用Linux操作系统进行云计算、大数据平台的构建,目前,Linux已开始取代Unix成为最受青睐的云计算、大数据平台操作系统。

发行版本

1 Debian

Debian运行起来极其稳定,这使得它非常适合用于服务器。 debian这款操作系统无疑并不适合新手用户,而是适合系统管理员和高级用户。

2 Ubuntu

Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。Ubuntu是新手适用的。

3 RHEL(红帽企业级Linux)

这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包括x86和x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证工程师(RHCSA/RHCE),对系统管理员进行培训和认证。

4 CentOS

CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。有些人不想支付一大笔钱,又能领略红帽企业级Linux;对他们来说,CentOS值得一试。此外,CentOS的外观和行为似乎与母发行版红帽企业级Linux如出一辙。 CentOS使用YUM来管理软件包。

5 Fedora

小巧的Fedora适合那些人:想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。Fedora是一款非常好的发行版,有庞大的用户论坛,软件库中还有为数不少的软件包。

6 Kali Linux

Kali Linux是Debian的一款衍生版。Kali旨在用于渗透测试。Kali的前身是Backtrack。用于Debian的所有Binary软件包都可以安装到Kali Linux上,而Kali的魅力或威力就来自于此。此外,支持Debian的用户论坛为Kali加分不少。Kali随带许多的渗透测试工具,无论是Wifi、数据库还是其他任何工具,都设计成立马可以使用。Kali使用APT来管理软件包。毫无疑问,Kali Linux是一款渗透测试工具,或者是文明黑客(我不想谈论恶意黑客)青睐的操作系统。

2.linux操作系统的基本理解

linux系统的管理员

whoami这条指令可以查看当前用户,当前这个用户root就是linux操作系统的管理员。拥有最高权限。

用户管理

下面是创建一个新用户:

adduser 用户名

New password:

这里输入的密码不回显,一定注意。

下面是删除用户:

在删除时注意,要加上-r命令行选项,我这里是ubuntu的操作系统所以没有也可以删除,但是其他系统不一定能够删除。这里再次重新删除时,显示已经不存在了,说明删除成功。

这里就可以看到有多少个普通用户了。补充:ls指令时显示当前目录下的所有文件。cd 进入某个目录中

补充一个知识root是系统的管理员拥有最高的权限,普通用户只能管理自己的文件,权限收到root的限制。

路径

pwd查看当前路径的指令,路径其实就是当前你所处在的位置。比如说上面的结果中显示我们在linux系统下的root目录中。也可以去看一看windos操作系统的路径:

上面就是windos的路径了。

观察一下:windos下的路径分隔符:\ linux下的路径分隔符: /

一个是反斜杠另一个是斜杠。

linux操作系统下一切皆文件:

文件是什么?

一般去理解一个文件,自然而然的就想到了文件里肯定有内容,那么这个内容是文件的主体。

这就是windos系统下的记事本,是一个txt文件。在linux系统下,文件的分类不看后缀。

ls是查看当前目录下文件的名字,这里要介绍命令行选项了。

-a是显示隐藏文件,-l是显示文件的更多属性。以.开头的文件名是隐藏文件。

文件=文件属性+文件内容

文件属性一般是:文件类型,文件权限,文件时间等等。

文件的类型可以有很多:隐藏文件,目录文件,普通文件。

隐藏文件:上面的代码中会有两个文件一个是**.** 另一个是**..**

注意在每一个目录内都会默认生成两个隐藏文件,. 代表的是自身目录, ..代表上级目录。

配合cd可以快速进出目录。

隐藏文件只是一个属性,普通文件也可以隐藏,目录文件也可以隐藏,其他文件也可以隐藏。

这里就是普通的隐藏文件。

接来来介绍家目录与根目录

一般的用户在登入时默认处于家目录下,所以家目录的定义就是用户的默认路径。

家目录的符号就是:~

假如用户在其他路径下,要进入家目录最快的方法是什么?

根目录就是整个linux操作系统的大目录,也就是说第一个目录就是/

根目录的符号就是: \

要回到家目录也很简单

Linux的文件系统

linux的文件系统本质是一颗以根目录开始的多叉树。

特性1:叶子节点一定是普通文件或者空目录。

特性2:非叶子节点一定是非空目录。

我们发现每一个文件的路径都是唯一确定的。

所以不存在歧义,那么要找到一个文件,就必须要有一个确定的路径。

一般路径分两类:绝对路径和相对路径

这个还是很重要的!!!!

绝对路径:很简单就是把所有路径都写出来即可,比如在上面的图中找到lib,假设lib是一个目录

那么可以 /usr/lib即可找到lib,要进入lib目录中的话,加上cd就好

cd /usr/lib,这样不就进来了。

相对路径:目标路径与现在所处的路径的相对之下要走的路径。

比如说现在在home路径下,要找到test.c文件,当然text.c是一个普通文件,不可以进入,它不是目录,所有只要找到包含它的目录即可,那么该目录是bit对吧!

所以 ./bit 就找到了该路径,那么cd ./bit 不就进来了?

不要疑惑这个. 因为它代表了自身目录当然这里是可以直接缩写的,因为路径可以向下查找,不能向上查找所以 cd bit 也是可以的。

我们可以在linux下试试看:

这里是普通用户从家目录的路径,那么任务来了:

使用相对路径进入lesson1

回到家目录在使用绝对路径进入lesson1

我相信聪明的大家肯定看到出来。

命令==文件==可执行文件

这里cd是shell的内置命令所以不存在文件中,但是其他的文件注意看是不是都是在一个路径中?

vim是文本编辑器可以进入到文本文件中进行编辑。

看到吗?这些是二进制代码,是一个可执行的程序。说明指令也是文件。

所以linux系统下一切皆文件!!!!!!

3.linux下的一些快捷键

ctrl+c终止程序:这个可以举例

使用cat指令时,输入一个数 系统会输出一个数,那么使用ctrl+c就可以使它停止。

上下键可以重现历史指令

按下 上键

按下 下键

tab键补全文件名:

按下 tab键

这个会自动查找与之对应的文件,并且自动补齐。

ctrl+d:退出当前用户

这个也好演示

那么就从root账户退出到了普通用户了。

ctrl+c复制 shift+insert粘贴。

4.linux的基本指令

1 ls指令

对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

它有一些命令行选项

ls . 显示当前目录的文件

ls 路径 ,显示该路径的文件

ls -a ,显示隐藏文件

ls -l 显示文件的其他属性

ls -d 显示当前目录属性,若只有一个-d那么只显示该目录名字。

上面的指令就是显示当前所在路径的属性。

上面显示的是家目录的文件。

2 pwd

显示当前所在的绝对路径。

没有注意点,但是常用!!

3 cd指令

进入某一个路径,可以是绝对路径也可以是相对路径。

cd - 进入前一个路径

这里先是从家目录进入lesson1路径,然后cd -进入家目录,再cd -进入lesson1路径。

4 touch

创建一个普通文件,

touch +文件名:默认在当前路径中添加文件。

touch +路径+文件:在指定路径下添加文件

我们这里就是在上级目录下(learning)下给下级目录(lesson2)创建普通问文件。

注意以后的指令其实都可以有默认路径和指定路径这一说法!!!

5 mkdir

在当前目录下创建一个目录

加上-p命令行选项,可以递归构建目录

5. rmdir&&rm指令

rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。

语法:rmdir [-p][dirName]

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

功能:删除空目录

常用选项:
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。

只能删除空目录,加上-p可删除只有包含当前被删除目录的父目录,也就是连同父目录一起删除。

rm命令可以同时删除文件或目录

rm -rf 强制删除文件,不管它有没有包含其他的文件,都一并删除

6. man指令

一般用来查找指令以及c语言库函数的。man有8个章节。

1 是普通的命令

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

3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件

5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义

6 是给游戏留的,由各个游戏自己定义

7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明

8 是系统管理用的命令,这些命令只能由root使用,如ifconfigmna

man 关键字

下面是例子:

man ls

man 1 bash

查找第一章节:

最后,可以按q退出,

man指令的作用是查找一些常见的指令和一些语言的语法!

7.cp指令

cp 普通源文件 普通目标文件

在同一路径下,就是对该源文件的拷贝。

当然目标文件的名字必须要和源文件不同。不然会出现下面的情况。

下面是copy的过程。a.txt与b.txt文件的内容一样。

cp 普通源文件 某一个路径/目标文件

这个是最常用的,把一个文件放在其他的路径下。这个也好举例:

把a.txt拷贝放在上级目录中,以c.txt命名。

上面的代码只是对文件进行拷贝,但是也可以通过 -r选项把整个目录递归拷贝在某个路径下。

很好举例:

我们要把1/2/3/4/5这个路径中的所有文件都放在text中。

这样就可以拷贝目录中所有的文件和目录。

8.mv指令

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

要把目录3移动到2目录中,并且把a.txt,b.txt移动到目录3中

这样就可以了,应该也不难!

9.cat指令

查看目标文件的内容

单独的cat相当于读取键盘输入,把它输出在屏幕中。

10 echo指令

这个指令可以把一行内容输出

自此基本的一些指令算是介绍完成了,至少对于文件的增删查改都已经涉及到了。

就这样把。

相关推荐
何双新16 分钟前
第21讲、Odoo 18 配置机制详解
linux·python·开源
21号 117 分钟前
9.进程间通信
linux·运维·服务器
搬码临时工5 小时前
电脑同时连接内网和外网的方法,附外网连接局域网的操作设置
运维·服务器·网络
藥瓿亭5 小时前
K8S认证|CKS题库+答案| 3. 默认网络策略
运维·ubuntu·docker·云原生·容器·kubernetes·cks
Gaoithe6 小时前
ubuntu 端口复用
linux·运维·ubuntu
德先生&赛先生6 小时前
Linux编程:1、文件编程
linux
程序猿小D7 小时前
第16节 Node.js 文件系统
linux·服务器·前端·node.js·编辑器·vim
gsls2008088 小时前
ocrapi服务docker镜像使用
运维·docker·容器
多多*8 小时前
微服务网关SpringCloudGateway+SaToken鉴权
linux·开发语言·redis·python·sql·log4j·bootstrap
文牧之8 小时前
PostgreSQL 的扩展pg_freespacemap
运维·数据库·postgresql