linux学习总结-linux基础(之一)

一、计算机的组成及其功能

冯诺依曼结构的计算机由运算器、控制器、存储器和输入设备、输出设备五部分组成。冯诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。

控制器:控制程序执行;

存储器:记忆程序和数据;

输入设备:输入数据和程序;

输出设备:输出处理结果。

二、Linux发行版

Linux的发型版本众多,大体可以分为两类,一类是商业公司维护的发型版本,以RedhatRHEL)为代表,一类是社区组织维护的发型版本,以Debian为代表。下面是常见的发型版本及其继承关系:

Debian
        Ubuntu
                 Mint
        Knopix
Slackware
        S.u.S.E
                 SLES
                 OpenSUSE
Redhat
        RHEL
        CentOS
        Fedora
Gentoo
ArchLinux

三、Linux哲学思想

Linux的哲学思想官方给出的貌似是(解释为本人自己的理解):

1.一切皆文件linux中,文件、目录、数据、设备等都被认为是文件。

2.单一目的的小程序:程序不要太复杂,一个程序完成一个目的,确保Linux内核的高效。

3.组合小程序完成复杂任务:复杂功能由多个简单的程序共同组合实现。

4.文本的形式保存配置数据:linux中所有配置文件都放在文本的配置文件中,如果需要修改配置,只需用文本编辑器修改文本配置文件。

5.尽量避免与用户交互:linux大多通过简洁的命令行方式,避免复杂的用户界面

6.提供机制而非策略:这个比较难理解,机制可以理解为为实现某个功能需要的原语操作和结构;策略可以理解为某个功能的直接实现。而此句意味着我们应该提供实现某个功能需要的原语操作,而不是直接去实现。这也保证了linux具有强大的可配置性(对比某水果)。

 

其实这几点更像是Linux的设计理念,在我看来Linux的哲学思想同时也是开源界的核心思想,可以概括为:自由与分享。遵循自由软件的思想:自由使用、自由学习和修改、自由分发、自由创建衍生版本等。


四、Linux命令格式及常用命令


Linux系统的命令格式大多为:

command  [-options]  parameter1 parameter2 …

命令    选项    参数参数2 …

ifconfig


1.命令格式:

ifconfig [网络设备] [参数]

2.命令功能:

ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。

3.命令参数:

up 启动指定网络设备/网卡。

down 关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。

arp 设置指定网卡是否支持ARP协议。

-promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包

-allmulti 设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包

-a 显示全部接口信息

-s 显示摘要信息(类似于 netstat -i)

add 给指定网卡配置IPv6地址

del 删除指定网卡的IPv6地址

<硬件地址> 配置网卡最大的传输单元

mtu<字节数> 设置网卡的最大传输单元 (bytes)

netmask<子网掩码> 设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。

tunel 建立隧道

dstaddr 设定一个远端地址,建立点对点通信

-broadcast<地址> 为指定网卡设置广播协议

-pointtopoint<地址> 为网卡设置点对点通讯协议

multicast 为网卡设置组播标志

address 为网卡设置IPv4地址

txqueuelen<长度> 为网卡设置传输列队的长度

4.使用实例:

实例1:显示网络设备信息(激活状态的

命令:

ifconfig

实例2:启动关闭指定网卡

命令:

ifconfig eth0 up

ifconfig eth0 down

说明:

ifconfig eth0 up 为启动网卡eth0 ;ifconfig eth0 down 为关闭网卡eth0。ssh登陆linux服务器操作要小心,关闭了就不能开启了,除非你有多网卡。

实例3:用ifconfig修改MAC地址

命令:

ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE

实例4:配置IP地址

命令:

ifconfig eth0 192.168.120.56 

/给eth0网卡配置IP地:192.168.120.56

ifconfig eth0 192.168.120.56 netmask 255.255.255.0 

/给eth0网卡配置IP地址:192.168.120.56 ,并加上子掩码:255.255.255.0

ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255

/给eth0网卡配置IP地址:192.168.120.56,加上子掩码:255.255.255.0,加上个广播地址: 192.168.120.255


echo


1.命令格式:

echo [-ne][字符串]或 echo [–help][–version]

2.命令功能:

显示文字到标准输出

3.命令参数:

-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般
文字输出:
   \a 发出警告声;
   \b 删除前一个字符;
   \c 最后不加上换行符号;
   \f 换行但光标仍旧停留在原来的位置;
   \n 换行且光标移至行首;
   \r 光标移至行首,但不换行;
   \t 插入tab;
   \v 与\f相同;
   \\ 插入\字符;
   \nnn 插入nnn(八进制)所代表的ASCII字符;
–help 显示帮助
–version 显示版本信息

4.使用实例:

实例1:输出一行文本

命令:

echo  a line Text

实例2:不换行输入

命令:

echo -n  a line Text

实例3:打印当前目录下所有文件和文件夹(ls替代)

命令:

echo *


tty


1.命令格式:

      tty [-s][–help][–version]

2.命令功能:

显示终端机连接标准输入设备的文件名称。在Linux操作系统中,所有外围设备都有其名称与代号,这些名称代号以特殊文件的类型存放于/dev目录下。你可以执行tty指令查询目前使用的终端机的文件名称。

3.命令参数:

-s或–silent或–quiet   不显示任何信息,只回传状态代码。
  –help   在线帮助。
  –version   显示版本信息。

4.使用实例:

实例1:查看当前的标准终端文件描述符号

命令:

tty

实例2:运行tty什么也不输出,然后查看其退出码

命令:

tty -s
   echo $?

说明:

    这里,使用shell的命令"echo $?"来显示上一条命令的退出状态码。状态码的含义如下: 

    0 表示标准输入是一个终端。 

    1 表示标准输入不是一个终端。 

    2 表示给定的参数是不正确的参数。 

    3 表示发生了写错误。


startx


1.命令格式:

     startx [ -d Display:0 ] [ -t | -w ] [ -x Startup | [ -r Resources ] [ -m Window_Manager ] ] [ -wait ]

2.命令功能:

初始化一个 X 会话。

3.命令参数:

-d Display :0 指定在启动过程中传递给 X 客户机的 X 服务器的显示名称。
   -m Window_Manager 当未找到 startup 脚本时,启动窗口管理器。
   -r Resources 当未找到 startup 脚本时,装入资源文件。
   -t 为一个 X 终端启动 X 客户机。
   -w 为工作站上的 X 窗口会话启动 X 服务器和 X 客户机。
   -wait 当 xdm 命令调用 startx 时,防止重新启动 X 会话。
   -x Startup 使用 startup 脚本启动 X 窗口会话。

4.使用实例:

实例1:启动x回话

命令:

startx

实例2:强制启动x回话

命令:

startx  -w


export


1.命令格式:

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

2.命令功能:

设置或显示环境变量。

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

3.命令参数:

-f  代表[变量名称]中为函数名称。
   -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
   -p  列出所有的shell赋予程序的环境变量。

        4.使用实例:

实例1:将制定路径加入到环境变量

命令:

export $PATH="路径”


pwd


1.命令格式:

     pwd [选项]

2.命令功能:

查看”当前工作目录“的完整路径

3.命令参数:

一般情况下不带任何参数

如果目录是链接时

                 格式:pwd -P  显示出实际路径,而非使用连接(link)路径。

        4.使用实例:

实例1:用 pwd 命令查看默认工作目录的完整路径

命令:

     pwd

   实例2:目录连接链接时,pwd -P  显示出实际路径,而非使用连接(link)路径;pwd显示的是连接路径

命令:

   pwd -p


history


1.命令格式:

    history(选项)(参数)

2.命令功能:

history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件

3.命令参数:

-c:清空当前历史命令;
  -a:将历史命令缓冲区中命令写入历史命令文件中;
  -r:将历史命令文件中的命令读入当前历史命令缓冲区;
  -w:将当前历史命令缓冲区命令写入历史命令文件中。

        4.使用实例:

实例1:使用history命令显示最近使用的10条历史命令

命令:

     history 10


shutdown


1.命令格式:

    poweroff(参数)

2.命令功能:

关闭计算机操作系统并且切断系统电源

3.命令参数:

-c  当执行"shutdown -h 11:50"指令时,只要按+键就可以中断关机的指令。
 -f  重新启动时不执行fsck。
 -F  重新启动时执行fsck。
 -h  将系统关机。
 -k  只是送出信息给所有用户,但不会实际关机。
 -n  不调用init程序进行关机,而由shutdown自己进行。
 -r  shutdown之后重新启动。
 -t<秒数>  送出警告信息和删除信息之间要延迟多少秒。
 [时间]  设置多久时间后执行shutdown指令。
 [警告信息]  要传送给所有登入用户的信息。

        4.使用实例:

实例1:系统在十分钟后关机并且马上重新启动

命令:

    shutdown –r +10

实例2:系统马上关机不重启

命令:

    shutdown –h now


poweroff


1.命令格式:

    shutdown [-efFhknr][-t 秒数][时间][警告信息]

2.命令功能:

关闭计算机操作系统并且切断系统电源

3.命令参数:

-n:关闭操作系统时不执行sync操作;
   -w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中;
   -d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录;
   -f:强制关闭操作系统;
   -i:关闭操作系统之前关闭所有的网络接口;
   -h:关闭操作系统之前将系统中所有的硬件设置为备用模式。

 

        4.使用实例:

实例1:立即关闭操作系统

命令:

        poweroff


   reboot


1.命令格式:

    reboot [-n] [-w] [-d] [-f] [-i]

2.命令功能:

重启Linux系统

3.命令参数:

   -d  重新启动时不把数据写入记录文件/var/tmp/wtmp
    -f  强制重新开机,不调用shutdown指令的功能。
    -h  在系统关机或poweroff之前,将所有的硬盘处于待机模式
    -i  关闭网络设置之后再重新启动系统
    -n  保存数据后再重新启动系统
    -p  When halting the system, do a poweroff. This is the default when halt is called as     poweroff
    -w  仅做测试,并不真的将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件

        4.使用实例:

实例1:强制重新开机,不调用shutdown指令的功能

命令:

         reboot -f


实例2:保存数据后再重新启动系统

命令:

         reboot -n


       hwclock


1.命令格式:

    hwclock [–adjust][–debug][–directisa][–hctosys][–show][–systohc][–test]
[–utc][–version][–set –date=<日期与时间>]

2.命令功能:

显示与设定硬件时钟。

在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。

3.命令参数:

–adjust  hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用–adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。
   –debug  显示hwclock执行时详细的信息。
   –directisa  hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟。
   –hctosys  将系统时钟调整为与目前的硬件时钟一致。
   –set –date=<日期与时间>  设定硬件时钟。
   –show  显示硬件时钟的时间与日期。
   –systohc  将硬件时钟调整为与目前的系统时钟一致。
   –test  仅测试程序,而不会实际更改硬件时钟。
   –utc  若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。
   –version  显示版本信息。

        4.使用实例:

实例1:显示硬件时钟

命令:

         hwclock


实例2:硬件时钟调整与系统时钟一致

命令:

             hwclock -systohc


       date


1.命令格式:

    hwclock [–adjust][–debug][–directisa][–hctosys][–show][–systohc][–test]
[–utc][–version][–set –date=<日期与时间>]

2.命令功能:

用来显示或设定系统的日期与时间

3.命令参数:

%H 小时(以00-23来表示)。
  %I 小时(以01-12来表示)。
  %K 小时(以0-23来表示)。
  %l 小时(以0-12来表示)。
  %M 分钟(以00-59来表示)。
  %P AM或PM。
  %r 时间(含时分秒,小时以12小时AM/PM来表示)。
  %s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
  %S 秒(以本地的惯用法来表示)。
  %T 时间(含时分秒,小时以24小时制来表示)。
  %X 时间(以本地的惯用法来表示)。
  %Z 市区。
  %a 星期的缩写。
  %A 星期的完整名称。
  %b 月份英文名的缩写。
  %B 月份的完整英文名称。
  %c 日期与时间。只输入date指令也会显示同样的结果。
  %d 日期(以01-31来表示)。
  %D 日期(含年月日)。
  %j 该年中的第几天。
  %m 月份(以01-12来表示)。
  %U 该年中的周数。
  %w 该周的天数,0代表周日,1代表周一,异词类推。
  %x 日期(以本地的惯用法来表示)。
  %y 年份(以00-99来表示)。
  %Y 年份(以四位数来表示)。
  %n 在显示时,插入新的一行。
  %t 在显示时,插入tab。
  MM 月份(必要)
  DD 日期(必要)
  hh 小时(必要)
  mm 分钟(必要)
  ss 秒(选择性)
选择参数:
  -d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。
  -s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。
  -u  显示GMT。
  –help  在线帮助。
  –version  显示版本信息

1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下: % :  打印出 %:

%n : 下一行

%t : 跳格

%H : 小时(00..23)

%I : 小时(01..12)

%k : 小时(0..23)

%l : 小时(1..12)

%M : 分钟(00..59)

%p : 显示本地 AM 或 PM

%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)

%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数

%S : 秒(00..61)

%T : 直接显示时间 (24 小时制)

%X : 相当于 %H:%M:%S

%Z : 显示时区 %a : 星期几 (Sun..Sat)

%A : 星期几 (Sunday..Saturday)

%b : 月份 (Jan..Dec)

%B : 月份 (January..December)

%c : 直接显示日期与时间

%d : 日 (01..31)

%D : 直接显示日期 (mm/dd/yy)

%h : 同 %b

%j : 一年中的第几天 (001..366)

%m : 月份 (01..12)

%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)

%w : 一周中的第几天 (0..6)

%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)

%x : 直接显示日期 (mm/dd/yy)

%y : 年份的最后两位数字 (00.99)

%Y : 完整年份 (0000..9999)

2.在设定时间方面:

date -s //设置当前时间,只有root权限才能设置,其他只能查看。

date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00

date -s 01:01:01 //设置具体时间,不会对日期做更改

date -s “01:01:01 2008-05-23″ //这样可以设置全部时间

date -s “01:01:01 20080523″ //这样可以设置全部时间

date -s “2008-05-23 01:01:01″ //这样可以设置全部时间

date -s “20080523 01:01:01″ //这样可以设置全部时间

3.加减:

date +%Y%m%d         //显示前天年月日

date +%Y%m%d –date="+1 day"  //显示前一天的日期

date +%Y%m%d –date="-1 day"  //显示后一天的日期

date +%Y%m%d –date="-1 month"  //显示上一月的日期

date +%Y%m%d –date="+1 month"  //显示下一月的日期

date +%Y%m%d –date="-1 year"  //显示前一年的日期

date +%Y%m%d –date="+1 year"  //显示下一年的日期

  5.使用实例:

实例1:显示当前时间

命令:

date

date '+%c'

date '+%D'

date '+%x'

date '+%T'

date '+%X'

实例2:显示月份和日数

命令:

date  '+%B %d'

实例3:date -d参数使用

命令:

date -d "nov 22"  /今年的 11 月 22 日是星期三

date -d '2 weeks' /2周后的日期

date -d 'next monday' /(下周一的日期)

date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d

date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d

date -d last-month +%Y%m(上个月是几月)

date -d next-month +%Y%m(下个月是几月)

使用 ago 指令,您可以得到过去的日期:

date -d '30 days ago' (30天前的日期)

使用负数以得到相反的日期:

date -d 'dec 14 -2 weeks' (相对:dec 14这个日期的两周前的日期)

date -d '-100 days' (100天以前的日期)

date -d '50 days'(50天后的日期)

五、在Linux中获取帮助的命令

linux中,获取命令的帮助信息可以使用help–help,man,info,具体使用格式为(以date命令举例):

help  date

date  –help

man date

info date

        man page帮助页的组成部分如下表所示:

      

代号

内容说明

NAME

简短的命令、数据名称说明

SYNOPSIS

简短的命令执行语法(syntax)简介

DESCRIPTION

较为完整的说明

OPTIONS

针对SYNOPSIS部分中,有列举的所有可用的选项说明

COMMANDS

当这个程序在执行过程中,可以在此程序中执行的命令

FILES

这个程序或数据所使用或参考或连接到的某些文件

SEE ALSO

这个命令或数据有相关的其他说明

EXAMPLE

一些可以参考的范例

BUGS

相关错误

原创文章,作者:北京-其实二变,如若转载,请注明出处:http://www.178linux.com/48354

评论列表(1条)

  • Net17_desperado
    Net17_desperado 2016-09-23 21:29

    请加群557442874一起成长 顺便说一句你可以采用markdown进行排版,效果会非常不错