第一周作业—N42-虚怀若谷

一、Linux发行版描述。

Linux发行版主要有三个分支:Slackware、Debian、Redhat;

(1) Slackware:

  SUSE:基于Slackware二次开发的一款Linux,主要用于商业桌面、服务器;

  SUSE Linux Enterprise Server:企业服务器操作系统,是唯一与微软系统兼容的Linux操作系统;

  OpenSuse:由suse发展而来,旨在推进linux的广泛使用,主要用于桌面环境,用户界面非常华丽,而且性能良好。

(2) Debian:三大发行版中唯一以社区形式运作,不以商业公司形式运作。是一个致力于创建自由操作系统的合作组织。而且debian开发者所创建的操作系统中绝大部分基础工具来自于GNU工程。

  Ubuntu:是一个以桌面应用为主的linux操作系统。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统;

  Linux mint:基于Debian和Ubuntu的Linux发行版,致力于桌面系统对个人用户每天的工作更易用,更高效,且目标是提供一种更完整的即刻可用体验;

(3) RedHat:

  RHEL(RedHat Enterprise Linux):Red Hat公司发布的面向企业用户的Linux操作系统,是Redhat的一个重要节点。每18个月发行一个新版本;

  CentOS:是一个基于Redhat linux 提供的可自由使用源代码的企业级linux发行版本。目前Centos已被收购,成为redhat旗下的一个组织。每个版本的Centos都会获得十年的支持(通过安全更新的方式)。新版本的Centos大约每两年发行一次,而每个版本的Centos会定期(大概6个月)更新一次,以支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的Linux环境。

  中标麒麟:中标软件

  Fedora:基于Red Hat Linux终止发行后,红帽公司计划以Fedora来取代Red Hat Linux在个人领域的应用。每6个月发行一个新版本,可视为Redhat的技术测试版,被认为可用的技术最终会加入到Red Hat Enterprise Linux中;

(4) 其它发行版本

  Gentoo:基于linux的自由操作系统,它能为几乎任何应用程序或需求自动地作出优化和定制。追求极限的配置、性能,以及顶尖的用户和开发者社区,都是Gentoo体验的标志特点, Gentoo的哲学是自由和选择。得益于一种称为Portage的技术,Gentoo能成为理想的安全服务器、开发工作站、专业桌面、游戏系统、嵌入式解决方案或者别的东西--你想让它成为什么,它就可以成为什么。由于它近乎无限的适应性,可把Gentoo称作元发行版。

  Aech Linux(或称Arch):遵循KISS原则,以轻量简洁为设计理念的Linux发行版。其开发团队秉承简洁、优雅和代码最小化的设计宗旨

  LFS:Linux From scratch 自制Linux
  Android:kernel+busybox(工具集)+java虚拟机

二、Centos7.6(1810)安装

1.在vwware中新建一个自定义虚拟机,并在光驱中设置好ISO路径,准备安装;

2.虚拟机开机,会直接进入光盘安装系统,如下图:

3.选择第一项"Install CentOS7"进行安装界面,选择安装语言,直接 Continue 下一步,如下图:

4.之后会进行安装向导,对各个选项进行设置,如下图:

5.设置时区为中国shanghai,键盘类型为English(US),语言支持为English(United States)

6.在SOFEWARE下的SOFEWARE SELECTION中选择安装类型,此处选GNOME Desktop

7.在SYSTEM中的第一项INSTALLATION SOURCE中进行磁盘分区,如下图:

8.在SYSTEM中的第二项KDUMP中关闭KDUMP功能,默认开启,关闭时取消Enable kdump处的对勾,如下图 

9.在SYSTEM中的第三项NETWORK&HOSTNAME中设置网络,网络可先开启DHCP或装完系统自己再设置也可,hostname也是一样,这里我设置成了centos7.localdomain,如下图

10.SYSTEM中的第四项SECURITY POLICY可先不设置,之后点击Begin Installation开始安装

11.安装过程中,可设置管理员root的密码以及新建一个普通用户,如下图

12.安装完成后,点击Reboot重启,重启后会进入一个许可信息的页面,接受即可,如下图

13.之后会进入登录界面,默认为普通用户登录,当然也可切换到管理员root登录,登录后进行一些简单的设置即可进入系统,如下图

三、配置环境变量,实现执行history命令时可以看到执行命令的时间

  将环境变量HISTTIMEFORMART设置为HISTTIMEFORMAT="%F %T ",此时只会临时生效,如要生效需写入配置文件中,在/etc/profile.d/目录下新建一个 env.sh 文件,并写入HISTTIMEFORMAT="%F %T "即可永久生效,或写入/etc/profile文件中亦可。

[root@centos7 ~]# HISTTIMEFORMAT="%F %T "
[root@centos7 ~]# history
    1  2019-10-30 11:33:29 ifconfig
    2  2019-10-30 11:33:29 ls
    3  2019-10-30 11:33:29 ls /
    4  2019-10-30 11:33:29 cd /data

  history命令:  

    -c: 清空命令历史
    -d offset: 删除历史中指定的第offset个命令
    n: 显示最近的n条历史
    -a: 追加本次会话新执行的命令历史列表至历史文件
    -r: 读历史文件附加到历史列表
    -w: 保存历史列表到指定的历史文件
    -n: 读历史文件中未读过的行到历史列表
    -p: 展开历史参数成多行,但不存在历史列表中(执行命令但不加入历史列表)
    -s: 展开历史参数成一行,附加在历史列表中(不执行命令但加入历史列表,伪造历史)

[root@centos7 ~]# history 3
  739  2019-10-30 11:50:35 cd /data
  740  2019-10-30 11:50:40 cd 
  741  2019-10-30 11:50:53 history 3
[root@centos7 ~]# history -d 741
[root@centos7 ~]# history -p `hostname`
centos7
[root@centos7 ~]# history 5
  738  2019-10-30 11:50:31 ls 
  739  2019-10-30 11:50:35 cd /data
  740  2019-10-30 11:50:40 cd 
  741  2019-10-30 11:51:15 history -d 741
  742  2019-10-30 11:51:37 history 5
[root@centos7 ~]# history -s "rm -rf /*"
[root@centos7 ~]# history 3
  742  2019-10-30 11:51:37 history 5
  743  2019-10-30 11:52:38 rm -rf /*
  744  2019-10-30 11:52:43 history 3
View Code

  命令历史相关的环境变量:

    HISTSIZE:命令历史记录的条数
    HISTFILE:指定历史文件,默认为~/.bash_history
    HISTFILESIZE:命令历史文件记录历史的条数
    HISTTIMEFORMAT=“%F %T “ 显示时间
    HISTIGNORE=“str1:str2*:... “ 忽略str1命令,str2开头的历史 

  控制命令历史的记录方式:

    环境变量:HISTCONTROL
      ignoredups 默认,忽略重复的命令,连续且相同为“重复”
      ignorespace 忽略所有以空白开头的命令
      ignoreboth 相当于ignoredups, ignorespace的组合
      erasedups 删除重复命令

四、总结Linux哲学思想

  (1) 一切皆文件

   在Linux中,不仅普通的文件,目录、字符设备、块设备、 套接字等在Linux 中都是以文件被对待;它们虽然类型不同,但是对其提供的却是同一套操作界面。配置数据存储也都在文本中,无论什么配置修改都只需修改其配置文件即可。

  (2) 小型,单一用途的程序,共同完成复杂功能

   在Linux中,程序和可执行文件不要太复杂,每一个命令都是对应一个功能,通过不同的参数来完成不同的要求,通过繁多的小的命令来完成大型的要求,这样才能保证了linux内核的高效运行。

  (3) 自由与分享

   Linux是自由软件,当然它不是无限自由的,之所以它使用GNU的General Public License作为限制,是为了让更多的人享受这种修改和其他权利,是为了更好的实现最大自由化。Linux kernel在经过不断的发展过程中,从最初的很小容量的操作方式成为了炙手可热的操作系统,不得不承认,内核源代码的共享和互联网上的协作开发是其走向成功的重要途径。在英文单词中,“share”是一个很重要的词语,分享技术,分享每个人对内核的认识和修改。

五、常用命令的使用

(1) echo:显示字符

  选项:
    -E (默认)不支持解释功能
    -n 不自动换行
    -e 启用字符的解释功能
    启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出,如 a 发出警告声
       退格键
      c 最后不加上换行符号
      e escape,相当于33
       换行且光标移至行首
       回车,即光标移至行首,但不换行
       插入tab
      \ 插入字符

[root@centos7 ~]# echo -n "hello world ";echo "welcome"
hello world welcome
[root@centos7 ~]# echo -ne "hello world";echo "welcome"
hello worlwelcome

(2) screen:创建会话

  创建新screen会话:screen –S [SESSION]
  加入screen会话:screen –x [SESSION]
  退出并关闭screen会话: exit
  剥离当前screen会话:Ctrl+a,d
  显示所有已经打开的screen会话: screen -ls
  恢复某screen会话: screen -r [SESSION]

[root@centos7 ~]# screen -S help   #创建一个新会话
[root@centos7 ~]# screen -ls          #显示会话
There is a screen on:
        9166.help       (Attached)
1 Socket in /var/run/screen/S-root.
[root@centos7 ~]# screen -x help    #在另一窗口可加入会话
[root@centos7 ~]# screen -r help     #恢复会话

(3) date:显示和设置系统时间

   date [OPTIONS] [+FORMAT]
  常用选项:
    -s:设置时间 如 date -s "2019-10-30 13:00:00"
    -d:指定字符串时间并显示,如date -d "2019-10-20 11:23:45"
  常用时间格式:
    %F:显示日期,格式为2019-10-30,类似%Y-%m-%d
    %T:显示时间,格式为12:20:23,类似%H:%M:%S
    %Y:显示年份,如2019
    %y:显示年,如19
    %m:显示月,01-12
    %M:显示分钟,00-59
    %d:显示日,01-31
    %D:显示日期,格式为10/30/19,类似%m/%d/%y
    %H:显示小时,00-23
    %I:显示小时,00-12
    %S:显示秒,00-59
    %s:显示秒数,从1970-01-01 00:00:00 UTC到目前经过的秒数,时间戳
    %w:显示周,0-6,0代表星期日
    %W:显示当前周是一年中的第几周

[root@centos7 ~]# date
Wed Oct 30 13:18:16 CST 2019
[root@centos7 ~]# date -s "2019-10-20 11:23:45"
Sun Oct 20 11:23:45 CST 2019
[root@centos7 ~]# date "+%F %T"
2019-10-30 13:19:23

  hwclock:显示硬件时钟
    -s, --hctosys 以硬件时钟为准,校正系统时钟
    -w, --systohc 以系统时钟为准,校正硬件时钟

(4) ifconfig:查看当前网卡配置信息,启用或禁用网卡

  ifconfig IFNAME up|down 启用或禁用网卡(临时生效)

[root@centos7 ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.236.134  netmask 255.255.255.0  broadcast 172.16.236.255
        inet6 fe80::518d:c0dd:264:2a93  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:0b:44:fb  txqueuelen 1000  (Ethernet)
        RX packets 127  bytes 13941 (13.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 225  bytes 23446 (22.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.214.7  netmask 255.255.0.0  broadcast 192.168.255.255
        inet6 fe80::20c:29ff:fe0b:4405  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:0b:44:05  txqueuelen 1000  (Ethernet)
        RX packets 4487  bytes 387383 (378.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2449  bytes 559177 (546.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@centos7 ~]# ifconfig eth0 down
View Code

(5) export:设置或显示环境变量

  export [-fnp] [变量名称]="变量值"
    -f:代表[变量名称]中为函数名称
    -n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中
    -p:列出所有的shell赋予程序的环境变量

[root@centos7 ~]# export -p    #查看系统的环境变量
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="centos7"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
......
[root@centos7 ~]# export NAME=xiaoming
[root@centos7 ~]# echo $NAME
xiaoming
原文地址:https://www.cnblogs.com/hovin/p/11754319.html