linux---第一周

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux---第一周相关的知识,希望对你有一定的参考价值。

Linux发行版
既然Linux只是一个内核。那么我们通常所说的Linux操作系统又是什么?我们通常所说的Linux,指GNU/Linux,即采用Linux内核的GNU操作系统。是的,操作系统的实际名称是GNU。什么是GNU?GNU代表GNU’s Not Unix。可以说是一个操作系统又可以说是一种规范。比如,众所周知的php,原名为Personal Home Page(个人主页),根据GNU的软件命名规则,PHP现已更名为PHP:Hypertext Preprocessor(超文本预处理程序)。

各版本的区别
一、基于Debian系列

  1. Debian
    各衍生版本

    1. 1 unstable 最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。
      1. 2 testing 经过unstable中的测试,相对较为稳定,也支持了不少新技术。
      2. 3 stable 一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。
  2. Ubuntu ---界面非常友好,容易上手,对硬件支持非常全面,是最适合做桌面系统的Linux发行版本,同时Ubuntu也可用于服务器领域。 Ubuntu的目标在于为一般用户提供一个最新的,同时又相对稳定的主要自由软件构建而成的操作系统。

    1. 1 Linux Mint
    2. 2 Knoppix
    3. 3 Google Chrome OS
    4. 4 MEPIS
    5. 5 Sidux
    6. 6 CrunchBang Linux
    7. 7 Chromium OS
      二、基于RedHat系列
    8. RHEL ---Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本,稳定性非常好,适合服务器使用。
    9. Fedora ---由原来的Redhat桌面版本发展而来,免费版本,稳定性较差,最好只用于桌面应用。
    10. CentOS ---RHEL的社区克隆版本,免费版本,稳定性非常好,适合服务器使用。
    11. Scientific Linux
    12. Oracle Linux
      三、基于Gentoo系列
      Gentoo
      四、基于SUSE系列
      OpenSUSE ---对个人来说是完全免费的,包括使用和在线更新。OpenSUSE被评价为最华丽的Linux桌面发行版,甚至超越win7,但它的优势绝不仅仅局限于win7还要绚丽的用户交互界面,其性能也绝不亚于其他Linux桌面发行版
      SLES ---(SUSE Linux Enterprise Server)

    ##系统安装
    一.下载VMware开启时所需要的linux系统。我这里使用的是linux-Cent OS7.6系统,下载地址是:http://mirrors.aliyun.com/centos/7.7.1908/isos/x86_64/ 里面包含有纯净版也有掺杂了多个软件源在里面的版本,按照自己需要的下载即可。
    二.VMware下载14版本即可,至于需要正版序列号这些就需要自己去上网找了,这里不提供,然后下面是在VMware下面安装linux的步骤。
    1.在VMware中打开文件--新建虚拟机-选择下一步技术图片
    2.选择安装源位置,这个点击空白盘稍后安装即可,选择一下步
    3.系统选择为linux,版本根据下载的版本是X86还是64根据自己决定。选择下一步。技术图片
    4.创建虚拟机名称和该linux虚拟机数据保存的位置。技术图片这里我填写了mage-linux。
    5.选择该虚拟机的硬盘容量大小(我这里由于有足够大的容量所以我输入了200GB),其它选择默认即可。技术图片
    6.接着上一步完成后会回到VNware的开始界面,选择刚才安装的linux系统,然后点击内存调整为2GB(避免默认的1GB可能开不起来系统)技术图片并且CD/DVD处选择ISO镜像包,就是刚开始时需要下载的linux7.6的系统ISO,选择确定后开启系统。
    7.正式进入到系统安装的界面,这里选择第二项(默认项)检查系统包完整性可运行性后安装。技术图片
    8.接下来语言和键盘都选择English/US,因为中文系统在使用期间某些应用上会出现乱码,推荐直接English方便我们以后熟悉英文也挺好哦!技术图片
    9.接下来要把DATE&TIME(时区)修改成Aisa(亚洲)shanghai我们东八时区进行校对,不然以后出现NTP服务可能会进行同步时失败。后面有一个SOFTWARE SELECTION选项,我这里选择了server with GUI (带图形界面的服务系统)技术图片技术图片
    10.SYSTEM选择中,我们需要对硬盘进行分区(和Windows差别不大)技术图片点击进去后选择I will configure partitioning(手动分区)技术图片
    11.分区界面选择“+”号键。选择挂载点:/boot(引导)--1GB、/(根目录)---100GB、手动输入挂载点“/data”----50GB、逻辑分区swap---50GB,剩下的50GB空间可用来后面后续使用时再添加到某分区或者继续做逻辑分区技术图片技术图片
    最后点击分区,下一步选择Accept Changes(确认修改)技术图片
    12.选择NETWORK,把里面OFF按钮打开为 “ON”,开启网卡。技术图片技术图片
    13.最后一步设置ROOT账号的密码和用户的账号密码技术图片技术图片设置完成后等待系统安装完成reboot重启。
    14.界面进入后提示我是否开启licensing技术图片技术图片技术图片
    15.最后进入登录界面选择用户登录(可以选择root)输入密码登录完成!!!技术图片

    ##配置环境变量,实现执行histroy的时候可以看到执行命令的时间
    1.登录界面后鼠标右击 OPEN Terminal进入Bash界面
    输入:"history"能显示出已执行的命令历史但不会显示出具体时间段,由于该变量配置文件在home目录下,所以先输入:"ls -a"显示所有文件进行查看是否有名为 ".bashrc"的隐藏文件,然后输入:
    [fanfaan@localhost ~]$ nano .bashrc --在下面跟上一句变量命令


**#Display date
export HISTTIMEFORMAT=‘%F %T  ‘  或者export HISTTIMEFORMAT=‘%Y-%m-%d  %H:%M:%S  ‘ **
```![](https://s1.51cto.com/images/blog/202002/29/201f3ea4211ad1fc135a61b81ace9d27.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
Ctrl+X退出,选择保存yes
确认后在bash中输入:**`[fanfaan@localhost ~]$ source ~/.bashrc `**
加载./bashrc的命令。

测试:**`[fanfaan@localhost ~]$ history `**
    1  2020-02-29 17:43:36  ld
    2  2020-02-29 17:43:38  ls -a
    3  2020-02-29 17:43:55  cd /home/
    4  2020-02-29 17:43:56  ls
    5  2020-02-29 17:43:57  ls-a
    6  2020-02-29 17:43:59  ls -a
    7  2020-02-29 17:44:07  sudo -i
已经显示时间日期(变量中‘%F %T  ‘T后面需要空格两格,不然时间会和命令粘在一起,%S后面同理),测试完成history命令已永久保存显示时间日期。
----------------------------------------------------------------------------------------------
**总结Linux哲学思想**
1、一切皆文件;

1)小型,单一用途的程序;

2)连接程序,共同完成复杂功能;

3)避免令人困惑的用户界面;

4)配置数据存储在文本中;

解释:
1.系统里面所有都是文件:是 Unix/Linux 的基本哲学之一。不仅普通的文件,目录、字符设备、块设备、 套接字等在 Unix/Linux 中都是以文件被对待;它们虽然类型不同,但是对其提供的却是同一套操作界面。

2.小型,单一用途的程序:程序和可执行文件功能单一向,不会太复杂,这样才能保证了linux内核的高效运行

3.连接程序,共同完成复杂功能:复杂的任务可以通过连接多个简单的程序实现复杂的功能。对于复杂的功能linux通过许多简单程序的组合等方式实现,在保证简单功能的高效性的同时,复杂的程序也必然是高效性的

4.避免令人困惑的用户界面:如windows那样出了问题一般人选择的会是重启,实在是不行的话就是 重新 安装系统了,因为对于windows那样不是开源的,并且用户界面比较 复杂操作系统出了问题,一般的人是根本没有办法解决的。但是linux就不一样了,第一linux是开源的,无论什么问题都可以通过简洁的命令行实现 排错,修改系统的配置,一切都是简洁明了为基础。

5.配置数据存储在文本中:linux所有的配置文件都存放在文本配置文件当中,无论什么配置修改都只需修改其配置文件即可,配置文件时文本形式的只需任意一款文本编辑器修改即可而不是类似于windows那样将保存在注册表中,并且windows的注册表需要专门的二进制或十六进制的编辑器才可编辑,修改比较复杂。

-----

**总结linux常用命令使用格式,且利用实例说明。**
1.`echo `
![](https://s1.51cto.com/images/blog/202002/29/2abb74a76998ac4b3cd64c7c4a4881cd.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
用法:输出对应的字符(若后面是变量则为变量中的内容)
`echo -n` 表示不换行输出
`echo -e `输出转义字符,比如常用的转义字符"`	`",作用和tab键一样
`echo -E `和`ehco -e`的作用相反,是禁止转义字符输出
图片以下的都是详细用法解释,就不用多说了。
2.`date`
![](https://s1.51cto.com/images/blog/202002/29/e23d4dfb549f829f40112cca6522080c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
用法:date 可以用来显示或设定系统的日期与时间。
date -d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号; 
date -s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号; 
date -u:显示GMT; 
date --help:在线帮助; 
date --version:显示版本信息。

date中FORMAT详细说明:
%H 小时(以00-23来表示)。 
%I 小时(以01-12来表示)。 
%K 小时(以0-23来表示)。 
%l 小时(以0-12来表示)。 
%M 分钟(以00-59来表示)。 
%P AM或PM。 
%r 时间(含时分秒,小时以12小时AM/PM来表示)。 
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。 
%S 秒(以本地的惯用法来表示)。 
%T 时间(含时分秒,小时以24小时制来表示)。 
%X 时间(以本地的惯用法来表示)。 
%Z 市区。 
%a 星期的缩写。 
%A 星期的完整名称。 
%b 月份英文名的缩写。 
%B 月份的完整英文名称。 
%c 日期与时间。只输入date指令也会显示同样的结果。 
%d 日期(以01-31来表示)。 
%D 日期(含年月日)。 
%j 该年中的第几天。 
%m 月份(以01-12来表示)。 
%U 该年中的周数。 
%w 该周的天数,0代表周日,1代表周一,异词类推。 
%x 日期(以本地的惯用法来表示)。 
%y 年份(以00-99来表示)。 
%Y 年份(以四位数来表示)。 
%n 在显示时,插入新的一行。 
%t 在显示时,插入tab。 
MM 月份(必要) 
DD 日期(必要) 
hh 小时(必要) 
mm 分钟(必要)
ss 秒(选择性) 
3.ifconfig(和Windows系统CMD中ipconfig一样)
ifconfig:能显示当前服务器的网卡信息,比如做了bond,或者某个网口的转发数据表是否丢失是否正常、IP、Netmark等。可以用来查看和配置网络设备。当网络环境发生改变时可通过:`cd /etc/sysconfig/network-scripts/`对网络相应的网卡配置。
![](https://s1.51cto.com/images/blog/202002/29/7cc244c59c2b5b160e3b064592922143.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

4.export
在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。
![](https://s1.51cto.com/images/blog/202002/29/b5edbcb2e132b2bc7dd6f06ffe122f97.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
export         [-fnp] [变量名称]=[变量设置值]
export -f  代表[变量名称]中为函数名称。
export -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
export -p  列出所有的shell赋予程序的环境变量。

以上是关于linux---第一周的主要内容,如果未能解决你的问题,请参考以下文章

Linux内核设计第一周学习总结 计算机如何工作

第一周

LINUX内核分析第一周学习总结——计算机是如何工作的

Linux内核分析——第一周学习笔记

《linux内核分析》第一周(2.22~2.28)

Linux内核设计(第一周)——从汇编语言出发理解计算机工作原理