3、Linux基础理论,ls,cd,type命令

3.1 Linux的基本原则:

1、由目的单一的小程序组成;

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

2、一切皆文件;

把几乎所有的资源都整合为文件形式

3、尽量避免跟用户交互;

目标:实现脚本编程,以自动完成某些功能

4、配置文件保存为纯文本格式;

目标:一款文本编辑器即可实现系统配置

3.2 Shell及命令格式

    GUI接口:图形化的人机交互接口

    CLI接口:

    命令提示符,prompt, bash(shell)

        [root@localhost ~]# : root

        [daniel@localhost ~]$: 普通用户

    命令:输入命令,按enter之后命令送入内核,随后内核判断能否执行

         命令格式:

        命令  选项  参数

        选项:修改命令的执行方式

            短选项: -

                短选项多个选项可以组合:-a -b = -ab

            长选项: --

        参数:命令的作用对象(多个参数由空格隔开)

         使用凭证:验证用户身份和权限

         严格区分大小写,root为默认管理员用户,一般不可以修改

         虚拟终端(terminal):Ctrl+Alt+F1-F6,切换虚拟终端,模拟有多个用户,多个显示器

         右键open terminal:可打开模拟终端

            Linux GUI:

         Gnome: C

         KDE: C++

         XFace:简洁的轻量级的桌面,多用于嵌入式平台

           CLI:

        sh

        bash:最广泛,功能最强大

        csh

        zsh

        ksh

        tcsh

3.3 用户和密码管理

3.31 用户切换

               root, student, vistor

              su: switch user(切换用户)

              # su [-l] 用户名

              su -l 完全切换

              su 用户名:半切换

              # passwd

3.32 密码复杂性规则

          六位密码:

          纯数字:10^6

          数字+字母:36^6

          数字+大小写字母:62^6

          所有字符:100^6

             Linuxedu@126.com

                    1、使用4种类别字符中至少3种;

                    2、足够长,大于7位;

                    3、使用随机字符串;

                    4、定期更换;

                    5、循环周期足够大;

3.4 Shell和库

3.41 shell

RHCE+RHCA+shell编程+MySQL+Web集群+NoSQL+Hadoop+Hbase+Openstack

GNU: GNU is Not Unix.

GPL: General Public License,通用公共许可证,版权

    Copyright, Copyleft

    开源协定

LGPL:lesser

GPLv2

GPLv3

Shell:(用户交互界面)

            GUI: Graphic User Interface(图形用户界面)

             Windows

             X-Window

           Gnome

           KDE

           Xface

            CLI: Command Line Interface

             sh

             bash

             csh

             ksh

             zsh

             tcsh

           Google:

                    linux filetype:pdf

                    linux site:ibm.com

            google hack

3.42 库

            IDE:程序员开发时用到的集成开发环境

         库文件

                  Windows:DLL:动态链接库(库文件)(Dynamic Link Library)

                  Linux:so:库文件(shared object)

3.5 用户和常用命令

3.51 用户和认证机制

              login:

          用户名:用户ID(用户标识符)

          认证机制:Authentication鉴别用户就是他所声称的那个人

          授权:Authorization

          审计:Audition (日志)

              prompt,命令提示符:

           命令:

                   magic number: 魔数

                   shebang

3.52 命令格式

             #!/bin/bash

             # command  options...  arguments...

         选项(修改命令的执行参数,有些选项是可以带参数的):

             短选项

             长选项

          参数:指定命令的作用对象

3.53 ls

   list: ls

          列出,列表

          目录:也是文件,路径映射文件

          路径:从指定起始点到目的地所经过位置

          文件系统:file system(实现层次化文件管理的机制)

          列出指定路径下的文件

          我们处在的目录:working directory, current directory

             绝对路径:相对于根节点的路径

          相对路径:相对于当前位置的路径

              pwd: Printing Working directory,显示当前目录

ls

    -l:长格式,输出的内容依次如下

    [root@Daniel-R480 ~]# ls -l

    total 36

    -rw-r--r-- 1 root  root    1 Jun 21 14:38 a

    -rw-r--r-- 1 root  root   87 Jun 21 14:30 aa

    lrwxrwxrwx 1 root  root    1 Jun 17 10:42 abc -> a

        1、文件类型(1位):

            -:普通文件 (f)

            d: 目录文件

            b: 块设备文件 (block)

            c: 字符设备文件 (character)

            l: 符号链接文件(symbolic link file)

            p: 命令管道文件(pipe)

            s: 套接字文件(socket)

        2、文件权限:9位,每3位一组,每一组:rwx(读,写,执行), r--

        3、文件硬链接的次数

        4、文件的属主(owner)

        5、文件的属组(group)

        6、文件大小(size),单位是字节

        7、时间戳(timestamp):最近一次被修改的时间

            (1)访问:access

            (2)修改:modify,文件内容发生了改变

            (3)改变:change,metadata,元数据(文件的属性数据 )

    -h(human):做单位转换

    -a: 显示以.开头的隐藏文件

        . 表示当前目录

        .. 表示父目录

    -A

    -d: 显示目录自身属性

    -i: index node, inode(文件的索引节点号)

    -r: 逆序显示

    -R: 递归(recursive)显示

3.54 cd

cd: change directory,切换目录

    cd不加任何参数,直接回到用户的家目录,主目录, home directory(用户有所有的权限)

    [root@Daniel-R480 opt]# cd

    [root@Daniel-R480 ~]#

    cd ~USERNAME: 进入指定用户的家目录

    [root@Daniel-R480 ~]# cd ~daniel

    [root@Daniel-R480 daniel]#

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

    [root@Daniel-R480 daniel]# cd -

    /root

    [root@Daniel-R480 ~]# cd -

    /home/daniel

    [root@Daniel-R480 daniel]# cd -

    /root

    [root@Daniel-R480 ~]#

3.55 type

           type: 显示指定命令属于哪种类型

    [root@Daniel-R480 ~]# type cd

    cd is a shell builtin

    [root@Daniel-R480 ~]# type ls

    ls is aliased to `ls --color=auto'

    [root@Daniel-R480 ~]# type pwd

    pwd is a shell builtin

    [root@Daniel-R480 ~]# type bash

    bash is /usr/bin/bash

    [root@Daniel-R480 ~]#

         命令类型:

           内置命令(shell内置),内部,内建

           外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件

3.56 环境变量和缓存

环境变量:命名的内存空间

    变量赋值(在这个内存空间里面放置数据)

        NAME=Jerry

    PATH: 使用冒号分隔的路径,能运行的命令必须在path的路径中,不然必须要添加完整路径

    hash为O(1)类型:无论表多长,瞬间能找到对应的数据

        hash:缓存为王,速度慢了可以通过加缓存来解决

Comments ( 1)
  1. Sofa
    Anonymous 2021-06-29 08:34

    123