华南理工大学无线电爱好者协会软件小组菜鸟学PythonLinux

Linux 基础知识

2017-03-31  本文已影响582人  廖少少

本文包括:

1、Linux 系统概述

2、Linux 用户和用户组管理

3、Linux 文件和目录管理

4、Linux 文件系统管理

5、Linux LVM 配置

6、Linux 网络管理

7、Linux 进程与任务管理

8、Linux 系统监控

9、Linux 管道与I/O重定向

10、Linux 安装与管理软件

1、Linux 系统概述

  1. Linux 的发展:离不开它的前身 Unix

    • Unix 的发展:

      1970 年,Ken Thompson 研发出 Unix 内核;1970 年为Unix 元年

      1973 年,Ritchie 用 C 语言编写了 Unix 内核,Unix 正式诞生;

      1974 年,Unix 对外公布,开始广泛流行。

    • Linux 的产生和发展:

      1986 年,Tanenbaum 研发出 MINIX,并于次年发布;

      1991 年,Linus 研发出 Linux 内核的雏形;

      1994 年,Linux 1.0 内核发布;

      1995 年以后,各种不同的 Linux 发行版本相继出现。

    • Linux 发行版本(内核是一样的):

      Redhat 、SUSE Enterprise、CentOS:侧重于网络服务,企业管理

      Debian、Stackware:侧重于服务器及其稳定性

      Ubuntu、Fedora、Open SUSE:侧重于用户体验

    • Unix 和 Linux 的区别:

      Unix Linux
      商业付费 免费开源
      与硬件配套 跨平台
      对硬件要求苛刻 对硬件要求很低
      安装复杂 安装简单
      使用复杂 使用简单
      稳定 次稳定(好于Windows)
  2. Linux 的结构:

    • 应用程序

    • 外壳(shell):用户和内核之间的命令解释器,可以根据自己的需求更换 shell,shell 与 kernel 可分离

      常见的 shell 有:bash(Linux 默认的 shell),sh(Unix 默认的 shell),ksh(korn shell),c shell 等等,其中以 bash(Bourne-Again Shell)最为流行:它基于 Bourne shell,吸收了 C shell 和 Ksh 的一些特性。bash 完全兼容 sh,也就是说,用 sh 写的脚本可以不加修改的在 bash 中执行

    • 内核(kernel):Linux 操作系统的核心,直接控制计算机资源

    • 硬件

  3. Linux 的特点:

    • 多任务,多用户:CPU 时间分片,分给不同的进程;允许多个用户同时登陆使用。

    • 管道:前一个程序的输出作为后一个程序的输入,看起来好像管道一样

    • 功能强大的 shell:shell 是一种解释型高级语言

    • 安全保护机制,稳定性好:防止系统及其数据未经许可而被非法访问,稳定性 Unix 好于 Linux,Linux 好于 Windows

    • 用户界面:常用命令行的方式,同时提供图形界面

    • 强大的网络支持:TCP/IP 协议就是 Linux 的缺省网络协议

    • 移植性好:源代码用 C 语言写成,便于移植到其它计算机上

2、Linux 用户和用户组管理

  1. Linux 的用户和用户组

    在 Linux 操作系统中,Linux 用户会归属于用户组,那么归属于同一用户组的不同用户,它对一些公共文件具有相同的访问权限,每个用户对它所归属的文件具有其适用的访问权限。

  2. Linux 通过 UID 和 GID 来管理用户和用户组

    • UID(User ID):通过配置文件 /etc/password 储存,记录的是单个用户的登陆信息

        root:x:0:0:root:/root:/bin/bash  
      

      被冒号分成七个字段:分别为:用户名、密码、UID、GID、用户描述、用户家目录、用户的 shell 类型

      扩展阅读:

      Linux 系统中通常有三种类型的用户:超级用户(super user),常规用户(regular user)和系统用户(system user)。

      超级用户的 UID 和 GID 都是 0。不管系统中有多少个系统管理员,都只有一个超级用户帐号。超级用户帐号,通常指的是 root user,对系统拥有完全的控制权。超级用户是唯一的。

      常规用户的 UID 500 - 60000。指那些登陆到 Linux 系统,但不执行管理任务的用户,例如文字处理或者收发邮件等

      系统用户的 UID 1 — 499系统用户并不是一个人,也被称为逻辑用户或伪用户。系统用户没有相应的 /home 目录和密码。系统帐号通常是 Linux 系统使用的一个管理日常服务的管理帐号

    • GID(Group ID):通过配置文件 /etc/group 储存的,记录 GID 和用户组组名的对应关系

        root:x:0:
      

      root 用户组的 GID 为0

        smc:!:1001:
      

      SMC 用户组的 GID 为1001

      扩展阅读:

      没有 supergroup
      Systemgroup:GID 0 - 499
      一般组:GID 500 - 60000

  3. 用户管理的常用命令

    • 用户查询命令:

      id:查询当前登陆用户的 GID 和 UID。

      finger:查询当前用户的属性信息,包含家目录和 shell 类型。

    • 新增用户:useradd[参数][用户名]

        linux: ~ # useradd -d /home/ipcc -m -u 2000 -g mms -s /bin/csh ipcc
      

      -d:设置用户的家目录

      -m:设置的家目录不存在时自动创建

      -u:设置用户的 UID

      -g:设置初始 GID 或组名

      -s:设置用户的shell,如:/bin/csh

      上例最后的 ipcc 指的是该用户的用户名

        linux: ~ # useradd ipcc
      

      这个例子中没有参数,直接创建用户名为 ipcc 的用户,如果在新增用户时没有指定参数信息,系统就会去读取 /etc/default/useradd 配置文件,它规定了默认的初始用户组和 shell 等。

        linux: ~ # useradd –D
      

      如果需要查询基本的设置,通过 useradd –D 读取默认的配置。

    • 删除用户:userdel [参数] [用户名]

        linux:~ # userdel ipcc
      

      删除 ipcc 用户

        linux:~ # userdel -r iptv 
      

      加上 -r,会将用户的家目录一起删除。

    • 新增完用户后,需要设置和修改用户密码:passwd[用户名]。常规用户只能不输入用户名,修改当前用户的密码,超级用户可以加上用户名修改其他用户的密码。输入正确后,这个新口令被加密并放入 /etc/shadow 文件

      注意:在 ubuntu 的默认 shell 中,密码不会显示出来,且再修改密码时,会多次提示你输入密码以确保正确性

    • 修改用户属性:usermod[参数][用户名]

        linux:~ # usermod -d /opt/ipcc ipcc
      

      -d 修改用户家目录
      -g 修改初始用户组

    扩展阅读:su 命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码
    http://www.runoob.com/linux/linux-comm-su.html

  4. 用户组管理常用命令

    • 新增用户组:groupadd

        linux:~ # groupadd ipcc
      
        linux:~ # groupadd -g 2000 iptv
      

      -g 指定组 ID

    • 删除用户组:groupdel [用户名]

        linux:~ # groupdel iptv
      
    • 修改用户组:groupmod [参数] [用户名] -

        linux:~ # groupmod -g 2500 -n ipcc1 ipcc
      

      g 修改组 ID -n 修改组名

3、Linux 文件和目录管理

  1. Linux 的文件结构类似于倒树形结构,树的 root 是 / 文件夹

    • 根目录下的子目录以及存放的内容:

    • 常用文件夹

      • /etc

        • 配置文件
        • 大部分是 *.conf
          • /etc/passwd , /etc/group , /etc/shadow 除外
      • /home

        • 用户家目录
        • /home/用户名
      • /root

        • 超级用户 root 的目录
      • /tmp

        • 临时文件区
      • /var/tmp

        • 临时文件区
      • /boot

        • Boot filesystem
        • 启动加载器
        • 内核及 init ram dist
      • /dev

        • 设备文件
        • /dev/sda 是硬盘
        • /dev/sda1 是分区
        • 注意:Linux 的思想,一切都是文件
      • /media

        • 本机硬盘以外的储存设备
        • 例如:/media/CDROM
      • /mnt

        • 本机硬盘以外的储存设备
        • Red Hat 习惯手动挂载于此
  2. 绝对路径与相对路径

    • 绝对路径:由根目录(/)开始写起的文件名或者目录名,例如: /home/student/file.txt

    • 相对路径:基于当前路径的的文件名或者目录名写法,. 代表当前目录 .. 代表上一级目录

      举例:假如目前在 /home/smc 目录下,想要切换到 /home/smc/bin/smc 目录下,首先可以使用绝对路径,命令如下:

        cd /home/smc/bin/smc
      

      操作完成后,想要回到刚才的 /home/smc 目录下,可以使用相对路径,命令如下;

        cd ../..
      

      再举例:目前在 /tmp,想要去 /home/student/file.txt

        ../home/student/file.txt
      

      再举例:目前在 /home,想要去 /home/student/file.txt

        student/file.txt
      
  3. 文件和目录的基本操作

    • 显示当前目录下的所有文件:ls (list segment)

      • ls -l :显示出详细信息
    • 显示当前的工作目录:pwd (print working directory

    • 变更工作目录:cd

        cd 
        cd /home/smc/bin/smc
        cd ../..
      

      第一条指令,cd 后面不跟任何路径,则是回到主目录

    • 新增目录(必须具备写权限):mkdir[-m 模式][-p] 目录名

        mkdir temp
        mkdir -m 777 temp/abc
      

      -m 指定存取模式,设置为777,所有文件可读可写可执行
      -p 建立目录时建立其所有不存在的父目录

    • 删除目录(对父目录具备写权限):rmdir [-p] 目录名

      用于删除空目录,如果删除非空目录,则使用 rm 再加上参数即可

      –p 删除目录及父目录

    • 复制文件或目录(对父目录具备写权限) :cp 源文件或目录 目的文件或目录

      • cp /etc/passwd /tmp/passwd :绝对路径是最标准的写法
      • cp /etc/passwd /tmp :相同文件名称
      • cp /etc/passwd /tmp/. :在/tmp目录下,相同名称拷贝,与上结果一样
      • cp /etc/passwd . :当前文件夹下,相同名称拷贝
    • 移动文件或目录(对父目录具备写权限):mv 源文件或目录 目的文件或目录

      • mv /tmp/passwd /tmp/abc :更改文件名称
      • mv /tmp/passwd /var/tmp/passwd :移动文件,名称不变
      • mv /tmp/passwd /var/tmp/abc:移动文件并更改文件名称
      • 注意SELinux security context
    • 删除文件或目录(对父目录具备写权限):rm[-ir] 文件或目录

      -name 以指定字符串开头的文件名 -user 查找指定用户所拥有的文件。

  4. 查看文件内容:

    • cat:直接查阅文件内容,不能翻页

    • more:翻页查看文件内容

    • less:翻页阅读,和 more 类似。但操作按键比 more 更加弹性。

    • head:查看文档的头部几行内容,默认为 10 行,可用-数字 来查看特定行数

    • tail:查看文件的尾部几行内容,默认为 10 行,可用-数字 来查看特定行数

4、Linux 文件系统管理

  1. 文件系统的概念:操作系统用于明确存储和组织计算机数据的方法,使得对数据的查找和访问变得更加容易。用户不需要关心文件位于d硬盘的数据块地址。

  2. 存储在介质中数据的三个因素

    文件名:定位存储的位置

    数据:文件的具体内容

    元数据 meta-data:文件有关的信息。例如文件的权限、所有者、文件的修 改时间等。

    Linux 支持的文件系统类型可查看 /etc/filesystems

  3. 文件系统的分类

    • 根据是否有日志?

      • 传统型文件系统:写入文件内容的时候,先写数据,再写元数据,若写元数据前断电,则会造成文件不一致。典型的:ext2(Linux 默认的文件系统)

      • 日志型文件系统:写入文件内容的时候,先写日志记录文件(更安全)。典型的:ext3 = ext2 + 日志 ,ReiserFS (基于平衡树,搜索快,节约空间)

    • 根据如何查找数据?

      • 索引式文件系统:文件属性数据和实际内容放在不同的区块,例如 Linux 中默认的 ext2 文件系统中,文件属性数据存放在 inode(类似于指针),实际内容放在 block。ext2 一开始就规划好了 inode 与 block ,所以数量庞大,不容易管理,所以有分组

      • 非索引式文件系统:只有 block,数据需要一个 block 接一个 block 读取(下一个 block 位置存放在上一个 block 中),效率低。 典型的:FAT(Windows 的文件系统)

        碎片整理:写入的数据的 block 太过分散,此时读取的效率会很低。磁盘整理的目的,就是将这些分散的 block 尽量的集中起来。

  4. 配置文件系统分区

    • 创建分区:fdisk + 设备名,输入完该命令之后,可以通过参数 m 查看按键操作说明,通过参数 p 可以得到本磁盘的相关信息,输入 n 命令可以新建一个分区。使用完 n 命令之后,新建分区的步骤如下:

      选择分区类型

      选择分区开始的磁柱

      决定分区的大小

      保存新建的分区 (w 命令)

      通过重启服务器或使用 partprobe 命令通知内核

    • 创建文件系统:mkfs [参数] 设备名。-t 指定文件系统类型,如 ext3。 -b 指定 block 大小,单位 bytes,ext2 和 ext3 仅支持 1024/2048/4096 三种。

    • 挂载文件系统:mount + 设备名 + 挂载点。挂载的过程就是将文件系统和目录树上的某一个目录结合。 -t -b 同上。

        mount /dev/sda6/root/testmount
      
  5. 管理 Linux 文件系统

    • 查看分区使用情况:

      • df:查看文件系统的磁盘空间占用情况,参数 –h 以容易理解的格式打印出文件系统大小,参数 –i 显示 inode 信息而非块使用量。

      • du:查看文件或目录的磁盘使用空间,参数 –a 显示目录下的每个文件所占的磁盘空间,参数 –s 只显示大小的总和,参数 -h 以容易理解的格式输出文件大小值,如多少 Mb

    • 查看系统打开的文件:lsof

      Isof filename 显示打开指定文件的所有进程

      Isof –c string 显示以指定字符开头的进程所有打开的文件

      Isof –u username 显示所属 username 相关进程打开的文件

  6. 修复文件系统:

    • fsck 参数 设备名:检查文件系统并尝试修复错误。执行 fsck 时,必须首先要将修复的设备进行umount 后,再执行 fsck 命令。

    • e2fsck:检查和修复 ext2 和 ext3 文件系统

5、Linux LVM 配置

LVM:Logical Volume Manager

6、Linux 网络管理

7、Linux 进程与任务管理

8、Linux 系统监控

9、Linux 管道与I/O重定向

10、Linux 安装与管理软件

上一篇 下一篇

猜你喜欢

热点阅读