谈Linux
新手谈Linux
目录:
来源: http://www.cnblogs.com/zxlovenet/p/4056354.html
什么是Linux?
维基百科上解释说:Linux是一种自由和开放源代码的类UNIX操作系统。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多数Linux系统还包括了像提供GUI界面的X Window之类的程序。
Linux与UNIX的区别
Linux和UNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。Linux的思想源于UNIX。Linux核心是免费的,核心代码是开放的,UNIX的核心并不公开。
Linux与Windows比较
通俗的语言是,Linux比较开放,适合程序员,因为你可以了解到Linux的每个细节。
什么是Linux发布版?
严格来讲,术语Linux只表示操作系统内核本身,但通常采用Linux内核来表达该意思。Linux则常用来指基于Linux内核的完整操作系统,包括GUI组件和许多其他实用工具。有些组织、公司和个人将这些整合发布,比较知名的Linux发布版有Ubuntu、RedHat、CentOS、Suse等。
一个典型的Linux发布版包括:Linux内核,一些GNU库和工具,命令行shell,图形界面的X窗口系统和相应的桌面环境,如KDE或GNOME,并包含数千种从办公包,编译器,文本编辑器,小游戏,儿童教育软件,到科学工具的应用软件。
众多的Linux发行版令人眼花缭乱,新手推荐使用Ubuntu,好上手,稳定性比较好的发行版推荐Debian。
Linux应用领域
总的来说Linux应用领域广泛,不适合普通用户,因为Linux在桌面领域做的不好,更多的还是需要在终端下操作。不过最近几年有了改善,我认为比Windows做的要漂亮,但是稳定性和易用性还是不如Windows,桌面环境其实还是要不断改善的。Ubuntu下会有很多的比较炫的桌面特效。
Linux平台工作的是在高端服务器领域。由于Linux内核具有稳定性、开放源代码等特点,使用者不必支付大笔的使用费用,比如Windows,所以Linux获得了很多世界著名服务器厂商的支持。在Linux发行套件的公司中,像Redhat公司以提供服务的方式收费,你可以购买他们提供的技术支持,或者免费使用CentOS操作系统。不过国内的操作系统环境大家都懂得。目前,常用的服务器操作系统有UNIX、Linux和Windows。根据调查,Linux操作系统在服务器市场上的占有率已超过50%。
在嵌入式领域中,Linux内核可以根据具体应用场景进行定制和裁剪,能够为专用硬件提供驱动程序,并在此基础上进行开发。
Linux版本的选择
新手最好从Ubuntu入手,也是多数用户的选择,界面做的很不错,软件种类丰富,安装也方便。追求稳定的话建议用Debian,需要自己去配置调整系统设置,安装或更新自己需要的程序,对于基本的了解的Linux系统操作有很大帮助。也可以选择Fedora,是红帽企业Linux的个人桌面分支,其中有很多Linux最前沿的技术,和debian、Ubuntu不是一个分支。如果想要了解Linux系统细节,产生更深刻的理解可以选择Arch Linux,从零开始的工程,在安装的过程中需要静下心来去研究,通过配置系统设置,优化系统性能的配置,去更深的了解Linux系统。
怎么学习Linux?
这个问题其实不难回答,但是很多人没有坚持下去。首先你确认你真的很想学和有必要学Linux,那么好,如果之前没根本没有用过Linux,那你可以先在虚拟机中安装一个Linux发行版,这里推荐Ubuntu,注意不要觉得Ubuntu不正宗,从这里入门没有错。然后找一本Linux的基础教程,像***从入门到精通、30天学会Linux系统......这一类的书籍,坚持看下去,不要间断,学了后面的忘了前面的也没有关系,只要达到 遇到一个问题记得你曾经学但是忘了 这样的效果就可以了,然后在物理机上装上你的Ubuntu,换一本书籍再去学习,这时要多实践,遇到问题不要想着重装系统,而是去想办法解决它,这样才能提高自己。另外记得做笔记,这个不多说,推荐为知笔记,因为有Linux、Windows和网页版本。记得多用,不要三天打鱼两天晒网。这些就够了,能够让你入门了,至于入门之后的结果看你有什么需求了,基本上就是开发或者运维吧,不然我是不会想到用Linux的,对了,再有就是炫耀,不过我觉得这个真的没有什么意义,显得你逼格很高吗,泡沫最终会破的。
Linux系统配置
yum和apt-get源:
yum是一个基于rpm包的软件安装管理器,通常用于redhat、fedora、centos、SUSE等发行版linux中。能够从指定的服务器自动下载rpm包并且安装,还能自动处理解决依赖关系。能够方便的添加、删除、更新软件包,同时配置多个软件资源库,配置文件在/etc/yum.conf。
CentOS 163软件源:
首先备份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载对应版本repo文件, 放入/etc/yum.repos.d/(操作前请做好相应备份)
CentOS5 http://mirrors.163.com/.help/CentOS5-Base-163.repo
CentOS6 http://mirrors.163.com/.help/CentOS6-Base-163.repo
运行
yum clean all
yum makecache
生成缓存
http://mirrors.163.com/.help/centos.html
apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。是debian、Ubuntu发行版的包管理工具,与yum工具类似。
debian 7 163源
deb http://mirrors.163.com/debian wheezy main non-free contrib
deb http://mirrors.163.com/debian wheezy-proposed-updates main contrib non-free
deb-src http://mirrors.163.com/debian wheezy main non-free contrib
deb-src http://mirrors.163.com/debian wheezy-proposed-updates main contrib non-free
deb http://mirrors.163.com/debian-security wheezy/updates main contrib non-free
deb-src http://mirrors.163.com/debian-security wheezy/updates main contrib non-free
Kali科大软件源
vim /etc/apt/sources.list
下面的粘帖进去。
deb http://mirrors.ustc.edu.cn/kali kali main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali main non-free contrib
deb http://mirrors.ustc.edu.cn/kali-security kali/updates main contrib non-free
然后
apt-get update 就可以了。
通过包管理器安装与源代码方式安装的区别
包管理器安装的话方便、快捷,能很轻松就用上,源码的话需要手动编译,会遇到很多问题,比如包依赖问题。
包管理器安装的软件版本比较旧,编译参数不适合自己的业务,而源码安装相对灵活,可以指定版本、模块、路径等。
如果是新手还是推荐通过包管理器安装,能很快上手,只需要了解相关的管理命令就可以了。如果做开发的话入门学习也是合适的,如果开发相对高级的话可能就需要源代码方式安装了。
最终的目标还是要选择好的解决方案。
Linux常用命令
man :任何时候你觉得对一个命令行不是很确定,都可以通过输入“man + 命令”来了解这个命令能确切是做什么的。
ls :列出目录内容。
pwd :在终端中显示当前工作目录的全路径。
cd :要变更你当前所在的目录。
mkdir :创建一个新的目录。
cp :复制文件/重命名文件。
mv :移动文件。
find 和 locate:搜索文件。
kill :快速关闭一个进程。
passwd :更改密码。 -9 表示强迫进程立即停止
md5sum :计算和检验MD5信息签名
history :查询历史记录命令。
sudo :(super user do)命令允许授权用户执行超级用户或者其它用户的命令。
touch :创建一个新文件,或者将文件的访问和修改时间更新为当前时间。
chmod :修改文件的访问权限。
chown :改变文件拥有者和所在用户组。
apt :APT是一个为Debian系列系统(Ubuntu,Kubuntu等等)开发的高级包管理器,在Gnu/Linux系统上,它会为包自动智能地搜索、安装、升级以及解决依赖问题。
find:查找文件或文件夹命令:find / -name filename
chkconfig:chkconfig --list | grep vsftpd 显示默认在哪个级别上启动
chkconfig vsftpd on
chkconfig --list | grep vsftpd
ps -aux | grep fiefox 显示所有进程状态 -ef 查看进程信息
netstat -tp #查看网络连接命令
service --status-all #查看系统服务状态
目前就先总结这么多吧。
包依赖性问题
不论是Linux新手还是老手,在安装和编译软件包的过程中或多或少的都会遇到包依赖性的问题。依赖性问题是由于程序依赖程序代码共享库,没有共享库,程序员每次开发新的程序,都要从头开始重写这些基本的系统操作。当编译程序时,程序员将他的代码链接到这些库。如果链接是静态的,编译后的共享库对象代码就添加到程序执行文件中;如果是动态的,编译后的共享库对象代码只在运行时需要它时由程序员加载。动态可执行文件依赖于正确的共享库或共享对象来进行操作。rpm依赖性尝试在安装时强制实施动态可执行文件的共享对象需求,以便在以后当程序运行时不会有与动态链接过程有关的任何问题。
也就是说在通过包管理器安装的过程中,会自动解决依赖性问题,安装程序的同时安装依赖程序。如果是源码安装就需要自己去解决依赖性问题。
Linux存储系统
在Linux中普通文件和目录文件保存在称为块物理设备的磁盘或者磁带上。一套Linux系统支持若干物理盘,每个物理盘可定义一个或者多个文件系统。Linux的文件系统主要是ext4、ext3和Windows的fat32、ntfs是不一样的。
linux、unix这类操作系统将系统中的一切都作为文件来管理。在Windows中我们常见的硬件设备、磁盘分区等,在linux、unix中都被视作文件,对设备、分区的访问就是读写对应的文件。
挂载点实际上就是linux中的磁盘文件系统的入口目录,类似于Windows中的用来访问不同分区的C:、D:、E:等盘符。其实winxp也支持将一个磁盘分区挂在一个文件夹下面,只是我们C:、D:这样的盘符操作用惯了,一般没有将分区挂到文件夹。挂载点
在Windows操作系统中,是先将物理地址分开,再在分区上建立目录.在Windows操作系统中,所有路径都是从盘符开始,如C://program file。
Linux正好相反,是先有目录,再将物理地址映射到目录中。在Linux操作系统中,所有路径都是从根目录开始。Linux默认可分为3个分区,分别是boot分区、swap分区和根分区。
未完待续 欢迎点赞:目录
谈Linux的更多相关文章
- 浅谈Linux中的信号处理机制(二)
首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号处理机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Lin ...
- 浅谈 Linux 内核无线子系统
浅谈 Linux 内核无线子系统 本文目录 1. 全局概览 2. 模块间接口 3. 数据路径与管理路径 4. 数据包是如何被发送? 5. 谈谈管理路径 6. 数据包又是如何被接收? 7. 总结一下 L ...
- []转帖] 浅谈Linux下的五种I/O模型
浅谈Linux下的五种I/O模型 https://www.cnblogs.com/chy2055/p/5220793.html 一.关于I/O模型的引出 我们都知道,为了OS的安全性等的考虑,进程是 ...
- Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理
Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理 转自:https://www.jianshu.com/p/2b71ea919d49 本系列文章首发于我的个人博 ...
- 浅谈linux中shell变量$#,$@,$0,$1,$2,$?的含义解释
浅谈linux中shell变量$#,$@,$0,$1,$2,$?的含义解释 下面小编就为大家带来一篇浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释.小编觉得挺不错的,现在就分享给 ...
- 深挖计算机基础:趣谈Linux操作系统学习笔记
参考极客时间专栏<趣谈Linux操作系统>学习笔记 核心原理篇:内存管理 趣谈Linux操作系统学习笔记:第二十讲 趣谈Linux操作系统学习笔记:第二十一讲 趣谈Linux操作系统学习笔 ...
- 【VS开发】【DSP开发】浅谈Linux PCI设备驱动(二)
我们在 浅谈Linux PCI设备驱动(一)中(以下简称 浅谈(一) )介绍了PCI的配置寄存器组,而Linux PCI初始化就是使用了这些寄存器来进行的.后面我们会举个例子来说明Linux PCI设 ...
- 浅谈Linux下/etc/passwd文件
浅谈Linux 下/etc/passwd文件 看过了很多渗透测试的文章,发现在很多文章中都会有/etc/passwd这个文件,那么,这个文件中到底有些什么内容呢?下面我们来详细的介绍一下. 在Linu ...
- 《趣谈 Linux 操作系统》学习笔记(一):为什么要学 Linux 及学习路径
前言:学习的课程来自极客时间的专栏<趣谈 Linux 操作系统>,作者用形象化的比喻和丰富的图片让课程变得比较易懂,为了避免知识看过就忘,打算通过写学习笔记的形式记录自己的学习过程. Li ...
- (转)浅谈 Linux 内核无线子系统
前言 Linux 内核是如何实现无线网络接口呢?数据包是通过怎样的方式被发送和接收呢? 刚开始工作接触 Linux 无线网络时,我曾迷失在浩瀚的基础代码中,寻找具有介绍性的材料来回答如上面提到的那些高 ...
随机推荐
- ASP.NET程序读取二代身份证(附源码)
原文:ASP.NET程序读取二代身份证(附源码) 一般来说winform应用程序解决这个问题起来时很容易的,web应用程序就麻烦一点了. 这里我说说我的解决思路: 一.你必要有联机型居民身份证阅读器一 ...
- swift学习笔记(七)自己主动引用计数
与Object-c一样,swift使用自己主动引用计数来跟踪并管理应用使用的内存.当实例不再被使用时,及retainCount=0时,会自己主动释放是理所占用的内存空间. 注:引用计数仅适用于类的实例 ...
- Cocos2d-x在线粒子编辑器
自由.其效果是非常赞,可以手动调节和.出口可以上网plist档!. 住址:http://particle2dx.com/
- Java内存模型-jsr133规范介绍(转)
最近在看<深入理解Java虚拟机:JVM高级特性与最佳实践>讲到了线程相关的细节知识,里面讲述了关于java内存模型,也就是jsr 133定义的规范. 系统的看了jsr 133规范的前面几 ...
- 深入了解Libgdx中间Skin分类
文不是直接翻译.. . 本文在Libgdx的官方wiki的基础上,加上一些自己的理解.所以,难免会一些甚至是非常多的理解非常片面的东西.写的不好,还请见谅.... 事实上 事实上.在LibGDX的官方 ...
- cocos2d0基础知识三个音符
1.触摸屏事件: bool HelloWorld::init() { //省略的代码的最后位 this->schedule(schedule_selector(HelloWorld::usecr ...
- NSOJ 飞船汇合(经典)
一支分散的飞船舰队,需要汇合到主舰,但是这种飞船在太空中飞行的耗油与质量没有关系,只与发动机打开的时间有关系,为了节省油量,指挥官通知,汇合途中,多台飞船可以串成串飞行,这样只需启动一台发动机,由于安 ...
- 第12章 代理模式(Proxy Pattern)
原文 第12章 代理模式(Proxy Pattern) 代理模式 概述: 在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对象,如果直接访问会给系统带来不必要 ...
- Node.js v0.10.31API手工-DNS
原版的API品种,这是从以前的翻译和翻译风格不同 Node.js v0.10.31API手冊-文件夹 DNS 使用 require('dns') 引入此模块. dns 模块中的全部方法都使用了 C-A ...
- POJ1743---Musical Theme(+后缀数组二分法)
Description A musical melody is represented as a sequence of N (1<=N<=20000)notes that are int ...