Linux系统认知

前言

在认识Linux系统之前先介绍下计算机的组成构造及其功能:

1,简单来说计算机可以划分为软件系统和硬件系统:

(1)软件系统自不必说就是各种不同的程序,协助用户更好地使用电脑。

(2)硬件系统指的是主机、显示器、鼠键等硬件设备。

2,按冯诺依曼体系可将计算机按逻辑构成分为:

(1)CPU(运算器、控制器)。运算器是数据处理装置,用来完成对数据的算术运算和逻辑运算;控制器是发布操作命令的装置,用来控制整个计算机自动执行程序,它类似于人的大脑中枢,指挥和协调计算机各部件的工作。

(2)存储器。存储器分为内存储器和外存储器。内存储器简称内存或主存,它的存储容量一般较小,但存取速度快,主要用于暂时存放当前执行的程序和相关数据;外存储器作为内存的辅助存储器,称为外存或辅存,它的存储容量大,但存取速度比内存慢,主要用于长期存放大量计算机暂时不执行的程序和不用的数据。

(3)输入设备。输入设备负责将外部的各种信息或指令传递给电脑,然后由电脑处理。常用的输入设备有键盘、鼠标、扫描仪、数字照相机、电子笔等。

(4)输出设备。输出设备负责将计算机处理的中间结果和最终结果以人们能够识别的字符、表格、图形或图像等形式表示出来。最常用的输出设备有显示器、打印机和绘图仪等。


哲学思想

什么是linux的哲学思想,查阅了一些资料,官方的哲学思想是:

1,一切皆文件(硬件设备亦如此);

2,由众多目的单一的小程序组成,一个程序只实现一个功能;

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

4,尽量避免与用户交互;

5,使用文本文件保存配置信息;

6,提供机制,而非策略。

此外,Linux作为自由软件(GNU),同时也遵循自由软件的思想:自由使用;自由学习和修改;自由分发;自由创建衍生版。

在我看来 Linux 的核心思想同时也是开源界的核心思想,那就是自由与分享

自由:不是愚昧无知愚蠢任性的自由,而是在明白前因后果的前提下的无约束发挥创造力

分享:不是无条件得将自己思考与成就交给全世界,而是分享给内行,分享给值得分享的人


发行版本

Linux的发行版本大体可以分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。

Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)Redhat应该说是在国内使用人群最多 的Linux版本,甚至有人将Redhat等同于Linux。所以这个版本的特点就是使用人群数量大,资料非常多。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用, 但是Fedora Core的稳定性较差,最好只用于桌面应用。

Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范 的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing 和unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。Debian最具特色的是apt-get /dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资料也很丰富,有很多支持的社区,有问题求教也有地方可去 :)

Ubuntu,严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。

Gentoo,伟大的Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo被称为最完美的Linux发行版本的原因之一。Gentoo最初由Daniel Robbins(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美 FreeBSD的广受美誉的ports系统 ——Portage包管理系统。不同于APT和YUM等二进制文件分发的包管理系统,Portage是基于源代码分发的,必须编译后才能运行,对于大型软件而言比较慢,不过正因为所有软件都是在本地机器编译的,在经过各种定制的编译参数优化后,能将机器的硬件性能发挥到极致。Gentoo是所有Linux 发行版本里安装最复杂的,但是又是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。

SUSE Linux分两种,一种是商业 SUSE® Linux Enterprise ,另一种是社区支持的 openSUSE ,前者是在后者的基础上开发的。最华丽的Linux发行版,很多人都这样说,X windows和程序应用方面做的确实不错,尤其与Microsoft的合作关系,应该是在所有的Linux发行版本中最亲密的。OpenSuse这款Linux发行版是免费的。它使用Yast来管理软件包。有了Yast,使用和管理服务器应用程序就非常容易。此外,Yast安装向导程序可以配置电子邮件服务器、LDAP服务器、文件服务器或Web服务器,没有任何不必要的麻烦。它随带snapper快照管理工具,因而可以恢复或使用旧版的文件、更新和配置。由于让滚动发行版本成为可能的Tumbleweed,可将已安装的操作系统更新到最新版本,不需要任何的新发行版。

最后,介绍一下FreeBSD,需要强调的是:FreeBSD并不是一个Linux系统!但FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似,所以可以将FreeBSD视为一个Linux版本来比较。FreeBSD拥有两个分支: stable和current。顾名思义,stable是稳定版,而 current则是添加了新技术的测试版。FreeBSD采用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编译后才能运行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为服务器操作系统的最佳选择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。

                                               1.png

系统基础目录介绍

2.png

3.png

命令使用详解

在Linux系统上工作学习是离不开命令行的。要想真正理解Linux系统,就必须从Linux上的基础命令学起。

◆Linux命令格式:

command  [options]  [arguments]

command:命令

options: 选项 ( –单词  或  -单字)

如: ls –all  等同于  ls -a

  ls -a -b -c  等同于  ls -abc

argument:参数(档案名称或其他)

在查看命令帮助时,会出现 [ ],<>,|等符号,它们的含义如下:

[ ]        表示是可选的;

<>      表示是可变化的;

x|y|z    表示只能选择一个;

-abc  表示三个参数(或任何二个)的混合使用


◆常用命令详解:

ifconfig

1>作用:用来查看和配置网络设备,使用权限是root。

2>命令格式:ifconfig [网络设备] [参数]

3>主要参数:

-interface:指定的网络接口名,如eth0和eth1。

up:激活指定的网络接口卡。

down:关闭指定的网络接口。

broadcast address:设置接口的广播地址。

pointopoint:启用点对点方式。

address:设置指定接口设备的IP地址。

netmask address:设置接口的子网掩码。

4>应用说明:

(1)设置网卡IP地址、网络掩码和本地广播地址:

#ifconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127(该信息当前有效,若想永久生效要写入网卡配置文件中)

(2)若运行不带任何参数的ifconfig命令,这个命令将显示机器所有激活接口的信息。带有“-a”参数则显示所有接口的信息,包括没有激活的接口。

(3)如果要暂停某个网络接口的工作,可以使用down参数:

#ifconfig eth0 down

echo

功能说明:输出命令,顾名思义就是输出字符提示的,

命令格式:echo  [选项] [输出内容]

选项:-n 在输出字符后不换行

    -e 支持反斜线控制的字符转换,前面有斜线的字符将作为转义字符。

常用控制字符:

\a:输出警告音

\b:退格键,也就是向左删除

\n:换行符

\r :回车键

实例:

4.png

tty

功能说明:用于显示终端机连接标准输入设备的文件名称。

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

语法:tty  [-s] [–help] [–version]

参数说明:

-s或–silent或–quiet 不显示任何信息,只回传状态代码。

–help 在线帮助。

–version 显示版本信息。

实例:显示当前终端

# tty

/dev/pts/1

startx

功能说明:用来启动X Window,实际上启动X Window的程序为xinit。

语法startx  [程序]  [–服务器设置]

参数说明:

[程序]  此处所指定的[程序]为X Window所要执行程序的配置文件。

[–服务器设置]  startx预设会去读取.xerverrc中的配置,决定启动X Window的方式。

实例:

要在工作站上或 X 终端上启动 X 会话,请输入:

 startx 

要在工作站上强制启动 X 会话,请输入: 

 startx -w 

要为 X 终端启动 X 会话,并注销用户的 telnet 会话,请输入:

 startx; kill -9 $ 

要使用 .xinitrc 脚本启动 X 会话,请输入: 

startx -x .xinitrc

export

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

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

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

参 数:

-f 代表[变量名称]中为函数名称。

-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。

-p 列出所有的shell赋予程序的环境变量。

实例:

在当前环境定义一个变量:

#export A=test

#echo $A

test

查看当前环境已赋予的环境变量:

#export -p

pwd

功能说明:查看”当前工作目录“的完整路径。 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置。

命令格式: pwd [选项]

常用参数:-p 显示实际路径而非使用链接路径

history

功能说明:管理命令历史

登录shell时,会读取命令历史文件中记录下的命令:~/.bash_history

参数:

-n :数字,意思是‘要列出最近的 n 笔命令列表’的意思!

-c :将目前的 shell 中的所有 history 内容全部消除

-a :将目前新增的 history 指令新增入 histfiles 中,若没有加 histfiles ,则预设写入 ~/.bash_history

-r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中;

-w : 将目前的 history 记忆内容写入 histfiles 中!

-d : 删除历史中指定的命令;

!加编号:调用历史中的编号命令;!15

!v调用历史中最近一个以v开头的命令(从后往前)

!!上一条命令

shutdown

功能说明:安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段。精确时间的格式是hh:mm,表示小时和分钟,时间段由+ 和分钟数表示。系统执行该命令后会自动进行数据同步的工作。

语  法:/sbin/shutdown [-t sec] [-arkhncfFHP] time [warning-message]

参  数:

-c  当执行"shutdown -h 11:50"指令时,只要按+键就可以中断关机的指令。

-f  重新启动时不执行fsck。

-F  重新启动时执行fsck。

-h  将系统关机。

-k  只是送出信息给所有用户,但不会实际关机。

-n  不调用init程序进行关机,而由shutdown自己进行。

-r  shutdown之后重新启动。

-t<second>  送出警告信息和删除信息之间要延迟多少秒。

[time]  设置多久时间后执行shutdown指令。

[warning-message]  要传送给所有登入用户的信息。

需要特别说明的是该命令只能由超级用户使用。

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

# shutdown –r +10

例2,系统马上关机并且不重新启动

# shutdown –h now

poweroff

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

 语法:poweroff (选项) 

选项:

 -n:关闭操作系统时不执行sync操作;

 -w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中;

 -d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录; 

-f:强制关闭操作系统; 

-i:关闭操作系统之前关闭所有的网络接口; 

-h:关闭操作系统之前将系统中所有的硬件设置为备用模式

reboot

用来重新启动计算机

语法:reboot[-n][-w][-d][-f][-i]

参数:

-n : 在重开机前不做将记忆体资料写回硬盘的动作

-w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里

-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)

-f : 强迫重开机,不呼叫 shutdown 这个指令

-i : 在重开机之前先把所有网络相关的装置先停止

hwclock

用于显示与设定硬件时钟。

参数:

–adjust  hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用–adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。

–debug  显示hwclock执行时详细的信息。

–directisa  hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟。

–hctosys  将系统时钟调整为与目前的硬件时钟一致。

–set –date=<日期与时间>  设定硬件时钟。

–show  显示硬件时钟的时间与日期。

–systohc  将硬件时钟调整为与目前的系统时钟一致。

–test  仅测试程序,而不会实际更改硬件时钟。

–utc  若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。

–version  显示版本信息。

实例

显示当前时间

# hwclock2010年05月27日星期四18时04分31秒-0.704214seconds

查看版本信息

# hwclock -vhwclockfromutil-linux-2.12a

date

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

格式:

date [选项]… [+格式]

可选参数:

-d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。

-s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。

-u  显示GMT。

–help  在线帮助。

–version  显示版本信息

实例:

设置系统时间:

# date -s "2016-09-17 17:54:00"


◆帮助命令:

1,内置命令可以通过help获取帮助信息:

可以用type判断命令是否是内置的命令,只有显示是内置命令的才能用help获取帮助。

命令格式:help  Command

例如:

# type cd

cd is a shell builtin (内置命令)

# help cd

2,外置命令获取帮助信息的办法:

(1)command  -h/–help

显示使用摘要和参数列表(可以查看大多数命令的用法)。

(2)info  Command

查看命令详细的说明文件,还提供在线文档。

(3)readme文档

绝大多数程序都有相应的帮助文档,保存在/usr/share/doc文件夹中。

(4)man  Command

查看命令描述或手册页(说明文件被划分为不同的页,man命令就是查看这些页)

注,manual 手册分成如下8个章节,man # Command (#表示章节号):

1、所有用户可以使用的命令

2、系统内核调用,不是每个命令都有系统调用(如:man 2 read)

3、库调用

4、特殊文件,如:/dev/tty1

5、文件格式(命令配置文件的语法,如:man 5 passwd)

6、游戏相关

7、杂项

8、管理员命令,如:fdisk

 

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

(0)
tangkaitangkai
上一篇 2016-09-20
下一篇 2016-09-20

相关推荐

  • awk与systemd

    GNU awkGNU awk 文本处理三工具:grep,sed,awk    grep,egrep,fgrep:文本过滤工具    sed:行(流)编辑器    awk:报告生成器,格式化文本输出 awk awk: Aho, Weinberger, Kerni…

    Linux干货 2016-09-22
  • 使用replicate-rewrite-db 实现复制映射 + Replicate_Wild_Do_Table实现复制过滤

    实验环境:CentOS7.2 + MySQL5.7 node1(192.168.2.171)和node2(192.168.2.172) 为两台不同业务的MySQL服务器。 业务方有个需求,需要将node1上的employees库的departments 、dept_manager 这2张表同步到 node2 的 hellodb 库下面。 node1的empl…

    Linux干货 2017-05-06
  • N22-℡浮生.若夢 ╮第九周作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash ## declare -i log_user declare -i notlog_user for i …

    Linux干货 2016-12-12
  • Git 分布式 Moosefs + Corosync + DRBD 集群

        对于 Git 集群来说,在不采用存储阵列的情况下,分布式存储系统是一个很好的解决方案。目前可使用的分布式文件系统,初步了解了一下,Git 是属于小文件的应用,因此可考量的我想就只有目前的 Moosefs、Ceph 了,Ceph 目前好似国内应用不多,貌似不太稳定。至于 GlusterFS 其比较适用于大文件的应…

    Linux干货 2016-02-22
  • OpenSSL

    OpenSSL由三部分组成:             libencrypto库             libssl库 …

    Linux干货 2017-05-30
  • 网络配置详解(一)

    Linux网络属性配置      ifcfg命令家族:ifconfig, route, netstat      ifconfig命令:      ifconfig [INTERFACE]      # ifconfig -a 显示所有接口…

    Linux干货 2017-01-02

评论列表(1条)

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

    写的很好,如果图是自己画的话,那会更好!加油