Linux 入门基础 及一些常见命令(上)

计算机的组成及其各部分的功能


现代计算机的基本结构是由匈牙利-美国科学家冯· 诺依曼于1946年提出的。迄今为止所有进入实用的电子计算机  都是按冯· 诺依曼提出的结构体系和工作原理设计制造的,故又统称为“冯·诺依曼型计算机".

根据冯.诺依曼原理:计算机由运算器、控制器、存储器、输入设备、输出设备所组成.

运算器: 进行算术与逻辑运算.

控制器:  从内存中依次取出命令,产生控制信号,向其它部件发出指令,指挥整个运算过程.

运算器,控制器,缓存,寄存器组成CPU.

存储器: 分为内部存储和外部存储 .内部存储包括ROM(只读)和RAM(随机); 外部存储包括硬盘,软盘,磁带机,光盘.

输入设备:键盘,鼠标和扫描仪。主要功能:下指令,提供数据等.标准输入设备(键盘)

输出设备:显示器,打印机和绘图仪。主要功能:输出数据加工的结果.标准输入设备(显示器)

 

Linux 主要发行版及各版本的区别与联系

Linux发行版有数百种之多,这里介绍最主要的几种:

—Debian, Slackware, RedHat,Gentoo, ArchLinux
Debian: ubuntu,knopix,mint

Debian是社区类Linux的典范,最遵循GNU规范。 特点是界面非常友好,对硬件的支持非常全面,最适合做桌面系统的Linux发行版.

Slackware:S.u.S.E, OpenSUSE

OpenSUSE 最可定制的发行版

RedHat: Fedora ,CentOS

RHEL Red Hat系列:包括RHEL、Fedora Core、CentOS.可以说是国内使用最多的Linux发行版.

稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,只好用于桌面应用.

Arch Linux 最好的企业级系统;

Gentoo: 是一个基于 Linux 或 FreeBSD 的自由操作系统,它几乎能为任何应用程序或需求自动地作出优化和定制.
对极限的配置、性能的追求,以及顶尖的用户和开发者社区,都是 Gentoo 的显著特点.

联系:都基于linux 内核

Linux 哲学思想

             1、一切皆文件:
           把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至通信接口等;
           和操作一般意义上的文件一样,linux中对文件的操作只需要五个基本的函数:
           open(), read(), write(), close(), delete(), create()
           文件系统的第一级目录称为“根目录”,用 / 表示,所有其他的文件或目录都包含在其下,
           并且一层一层组织成树型结构.
    2、 由众多功能单一的程序组成;一个程序只做一件事,并且做好;
                   组合小程序完成复杂任务;可以通过管道等把各小程序组合起来,完成复杂任务.
    3、 尽量避免跟用户交互;
          目标:易于以编程的方式实现自动化任务;
    4、使用文本文件保存配置信息(只需要一个简单的文本编辑器就可以操作整个系统)

Linux系统上命令的使用格式和常见的几个命令

 命令的语法通用格式:         

# COMMAND OPTIONS ARGUMENTS

    COMMAND:
            发起一命令:请求内核将某个二进制程序运行为一个进程;
                程序 –> 进程
                静态 –> 动态(有生命周期)

            命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;    
        
  命令分为两类:
                由shell程序的自带的命令:内置命令(builtin)
                独立的可执行程序文件,文件名即命令名:外部命令

              例:  [root@localhost ~]# type cd
                    cd is a shell builtin
                    [root@localhost ~]# type ls
                    ls is aliased to `ls –color=auto'
                    [root@localhost ~]# which ls
                    alias ls='ls –color=auto'
                    /usr/bin/ls

                    [root@localhost ~]# which –skip-alias ls
                    /usr/bin/ls
                –skip-alias 过滤掉别名

 shell程序是独特的程序,负责解析用户提供的命令;
                环境变量:
                    PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件;
                        ~]# echo $PATH
                        /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

                 查找次序:

                查看命令类型:
                type COMMAND
OPTIONS:
            指定命令的运行特性;
            选项有两种表现形式:
                短选项:-C, 例如-l, -d
                    注意:有些命令的选项没有-;
                    如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld
                长选项:–word, 例如–help, –human-readable
                    注意:长选项不能合并;

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

        ARGUMENTS:
            命令的作用对象;命令对什么生效;

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

 

ifconfig:  – configure a network interface    配置网络接口;
1) 查看IP接口信息:

      ~]# ifconfig或ip addr list或ip addr show  (CentOS 7):查看活动接口的ip地址: 

           -a     display all interfaces which are currently available, even if down
                显示所有接口信息;即使接口处于关闭状态;   

            例: ~]#ifconfig -a
            -s     display a short list (like netstat -i)
               例:   [root@localhost ~]# ifconfig -s
  Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
  eno16777  1500      660      0      0 0           520      0      0      0 BMRU
  lo       65536      392      0      0 0           392      0      0      0 LRU
  virbr0    1500        0      0      0 0             0      0      0      0 BMU

  CentOS 5和 CentOS 6 查看的接口名称是eth0 ,CentOS 7上表现为eno16777736

  具体查看哪个接口听信息,例:~]# ifconfig eno16777736

2)修改网卡的IP地址,子网掩码:(当不指定子网掩码时,将使用IP地址所在分类的默认子网掩码)    
      以CentOS 7为例: 

                           ~]# ifconfig eno16777736 192.168.1.50/24 或                                                                                               ifconfig eno16777736  192.168.1.50  netmask  255.255.255.0

  此命令重启系统后失效,永久生效只能修改配置文件,CentOS 7为例: 完整路径如下 /etc/sysconfig/network-scripts/ifcfg-eno16777736

3)禁用,激活网络接口:

       需要临时禁用或重新激活指定的网络接口时,需要结合 "down",   "up" 选项。网络接口被禁用以后,将无法使用该网络接口与其他主机进行连接。例: 执行以下操作将会禁用网卡eno16777726

     ~]# ifconfig eno16777736 down

4) 为网卡绑定虚拟接口: 

      在对服务器网络进行测试时,有时需要临时在同一个网卡上使用一个新的IP地址,但又不能覆盖原有的IP地址,而导致服务器程序不可用。这时可以为网卡绑定一个虚拟的网络接口,然后再为虚拟接口设置新的IP地址(相当于一块网卡配多个IP)

    以CentOS 7 为例:

   ~]# ifconfig eno16777736:0 172.16.16.1

echo:      NAME  (回显)
       echo – display a line of text
SYNOPSIS
       echo [SHORT-OPTION]… [STRING]…

                   -n: 不进行换行;
                    -e:让转义符生效;
                        \n:换行
                        \t:制表符
                        \b: 退格

例: [root@localhost ~]# echo "hello world"
hello world
[root@localhost ~]# echo -n "hello world"
hello world[root@localhost ~]# echo -e "hello \tworld"
hello     world
[root@localhost ~]# echo -e "hello \bworld"
helloworld
[root@localhost ~]# echo -e "hello \nworld"
hello
world

tty:  NAME
       tty – print the file name of the terminal connected to standard input
例:  [root@localhost ~]# tty
/dev/pts/1
[root@localhost ~]# tty -s   (–quiet   print nothing, only return an exit status)

[root@localhost ~]# tty –help
  -s, –silent
      –help    
      –version 

startx:  – initialize an X session

startx命令用来启动X Window,实际上启动X Window的程序为xinit.

export: 功能说明:设置或显示环境变量.

语  法:export [-fnp][变量名称]=[变量设置值]

补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。

  1. [root@localhost ~]# !echo
    echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    [root@localhost ~]# export PATH=$PATH:/opt/au1200_rm/build_tools/bin
    [root@localhost ~]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/au1200_rm/build_tools/bin

    重新打开一个终端登录:

 Last login: Tue Sep 13 17:59:34 2016
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
可以验证: export的效力仅及于该此登陆操作

2.#vi /etc/profile

在适当位置添加 PATH=$PATH: /opt/au1200_rm/build_tools/bin(注意:= 即等号两边不能有任何空格)
这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变

[root@localhost ~]# !echo
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# vim /etc/profile
[root@localhost ~]# !echo
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

3.#vi ~/.bash_profile
修改PATH行,把/opt/au1200_rm/build_tools/bin添加进去
这种方法是针对用户起作用的

注意:第2,3种方法若想改变PATH,必须重新登陆才能生效,以下方法可以简化工作:
如果修改了/etc/profile,那么编辑结束后执行source profile(source /etc/profile) 或 执行点命令 ./profile,PATH的值就会立即生效了。

个方法的原理就是再执行一次/etc/profile shell脚本,注意如果用sh
/etc/profile是不行的,因为sh是在子shell进程中执行的,即使PATH改变了也不会反应到当前环境中,但是source是在当前
shell进程中执行的,所以我们能看到PATH的改变。

[root@localhost ~]# source /etc/profile
[root@localhost ~]# !echo
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/au1200_rm/build_tools/bin

pwd:  NAME  显示工作目录

       pwd – print name of current/working directory
     [root@localhost ~]# pwd
       /root

history:命令历史:

           shell进程会其会话中保存此前用户提交执行过的命令;
            ~]# history
                定制history的功能,可通过环境变量实现:
                    HISTSIZE:shell进程可保留的命令历史的条数;
                    HISTFILE:持久保存命令历史的文件;
                        .bash_history
                    HISTFILESIZE:命令历史文件的大小;
             [root@localhost ~]# history
    1  history
    2  vim .bash_history
         …
   178  history
     [root@localhost ~]# history -c
     [root@localhost ~]# history
       1  history

   清空了历史命令  

     [root@localhost ~]# echo $HISTSIZE
      1000
     [root@localhost ~]# cat -n .bash_history
         1    history
         2    vim .bash_history
           …

     [root@localhost ~]# history -r
     [root@localhost ~]# history
     1  history
         ….

      实现了从文件读取命令历史到历史列表中

             命令用法:
                history [-c] [-d 偏移量] [n]
                或 history -anrw [文件名]
                或 history -ps 参数 [参数…]

                -c: 清空命令历史;
                -d offset:删除指定命令历史
                -r: 从文件读取命令历史至历史列表中;
                -w:把历史列表中的命令追加至历史文件中;
                history #:显示最近的#条命令;

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

                    注意:命令的重复执行有时候需要依赖于幂等性;

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

            控制命令历史记录的方式:
                环境变量:HISTCONTROL
                    ignoredups:忽略重复的命令;
                    ignorespace:忽略以空白字符开头的命令;
                    ignoreboth:以上两者同时生效;
           [root@localhost ~]# echo $HISTCONTROL
                   ignoredups
          [root@localhost ~]# echo HISTCONROL=ignoreboth
            HISTCONROL=ignoreboth
         [root@localhost ~]# !echo $
          echo HISTCONROL=ignoreboth $
          HISTCONROL=ignoreboth $
       修改变量的值:
                    NAME='VALUE'

shutdown: NAME
       shutdown – Halt, power-off or reboot the machine

SYNOPSIS
       shutdown [OPTIONS…] [TIME] [WALL…]
       -H, –halt
       -P, –poweroff
        -r, –reboot
        -k
            just write wall message.

        –no-wall
           Do not send wall message before halt, power-off, reboot.
       -c
           Cancel a pending shutdown.  打开另一个终端输入shutdown -c,可取消关机命令

poweroff:  NAME
       halt, poweroff, reboot – Halt, power-off or reboot the machine

reboot:NAME
       halt, poweroff, reboot – Halt, power-off or reboot the machine

shutdown,poweroff,reboot都能实现关机,重启,定时关机等操作.

关机命令:
            CentOS 7:
                ~]# systemctl poweroff
                ~]# systemctl reboot

            *:
                ~]# poweroff
                ~]# halt
                ~]# reboot

hwclock ,clock:
                    显示或设定硬件时钟
                        -s, –hctosys:以硬件为准,把系统调整为与硬件时间相同;
                        -w, –systohc:以系统为准,把硬件时间调整为与系统时钟相同;                

Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟两种。系统时间是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的那个主板硬件时钟,这个时钟可以在BIO的"Standard BIOS Feture"项中进行设置.                           

  date 命令查看的是系统时钟,hwclock查看的是硬件时钟;                  

原创文章,作者:big_dream,如若转载,请注明出处:http://www.178linux.com/47140

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-20 14:52

    写的很好,看得出来很用心,在注意一下排版会更好,加油