Linux学习之入门篇(一)

来源:互联网 发布:打印销售单软件 编辑:程序博客网 时间:2024/05/20 18:53

一、引言

很早之前就知道了这个系统,印象中这个家伙好像很不好惹的样子。所以我直到现在才开始真正接触它,如果不是由于一些特殊的理由,我根本不会去试这个毒。毕竟在我程序员的身份之上我还是一个正常的人。由于对这家伙的不了解,我之前甚至一直叫它“林纳斯”,就算朋友纠正了几次我都没能记住。
不过现在好歹是要认真学习一下了,为了不让主观能动性过早地消退吧,我决定把我学习的过程使用博客记录下来。

二、开始学习
1.介绍:

1.读音
首先更正一下读音:这货的叫法是种类繁多,但是它一定不叫做“林纳斯”。
根据linux的创始人Linus Torvalds的说法,Linux的发音和“Minix”是押韵的。“Li”中“i”的发音类似于“Minix”中“i”的发音,而“nux”中“u”的发音类似于英文单词“profess”中“o”的发音。这样的话读音就是/’linэks/,差不多就是“里讷(er)克斯”吧。但是也有/li’n^ks/(“里那克斯”)或/li’nju:ks/(“里纽克斯”)或/’liniks/(“里妮克斯”)等等的读法。
是不是光读音就能让人望而却步了?
在国内的话,好像是读成/li’nju:ks/(“里纽克斯”)的人更多一点。emmm,也挺顺口的。
2.历史渊源:(以下可能存在瞎掰)
Linux出现于1991年,但早在1970s就有一个叫做Unix的系统出现了。这个Unix可以说是Linux的爸爸,它是由 Ken Thompson的Unics改编而来。但是Unics是由汇编语言编写的,移植性极差,所以后来 Thompson 和 Dennis Ritchie合作想将 Unics 改用高级语言来撰写。当时先使用了一门叫做B语言的高级语言来改写,但是发现基于B语言的Unics性能太差。为了改进Unics的性能,Dennis Ritchie直接将B语言做了升级,于是C语言应运而生。(NB!没有枪炮直接自己造)然后基于C语言的Unics核心就诞生了。
但是在这之后,因为版权限制的原因,这个系统的源代码并不能被“扩散”,导致对这个系统有了解的人并不多。
直到1991年,来自芬兰的赫尔辛基大学学生Linus Torvalds在BBS上发了这样的一条消息:
!Hello everybody out there using minixI’m
doing a (free) operation system (just a hobby,
won’t be big and professional like gnu) for 386(486) AT clones.
I’ve currently ported bash (1.08) and gcc (1.40),
and things seem to work. This implies that i’ll get
something practical within a few months, and I’d like to know
what features most people want. Any suggestions are welcome,
but I won’t promise I’ll implement them :-)
很多人看到了这条消息,他们去Torvalds提供的网站上下载了这个基于Minix开发的操作系统核心来安装。而且,因为Torvalds放置核心的那个 FTP 网站的目录为:Linux, 这之后,大家便称这个核心为 Linux 了。
在后来,那些对这个操作系统表现出兴趣的人们,自发的在网上互相展开了联系和交流。有些人提供测试系统兼容的硬件,有些人帮助Torvalds进行测试,还有人帮助他完善程序。虽然从来没有见过面,但这些人却在 1994 年完成了Linux 的第一个核心正式版——version 1.0!并在1996年2.0版本推出时由Torvalds指定企鹅作为这个系统的吉祥物。
再之后,由于Linux的开源特性,移植性并不好的Linux也被开发到了很多大公司的硬件了,比如IBM、HP。然后,有着很多自由软件团队的存在,可以在 Linux 上面运行的软件也越来越多。后来的发展就是有些公司将Linux核心和一些工具还有一些可运行的软件整合起来,加上自己具有创意的工具程序整合起来形成各种各样的 distribution。比如:RedHat、CentOS、Debian、Ubuntu,还有国产的红旗、BluePoint等等。
3.Linux优点:
包括配备需求低廉、丰富的网络功能、可靠的系统安全、良好的可移植性、具有标准兼容性等,当然,最重要的还是开源,使Linux在Windows的强大攻势下还能保持着惊人的活力。

2.环境搭建
环境:我是在win10的基础上使用VMware Workstation Pro+CentOS6.3 做基础环境。另外使用SecureCRT做远程连接系统的模拟。
理由:因为电脑是win10系统,避免VMware有不兼容的情况,所以使用的是最新版的VMware Pro。另外,CentOS没有用最新版的,因为它是使用者较多的版本, 这样一来,发生问题时,也会有大量的解决方法能在网上找到。
下面提供一些下载链接:
VMware Pro下载地址
激活序列号:5A02H-AU243-TZJ49-GTC7K-3C61N
CentOS官网
SecureCRT
SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,同时支持Telnet和rlogin协议。也是一款用于连接运行包括Windows、UNIX和VMS的远程系统的理想工具。
搭建过程注意事项:
(1)首先安装VMware,在此基础上新建虚拟机,源文件指向下载的CentOS镜像文件,即可开始系统的安装。系统最好分配2GB运行内存和20GB存储空间。

因为在 Linux 服务器中,运行内存的重要性比 CPU 还要高的多!因为如果主存储器不够大, 就会使用到硬盘的内存置换空间(swap)。而硬盘比内存的速度要慢的多,而且我们是要用到图形化界面(X window)的。

(2)另外很重要的一点就是,网络适配器最好选用NAT模式。因为用的是虚拟机,通过NAT的话,我们电脑连得上网,Linux就连的上。而且就算是不用虚拟机,NAT可以实现 IP 分享器的功能。而且NAT 还可以额外的加装很多分析软件, 可以用来分析客户端的联机,或者是用来控制带宽和流量。

NAT连接过程:①先在网络和共享中心中网络适配器名为VM8的适配器上进行一些设置。点击VM8属性上的IPV4协议,在协议上不要使用自动获取IP,而是指定IP地址、网关和DNS服务器。
比如这样(网关可改为192.168.2.1):
无
②在VMware workstations的编辑选项卡中的虚拟网络编辑器中去更改虚拟机的网络,包括网关和子网IP。
比如这样:
无
然后就可以了。
上图:
联网成功
(3)使用虚拟机需要注意,不要配置一些无用的虚拟硬件,比如说打印机、声卡之类的,这样会给系统额外的负担,而且还有可能造成你的主系统硬件功能不稳定。比如我的win10 声卡就出现了兼容性问题。

一切配置完成,我们就可以按部就班地安装系统了。当然你也能先启动系统,之后再进行配置也是可以的。

3.开始了解
在准备工作完成之后,我们就可以开始学习了。
(1)Linux的目录结构:
Linux目录结构

解释:
- bin (binaries)存放二进制可执行文件
- sbin (super user binaries)存放二进制可执行文件,只有root才能访问
- etc (etcetera)存放系统配置文件
- usr (unix shared resources)用于存放共享的系统资源
- home 存放用户文件的根目录
- root 超级用户目录
- dev (devices)用于存放设备文件
- lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
- mnt (mount)系统管理员安装临时文件系统的安装点
- boot 存放用于系统引导时使用的各种文件
- tmp (temporary)用于存放各种临时文件
- var (variable)用于存放运行时需要改变数据的文件

(二)常用命令:
1.命令总的抽象起来就是下面这种形式:

命令格式:命令 -选项 参数

2.命令分类:
① 内部命令:属于Shell解析器的一部分
- 比如
- cd 切换目录(change directory)
-pwd 显示当前工作目录(print working directory)
-help 帮助
② 外部命令:独立于Shell解析器之外的文件程序
比如:
-ls 显示文件和目录列表(list)
-mkdir 创建目录(make directoriy)
-cp 复制文件或目录(copy)
3.常用命令:
Linux常用命令
4.尝试安装软件:
在linux下安装软件,有它特殊的方法。但都要记得注意系统的位数,不要装错了。
①直接解压安装包到指定的位置
进入用户目录下,先创建一个文件夹app: mkdir app
解压文件到app:tar -zxvf 文件全名 -c app
这样就将安装包解压到你的安装路径下了
然后修改环境变量 sudo vi /etc/profile
比如安装jdk的时候,将jdk的压缩包解压到/home/FirstVm(我的用户名)/app/jdk1.7.0_65下,
sudo tar -xvf xxx.tar.gz -C /FirstVm/app/jdk1.7.0_65,然后再配置jdk的环境变量。sudo vi /etc/profile,输入或者拷贝下面一段:

#set java environment
JAVA_HOME=/FirstVm/app/jdk1.7.0_65
export PATH=PATH:JAVA_HOME/bin

然后 source /etc/profile 来生效
可以测试是否生效 echo $JAVA_HOME
②直接拖进虚拟机,比如eclipse的安装包
③ 通过安装源安装:
安装mysql,使用apt-get命令,对于不同的版本这个安装源命令也不同,centos是yum。
Sudo apt-get install mysql-server
Sudo apt-get install mysql-client
安装过程中会要求设置mysql的root密码。
安装好后,通过,sudo netstat -tap|grep mysql,查看是否安装成功。
也可以登录mysql查看,mysql -u root -p,然后提示输入密码。

①mysql的命令:
Sudo start mysql
启动mysql服务
Sudo stop mysql
停止mysql服务
②关于设置远程访问
1) 正常情况下mysql占用的3306端口只是在127.0.0.1上监听,拒绝其他ip的访问,取消本地监听的方法:修改my.conf文件,sudo vi /etc/mysql/my.cnf,找到bind-address=127.0.0.1这行,注释掉。修改期间要变更my.cnf的权限,修改完毕后请将它的权限设置回0440。否则不能开启mysql。
2) 开启允许远程访问。
登录mysql后,输入如下命令:grant all privileges on . to ‘username’@’%’identified by ‘password’;第一个引号里面输入允许登录的用户名,最后一个引号里面写这个用户的密码。
Flush privileges;
3) 在ubuntu系统下,配置防火墙,打开3306端口,sudo ufw allow 3306。其他版本,也做相应的防火墙开启处理。

③Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
④RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括RedHat、CentOS、SUSE等Linux的分发版本都有采用,可以算是公认的行业标准了。RPM文件在Linux系统中的安装最为简便
⑤ rpm的常用参数
i:安装应用程序(install) e:卸载应用程序(erase) vh:显示安装进度;(verbose hash)
U:升级软件包;(update) qa: 显示所有已安装软件包(query all) 结合grep命令使用 例子:rmp -ivh
gcc-c++-4.4.7-3.el6.x86_64.rpm
⑥注意:软件的安装都是既可以通过软件包,也可以通过软件源安装,一般使用软件源在更新上比较方便,在网络不允许的情况下,使用软件包可以解决没有网络的问题。

四、额外的几点
1.学习Linux的好习惯

善于查看man page(manual)等帮助文档
利用好Tab键
掌握好一些快捷键
ctrl + c(停止当前进程)
ctrl + r(查看命令历史)
ctrl + l(清屏,与clear命令作用相同)

2.VIM编辑器专题:

VIM工作模式
1.插入命令:
i 在光标前插入
I 在光标当前行开始插入
a 在光标后插入
A 在光标当前行末尾插入
o 在光标当前行的下一行插入新行
O 在光标当前行的上一行插入新行
2.定位命令:
:set nu 显示行号
:set nonu 取消行号
gg 到文本的第一行
G 到文本的最后一行
:n 到文本的第n行
3.删除命令:
x 删除光标所在处字符
nx 删除光标所在处后的n个字符
dd 删除光标所在行。ndd删除n行
dG 删除光标所在行到末尾行的所以内容
D 删除光标所在处到行尾的内容
:n1,n2d 删除指定范围的行
4.替换和取消命令
u undo,取消上一步操作
Ctrl + r redo,返回到undo之前
r 替换光标所在处的字符
R 从光标所在处开始替换,按Esc键结束
5.常用快捷键
Shift+ zz 保存退出,与“:wq”作用相同
v 进入字符可视模式
V 或 Shift + v 进入行可视模式
Ctrl + v 进入块可视模式

3.SecureCRT

在SecureCRT中与虚拟机进行连接,可以模拟远程操控服务器。
首先在软件中配置连接,输入服务器IP,然后端口默认为22,协议ssh2,输入密码保存之即可连接。
如果不知道IP,可到虚拟机中使用终端的ifconfig命令得到innet address即可。
另外可以在SecureCRT中的SessionOptions中选择Appreance设置主题,这里选的是这个
这里写图片描述
在secureCRT上面 用快捷键alt+P打开sftp传输窗口,使用put命令上传文件到服务器;(在这里我遇到了问题,就是只有我的移动硬盘中的文件不能进行put上传,而系统盘不受影响,不知道是不是有相关的安全性的设计)
当然也可以在图形界面filezilla上面进行上传 端口都是22因为22是sftp的传输端口,ftp则是21;

4.一些有趣的点:

1.图形界面知识linux的一个进程,不会因为图形界面卡住而导致linux死机,永远不会死机(为什么)
所以游戏会很愉快
2.重启 sudo init 3 进入命令行模式
init 6 重启一次
startx或是init 5重新进入图形界面(这样在图形界面卡住还能重进,不用重启)

五、总结
从对Linux这个系统的不了解,到现在的略通皮毛,好事情是我的主观能动性还算没有消退。只希望以后不要因为莫名其妙的挫败感影响到之后的学习道路吧,所幸,现在遇到的问题在互联网上都有相应的解决方法,不必因为翻阅资料花费太多的时间。
嗯,暂时把这个作为一个系列来写吧。挖好坑,以后慢慢填。