Linux 基础

Linux 基础

一.计算机组成及其功能

当今计算机采用冯·诺依曼架构,必须具备的五大基本组成部件,包括:
1.输入数据和程序的输入设备
2.记忆程序和数据的存储器
3.完成数据加工处理的运算器
4.控制程序执行的控制器
5.输出处理结果的输出设备
计算机基本组成结构图
2012062221462127

二.Linux的发行版,不同发行版之间的联系与区别

1.Linux
    严格来说Linux是指Linux内核,建立起计算机软件与硬件之间通讯的平台,提供系统服务,Linux内核最早由Linus Torvalds在1991年开始编写。

2.GNU
    GNU 是 “GNU's Not Unix” 的递归缩写, 是由理查德·斯托曼在1983年9月27日公开发起的。它的目标是创建一套完全自由的操作系统。GNU是一个类Unix操作系统。它是由多个应用程序、系统库、开发工具乃至游戏构成的程序集合。GNU的开发始于1984年1月,称为GNU工程。GNU的许多程序在GNU工程下发布;我们称之为GNU软件包。

3.Linux发行版
    一个完整的Linux操作系统包含Linux内核,GNU程序库和工具,命令行shell,图形界面的X Window系统和相应的桌面环境,如KDE或GNOME,发行版就是个人,各组织及各大厂商根据各自不同的目的将Linux内核及GNU程序整合编译为一个完整的操作系统(GUN/Linux)。
Linux主流发行版有:Redhat,Debian,Slackware,Gentoo,ArchLinux等系列
    Redhat系:
    Redhat Linux 是有红帽公司开发的Linux发行版,自从自从RedHat9.0版本发布后,RedHat公司就不再开发桌面版的Linux发行套件,RedHatLinux停止了开发,而将全部力量集中在服务器版的开发上,也就是RedHat Enterprise Linux版。2004年4月30日,RedHat公司正式停止对RedHat9。0版本的支援,标志著RedHatLinux的正式完结。原本的桌面版RedHatLinux发行套件则与来自开源社区的Fedora计划合并,成为FedoraCore 发行版本。Centos是RedHat Enterprise Linux的社区版,Centos与RedHat Enterprise Linux具有相同的功能及性能。
    Debian系:
    Debian 系包括Debian和Ubunt等,Debian 首次发布于 1993 年 9 月,是由社区维护,是一个自由,稳定和功能强大的Linxu操作系统。Ubuntu是一个以桌面应用为主的开源GNU/Linux操作系统,Ubuntu 是基于DebianGNU/Linux
    Slackware系:
    Slackware Linux是由Patrick Volkerding开发的GNU/Linux发行版,与很多其他的发行版不同,它坚持KISS(Keep It Simple Stupid)的原则。SUSE Linux是以Slackware Linux为基础衍生而来,现在的 SUSE Linux 由 Novell公司的openSUSE 项目所维护,openSUSE 也算是Linux操作系统发行版之一。
    Gentoo系:
    Gentoo是一个基于Linux的自由操作系统,它能为几乎任何应用程序或需求自动地作出优化和定制。追求极限的配置、性能,以及顶尖的用户和开发者社区,都是Gentoo体验的标志特点。 Gentoo的哲学是自由和选择。得益于一种称为Portage的技术,Gentoo能成为理想的安全服务器、开发工作站、专业桌面、游戏系统、嵌入式解决方案或者别的东西
    ArchLinux:
    Arch Linux(或称Arch)是一种以轻量简洁为设计理念的Linux发行版。其开发团队秉承简洁、优雅、正确和代码最小化的设计宗旨

三.Linux的哲学思想

1.一切皆文件    
    Linux把几乎所有的资源抽象为文件形式,包括硬件设备,通信接口等    
2.由众多功能单一的程序组成;一个程序只做一件事,并且做好                
3.尽量避免跟用户交互
    目标:易于以编程的方式实现自动化任务;
4.使用文本文件保存配置文件

四.Linux系统命令的使用格式

1.命令的语法通用格式:
    #COMMAND OPTIONS ARGUMENTS
    COMMAND:命令
    OPENTIONS:指定命令的运行特性
        选项有两种表现形式:
            短选项:如:-l -d; 可合并
            长选项:--word:不可合并
    ARGUMENTS:
            命令的作用对象:命令对什么生效

2.常用命令介绍:

ifconfig
    功能:配置网络接口
    使用格式:
    ifconfig [-v] [-a] [-s] [interface]
    ifconfig [-v] interface [aftype] options | address ...
    常用选项:
    -a: 显示所有网络端口信息
    -s: 显示简要信息
    up:启用网卡
    down:停用网卡
    示例:
    [root@localhost ~]# ifconfig -a 
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.1.121  netmask 255.255.255.0  broadcast 192.168.1.255
            inet6 fe80::20c:29ff:fe22:ebf7  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:22:eb:f7  txqueuelen 1000  (Ethernet)
            RX packets 746106  bytes 951171006 (907.1 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 135554  bytes 11006185 (10.4 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 0  (Local Loopback)
            RX packets 26  bytes 2056 (2.0 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 26  bytes 2056 (2.0 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
            inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
            ether 00:00:00:00:00:00  txqueuelen 0  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    virbr0-nic: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
            ether 52:54:00:e9:15:76  txqueuelen 500  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

echo
    功能:回显文本
    命令格式:
    echo [SHORT-OPTION]... [STRING]...
    echo LONG-OPTION
    常用选项:
    -n : 回显之后不换行
    -e : 生效转义符
    转义符:
        \n 换行
        \t 制表符
    [root@localhost ~]# echo -e "hello\nwhat your name?"
    hello
    what your name?
    [root@localhost ~]# echo -e "hello\tworld"
    hello    world
    单引号:强引用,变量引用不执行替换
    [root@localhost ~]# echo '$SHELL'
    $SHELL
    双引号:弱引用,变量引用会被替换
    [root@localhost ~]# echo "$SHELL"
    /bin/bash

tty
    功能:打印连接到标准输入的终端的文件名
    命令格式:
    tty [OPTION]
    [root@localhost ~]# tty 
    /dev/pts/1

startx
    功能:启用X会话
    命令格式
    startx [ [ client ] options ... ] [ -- [ server ] [ display ] options ... ]

export
    功能:设置或显示环境变量 
    命令格式:
        export [-fn] [name[=value]
    export -p
    参数:
    -f  代表[变量名称]中为函数名称。 
    -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。 
    -p  列出所有的shell赋予程序的环境变量。
    [root@localhost ~]# export -p
    declare -x HISTCONTROL="ignoredups"
    declare -x HISTSIZE="1000"
    declare -x HOME="/root"
    declare -x HOSTNAME="localhost.localdomain"
    declare -x LANG="en_US.UTF-8"
    declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
    declare -x LOGNAME="root"

pwd
    功能:打印工作目录
    命令格式:
    pwd [OPTION]
    [root@localhost zach]# pwd
    /home/zach

history
    功能:用于显示历史记录和执行过的指令命令
    命令格式:
    History [OPTION]
     -c clear the history list by deleting all of the entries
     -d offset delete the history entry at offset OFFSET.
     history -d 61
     -a append history lines from this session to the history file
     -n read all history lines not already read from the history file
     -r read the history file and append the contents to the history list(内存中)
     -w write the current history to the history file and append them to the history list 
     -p perform history expansion on each ARG and display the result without storing it in the history list
     -s append the ARGs to the history list as a single entry
     history # ;显示最近的#条命令:

    调用命令历史列表中的命令: 
    !# :再次执行历史命令列表中的第#条命令;
    !!:执行上一次命令
    !STRING :再一次执行命令历史列表中最近一个以STRING开头的命令

    调用上一条命令的最后一个参数
    快捷键:Esc .
    字字符串:!$ 

    定制history的功能,可通过环境变量实
    HISTSIZE : shell进程可保留的命令历史条数
    HISTFILE : 持久保存命令历史的文件
    [root@localhost ~]# echo $HISTFILE
    /root/.bash_history 用户家目录下.bash_history,保存历史命令
    HISTFILESIZE: 命令历史文件中能保存的命令大小
    HISTCONTROL:控制命令历史记录的方式
        ignorespace:忽略以空白字符开头的命令
        ignoredups:忽略重复的命令;
        ignoreboth:以上两者同时生

which
    功能:显示命令的全路径
    命令格式:
    which [options] 
    参数:
    --skip-alias 跳过显示命令别名

whereis
    功能:定位命令二进制文件,源文件和手册页文件
    命令格式:
    whereis [options] name.
    参数:
    -b   Search only for binaries.
    -m   Search only for manuals.
    -s   Search only for sources

who
    功能:显示登录用户
    命令格式:
    who [OPTION]
    参数
    -b, --boot
     time of last system boot 最近一次启动时间
    -r, --runlevel
     print current runlevel 运行级别

w
    Show who is logged on and what they are doing 
        增强版的who命令

shutdown
    功能:关闭电源或重新启动机器
    命令格式:
    shutdown [OPTIONS...] [TIME] [WALL...]
    [OPTIONS...]    
            -h:halt
            -r:reboot
            -c:cancel
    [TIME]
            hh:mm
            now
            +m
    [root@localhost zach]# shutdown -h +50
    Shutdown scheduled for Sat 2018-05-12 16:13:30 CST, use 'shutdown -c' to cancel.
    [root@localhost zach]# shutdown -c

    Broadcast message from root@localhost.localdomain (Sat 2018-05-12 15:23:48 CST):

    The system shutdown has been cancelled at Sat 2018-05-12 15:24:48 CST!

poweroff
    功能:关闭系统
    命令格式:
    poweroff [OPTIONS...]
    选项:
         --help      Show this help
         --halt      Halt the machine
      -p --poweroff  Switch off the machine
         --reboot    Reboot the machine
      -f --force      Force immediate halt/power-off/reboot
      -w --wtmp-only Don't halt/power-off/reboot, just write wtmp record
      -d --no-wtmp   Don't write wtmp record
         --no-wall   Don't send wall message before halt/power-off/reboot
reboot
    功能:重启系统
    命令格式:
    reboot [OPTIONS...] [ARG]
    选项:
         --help      Show this help
         --halt      Halt the machine
      -p --poweroff  Switch off the machine
         --reboot    Reboot the machine
      -f --force     Force immediate halt/power-off/reboot
      -w --wtmp-only Don't halt/power-off/reboot, just write wtmp record
      -d --no-wtmp   Don't write wtmp record
         --no-wall   Don't send wall message before halt/power-off/reboot
hwclock
    功能:显示或设定硬件时钟
    命令格式:
    hwclock [function] [option...]
    常用选项:
    -s, --hctosys:以硬件时钟为准,把系统时钟调整为与硬件时钟一样
    -w, --systohc:以系统时钟为准,把硬件时钟调整为与系统时钟一样

date
    功能:显示系统日期时间
    命令格式:
        date [OPTION]...[+FORMAT]
    FORMAT:格式符
            %F : 显示年月日
            [root@localhost ~]# date +%F
            2018-05-10

            %T :显示时间
            [root@localhost ~]# date +%T
            21:07:52

            %Y : 显示年份
            [root@localhost ~]# date +%Y
            2018

             %m : 显示月份
            [root@localhost ~]# date +%m
            05

            %d :显示日
            [root@localhost ~]# date +%d
            10

            %H :显示小时            
            [root@localhost ~]# date +%H
            21

            %M :显示分钟
            [root@localhost ~]# date +%M
            10

            %S :显示秒
            [root@localhost ~]# date +%S
            22

            %s :从1970年(unix元年)到执行命令的那一刻经过的秒数。

    设定时间:date [MMDDhhmm[[CC]YY][.yy]
                    月日时分  年     秒
    [root@localhost ~]#date 051020552018.50
    Thu May 10 20:55:50 CST 2018

五.Linux系统上获取命令的帮助信息

1.内部命令:
    help COMMAND
2.外部命令:
    (1)命令自带简要格式的使用帮助帮助
            ~]#COMMAND --help 
    (2)使用手册:manual 
        位置:/usr/share/man 
        ~]#man COMMAND 
        使用手册:压缩格式的文件,有章节之分
        /usr/share/man
            man1,man2,....
            1:用户命令
            2:系统调用
            3:C库调用
            4:设备文件及特殊文件
            5:文件格式:(配置文件格式)
            6:游戏使用帮助
            7:杂项
            8:管理工具及守护进程
    ~]#man [1-8] COMMAND
    ~]#whatis COMMAND 可查看哪些章节下有帮助手册        
        注意:其执行过程是查询数据库进行的
    手动更新数据库
    ~]#makewhatis    
    man 命令打开手册以后操作方法
        翻屏
            空格:向下翻
            b键:向上翻
            Ctrl+d:向下翻半屏
            Ctrl+u:向上翻半屏
            回车键:向文件尾部翻一行
            k:向文件首部翻一行
            G:跳转至最后一行
            1G:跳转至文件首部
        文本搜索:
            /keyword:向下
            ?keyword:向上
            n:与查找方向相同方向跳
            N:与查找方向相反方向跳
    (3)info COMMAND 
        获取命令的在线信息
    (4)很多应用程序自带帮助文档:/usr/share/doc/APP-VERSION
        README:程序相关的信息
        INSTALL:安装帮助
        CHANGES:版本迭代时的改动信息                
    (5)主流发行版官方文档                    
    (6)程序官方的文档
    (7)google

六.Linux发行版的基础目录名称命名法则及功用规定

1.命名规则:
    (1)严格区分大小写
    (2)目录也是文件,在同一路径下,两个文件不能同名
    (3)支持使用出/以外的任意字符
    (4)最长不能超过255个字符

2.Linux 发行版基础目录
    /bin:供所有用户使用的基本命令程序文件
    /sbin: 供系统管理使用的工具程序
    /boot: 引导加载器必须用到的各静态文件,kernel,initramfs(initrd),grub等
    /dev/: 存储特殊文件或设备文件
        设备:
        字符设备:线性设备
        块设备:随机设备
    /etc:系统程序的配置文件目录,只能为静态
    /home:普通用户家目录集中目录
    /root :管理员的家目录;可选;
    /lib: 为系统启动或根文件系统上的应用程序(/bin,/sbin等)提供共享库,以及为内核提供内核模块
        libc.so.*:动态链接的C库
        ld*:运行时连接器/加载器
        moduls/:用户存储内核模块的目录
    /lib64 :64位系统特有的存放64位共享库的目录
    /media :便携式设备的挂载点,cdrom,
    /mnt : 其他文件系统的临时挂载点
    /opt : 附加应用程序的安装位置:可选目录;
    /srv : 当前主机为服务提供的数据;
    /tmp : 为那些会产生临时文件的程序提供用于存储临时文件的目录,可供所有用户写入操作
    /usr :全局共享的只读数据路径
        bin
        lib
        sbin
        lib64
        include :C 程序头文件
        share : 命令手册业和自带文档等架构特有的文件存放位置
        local :让系统管理员安装本地应用程序,也用于安装第三方应用程序
        src :程序源码文件的存放位置
        x11R6:X-Window程序存放位置
    /var : 存储常发生变化的数据目录
        cache    Application cache data
        lib        Variable state information
        local    Variable data for /usr/local
        lock    Lock files
        log        Log files and directories
        opt        Variable data for /opt
        run        Data relevant to running processes
        spool    Application spool data
        tmp        Temporary files preserved between system reboots
    /proc :虚拟文件系统,内核及进程存储其相关信息,它们多为内核参数
    /sys :sysfs虚拟文件系统提供一种比/proc更为理想的访问内核数据的途径,主要作用为管理linux设备提供统一模型的接口.
        /sys/devices  这是内核对系统中所有设备的分层次表达模型,也是 /sys 文件系统管理设备的最重要的目录结构,下文会对它的内部结构作进一步分析;
        /sys/dev  这个目录下维护一个按字符设备和块设备的主次号码(major:minor)链接到真实的设备(/sys/devices下)的符号链接文件,它是在内核 2.6.26 首次引入;
        /sys/bus  这是内核设备按总线类型分层放置的目录结构, devices 中的所有设备都是连接于某种总线之下,在这里的每一种具体总线之下可以找到每一个具体设备的符号链接,它也是构成 Linux 统一设备模型的一部分;
        /sys/class  这是按照设备功能分类的设备模型,如系统所有输入设备都会出现在 /sys/class/input 之下,而不论它们是以何种总线连接到系统。它也是构成 Linux 统一设备模型的一部分;
        /sys/block    这里是系统中当前所有的块设备所在,按照功能来说放置在 /sys/class 之下会更合适,但只是由于历史遗留因素而一直存在于 /sys/block, 但从 2.6.22 开始就已标记为过时,只有在打开了 CONFIG_SYSFS_DEPRECATED 配置下编译才会有这个目录的存在,并且在 2.6.26 内核中已正式移到 /sys/class/block, 旧的接口 /sys/block 为了向后兼容保留存在,但其中的内容已经变为指向它们在 /sys/devices/ 中真实设备的符号链接文件;
        /sys/firmware  这里是系统加载固件机制的对用户空间的接口,关于固件有专用于固件加载的一套API,在附录 LDD3 一书中有关于内核支持固件加载机制的更详细的介绍;
        /sys/fs  这里按照设计是用于描述系统中所有文件系统,包括文件系统本身和按文件系统分类存放的已挂载点,但目前只有 fuse,gfs2 等少数文件系统支持 sysfs 接口,一些传统的虚拟文件系统(VFS)层次控制参数仍然在 sysctl (/proc/sys/fs) 接口中中;
        /sys/kernel  这里是内核所有可调整参数的位置,目前只有 uevent_helper, kexec_loaded, mm, 和新式的 slab 分配器等几项较新的设计在使用它,其它内核可调整参数仍然位于 sysctl (/proc/sys/kernel) 接口中 ;
        /sys/module  这里有系统中所有模块的信息,不论这些模块是以内联(inlined)方式编译到内核映像文件(vmlinuz)中还是编译为外部模块(ko文件),都可能会出现在 /sys/module 中:
        /sys/power  这里是系统中电源选项,这个目录下有几个属性文件可以用于控制整个机器的电源状态,如可以向其中写入控制命令让机器关机、重启等。
        /sys/slab  (对应 2.6.23 内核,在 2.6.24 以后移至 /sys/kernel/slab)    从2.6.23 开始可以选择 SLAB 内存分配器的实现,并且新的 SLUB(Unqueued Slab Allocator)被设置为缺省值;如果编译了此选项,在 /sys 下就会出现 /sys/slab ,里面有每一个 kmem_cache 结构体的可调整参数。对应于旧的 SLAB 内存分配器下的 /proc/slabinfo 动态调整接口,新式的 /sys/kernel/slab/<slab_name> 接口中的各项信息和可调整项显得更为清晰。               

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/98313

(1)
dyzhoudyzhou
上一篇 2018-05-12
下一篇 2018-05-12

相关推荐

  • Linux基础入门介绍、系统组成和获取命令帮助

    描述计算机的组成及其功能。
    按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
    说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
    如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
    请罗列Linux发行版的基础目录名称命名法则及功用规定。

    2018-06-23
  • LINUX的哲学思想

    1.一切皆文件 把几乎所有资源统统抽象为文件形式,不仅普通的文件,目录、字符设备、块设备、 套接字等还包括硬件设备,甚者通信接口等。在Linux 中都是以文件被对待;它们虽然类型不同,但是对其提供的却是同一套操作界面。访问任何设备都可以用统一的一个接口。方便统一管理 由众多功能单一的程序组成。一个程序只做一件事,并且要做好,保证linux程序的高效运行。需要…

    Linux笔记 2018-06-27
  • systemd服务管理

    在systemd中,之前服务的启动脚本将以Unit(单元)的形式存在,因此服务管理=单元管理。

    Linux笔记 2018-06-12
  • 新加磁盘的实现方法

    生产中硬盘会不断的出现故障此时我们就需要更换新的硬盘,那么拿到一个新的硬盘之后我们该如何来使用呢?一个新的硬盘首先我们要把旧硬盘上的东西进行备份然后用新的硬盘替代。新硬盘使用之前我们必须要先对新硬盘进行 分区—>创建文件系统—>挂载—>设置开机自启 这几个步骤,那么接下来我们一个一个来说明每个步骤的实现过…

    Linux笔记 2018-04-30
  • Linux基本指令

    hostname  完整主机名cat +文件路径  可查看文件信息cat /etc/shells  显示所有shelluname -r    查看内核版本ls cpu   查看cpu信息free命令  查看内存 后面加-k是显示的内存以kb为单位,-m(MB),-g(GB),-h显示易读单位lsblk  查看硬盘dmesg  查看计算机启动的一些相关信息dm…

    2018-07-22

评论列表(1条)

  • 马哥教育
    马哥教育 2018-05-16 20:38

    命令可以用专门的命令行 格式写。