03 Linux系统组成和获取命令帮助

时间:2022-11-26 17:29:39

远程连接:

  ssh协议:(简称:secure shell)

     ~]# ss -tnl

      查看系统监听于rcp协议的22号端口

     ~]# ifconfig 或 ip addr list

       查看本机 ip 地址

    在CentOS 7最小化安装中没有 ifconfig 这个命令,需要 yum install net-tools 命令来进行下载安装

  确保防火墙处于关闭状态:

    ~]# iptables -L -n   #查看一些防火墙规则

    ~]# iptables -F #临时清空防火墙的规则

    CentOS 7:

      ~]# systemctl disable firewalld.service  #先禁用防火墙

      ~]# systemctl stop firewalld.service   #停止防火墙使用

    CentOS 6:

      ~]# service iptables stop    

      ~]# chkconfig iptables off

查看所使用的shell类型:

  ~]# echo $SHELL

终端设备:terminal

  多任务、多用户

  物理终端,控制台:console

    键盘鼠标显示器直接接到电脑上的被称为物理终端设备(一般称为控制台:console),物理                      终端不是我们启动完系统真正用的终端,只有Linux在启动过程当中才会被直接使用。启动完之后                看到的是虚拟终端,因为是用软件模拟出来的所以被称为虚拟终端,虚拟终端默认6个虚拟终端

  虚拟终端:6个,tty

    Ctrl+Alt+F[1-6]

    笔记本按键有可能映射不一样

    不一定是6个虚拟终端,因为f7是图形化界面

  图形终端:

    CentOS 6:

      Ctrl+Alt+F7 

    CentOS 7:

      在哪个虚拟终端启动,即位于哪个虚拟终端

  串行终端:ttys

    串口输出

  伪终端:pty

    伪终端又称为模拟终端,远程连接的终端或图形界面下打开的终端接口

系统正常启动,显示启动过程信息输出到物理终端,当物理终端被系统初始化后,称为虚拟终端(图形界面或Ctrl+Alt+F[1-6])打开图形界面模拟一个命令窗口就是伪终端,或者远程登入该系统,该终端也是伪终端

  区别当前系统是哪种终端:

    使用命令tty,表示当前终端对应的设备文件,(以下#表示数字)

      1.结果显示:/dev/pts/# 表示伪终端

      2.结果显示:/dev/tty# 表示虚拟终端

      3.结果显示:/dev/console 表示物理终端(控制台)

      4.结果显示:/dev/ttys# 表示串行终端

  同一用户登入系统,对应着不同体系/设备,属于不同进程下的用户,有设备就有对应的设备文件。

  命令:who 查看系统登入的所有用户及其信息

  Linux的哲学思想之一:一切皆文件

    表现之一:硬件设备也通过文件表示:

      物理终端:/dev/console

      虚拟终端:/dev/tty# [1-6]

      串行终端:/dev/ttys#

      伪终端:/dev/pts/#

  注意:在启动设备之后,在其上关联一个用户接口程序,即可实现与用户交互:

    查看终端设备:

      ~]# tty

    查看接口程序:

      ~]# echo $SHELL

    启动GUI:图形界面

      第一次启动图形化界面时需要在某一虚拟终端接口运行命令:startx &  (&符号表示在后台运行)

  GIL接口:

    命令行接口:

      [root@localhost ~]# command(命令)

        prompt:

          root:当前登录的用户

          localhost:当前主机的主机名,非完整格式

          ~:用户当前所在的目录(current directory),也称为工作目录(working directory);相对路径

          #:命令提示符:

            #:管理员账号,为 root;拥有最高权限,能执行所有操作

            $:普通用户,非 root;不具有管理权限,不能执行系统管理类的操作

          注意:建议使用非管理员账号登录;

            执行管理操作临时切换至管理员,操作完成即退回

  几个基础命令:

    tty:查看当前的终端设备

    ifconfig或 ip addr list:查看活动接口的ip地址

    echo:回显

    ping:探测网络的目标主机与当前主机之间的连通性

      Ctrl+c:终止命令执行

    关机命令:

      CentOS 7:

        ~]# systemctl poweroff 或直接 poweroff

    重启命令:

        ~]# systemctl reboot 或直接 reboot

        所有系统里边都可以运行 poweroff 和 reboot

  stallman:

    *含义:*学习和修改;*使用;*分发;*创建衍生版;

  Linux的哲学思想:

    1.一切皆文件

      把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至是通信接口等

        open(),read(),write(),close(),delete(),create()

    2.由众多功能单一的程序组成:一个程序只做一件事,并且做好

     组合小程序完成复杂任务;

    3.尽量避免跟用户交互

      目标:易于以编程的方式实现自动化任务

    4.使用文本文件保存配置信息:

  思考:文件是什么?众多文件如何有效组织起来?

    目录:路径映射:

    文件:存储空间存储的一段流式数据,对数据可以做到按名存取

    文件系统:层级结构;有索引

      /:原初起点

        第二层结构

        第三层结构

      倒置树状结构

      /dev/pts/2:

       最左侧 /:表示根目录

       其他的 /:表示路径分隔符

          Linux的路径分隔符是 /

          Windows的是 \

    文件的路径表示:

      绝对路径:从根开始表示出的路径

      相对路径:从当前位置开始表示出的路径

    文件名使用法则:

      严格区分字符大小写:file1,FILE1,File1,这三个文件完全不是一个文件

      目录也是文件,在同一路径下,两个文件不能同名;

      支持使用除了 / 以外的任意字符

      最长不能超过255个字符;

    用户有家目录:home

      用户的起始目录;普通用户管理文件的位置

    工作目录:

      /etc/sysconfig/network-scripts/ifcfg-en016777

        basename:最右侧的文件或目录名

        dirname(目录名):basename左侧的路径

      命令:

        ~]# basename /PATH/TO/SOMEFILE

          SOMEFILE

        ~]# dirname /PATH/TO/SOMEFILE

          /PATH/TO

回顾:

  开源协定:

    GPL,LGPL,BSD,Apache

  BSD:

    1.如果二次发布的产品中包含源代码,则在源代码中必须带有原来的代码中的BSD协定

    2.如果二次发布的产品是二进制格式的库或程序,则需要在发布的文档或版权声明中说明包含原来的代码中的BSD协定

    3.不可以用开源代码的作者或组织,以及原来的产品的名字做市场推广

代码的共产主义运动

 

文件系统、文件、目录:

  倒置树状结构:

    目录:

    文件:

  文件名:严格区分字符大小写;路径分隔符 /:

路径:

  绝对路径

  相对路径

程序的组成部分:二进制程序文件、库文件、配置文件、帮助文件;

  二进制、库文件:可执行文件

    库文件:不能独立执行,只能被调用时执行

  配置文件、帮助文件:可被查看其内容的文件

人机交互界面:

  GUI

  CLI

Linux基础知识

  命令的语法通用格式:

    # command options arguments

      发起一个命令:请求内核某个二进制程序运行为一个进程;

        程序 --》进程

        静态--》动态(有生命周期)

      命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;

        多数程序文件都存在:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin

          普通命令:/bin,/usr/bin,/usr/local/bin

          管理命令:/sbin,/usr/sbin,/usr/local/sbin

        共享库:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64

          32bits的库:/lib,/usr/lib,/usr/local/lib

          64bits的库:/lib64,/usr/lib64,/usr/local/lib

          在32bits的库上边不会出现64bits的库,因为32位不兼容64位的

          在64bits的库上边会出现32bits的库,因为64位兼容32位的

        注意:并非所有的命令有一个在某目录与之对应的可执行程序文件

      命令必须遵循特定格式规范:exe,msi,ELF(Linux)

        ~】# file /bin/ls

      命令分为两类:

        由shell程序的自带的命令:内置命令(builtin)

        独立的可执行程序文件,文件名即命令名:外部命令

      shell程序是独特的程序,负责解析用户提供的命令:

        环境变量:

          PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件

            ~]# echo $PATH

            /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

            查找次序:自左而右

    查看命令类型:

      type command

    shell内置命令不会在某个路径下存在一个命令的文件名

    OPTIONS(选项):

        指定命令的运行特性和不同的功能

        选项有两种表现形式:

            短选项:-c,例如-l,-d

              注意:有些命令的选项没有-;

              如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld

            长选项:--word,例如---help,--human-readable

              注意:长选项不能合并

             注意:有些选项可以带参数,此称为选项参数

    ARGUMENTS:

      命令作用的对象,命令对什么生效

      注意:不同的命令的参数;有些命令可同时带多个参数,多个之间以空白字符分隔

    例如:ls -l -d /var /etc

  获取命令的使用帮助:

      内部命令:

        help command

      外部命令:

        1.命令自带简要格式的使用帮助

          # command --help

        2.使用手册:manual

         位置:/usr/share/man

          # man command

            SECTION:

                NAME:简要功能性说明

                SYNOPSIS:语法格式

                DESCRIPTION:描述

                OPTIONS:选项

                EXAMPLES:使用示例

                AUTHOR:作者

                BUGS:报告程序BUG的方式

                SEE ALSO:参考

            SYNOPSIS:

                []:可选内容

                <>:必须提供的内容

                a|b:多选一

                ...:同类内容可出现多个

          使用手册:压缩格式的文件,有章节之分:

            /usr/share/man

                man1,man2,...

                1:用户命令:

                2:系统调用:

                3:c库调用

                4:设备文件及特殊文件

                5:文件格式(配置文件格式)

                6:游戏使用帮助

                7:杂项

                8:管理工具及守护进行

           # man CHAPTER command

              注意:并非每个command在所有章节下都有手册:

                查看:~]# whatis command

                    注意:其执行过程是查询数据库进行的

                      手动更新数据库:

                          ~]# makewhatis

          man命令打开手册以后的操作方法:

              翻屏:

                空格键:向文件尾翻一屏

                b:向文件首部翻一屏

                Ctrl+d:向文件尾部翻半屏

                Ctrl+u:向文件首部翻半屏

                ↓:向文件尾部翻一行

                ↑:向文件首部翻一行

                G:跳转至文件最后一行

                nG:跳转至指定行

                1G:跳转至文件首部

            文本搜索:

              /keyword:从文件首部向文件尾部依次查找

              ?keyword:从文件尾部向文件首部依次查找

                n:与查找命令方向相同

                N:与查找命令方向相反

            退出:

              q:quit

          选项:

            -M /PATH/TO/SOMEDIR:到指定目录下查找命令手册并打开之

          练习:获取useradd命令的用法

            (1):添加用户xing

                # useradd xing

                # id xing

            (2):添加用户xinchao,要求指定其所用的shell为/bin/bash

                # useradd -s /bin/bash xinchao

                # tail -1 /etc/passwd

      3.info command

        获取命令的在线文档:

      4.很多应用程序会自带帮助文档:/usr/share/doc/APP-VERSION

        README:程序的相关的信息

        INSTALL:安装帮助

        CHANGES:版本迭代时的改动信息

      5.主流发行版官方文档

        http://www.redhat.com/doc

      6.程序官方的文档

        官方站点上的“Document”

      7.搜索引擎

        google

           keyword filetype:pdf

           keyword site:domain.tld

           ...

    书籍的出版社:

      O‘Reiley

      wrox

      机械工业出版社

      电子工业出版社

      清华大学

      水利水电

常用命令:

  Linux文件系统:

    1.文件名名称严格区分字符大小写

    2.文件可以使用除/以外任意字符(不建议使用)

    3.文件名长度不能超过255个字符

    4.以.开头的文件为隐藏文件

      .:当前目录

      ..当前目录的上一级目录

  工作目录:

  家目录:home

  常用命令:

    pwd:printing working directory

      显示当前工作目录

    cd:change directory

      cd [/path/to/somedir]

        cd:不带任何选项参数的时候是切换回家目录

          注意:bash中,~表示家目录

          cd ~:切换回自己的家目录

          cd ~username:切换至指定用户家目录

            注意:只有管理员root才能随便切换至其他家目录

          cd -:在上一次所在目录与当前目录之间来回切换

               相关的环境变量

                $PWD:当前工作目录

              $OLDPWD:上一次的工作目录

      

              这两个环境变量会随时改变的

      ls:list,列出指定目录下的内容

        ls [OPTION]... [FILE]...

          -a:显示所有文件,包括隐藏文件

          -A:显示除.和..之外的所有文件

          -l:--long,长格式列表,即显示文件的详细属性信息

            -rw-r--r--.  1 root root  129 12月 25 10:19 .lesshst

            -:文件类型,-,d,b,c,l,s,p

            rw-r--r--

               rw-:文件属主的权限

               r--:文件属组的权限

               r--:其他用户(非属主、属组)的权限

            1:数字表示文件被硬链接的次数

            root:文件的属主

            root:文件的属组

            129:数字表示文件的大小,单位是字节

            12月 25 10:19:文件最近一次被修改的时间

            .lesshst:文件名

           -h:--human-readable:对文件大小单位换算,换算后结果可能会非精确值

           -d:查看目录自身而非其内部的文件列表

           -r:reverse,逆序显示

           -R:recursive,递归显示

      cat:concatenate

        文本文件查看工具

        cat /etc/fstab

        cat /etc/passwd

      cat [OPTION]... [FILE]...

        -n:给显示的文本行编号

        -E:显示行结束符$

      tac:和cat显示内容相反,是逆序显示

       文本文件查看工具

        cat /etc/fstab

        cat /etc/passwd

      cat [OPTION]... [FILE]...

        -n:给显示的文本行编号

        -E:显示行结束符$

      file:查看文件内容类型

        file [filename]...

      echo:回显命令

        echo [SHORT-OPTION]... [STRING]...

          -n:不进行换行

          -e:让转义符生效

            \n:换行

            \t:制表符

        STRING可以使用引号,单引号和双引号均可用

          单引号:强引用,变量引用不执行替换

          双引号:弱引用,变量引用会被替换

      注意:变量引用的正规符号

           ${name}

    关机或重启命令:shutdown

        shutdown [OPTIONS...] [TIME] [WALL...]

          OPTIONS:

            -h:halt

            -r:reboot

            -c:cancel

        TIME:

          now:立刻关机

          hh:mm:表示几点几分

          +m:m表示为数字,例如10表示10分钟后关机,+0和now一个意思

        WALL

    日期相关的命令:

      Linux:系统启动时从硬件读取日期和时间信息,读取完成以后,就不再与硬件相关联

        系统时钟

        硬件时钟

      date:系统时钟

        显示日期时间:date [OPTION]... [+FORMAT]

                FORMAT:格式符

                  %F

                  %T

                  %Y

                  %m

                  %d

                  %H

                  %M

                  %S

                  %s:从1970年1月1号(unix元年)0点0分0秒到命令执行的那一刻秒数

                  ...

        设置日期时间:date [MMDDhhmm[[CC]YY][.ss]] 月日小时分钟年份秒数

          date 101008082013.08      

      clock,hwclock:硬件时钟

        显示或设定硬件时钟

            -s, --hctosys:以硬件为准,把系统调整为与硬件时间相同

            -w, --systohc:以系统为准,把硬件时间调整为与系统时钟相同

      cal:calendar(日历)

        cal  [month] year]

  课外作业:

    which,whereis,who,w