zoukankan      html  css  js  c++  java
  • Linux基础知识

    操作系统发展史

    Unix

    • 1970年,美国贝尔实验室的Ken Thompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母),并且他用B语言写了第一个UNIX操作系统。
    • 因为B语言的跨平台性较差,为了能够在其他电脑上也能够运行这个Unix操作系统Dennis Ritchie和Ken Thompson从B语言的基础上准备研究一个更好的语言
    • 1972年,美国贝尔实验室的Dennis Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
    • 1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了现在大名鼎鼎的Unix操作系统。

    Minix

    • 意为小型UNIX(mini-UNIX)

    Linux

    • 创始人Torvalds

    发展史

    • Unix(只针对大型主机或服务器)
      • BSD
        • FreeBSD
      • Sun Solaris
      • IBM AIX
      • AT&T System V
        • Minix
          • Linux(适用于x86的个人计算机)
            • Ubuntu
            • Redhat
            • SUSE
            • Fedora

    Linux不同版本以及应用领域

    1. Linux内核及发行版介绍

    Linux内核版本

    • 内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。

    • Linux内核版本

      • 稳定版:具有工业级强度,可以广泛的应用和部署。新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动。
      • 开发板:由于要试验各种解决方案,所以变化很快。

    Linux发行版本

    • Linux发行版(也被叫做GNU/Linux发行版)通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件。
      1. Linux Mint
      2. Debian
      3. Ubuntu
      4. openSUSE
      5. Redhat
      6. Fedora
      7. Manjaro
      8. Mageia
      9. CentOS
      10. Arch
      11. Elementary

    2. 应用领域

    个人桌面领域的应用

    • 典型代表:Ubuntu、Fedora、openSUSE

    服务器领域

    • 典型代表
      • RedHat公司的AS系列
      • 完全开源的debian系列
      • suse EnterPrise 11系列等

    嵌入式领域(如智能家居)

    • 主要应用:机顶盒、数字电视、网络电视、程控交换机、手机、PDA等都是其应用领域,得到了摩托罗拉、三星、NEC、Google等公司的大力推广

    文件和目录

    类Unix系统的目录结构

    • Ubuntu没有盘符这个概念,只有一个根目录 “/”,所有文件都在它下面

    • /

      • /bin
      • /sbin
      • /usr
        • bin
        • local
          • include
        • lib
      • /lib

      Linux目录

      • /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录。
      • /bin:/usr/bin:可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
      • /boot:放置Linux系统启动时用到的一些文件,如Linux的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub
      • /dev:存放Linux系统下的设备文件,访问该目录下的某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom/mnt
      • /etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etx/X11、/etc/sysconfig、/etc/xinetd.d
      • /home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,表示当前用户的家目录,edu表示用户edu的家目录。
      • /lib:/usr/lib:/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助。
      • /lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下。
      • /mnt:/media:光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载。
      • /opt:给主机额外安装软件所摆放的目录。
      • /proc:此目录的数据都在内存中,如系统核心、外部设备、网络状态,由于数据都存放在内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。
      • /root:系统管理员root家目录。
      • /sbin:/usr/sbin:/usr/local/sbin:防止系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能“查看”而不能设置和使用。
      • /tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可防止在此目录下。
      • /srv:服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内。
      • /usr:应用程序存放目录,/usr/bin存放应用程序,/usr/share存放共享数据,/usr/lib存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local:存放软件升级包。/usr/share/doc:系统说明文件存放目录。/usr/share/man:程序说明文件存放目录。
      • /var:放置系统执行过程中经常变化的文件,如随时更改的日志文件/var/log,/var/log/message:所有登录文件存放目录,/var/spool/mail:邮件存放目录,/var/run:程序或服务启动后,其PID存放在该目录下 。

    用户目录

    相对路径和绝对路径

    绝对路径

    • 从 / 目录开始描述的路径为绝对路径,如:

      •   cd /home
          ls /usr
        

    相对路径

    • 从当前位置开始描述的路径为相对路径,如:

      •   cd ../../
          ls abc/def
        

    . 和 ..

    • 每个目录都有. 和 ..
    • . 表示当前目录
    • .. 表示上一级目录,即父目录
    • 根目录下的. 和 ..都表示当前目录

    访问权限

    • 读权限(r)
    • 写权限(w)
    • 可执行权限(x)

    Linux命令

    1. 命令使用方法

    • Linux命令的格式:

      •   command [-options] [parameter1] ...
        
      • command:命令名,相应功能的英文单词或单词的缩写

      • [options]:选项,可用来对命令进行控制,也可以省略

      • [parameter1]:传给命令的参数,可以是零个、一个或多个

    2. 查看帮助文档

    • --help
      • 一般是Linux命令自带的帮助信息
    • man(manual)
      • man是Linux提供的一个手册,包含了绝大部分的命令、函数使用说明。
      • man中各个section意义如下:
        1. Standard commands(标准命令)
        2. System calls(系统调用,如open、write)
        3. Library functions(库函数,如printf、fopen)
        4. Special devices(设备文件的说明,/dev下各种设备)
        5. File formats(文件格式,如passwd)
        6. Games and toys(游戏和娱乐)
        7. Miscellaneous(杂项、惯例与协定等,例如Linux档案系统、网络协定、ASCII码、environ全局变量)
        8. Administrative Commands(管理员命令,如ifconfig)

    3. 自动补全

    • 在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令

    4. 历史命令

    • 当系统执行过一些命令后,可按上下键翻看以前的命令,history将执行过的命令列举出来

    文件、磁盘管理

    文件管理

    1. 查看文件信息:ls

    • ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。
    • Linux文件或者目录名称最长可以有265个字符,. 代表当前目录,.. 代表上一级目录,以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示。
    • ls常用参数:
      • -a:显示指定目录下所有子目录与文件,包括隐藏文件
      • -l:以列表方式显示文件的详细信息
      • -h:配合-l以人性化的方式显示文件大小

    2. 输出重定向命令:>

    3. 分屏显示:more

    4. 管道:|

    • 一个命令的输出可以通过管道作为另一个命令的输入。

    5. 清屏:clear

    6. 切换工作目录:cd

    • cd ~ :切换到当前用户的家目录(/home/用户目录)
    • cd - :切换到上次所在的目录

    7. 显示当前路径:pwd

    8. 创建目录:mkdir

    9. 删除目录:rmdir

    10.删除文件:rm

    • rm -i:以进行交互式方式执行
    • rm -f:强制删除,忽略不存在的文件,无需提示
    • rm -r:递归的删除目录下的内容,删除文件夹时必须加此参数

    11. 建立链接文件:ln

    • Linux链接文件类似于Windows下的快捷方式

    • 链接文件分为软链接和硬链接:

      • 软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
      • 硬链接:硬链接只能链接普通文件,不能链接目录。
    • 使用格式:

      •   ln 源文件 链接文件
          ln -s 源文件 链接文件
        
      • -s 为创建软链接,不加 -s 则创建硬链接

    12. 查看或者合并文件内容:cat

    13. 文本搜索:grep

    • Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式,grep打印包含模式的所有行。

    • 一般格式为:

      •   grep [-选项] '搜索内容串'文件名
        
    • 常用选项说明:

      • -v:显示不包含匹配文本的所有行(相当于求反)
      • -n:显示匹配行及行号
      • -i:忽略大小写
    • grep搜索内容串可以是正则表达式

    14. 查找文件:find

    • find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属性的文件。

    15. 拷贝文件:cp

    16. 移动文件/重命名: mv

    • 移动文件:mv 文件名 移动目录
    • 使用方法:mv 原文件名 新文件名

    17. 归档管理:tar

    • 计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
    • tar 使用格式:tar [参数] 打包文件名 文件
    • tar 命令很特殊,其参数前面可以使用 ”-“,也可以不使用
    • 常用参数:
      • -c:生成档案文件,创建打包文件
      • -v:列出归档解档的详细过程,显示进度
      • -f:指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后
      • -t:列出档案中包含的文件
      • -x:解开档案文件
      • 注意:除了f需要放在参数的最后,其他参数的顺序任意

    18. 文件压缩解压:gzip

    • tar与gzip命令结合使用实现文件打包、压缩。tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz

    • gzip使用格式:

      •   gzip [选项] 被压缩文件
        
    • 常用选项:

      • -d:解压
      • -r:压缩所有子目录
    • 也可使用 tar -zcvf ... 与 tar -zxvf ... 进行打包压缩与解压解包

    19. 文件压缩解压:bzip2

    • tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。
    • tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名为xxxx.tar.gz2
    • 在tar命令中增加一个选项(-j)可以调用bzip2实现一个压缩的功能,实行先打包后压缩的过程
    • 压缩用法:tar jcvf 压缩包包名 文件 ...
    • 解压用法:tar jxvf 压缩包包名

    20. 文件压缩解压:zip、unzip

    • 通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip
    • 压缩文件:zip [-r] 目标文件 源文件
    • 解压文件:unzip -d 解压后目录文件 压缩文件

    21. 查看命令位置:which

    系统管理

    1. 查看当前日历:cal

    2. 显示或设置时间:date

    3. 查看进程信息:ps

    • 进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。
    • ps命令可以查看进程的详细状况
    • 常用选项(选项可以不加”-“)
      • -a:显示终端上的所有进程,包括其他用户的进程
      • -u:显示进程的详细状态
      • -x:显示没有控制终端的进程
      • -w:显示加宽,以便显示更多信息
      • -r:只显示正在运行的进程

    4. 动态显示进程:top

    • top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。可以使用top命令时加上-d来指定显示信息更新的时间间隔。

    5. 终止进程:kill

    • 结束进程:kill PID,有些进程不能直接杀死,使用kill -9 PID进行强制结束。

    6. 关机重启:reboot、shutdown、init

    7. 检测磁盘空间:df

    • df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。
    • 参数选项:
      • -a:显示所有文件系统的磁盘使用情况
      • -m:以1024字节为单位显示
      • -t:显示各指定文件系统的磁盘空间使用情况
      • -T:显示文件系统

    8. 检测目录所占磁盘空间:du

    • du命令用于统计目录或我呢见所占磁盘空间的大小,使用命令的执行结果与df类似,du更侧重于磁盘的使用状况。
    • 使用格式:du [选项] 目录或文件名
      • -a:递归显示指定目录中各文件和子目录中文件占用的数据块
      • -s:显示指定文件或目录占用的数据块
      • -b:以字节为单位显示磁盘占用情况
      • -l:计算所有文件大小,对硬链接文件计算多次

    9. 查看或配置网卡信息:ifconfig

    10. 测试远程主机连通性:ping

    用户、权限管理

    1. 查看当前用户:whoami

    2. 查看登录用户:who

    3. 远程登陆:ssh

    • ssh 用户名@ip地址

    4. 添加用户账号:useradd

    • 在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令使用格式完全一样。
    • 使用格式:useradd [参数] 新建用户账号
      • -d:指定用户登录系统时的主目录,如果不使用该参数,系统自动在/home目录下建立与用户名同名目录为主目录
      • -m:自动建立目录
      • -g:指定组名称

    5. 设置用户密码:passwd

    6. 删除用户:userdel

    • 同时删除用户目录:userdel -r 用户名

    7. 切换用户:su

    8. 查看有哪些用户组

    • 方法一:cat /etc/group
    • 方法二:groupmod + 三次Tab键

    9. 添加、删除组账号:groupadd、groupdel

    • groupadd 新建的组账号
    • groupdel 删除的组账号
    • cat /etc/group 查看用户组

    10. 修改用户所在组:usermod

    • usermod -g 用户组 用户名
      • -g为修改用户默认组,-a -G为追加

    11. 查看用户在哪些组:groups

    12. 为创建的普通用户添加sudo权限

    • 新创建的用户,默认不能sudo,需要进行下面的操作:

    •   sudo usermod -a -G adm 用户名
        sudo usermod -a -G sudo 用户名
      

    13. usermod -g 与 -G 的区别

    • -g:用来指定这个用户默认的用户组
    • -G:一般配合 -a 来完成向用户添加其他组

    14. 修改文件权限:chmod

    • chmod:修改文件权限有两种格式:字母法与数字法
    • 字母法:chmod u/g/o/a +/-/= rwx 文件
      • u:user 表示该文件的所有者
      • g:group 表示与该文件的所有者属于同一组(group)者,即用户组
      • o:other 表示其他以外的人
      • a:all 表示这三者皆是
      • +:增加权限
      • -:撤销权限
      • =:设定权限
      • r:可读
      • w:可写
      • x:可执行
    • 数字法:“rwx” 这些权限也可以用数字来代替
      • r:读取权限,数字代号为 4
      • w:写入权限:数字代号为 2
      • x:执行权限,数字代号为 1
      • -:不具任何权限,数字代号为 0

    15. 修改文件所有者:chown

    • 使用方法:chown 用户名 文件或目录名

    16. 修改文件所属组:chgrp

    • 使用方法:chgrp 用户组名 文件或目录名

    17. 远程拷贝:scp

    • 远程上传:scp 上传文件名 用户名@ip地址:上传的服务器路径
    • 远程下载:scp 用户名@IP地址:文件路径 下载的本地路径
    • 上传/下载目录时,需要在scp后增加 -r 参数
  • 相关阅读:
    排序-冒泡排序
    模拟Excel同一列相同值的单元格合并
    MATLAB实例:绘制折线图
    MATLAB实例:非线性曲线拟合
    MATLAB实例:聚类初始化方法与数据归一化方法
    删除Word中出现的空白页
    MATLAB实例:为匹配真实标签,对训练得到的标签进行调整
    MATLAB实例:Munkres指派算法
    MATLAB实例:构造网络连接图(Network Connection)及计算图的代数连通度(Algebraic Connectivity)
    Successive Convex Approximation (SCA)
  • 原文地址:https://www.cnblogs.com/AlexLu/p/11395218.html
Copyright © 2011-2022 走看看