Linux入门基础教程

@TO





1. 1      Linux操作系统简介

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
1991年的10月5日,Linux创始人林纳斯·托瓦兹(Linus Torvalds)在comp.os.minix新闻组上发布消息,正式向外宣布Linux内核的诞生,1994年3月,Linux 1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL(General Public License的缩写,是一份GNU通用公共授权)协议。
Linux具有如下优点:
Ø       稳定、免费或者花费少
Ø       安全性高
Ø       多任务,多用户
Ø       耗资源少
Ø       由于内核小,所以它可以支持多种电子产品,如:Android手机、PDA等。

1. 2      Linux发展趋势

随着IT产业的不断发展,用户对网站体验要求也越来越高,而目前主流网站后端承载系统都是Linux系统,目前Android手机全部基于Linux内核研发。企业大数据、云存储、虚拟化等先进技术都是基于Linux系统。
2010年据有关权威部门统计:将来几年内我国软件行业的从业机会十分庞大,中国每年对软件人才的需求将达到50万人左右。而对于Linux 专业人才的就业前景,更是广阔;据悉在未来5-10年内 Linux 专业人才的需求将达到 120 万+!尤其是有经验的资深的Linux工程师目前非常的缺乏,薪资也是非常诱人,平均月薪都是15-20K,能力强的薪资更高。

所以机会对每个人都是公平的,关键是我们每个人如何去行动,选择大于努力。
 

1. 3      Linux系统安装

在安装Linux系统之前,先来了解windows系统结构,windows系统一般是安装在C盘系统盘,同样Linux也有类似的系统盘(/根分区),Linux通常分区为(根分区/、swap分区),Linux系统以文件的存储方式,所有的文件都是存储在某个目录下的,类似于windows的文件夹。
对于文件系统的属性来说,windows文件系统类型一般是ntfs、fat32等,而Linux文件系统类型则为ext2、ext3、ext4等(文件系统:是操作系统用于明确磁盘或分区上的文件的方法和数据结构,文件系统由三部分组成:与文件管理有关软件、被管理文件以及实施文件管理所需数据结构。)
安装 Linux系统是每一个初学者的第一个门槛。在这个过程中间,最大的困惑莫过于给硬盘进行分区。虽然现在各种发行版本的 Linux 已经提供了友好的图形交互界面,但是很多人还是感觉无从下手。这其中的原因主要是不清楚 Linux 的分区规定。就好比如果我们了解了windows分区的规则,系统盘C、数据盘D等,就很好分区了。
在 Linux 中规定,每一个硬盘设备最多只能有 4个主分区(其中包含扩展分区)构成,任何一个扩展分区都要占用一个主分区号码,也就是在一个硬盘中,主分区和扩展分区一共最多是 4 个。
下面正式来安装Linux系统,安装系统前需要准备如下软件:
ü       VMware workstation 10.0
ü       CentOS 5.8 x86_i386.iso
安装图解如下:
第一步,新建虚拟机如下图:

第二步,选择相关选项,如下图:

第三步选择“稍后安装操作系统”,如下图:

第四步,选择客户机操作系统类型如下图:

第五步,设置虚拟机硬盘大小为20G,最低不能小于5G,如下图:

第六步,虚拟机新建完成,如下图:

第七步,修改虚拟机内存为512M,并添加ISO镜像,如下图:

自此,虚拟机新建完成,接下来点击“启动此虚拟机”进行Linux系统安装,Linux系统安装图解如下:
第一步,进入安装界面,直接按Enter回车键即可。

第二步,光盘检测,选择SKIP跳过。


第三步,选择安装过程中的语言,初学者可以选择“简体中文”。

第四步,选择初始化整个硬盘,清除所有数据。

第五步,选择分区方式为“自定义分区“。


第五步,点击“新建“-首先创建一个swap交换分区,大小为物理内存的2倍(1024M)。

第六步,继续创建分区,选择“新建“,然后创建根分区/,如下图选择,大小为剩余所有空间即可。


第七步,默认点击下一步,同时默认DHCP配置,时钟选择上海,去掉UTC勾,点击下一步。



第八步,设置root密码,至少六位,点击下一步。

第九步,系统安装包选择,这里选择“现在定制“。

第十步,系统安装包选择,左侧选择“开发“----右侧选择”开发工具“和“开发库”,语言选择“支持中文“,其他一概不选择。


安装完毕会提示“reboot“,直接回车即可。

1. 4      Linux学习技巧

初学者可以自己安装虚拟机,然后把linux常用命令例如cd、ls、chmod、useradd、vi等等多练习几十遍,把自己敲打命令的熟练程度提升上来。
然后根据文档搭建Linux下常见的各种服务(DHCP、SAMBA、DNS、Apache、Mysql等),遇到问题后可以在google搜索,搜索的时候多看几篇文章,综合最好的文章来解决问题。
能够熟练的搭建服务后,理解每个服务的完整配置和优化,可以拓展思维。例如LAMP,我们一般是把所有服务放在一台机器上,如果分开多台该如何部署呢?等等。
平时多积累shell编程,可以在网上查找前辈们写的非常好的shell,自己下载下来多练习几遍,从中吸取,不断提高。
建立一个自己的学习博客,把平时工作学习中的知识都记录在里面,这样也可以供别人来参考同时也能提高自己的编写文档及方案的能力。
通过以上学习能够满足企业的一般应有,需要达到资深级别,还需要深入学习集群架构、负载均衡、自动化运维、运维开发等知识。最后还是一句话:多练习才是硬道理!实践出真知!

1.   Linux系统篇

2.1            Linux系统管理

通过前两章的学习,我们已经能够独立安装Linux系统,已经掌握了Linux学习的技巧,那接下来,我们将系统的来了解Linux系统各目录、权限及常用命令的使用。

2.1. 1         Linux目录初识

通过前面的学习,我们已经能够独立安装完一个linux系统,那接下来我们来熟悉一下Linux系统里面的各个目录文件夹的大致功能:
主要的目录树的有/、/root、/home、/usr、/bin等目录。下面是一个典型的linux目录结构如下: (附图表)

/ 根目录 
/bin 存放必要的命令 
/boot 存放内核以及启动所需的文件
/dev 存放设备文件 
/etc 存放系统配置文件 
/home 普通用户的宿主目录,用户数据存放在其主目录中 
/lib 存放必要的运行库 
/mnt 存放临时的映射文件系统,通常用来挂载使用。
 /proc 存放存储进程和系统信息 
/root 超级用户的主目录 
/sbin 存放系统管理程序 
/tmp 存放临时文件
/usr 存放应用程序,命令程序文件、程序库、手册和其它文档。 
/var 系统默认日志存放目录

2.1. 2         Linux必备命令

默认进入系统,我们会看到这样的字符: [root@localhost ~]#,其中#代表当前是root用户登录,如果是KaTeX parse error: Expected 'EOF', got '&' at position 127: …:0px;">cd命令, cd&̲nbsp; /home&nbs…" /etc/samba/smb.conf.bak |grep -v “^;” >/etc/samba/smb.conf
查看smb.conf配置文件如下:
[global]
        workgroup = MYGROUP
        server string = Samba Server Version %v
        security = share
        passdb backend = tdbsam
        load printers = yes
        cups options = raw
 
[temp]
     comment=Temporary file space
     path=/tmp
     read only=no
     public=yes
 
[data]
     comment=Temporary file space
     path=/data
     read only=no
     public=yes
根据需求修改之后重启服务:
[root@node1 ~]# /etc/init.d/smb restart
Shutting down SMB services:                                [FAILED]
Shutting down NMB services:                                [FAILED]
Starting SMB services:                                     [  OK  ]
Starting NMB services:                                     [  OK  ]
 

workgroup =WORKGROUP 设Samba Server 所要加入的工作组或者域。
server string = Samba Server Version %vSamba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。
 
 
 
 
security = user
1.share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。
2. user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。
3. server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。
4. domain:域安全级别,使用主域控制器(PDC)来完成认证。
comment = test是对该共享的描述,可以是任意字符串。
path = /home/test共享目录路径
browseable= yes/no 用来指定该共享是否可以浏览。
writable = yes/nowritable用来指定该共享路径是否可写。
available = yes/noavailable用来指定该共享资源是否可用
admin users = admin该共享的管理者
valid users = test允许访问该共享的用户
invalid users = test禁止访问该共享的用户
write list = test允许写入该共享的用户
public = yes/nopublic用来指定该共享是否允许guest账户访问。

 
在浏览器里面访问方式为:\192.168.33.10 (SMB文件共享服务端IP),如何没有权限访问,需要注意防火墙和selinux设置,可以使用如下命令关闭:
/etc/init.d/iptables stop ;sed  –i   ‘/SELINUX/s/enforcing/disabled’  /etc/sysconfig/selinux

3.1. 4         搭建NFS服务器

NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的。
NFS应用场景,常用于高可用文件共享,多台服务器共享同样的数据,可扩展性比较差,本身高可用方案不完善,取而代之的数据量比较大的可以采用MFS、TFS、HDFS等等分布式文件系统。
NFS安装配置:
Yum  install nfs*  portmap  -y 如下图,安装成功即可。

NFS安装完毕,需要创建共享目录,共享目录在/etc/exports文件里面配置,可配置参数如下:
/data/      192.168.33.11(rw,sync,no_hide,no_all_squash)
在配置文件中添加如上一行,然后重启Portmap,NFS服务即可,/etc/init.d/portmap restart ;/etc/init.d/nfs restart
第一列/data/表示需要共享的目录。
IP表示允许哪个客户端访问。
IP后括号里的设置表示对该共享文件的权限。
ro                      只读访问
rw                      读写访问
sync                    所有数据在请求时写入共享
hide                    在NFS共享目录中不共享其子目录
no_hide                 共享NFS目录的子目录
all_squash              共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash           保留共享文件的UID和GID(默认)
root_squash             root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas           root用户具有根目录的完全管理访问权限


Linux客户端,如何想使用这个NFS文件系统,需要在客户端挂载,挂载命令为:
Mount –t  nfs  192.168.33.10:/data/    /mnt 即可。如果有报错根据错误信息排查。常见问题有rpc服务没有启动、防火墙没关闭、selinux未关闭等问题。(拓展* 有兴趣的童鞋可以研究MFS(分布式文件系统)。)

3.1. 5         搭建FTP服务器

FTP 是文件传输协议,正是由于这种协议使得主机间可以共享文件。 FTP 使用TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。
vsftpd是一款在Linux发行版中最主流的FTP服务器程序;特点是小巧轻快,安全易用;能让其自身特点得发发挥和掌握。
目前在开源操作系统中常用的FTP服务器程序主要有vsftpd、ProFTPD、PureFTPd和wuftpd等,这么多FTP服务器程序,关键在于自己熟练哪一个就使用哪一个。今天我们来研究一下VSFTPD简单安装及使用。安装命令: yum  install vsftpd*  -y

修改配置文件如下:
#vsftpd config 2014 by wugk
anonymous_enable=NO    //禁止匿名用户访问
local_enable=YES  //允许本地用户登录FTP
write_enable=YES   //运行用户在FTP目录有写入的权限
local_umask=022   //设置本地用户的文件生成掩码为022,默认是077
dirmessage_enable=YES //激活目录信息,当远程用户更改目录时,将出现提示信息
xferlog_enable=YES   //启用上传和下载日志功能
connect_from_port_20=YES  //启用FTP数据端口的连接请求
xferlog_std_format=YES  //是否使用标准的ftpd xferlog日志文件格式
listen=YES  //使vsftpd处于独立启动监听端口模式
pam_service_name=vsftpd //设置PAM认证服务配置文件名称,文件存放在/etc/pam.d/目录
userlist_enable=YES   //用户列表中的用户是否允许登录FTP服务器,默认是不允许
tcp_wrappers=YES    //使用tcp_wrqppers作为主机访问控制方式
 
1)    第一种方法就是使用系统用户登录FTP,但是也是比较危险的,先测试系统用户登录FTP,在Linux系统上创建useradd  test 用户,并为其设置名,然后在xp客户端打开我的电脑资源里面访问 ftp://192.168.33.10,输入用户名和密码即可访问,进行创建和删除操作。
2)    第二种方法比较安全,配置相对复杂一点,就是使用vsftpd虚拟用户登录FTP服务器进行常见的操作。
Ø       首先安装FTP 虚拟用户需要用到的软件及认证模块
yum install pam* db4* --skip-broken –y
创建并生成vsftpd数据库文件vi /etc/vsftpd/ftpusers.txt,内容如下:
第一行为FTP虚拟用户,登录用户名,第二行为密码,第三行为用户名,依次类推。
wugk
1
wugk1
1
Ø       生成数据库文件命令:
db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db
chmod 700 /etc/vsftpd/vsftpd_login.db
Ø       配置PAM验证文件:
在配置文件vi /etc/pam.d/vsftpd 行首加入如下两行认证语句:(如果是32位,lib64需改成lib,如果RedHat,加入的语句不一样,需注意)
auth    sufficient      /lib64/security/pam_userdb.so     db=/etc/vsftpd/vsftpd_login
account sufficient      /lib64/security/pam_userdb.so      db=/etc/vsftpd/vsftpd_login
Ø       创建vsftpd映射本地用户:
所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码,也不需要登录。主要用来做虚拟用户映射使用。
useradd  –d /home/ftpuser –s /sbin/nologin ftpuser
Ø       修改完整版配置文件内容如下:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
listen=YES
 
guest_enable=YES
guest_username=ftpuser
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/vsftpd_user_conf
virtual_use_local_privs=YES
 
   保存重启,/etc/init.d/vsftpd restart 即可使用虚拟用户登录,这时候所有的虚拟用户共同使用/home/ftpuser目录上传下载,如果想使用自己独立的目录,可以在/etc/vsftpd/vsftpd_user_conf目录创建各自的配置文件,如给wugk创建独立的配置文件:
vi /etc/vsftpd/vsftpd_user_conf/wugk ,内容如下,建立自己的FTP目录。
local_root=/home/ftpsite/wugk
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
 重启,使用客户端登录FTP,测试即可。关于FTP讲解就到此,windows还可以使用Server-U来搭建FTP服务器端,有兴趣的童鞋可以研究一下。
Ø       FTP主被动模式
FTP主动模式:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的port 21命令端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
FTP被动模式:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的port 21命令端口。然后客户端开始监听端口N+1,同时客户端提交 PASV命令。服务器会开启一个任意的非特权端口(P >1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。


C

欢迎使用Markdown编辑器

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目Value
电脑$1600
手机$12
导管$1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文本居中第二列文本居右第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPEASCIIHTML
Single backticks'Isn't this fun?'‘Isn’t this fun?’
Quotes"Isn't this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值