zoukankan      html  css  js  c++  java
  • 第一周作业—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
  • 相关阅读:
    gets_s()函数的参数太少,strcpy_s():形参和实参 2 的类型不同,等c函数在Visual Studio上出现的问题, get()函数和scanf()读取字符串的区别,栈的随机性
    线性表的顺序存储实现
    汉诺塔问题, 用递归方法求集合中的中位数
    共用体union
    洛谷3384:【模板】树链剖分——题解
    BZOJ4196:[NOI2015]软件包管理器——题解
    BZOJ3140:[HNOI2013]消毒——题解
    BZOJ1059:[ZJOI2007]矩阵游戏——题解
    洛谷4277:萃香的请柬——题解
    BZOJ1854:[SCOI2010]连续攻击游戏——题解
  • 原文地址:https://www.cnblogs.com/hovin/p/11754319.html
Copyright © 2011-2022 走看看