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查看的是硬件时钟;                  

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

(0)
上一篇 2016-09-17 22:15
下一篇 2016-09-17 23:51

相关推荐

  • Linux用户及用户组管理

    马哥网络教育22期第三周练习 Linux用户及用户组管理 Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也能帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的…

    Linux干货 2016-09-19
  • ifconfig命令学习

    ifconfig命令 网络配置 ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。 语法 ifconfig(参数) 参数 add<地址>:设置网络设备IPv6的ip地址; del&lt…

    Linux干货 2017-07-02
  • Linux 进程及作业管理

    一 进程、线程、程序概念 1、进程(Process) 什么是进程,简单的说,进程是程序的执行实例,即运行中的程序,同时也是程序的一个副本;程序是放置于磁盘的,而运行中的程序是位于内存中的。 2、线程(Thread) 一个进程至少包括一个线程,通常将该线程称为主线程,所以线程是比进程更小的单位,是系统分配处理器时间资源的基本单元。一个进程要想同时在多颗CPU上…

    Linux干货 2016-03-15
  • 文件系统

    文件系统 文件和目录被组织成一个单根倒置树结构 文件系统从根目录下开始,用“/”表示 文件名称区分大小写 以.开头的文件为隐藏文件   一个.表示本目录。 两个..表示根目录 路径分隔的/      路径分割为正斜线分割 文件有两类数据:        元数据:metadata …

    Linux干货 2017-05-02
  • 软件包管理(rpm,yum,源码安装)

    API:Application Programming Interface  ==>软件开发接口     POSIX :Portable OS 程序源代码 –> 预处理 –> 编译 –> 汇编 –>链接   &n…

    Linux干货 2016-08-24
  • SELinux

    软件的安全性 提高软件的安全性 选择安全系数较高的系统 提高现有系统的安全性 计算机的安全等级 D:最低的安全级别,提供最少的安全防护,系统访问无限制。DOS C:访问控制的权限,能够实现可控的安全防护,个人账户管理,审计和资源隔离 Unix Linux windowNT B:支持多级安全,通过硬件对安全数据进行保护 A:最高级别,提供验证设计,要求数据从生…

    Linux干货 2017-05-21

评论列表(1条)

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

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