zoukankan      html  css  js  c++  java
  • 谈Linux

    新手谈Linux

     

    目录:

    什么是Linux?

    Linux与UNIX的区别

    Linux与Windows比较

    什么是Linux发布版?

    Linux应用领域

    Linux版本的选择

    怎么学习Linux?

    Linux系统配置

    通过包管理器安装与源代码方式安装的区别

    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应用领域广泛,不适合普通用户,因为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分区和根分区。

     

    未完待续 欢迎点赞:目录

  • 相关阅读:
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    《EffectiveJava中文第二版》 高清PDF下载
    《MoreEffectiveC++中文版》 pdf 下载
    《啊哈c语言》 高清 PDF 下载
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/4058585.html
Copyright © 2011-2022 走看看