Linux基础入门=====

1Linux系统介绍

操作系统

简介

操作系统(英语:Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操作系统所处位置作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,提供了各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口。

组成结构

操作系统理论研究者有时把操作系统分成四大部分:
驱动程序:最底层的、直接控制和监视各类硬件的部分,它们的职责是隐藏硬件的具体细节,并向其他部分提供一个抽象的、通用的接口。
内核:操作系统内核部分,通常运行在最高特权级,负责提供基础性、结构性的功能。
接口库:是一系列特殊的程序库,它们职责在于把系统所提供的基本服务包装成应用程序所能够使用的编程接口(API),是最靠近应用程序的部分。例如,GNU C运行期库就属于此类,它把各种操作系统的内部编程接口包装成ANSI C和POSIX编程接口的形式。
外围:是指操作系统中除以上三类以外的所有其他部分,通常是用于提供特定高级服务的部件。例如,在微内核结构中,大部分系统服务,以及UNIX/Linux 中各种守护进程都通常被划归此列。
并不是所有的操作系统都严格包括这四大部分。例如,在早期的微软视窗操作系统中,各部分耦合程度很深,难以区分彼此。而在使用外核结构的操作系统中,则根本没有驱动程序的概念。操作系统中四大部分的不同布局,也就形成了几种整体结构的分野。常见的结构包括:简单结构、层结构、微内核结构、垂直结构、和虚拟机结构。

主要功能

操作系统的主要功能是资源管理,程序控制和人机交互等。计算机系统的资源可分为设备资源和信息资源两大类。设备资源指的是组成计算机的硬件设备,如中央处理器,主存储器,磁盘存储器,打印机,磁带存储器,显示器,键盘输入设备和鼠标等。信息资源指的是存放于计算机内的各种数据,如文件,程序库,知识库,系统软件和应用软件等。操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界面,输入命令。操作系统则对命令进行解释,驱动硬件设备,实现用户要求。

linux系统特点

(1)完全免费:Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
(2)完全兼容POSIX 1.0标准:这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
(3)多用户、多任务:Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
(4)良好的界面:Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
(5)丰富的网络功能:Unix是在互联网的基础上繁荣起来的,Linux的网络功能当然不会逊色。它的网络功能和其内核紧密相连,在这方面Linux要优于其他操作系统。在Linux中,用户可以轻松实现网页浏览、文件传输、远程登陆等网络工作。并且可以作为服务器提供WWW、FTP、E-Mail等服务。
(6)可靠的安全、稳定性能:Linux采取了许多安全技术措施,其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。Linux由于需要应用到网络服务器,这对稳定性也有比较高的要求,实际上Linux在这方面也十分出色。
(7)支持多种平台:Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
(8)不足:没有特定的支持厂商;游戏娱乐支持度不足专业软件支持度不足。

2基本概念及操作-------

##问题一:使用通配符进行模糊匹配时未找到匹配项
解决:在输入命令时,命令与输入之间应有一个空格,如图:


##作业:安装banner,toilet,figlet命令
解决:

3用户及文件权限管理

##问题一:用shiyanlou用户将新建用户lilei添加至sudo组获得root权限后在后续操作变更文件所有者时需要密码
解决:使用sudo vi /etc/sudoers命令,在文件中找到root ALL=(ALL:ALL)ALL,在后面加一行lilei ALL=(ALL) NOPASSWD:ALL。执行结果如图所示:



##作业:添加一个用户loutest,使用sudo创建文件/opt/forloutest,设置成用户loutest可以读写。
###添加用户loutest

###使用sudo创建文件/opt/forloutest


###设置成用户loutest可读写:

4Linux 目录结构及文件基本操作

 ##新建文件及目录:


##复制目录:

##删除目录:

##移动文件:

##重命名:

##查看文件:

作业:

5环境变量与文件查找

 ##变量
 关于变量名,并不是任何形式的变量名都是可用的,变量名只能是英文字母,数字或者下划线,且不能以数字作为开头。
![](http://images2015.cnblogs.com/blog/1115777/201703/1115777-20170304173833626-959346724.png)
##环境变量
关于环境变量,可以简单的理解成在当前进程的子进程是否有效,有效则为环境变量,否则不是。例子体会实质区别:
![](http://images2015.cnblogs.com/blog/1115777/201703/1115777-20170304175600876-1082301279.png)
使用vimdiff工具比较导出的几个文件的内容(set,env,export)。


##命令的查找路径与顺序
创建shell脚本:

创建一个C文本,并将其与之前的shell脚本都移动到一个新建文件夹中:

###问题:如何将运行编辑好的脚本
解决:esc键->:->wq
###作业:数字雨:

6文件打包与大压缩

##打包文件
1表示最快压缩但体积大,9表示体积最小但耗时最久:


##解压文件
使用安静模式,将文件解压到指定目录:

##从指定压缩包删除某个文件:

##作业:天冷的时候,要是有个火炉就好了

7文件系统操作与磁盘管理

查看磁盘和目录的容量

 使用df命令查看磁盘容量,使用du命令查看目录的容量。

作业:cowsay命令,可以让你在终端里以一种动物说话的形式打印出一段话。

8Linux下的帮助命令

内建命令

内建命令实际上是 shell 程序的一部分,其中包含的是一些比较简单的 Linux 系统命令,这些命令是写在bash源码的builtins里面的,并由 shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中。而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。比如:history、cd、exit 等等。

外部命令

外部命令是 Linux 系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。虽然其不包含在 shell 中,但是其命令执行过程是由 shell 程序控制的。外部命令是在 Bash 之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。

9Linux任务计划crontab

crontab 命令用于设置周期性被执行的指令。该命令从输入设备读取指令,并将其存放于 crontab 文件中,以供之后读取和执行。通常,crontab 储存的指令被守护进程激活,crond 为其守护进程,crond 常常在后台运行,每一分钟会检查一次是否有预定的作业需要执行。通过 crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script 脚本。时间间隔的单位可以是分钟、小时、日、月、周的任意组合。

10命令执行顺序控制与管道

本节主要学习顺序执行、选择执行、管道、cut 命令、grep 命令、wc 命令、sort 命令等,高效率使用 Linux 的技巧。
1.顺序执行:简单的顺序执行你可以使用;来完成;&&用来实现选择性执行的,它表示如果前面的命令执行结果(不是表示终端输出的内容,而是表示命令执行状态的结果)返回0则执行后面的,否则不执行,||与&&起相反的控制效果,当上一条命令执行结果为≠0(\(?≠0)时则执行它后面的命令。 2.管道:管道是一种通信机制,通常用于进程间的通信(也可通过socket进行网络通信),它表现出来的形式就是将前面每一个进程的输出(stdout)直接作为下一个进程的输入。 先试用一下管道,比如查看/etc目录下有哪些文件和目录,使用ls命令来查看:\) ls -al /etc;有太多内容,屏幕不能完全显示,这时候可以使用滚动条或快捷键滚动窗口来查看。不过这时候可以使用管道:$ ls -al /etc | less通过管道将前一个命令(ls)的输出作为下一个命令(less)的输入,然后就可以一行一行地看。
cut 命令:打印每一行的某一字段,打印/etc/passwd文件中以:为分隔符的第1个字段和第6个字段分别表示用户名和其家目录:$ cut /etc/passwd -d ':' -f 1,6
grep 命令:在文本中或 stdin 中查找匹配字符串。grep命令是很强大的,也是相当常用的一个命令,它结合正则表达式可以实现很复杂却很高效的匹配和查找,不过在学习正则表达式之前,这里介绍它简单的使用,而关于正则表达式后面将会有单独一小节介绍到时会再继续学习grep命令和其他一些命令。grep命令的一般形式为:grep [命令选项]... 用于匹配的表达式 [文件]...
sort 排序命令:这个命令前面我们也是用过多次,功能很简单就是将输入按照一定方式排序,然后再输出,它支持的排序有按字典排序,数字排序,按月份排序,随机排序,反转排序,指定特定字段进行排序等等。wc 命令,简单小巧的计数工具。wc 命令用于统计并输出一个文件中行、单词和字节的数目,比如输出/etc/passwd文件的统计信息:$ wc /etc/passwd
uniq 去重命令:uniq命令可以用于过滤或者输出重复行。过滤重复行可以使用history命令查看最近执行过的命令(实际为读取${SHELL}_history文件,如我们环境中的~/.zsh_history文件),不过你可能只想查看使用了那个命令而不需要知道具体干了什么,那么你可能就会要想去掉命令后面的参数然后去掉重复的命令:

posted on 2017-03-04 21:20  20169319李新玉  阅读(804)  评论(1编辑  收藏  举报

导航