俗话说,好记性不如烂笔头,在当今移动互联网横行的时代,烂笔头就是网络,而笔记本就是各种平台。
作为一个IT人,有人突然问你计算机是啥,你可能不会像学文科的人一样给他说,就是电脑啊。这时候就是凸显IT知识技能的时候了,那么我下面就给您慢慢的道来。
在1946年美籍匈牙利人冯·诺依曼首次提出了自己的计算机体系理论,简称冯·诺依曼体系,主要是说计算机由五大基本部件组成,分别是运算器、控制器、存储器、I/O设备,这时候你可能会问怎么没有CPU这么重要的东西,其实啊,CPU是集成了运算器、控制器、寄存器和缓存的一个部件。这五大部件各司其职,分别完成不同的功能,其中一、控制器是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。二、运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。三、存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时输出上述信息。注意,此处的存储器不是我们常说的硬盘、磁盘、U盘等设备,而是指内部存储器,主要用于暂时存放CPU中的运算数据,以及与各外部存储器交换的数据。通俗的讲,就是相当于现在我们常说的手机上的2G、4G、6G、8G等内存。四、I/O设备是输入/输出((Input/Output)设备的简写,主要用于连接大量的外围设备,如键盘、鼠标、磁盘等。
有了底层硬件的简要知识 ,要想运行需要的程序,这时就必须要在硬件系统上安装能够驱动硬件工作的软件系统,由此系统的概念应运而生,广义上的系统就是我们常说的内核(kernal)+应用程序(application),而狭义上的系统只是内核(kernal),内核的功能就是驱动底层硬件设备、抽象底层的硬件设备、为程序的运行分配必要的资源等。最初的系统可能比你还年长,而windows系统你可能比较熟悉,但是你听说过Linux系统么,这个时候很多人的回答可能是Linux是什么东西。不要着急,我也可以给您大致说一下,因为历史的种种原因,Unix在发展到后期因为内部争斗弑杀中已经中途没落。在1983年9月27日,由Richard Stallman公开发起的GNU计划,又称革奴计划,主要是提供大量的开源软件,但是当时还是运行在Unix的内核上,社区上很多人都希望能够拥有自己的内核,因此在1991年8月,Linus Torvalds 宣布成立Linux,并且开源,经过社区大量IT人的不断努力下Linux快速成长,但是由于GNU发布的程序大都是源代码,要编译以后才能正常使用,因此才产生了很多公司经过编译Linux源码以后提供简单便捷的二进制格式,正是因为如此Linux才产生了非常多的分支,这里只介绍几个最著名的分支:
一、 Debian系,在Debian系列里,又衍生出了诸如ubuntu、knopix等令人熟知的内核系统
二、Slachware系,在Slachware系列里,又衍生出了SUSE,其中SUSE又分为企业版本的SLES和社区版本的OpenSUSE
三、RedHat系,在RedHat系列里,分为企业版本的RHEL和个人用户版本的Fedora Core,其中我们最熟知也是使用率非常高的Centos就是RedHat企业版本的又一次发行版本。
说完了各种发行版,现在说说Linux系统本身,在Linux系统里,一切皆文件, 系统把所有的硬件资源抽象为文件,此种做法最大的好处就是设置底层硬件的一些功能就可以直接通过修改硬件所对应的文件来完成。每个安装在内核系统上的软件也被视为文件,在安装完成后使用特定命令就可以看到该软件所生成的所有文件,最常见的文件有:二进制文件、配置文件、库文件、帮助文档。因为我们用得最多的可能是Centos,此处给您讲讲硬件的抽象文件存放位置以及系统安装完成后都会生成哪些文件。
Linux的各文件像一棵倒置的树,所有文件都是由最顶端的根引出来的,然后一层一层往下生成,如下图:
你是不是觉得,哇!这么多目录,到底都是干嘛用的啊,下面我就给您讲讲,上面说了根(/)处于Linux文件系统树形结构的最顶端,它是Linux文件系统的入口,所有的目录、文件、设备都在/之下。
(1)、/bin 该目录存放着系统最常用的也是最重要的命令,相当于DOS下的内部命令,只不过它们是以独立的文件形式存在。比如:ls、cp、mkdir等命令。这个目录中的文件都是可执行的并且是普通用户都可以使用的命令。作为系统最基础的命令都放在这里。
(2)、/boot 该目录是系统内核及引导系统的程序存放位置,比如vmlinuz、initrd.img等文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器在这个目录中。
(3)、/dev 该目录是存储设备文件的位置,这个目录下存放所有Linux的外部设备文件,这些设备文件的功能类似于DOS下的.sys文件和Win下的.vxd文件。Linux将设备当成文件使用,即将设备抽象化,这样极大地方便了我们对设备的操作控制。
(4)、/etc 该目录主要存放系统一些的配置文件,比如:用户帐号及密码配置文件等。
(5)、/home 普通用户的家目录文件,在文件夹下,每个用户都有以用户名为文件夹的单独目录。有一种情况需要除外,用户在创建此用户是明确指明不需要创建家目录。
(6)、/lib 该目录用于存放各种库文件,这个目录里存放着系统最基本的共享库,其作用类似于Windows里的.dll文件。几乎所有的应用程序都须要用到这些共享库。
(7)、/media 该目录为即插即用型存储设备的挂载点自动创建目录。比如USB盘系统自动挂载后,会在当前目录下产生一个子目录;CDROM/DVD自动挂载后,也会在当前目录中创建一个子目录。
(8)、/mnt 该目录是用于存放挂载储存设备的挂载目录,系统提供此目录是让用户临时挂载其他的文件系统。
(9)、/opt 用户自己的应用程序目录。
(10)、/proc 系统运行过程的映射目录,该目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统的一些相关信息。
(11)、/root 系统管理员(超级用户)的主目录。
(12)、/sbin 大多数涉及系统管理的命令都存放在该目录中,它是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,凡是目录sbin中包含的命令都是root权限才能执行的。
(13)、/srv 存放网络服务所提供的相关信息。
(14)、/sys 该目录是一个虚拟的文件系统,主要是记录与核心相关的信息。 包括目前已载入的核心模组与核心侦测到的硬体装置信息等等。
(15)、/tpm 改目录主要用于存放临时文件。
(16)、/usr 该目录下主要存放操作系统的软件资源。比如以后经常编译安装一些软件到/usr/local下。
(17)、/var 该目录主要存放一些常态性变动的文件,包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如MySQL数据库的文件等等。
了解了系统的各目录用途以后,接下来最重要的就是使用了,由于Linux不像windows有那么强大的桌面环境,因此作为学习Linux的人,你必须要适应命令行模式。Linux命令有自己的格式,通常是command [options] [arguments],即由命令本身 选项 参数组成。有些命令可以不带选项和参数,因此此处的中括号表示可有可无,具体应用视情况而定。
在生活中你一定有百度或者谷歌的经历,为什么呢,因为遇到自己不会的问题了,那么如果在Linux中遇到不会的你是不是马上想到去百度呢?其实不然,Linux系统自身提供强大的帮助命令,可以帮助你解决很大一部分问题。其实使用Linux的帮助命令比你想的要简单多了,下面就给您讲讲帮助命令的使用:
一、简单的用法帮助
对于一些命令的使用帮助,只需要在命令后面跟上-h或者–help即可查看该命令的一些选项参数,例如:
或者
看到这些,是不是觉得还是挺简单的呢?如果你想要查看命令本身的功能以及对参数、选项的解释,还可以查看更为详尽的帮助信息,那就是man command命令。具体用法如下:
是不是感觉好强大的样子。细心的你可能会发现在上面这张图片中除了对ifconfig命令本身的介绍外,在第一行还有一个IFCONFIG(8),这又是什么东西呢?其实啊,man帮助文档分为了好几个章节,序号不同代表不同的意思。具体的序号主要有:
1、Standard commands (标准命令)
2、System calls (系统调用)
3、Library functions (库函数)
4、Special devices (设备说明)
5、File formats (文件格式)
6、Games and toys (游戏和娱乐)
7、Miscellaneous (杂项)
8、Administrative Commands (管理员命令)
9 、跟内核有关的文档信息
经过上面的讲解,你一定跃跃欲试,那么下面就简单讲讲一些最常用的基础命令:
一、ifconfig
ifconfig?这个是什么命令?有什么用?怎么用?如果你现在还问这么低级的问题,那么您肯定没有认真仔细的阅读上面的内容。通过man ifconfig的查看,我们知道ifconifg主要是用于配置一个网络接口和查看网络接口信息的。在实际使用中根据自己的需要选择option和arguments。此处只作一个简单的演示:
其中有一些比较重要的参数:
1、-a 显示当前主机的所有网络接口。
2、interface 网卡名,如:ifconfig interface就只查看当前网卡的信息
3、up|down 表示启用或者关闭网卡,如:ifconfig eth0 down,表示关闭名为eth0的网卡。
4、address 表示给指定的网卡配置IP地址,如:ifconfig eth0 192.168.0.10/24 表示给eth0配置IP地址
二、echo
根据上面的经验,我们首先要知道echo的具体用途:从下面的图片中,我想你已经知道了echo只要是用于显示信息的。
下面只说明一些重要的参数:
1、-n 最后不需要自动换行
2、-e 对输出的内容中包含如下信息的需要做转义处理
3、-E 对需要输出的内容原样输出,即使有转义字符也忽略,不加参数,默认为此项。
特殊字符:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
三、tty
主要作用:print the file name of the terminal connected to standard input,即是显示连接到标准输入的终端的文件名称。
其中有一些比较重要的参数:
1、-s 不输出信息,只返回一个退出状态。
四、startx
主要作用:startx的功能很简单,就是启动X Window这一项服务,其实startx命令启动的是xinit,然后再由xinit来启动X Window。
用法:startx [程序][–服务器设置]
[程序] 此处所指定的[程序]为X Window所要执行程序的配置文件。
[–服务器设置] startx预设会去读取.xerverrc中的配置,决定启动X Window的方式。
五、date
主要作用:显示或者设置系统时间、日期。
其中有一些比较重要的参数:
1、-d <string> 显示字符串所指的日期与时间,如果不指定,默认为当前系统时间。
2、-s <string> 根据字符串指定的日期、时间设定为当前的系统时间。
如果需要以指定的格式显示日期或者日期,可以使用date “+”开头的字符串指定其格式,最常用的格式如下:
%n : 下一行
%t : 跳格
%H : 小时(00-23)
%I : 小时(01-12)
%M : 分钟(00-59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00-60)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区
%d : 日 (01-31)
%D : 直接显示日期 (mm/dd/yy))
%m : 月份 (01-12)
%Y : 完整年份 (0000-9999)
六、hwclock
主要作用:查询或设置硬件时钟
其中有一些比较重要的参数:
1、-r 显示硬件时钟的时间与日期。
2、–set –date=<日期与时间>:设定硬件时钟的日期或者时间。
3、-s 将系统时钟调整为与当前的硬件时钟一致。
4、-w 将硬件时间调整为与系统时间一致。
七、export
主要作用:用于设置或者显示系统当前的环境变量。
命令语法: export [-fn] [name[=value] …]
其中一些重要的参数:
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
实例:定义一个简单的环境变量并查看是否生成成功。
八、pwd
主要作用:用于显示当前工作的路径。
命令语法:pwd [OPTION]…
其中一些重要的参数:
-L 如果当前目录为链接路径时,显示链接路径。
-P 显示实际的物理路径,而非使用链接(link)路径。
九、history
主要作用:用于显示历史命令记录,或者下达历史纪录中的指令。
命令语法:history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg…]
其中一些重要的参数:
n 数字,表示要列出最近的 n 条命令列表。
-c :清空目前shell中的所有 history 内容。
-a :将目前新增的history 指令增入 histfiles 中,若没有加 histfiles,则预设写入 ~/.bash_history。
-r :将 histfiles 的内容读到当前shell 的 history 记忆中。
-w :将目前的 history 记忆内容写入 histfiles。
实例:
1、显示所有的命令历史记录
2、显示后10条历史命令
3、执行特定的历史指令,如上图中的224条,注意如果要执行最近的上一次指令,只需要输入!!即可。
十、shutdown
主要作用:停止、关机或重新启动系统。
命令语法:shutdown [OPTIONS…] [TIME] [WALL…]
其中一些重要的参数:
-H 暂停正在运行的Linux系统。
-P :对Linux系统执行关机操作,不加选项时默认此项。
-r:重新启动系统。
-h :定时关机,除非中途指定了停止操作。
-k :只是发送警告信息给所有用户,但不会真正关机。
-c “message” 指定将在“系统关闭”窗口中的“消息”区域显示的消息。
实例:由于此实例没办法截图,因此给给出具体的几个用法。
1、shutdown -r now 马上重新启动
2、shutdown -h +20 20分钟以后关机。
十一、poweroff
主要作用:在关闭计算机操作系统之后,还会发送ACPI指令,通知电源,最后切断系统电源供应。
命令语法:poweroff [OPTIONS…]
其中一些重要的参数:
-n:关闭操作系统时不执行sync操作。
-w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中记录。
-d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中。
-f:强制关闭操作系统。
-i:关闭操作系统之前关闭所有的网络接口。
-h:关闭操作系统之前将系统中所有的硬件设置为备用模式。
实例:如果使用poweroff而不加参数,则表示直接关闭系统。
十二、reboot
主要作用:重新启动系统。
命令语法:reboot [OPTIONS…]
其中一些重要的参数:
-n:重启前保留当前数据。
-w:模拟重启,并将数据写入到“/var/log/wtmp”日志文件中。
-d:重启操作系统时,不将操作写入日志文件“/var/log/wtmp”中。
-f:强制关闭操作系统。
-i:关闭操作系统之前关闭所有的网络接口。
实例:如果确定需要重启系统,直接输入reboot即可,或者根据需要添加响应的选项参数。
密密麻麻写了一大片,就是为了给诸如像我一样初学Linux的同学有一个初步的认识。在今后的时间里,还将会对Linux中更加高级的知识加以记录。
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90069