zoukankan      html  css  js  c++  java
  • Linux快速入门01-基础概念

    4年多前,刚到上海时报过一个关于Oracle的培训班,在那里接触到了Linux,不过一直都没真正去试着使用它。现在经过慢慢的成长,越来越觉得,Linux是每一个服务端工程师必须掌握的系统,即使是现在最为火热的.NET开源潮流,也离不开对Linux系统的学习。本系列学习将以鸟哥真神的《鸟哥私房菜》一书作为基础,最新的Ubuntu16系统(相比CentOS,其界面更加友好,使用起来比较嗨森,快乐是坚持学习的源泉哈)作为环境来进行,让我们和Linux企鹅一起飞向星辰大海吧。

    Linux的内核是有Linus Torvalds在1991年在芬兰的赫尔辛基大学开发出来的,使用GLP(GNU General Public License)许可证,其代表自由软件的版权,这儿的自由(Free software)表示具有自由度的软件,即用户可以自由执行、复制、再发型、学习、修改和强化自由软件,而不是强调免费(Freeware),自由软件往往是通过售后服务来获得商业价值的。

    对于Open Source来说,常见的授权包括:GPL,BSD(Berkeley Software Distribution),Apache License 2.0

    Linux Distributions非常多,主要分为两大系统:一种是使用RPM方式安装软件的系统,如RedHat,Fedora,SuSE等;另一种就是使用Debian的dpkg方式安装软件的系统,如Debian、Ubuntu等,这儿为了学习首推Ubuntu,相关软件下载请见如下地址。

    虚拟机VmWare:使用开发版的Vmware Workstation 12 Player,https://www.vmware.com/cn/products/player/playerpro-evaluation.html

    Ubuntu最新版:http://www.ubuntu.com/download

    Linux主要使用场景:WWW、Mail Server、FileServer等各类网络服务器;关键任务的应用,如金融数据库库、大型企业网管环境;高性能运算等。

     virtualbox:https://www.virtualbox.org/wiki/Downloads

    centos:https://www.centos.org/download/

    Debian,优于CentOS,关键就是简单易用,而且系统稳定,但安装包和国内支持很一般

     https://www.debian.org/

    官网只提供最新下载,比较蛋疼,推荐:http://cdimage.debian.org/cdimage/archive/

    最后选择boot2docker,Tiny版本的linux内核,非常的棒。 

    这部分内容比较简单,主要涉及资源规划和磁盘分区等内容。由于不同设备在linux的名称各不相同,接下来通过一个简单的图表了解各类常见设备在Linux中的名称。

    设备 名称
    IDE硬盘 /dev/hd[a-d]
    SCSI/SATA/USB硬盘 /dev/sd[a-p]
    DVD ROM /dev/cdrom

    在介绍磁盘分区前,先来回顾下磁盘相关知识,磁盘主要由盘片、机械手臂、磁头和主轴马达组成,数据写入到盘片中。盘片上细分出扇区Sector和柱面Cylinder,其中每个扇区为512bytes(随着固盘的增多,相关技术相对过时)。对于整块磁盘来说,第一扇区最重要,其中包含:主引导分区MBR(Master Boot Record,MBR),可以安装引导加载程序,有446bytes;分区表partion table,记录整个硬盘分区的状况,有64bytes。系统的开机主要涉及两个东西,CMOS和BIOS,前者记录各项硬件参数且嵌入在主板上,后者是主板上的固件,包含开机时主动执行的第一个程序。改程序会根据用户设置去取得能够开机的硬盘,并读取该硬盘第一扇区的MBR位置。该MBR中放置了指定操作系统最基本的引导加载程序,该程序的作用就是加载OS的内核文件。由于现在大家普遍使用云服务,至少是IAAS级别的,因此该部分内容就到此为止。比如我个人就是使用的阿里云,系统选用小规模适用的ubuntu14.0版本,具体的分区等内容已经由服务提供商处理好,只要知道通常会建立/,/boot,/home,/swap等4个分区即可,其中/boot需要强制为主分区并占据硬盘前面的位置,/swap分区为物理内存的1.5-2倍左右。

    Linux常见的文件类型包括:ext2/ext3,后者支持日志记录;physical volume(LVM),可以弹性调整文件系统大小;software RAID,可以仿真磁盘阵列;vfat,同时支持windows和linux。

    最后附上一些最为基本的常见命令,请见下表。

    命令 解释
    echo $LANG,$PATH 输出常见环境变量
    ls -a 列出文件夹中内容,-a现实隐藏文件
    date 显示当前时间
    [tab] 命令、文件名补齐
    [Ctrl+C],[Ctrl+D] 终止命令,终止输入
    man page,info page 在线帮助
    exit 注销账号
    sync 数据同步到磁盘
    shutdown,reboot,halt,poweroff 关机,重启              

    此外,当忘记root密码时,可以在系统重启读秒时按任意键进入控制菜单,输入e进入grub编辑模式,然后再kernel那行末尾添加:空格 single即可,最后输入passwd即可并输入新密码即可。

    对于ubuntu来说,通过sudo passwd可以设置root密码,可以通过如下命令默认进入命令行界面:sudo gedit /etc/default/grub, GRUB_CMDLINE_LINUX="text", sudo update-grub

    对于centOS来说,通过vi /etc/inittab,将默认runlevel从5设置为3即可,如果需要图形界面startx即可(ubuntu也是)。
     
    • 常用工具
    当linux开始ssh服务时(默认端口22),可以通过SSH Secure shell工具连接linux系统,非常的方便,尤其是部署文件时。SSHSecureShellClient3.2.9.rar
    更简易的链接工具:putty,PuTTY_0.67.0.0.rar
    docker2boot,其使用的是debian4,其端口映射一般为:2022->22
    直接通过git获取代码,编译发布即可
    常见端口:ftp 21, ssh 22, telnet 23
    linux不同版本安装软件:http://www.cnblogs.com/jyginger/archive/2010/07/25/1784599.html
    查看网络状态:ifconfig, netstat
    http://www.cnblogs.com/allenblogs/archive/2010/07/28/1786950.html
    •  补充命令
    输入"uname -a ",可显示电脑以及操作系统的相关信息
    输入"cat /proc/version",说明正在运行的内核版本
    输入"cat /etc/issue", 显示的是发行版本信息,lsb_release -a 
     
    grep 同时满足多个关键字和满足任意关键字
    ① grep -E "word1|word2|word3"   file.txt
       满足任意条件(word1、word2和word3之一)将匹配。
    ② grep word1 file.txt | grep word2 |grep word3
       必须同时满足三个条件(word1、word2和word3)才匹配。
     

    参考资料:

    1. 鸟哥. 鸟哥的Linux私房菜基础学习篇(第三版)[M]. 北京:人民邮电出版社, 2010.
  • 相关阅读:
    浏览器原理
    jQ插件编写
    [转]清理浮动的全家
    百度面试~~
    LeetCode-222. Count Complete Tree Nodes
    LeetCode-236. Lowest Common Ancestor of a Binary Tree
    LeetCode-235. Lowest Common Ancestor of a Binary Search Tree
    LeetCode-102. Binary Tree Level Order Traversal
    LeetCode-404. Sum of Left Leaves
    LeetCode-257. Binary Tree Paths
  • 原文地址:https://www.cnblogs.com/xiong2ge/p/Linux_Basic_Fast01.html
Copyright © 2011-2022 走看看