02 linux 基础(2)

本贴最后更新于 520 天前,其中的信息可能已经时过境迁

shell 基本维护命令

获取联机帮助

使用 man ​命令可以找到特定的联机帮助页,并提供简短的命令说明。一般语法格式为:

image

联机帮助页提供了指定命令 commandname 的相关信息,包括:名称、函数、语法以及可选参数描述等。无论帮助有多长,都遵循这个格式显示。在页面很多的情况下使用 PageUp 和 PageDown 键翻页。最后,使用“:q​”退出帮助页面。

通常联机帮助信息包括以下几个部分:

  • NAME:命令的名称
  • SYNOPSIS:命令的语法格式
  • DESCRIPTION:命令的一般描述以及用途
  • OPTIONS:描述命令所有的参数或选项
  • SEE ALSO:列出联机帮助页中与该命令直接相关或功能相近的其他命令
  • BUGS:解释命令或其输出中存在的任何已知的问题或缺陷
  • EXAMPLES:普通的用法示例
  • AUTHORS:联机帮助页以及命令的作者

passwd

  • 出于系统安全考虑,Linux 系统中的每一个帐号都必须同时具备用户名和密码。

  • 可以使用 passwd 命令,为已有账户重新修改用户口令。

  • 需要说明的是,超级用户 root 可以修改所有其他用户的口令,而普通用户只能修改自己的用户口令,如果确要修改超级用户或其他用户口令的话,需要具有超级用户的权限。

  • passwd 命令的一般语法格式为:

image

  • 单独使用 passwd 命令,意为修改当前用户自己的口令。下面命令实例用于修改用户自己的口令。

image

su

  • su 命令用于临时改变用户身份,具有其他用户的权限。普通用户可以使用 su 命令临时具有超级用户的权限;超级用户也可以使用普通用户身份完成一些操作。当需要放弃当前用户身份,可以使用 exit ​命令切换回来。su 命令的一般语法格式为:

image

  • 选项“-c”表示执行一个命令后就结束;-m 表示仍保留环境变量不变;-表示转换用户身份时,同时使用该用户的环境。

  • 单独使用 su 命令,默认为要转换为超级用户 root。下面命令实例临时获取超级用户 root 的权限。可以从命令提示符中可以看出,“linux”用户使用 su ​命令切换为 root 用户。

image

echo

echo 命令用于在标准输出——显示器上显示一段文字,一般起到提示作用。echo 命令的一般语法格式为:

image

  • 选项-n 表示输出文字后不换行。提示信息字符串可以加引号,也可以不加。

image

date

date 命令用于显示和设置系统日期和时间。date 命令的一般语法格式为:

image

  • 选项 -s ​表示按照 datestr 日期显示格式设置日期;单独使用 date 命令,用于显示系统时钟中当前日期。时间的格式为:“hh:mm:ss”,日期格式为:“mm/dd/yy”。

clear

clear 命令用于清除屏幕上的信息。清屏后,sell 命令提示符移动到屏幕左上角。clear 命令的一般语法格式为:

由于 shell 命令是逐行执行,执行结果也将随即显示。因此,用户在使用命令终端窗口时,终端窗口会很快就会被字符占满。clear 可以帮助清理一下窗口中杂乱的字符显示。

ctrl+l ​也能起到同样的作用。

df

df 命令用于查看磁盘空间的使用情况。查看磁盘空间是用户应当经常做的事情,因为谁也不希望看到根或/var 分区在不经意间填满,以便及时清理。df 命令的一般格式为:

image

–其中,参数 Filesystem 表示物理文件系统。各选项的含义如表所示。

选项 含义
-a 显示所有物理文件系统的使用情况,包括虚拟文件系统,如/proc、/sys 等
-T 显示物理文件系统的文件格式类型
-h 物理文件系统大小按兆字节为单位显示
-k 物理文件系统大小按千字节为单位显示

du

du 列出目录和文件所使用的磁盘块数,每块占 512 个字节。

常用参数:

  • -a :仅列出空闲的文件数

  • -h :列出磁盘的使用情况(KB)

  • -s :列出总的空闲空间(KB)

    例:#du –h /etc

用户管理

用户管理相关文件介绍

用户的属性

  • 用户名

  • 口令

  • 用户 ID(UID)

  • 用户主目录(HOME)

  • 用户 shell

/etc/passwd 文件

/etc/passwd 文件是系统能够识别的用户清单。用户登陆时,系统查询这个文件,确定用户的 UID 并验证用户口令

  • 登陆名

  • 经过加密的口令

  • UID

  • 默认的 GID

  • 个人信息

  • 主目录

  • 登陆 shell

/etc/group 文件

  • 包含了 UNIX 组的名称和每个组中成员列表

  • 每一行代表一个组,包括 4 个字段:组名、加密的口令、GID 号、成员列表,彼此用逗号隔开。

image

添加用户 adduser

语法:adduser

/etc/adduser.conf

FIRST_UID=1000

LAST_UID=29999

USERS_GID=100

DHOME=/home

DSHELL=/bin/bash

SKEL=/etc/skel

SKEL 模板

/etc/skel 目录是被 /usr/sbin/useradd 使用

把想要新用户拥有的配置文件从/etc/skel 目录拷贝,常用的文件:

  • .bash_profile

  • .bashrc

  • .bash_logout

  • .dircolors

  • .inputrc

  • .vimrc

添加新用户的过程

  • 系统

    • 编辑 passwd 和 shadow 文件,定义用户帐号
    • 设置一个初始口令
    • 创建用户主目录,用 chown 和 chmod 命令改变主目录的属主和属性
  • 为用户所进行的步骤

    • 将默认的启动文件复制到用户主目录中
    • 设置用户的邮件主目录并建立邮件别名

用户管理相关命令介绍

设置初始口令

  • 使用 passwd ​命令可以修改用户口令

  • root 用户可以修改任何用户的口令

语法:passwd [-k] [-l] [u] [-f] [-d] [-S] username

使用方法:passwd username

修改用户属性

usermod

语法:usermod [-u uid [-o]] [-g group] [-G gropup,…]

                       [-d home [-m]] [-s shell] [-c comment]

                       [-l new_name] [-f inactive][-e expire]

                       [-p passwd] [-L|-U] name

举例用户 oldname 改名为 newname,注意要同时更改家目录:

usermod –d /home/newname –m –l newname oldname

删除用户

deluser

语法: deluser

使用方法:

   `deluser  --remove-home  user1`

 删除用户 user1 的同时删除用户的工作目录

添加用户组

addgroup

语法: addgroup groupname

删除用户组

delgroup

语法: delgroup groupname

linux 进程管理相关命令

进程的概念

程序的一次执行就是一个进程。

程序的两次执行就,产生了 p1 和 p2 进程。

image

使用 ps 命令查看进程

显示进程 (process) 的动态
语法:
ps [options]

常见的参数:

  • -A 列出所有的行程
  • -w 显示加宽可以显示较多的资讯
  • -au 显示较详细的资讯
  • -aux​/-elf​ 显示所有包含其他使用者的行程

image

进程的状态标志

  • D: 不可中断的静止
  • R: 正在执行中
  • S: 阻塞状态
  • T: 暂停执行
  • Z: 不存在但暂时无法消除
  • <: 高优先级的进程
  • N: 低优先级的进程
  • L: 有内存分页分配并锁在内存中

top 命令

  • 监视进程

  • 通常会全屏显示,而且会随着进程状态的变化不断更新

  • 整个系统的信息也会显示,为查找问题提供了便利

  • 可以显示系统总共有多少 CPU 和内存资源以及负载平衡等信息。

image

pstree 命令

将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本进程为根,如果有指定使用者 id, 则树状图会只显示该使用者所拥有的进程。

参数:

  • -a 显示该进程的完整指令及参数, 如果是被记忆体置换出去的进程则会加上括号
  • -c 如果有重覆的进程名, 则分开列出

image

​使用 kill 命令终止进程

使用 kill 命令终止进程

kill [-signal] PID

signal 是信号,PID 是进程号

kill 命令向指定的进程发出一个信号 signal,在默认的情况下,kill 命令向指定进程发出信号 9/15,正常情况下,将杀死那些不捕捉或不忽略这个信号的进程。

linux 文件系统的类型和结构

Linux 文件系统的类型

文件系统类型

linux 是一种兼容性很高的操作系统,支持的文件系统格式很多,大体可分以下几类:

  • 磁盘文件系统:指本地主机中实际可以访问到的文件系统,包括硬盘、CD-ROM、DVD、USB 存储器、磁盘阵列等。常见文件系统格式有:autofs、coda、Ext(Extended File sytem,扩展文件系统)、Ext3、Ext4、VFAT、ISO9660(通常是 CD-ROM)、UFS(Unix File System,Unix 文件系统)、FAT、FAT16、FAT32、NTFS 等;

  • 网络文件系统:是可以远程访问的文件系统,这种文件系统在服务器端仍是本地的磁盘文件系统,客户机通过网络远程访问数据。常见文件系统格式有:NFS、Samba 等;

  • 专有/虚拟文件系统:不驻留在磁盘上的文件系统。常见格式有:TMPFS(临时文件系统)、PROCFS(Process File System,进程文件系统)和 LOOPBACKFS(Loopback File System,回送文件系统)。

文件系统类型

  • 目前 Ext4 是 Linux 系统广泛使用的一种文件格式。在 Ext3 基础上,对有效性保护、数据完整性、数据访问速度、向下兼容性等方面做了改进。

  • 最大特点是日志文件系统:可将整个磁盘的写入动作完整地记录在磁盘的某个区域上,以便在必要时回溯追踪。

SCSI 与 IDE 设备命名

  • sata 硬盘的设备名称是“/dev/sda”

    –/dev/sda1 含义?

    –/dev/sdb3 含义?

  • IDE 硬盘的设备名称是“/dev/hda”

    –/dev/hdc2 含义?

  • 如果很在意系统的高性能和稳定性,应该使用 SCSI 硬盘

cat /proc/partitions ​查看硬盘具体信息。

Linux 分区的命名方式

  1. 字母和数字相结合

  2. 前两个字母表示设备类型

  • “hd”代表 IDE 硬盘

  • “sd”表示 SCSI 或 SATA 硬盘

  1. 第三个字母说明具体的设备
  • “/dev/hda”表示第一个 IDE 硬盘

  • “/dev/hdb”表示第二个 IDE 硬盘

交换分区

将内存中的内容写入硬盘或从硬盘中读出,称为内存交换(swapping)。交换分区最小必须等于计算机的内存。可以创建多于一个的交换分区。尽量把交换分区放在硬盘驱动器的起始位置。

Linux 文件系统的结构

文件系统逻辑结构

某所大学的学生可能在一两万人左右,通常将学生分配在以学院-系-班为单位的分层组织机构中。若需要查找一名学生时,最笨的办法是依次问询大学中的每一个学生,直到找到为止。如果按照从学院、到系、再到班的层次查询下去,必然可以找到该学生,且查询效率高。这种树形的分层结构就提供了一种自顶向下的查询方法。

如果把学生看作文件,院-系-班的组织结构看作是 Linux 文件目录结构,那么就同样可以有效地管理数量庞大的文件。

一直使用微软 Windows 操作系统的用户似乎已经习惯了将硬盘上的几个分区,并用 A:、B:、C:、D:等符号标识。存取文件时一定要清楚存放在哪个磁盘的哪个目录下。

Linux 的文件组织模式犹如一颗倒置的树,这与 Windows 文件系统有很大差别。所有存储设备作为这颗树的一个子目录。存取文件时只需确定目录就可以了,无需考虑物理存储位置。

分区与目录的关系:

在 Windows 下,目录结构属于分区;在 Linux 下,分区属于目录结构

  • 如何知道文件存储的具体硬件位置呢?

    在 Linux 中,将所有硬件都视为文件来处理(一切皆文件),包括硬盘分区、CD-ROM、软驱以及其他 USB 移动设备等。为了能够按照统一的方式和方法访问文件资源,Linux 中提供了对每种硬件设备相应的设备文件。一旦 Linux 系统可以访问到硬件,就将其上的文件系统挂载到目录树中的一个子目录中。

    例如,用户插入 USB 移动存储器,Ubuntu Linux 自动识别后,将其挂载到“/media/disk”目录下。而不象 Windows 系统将 USB 存储器作为新驱动器,表示为“F:”盘。

Linux 文件系统就是一个树形的分层组织结构。将根(/)作为整个文件系统的惟一起点,其他所有目录都从该点出发。将 Linux 的全部文件按照一定的用途归类,合理地挂载到这颗“大树”的“树枝”或“树叶”上,如图所示。而这些全不用考虑文件的实际存储位置,无论是存在硬盘上,还是在 CD-ROM 或 USB 存储器中,甚至是网络终端。

image

目录名 描述
/ Linux 文件系统根目录
/bin 存放系统中最常用的可执行文件(二进制)
/boot 存放 Linux 内核和系统启动文件,包括 Grub、lilo 启动器程序
/dev 存放所有设备文件,包括硬盘、分区、键盘、鼠标、USB、tty 等
/etc 存放系统的所有配置文件,例如 passwd 存放用户账户信息,hostname 存放主机名等
/home 用户主目录的默认位置
/initrd 存放启动时挂载 initrd.img 映像文件的目录,以及载入所需设备模块的目录。
/lib 存放共享的库文件,包含许多被/bin 和/sbin 中程序使用的库文件
/lost+found 存放由 fsck 放置的零散文件
/media Ubuntu 系统自动挂载 CD-ROM、软驱、USB 存储器后,存放临时读入的文件
/mnt 该目录通常用于作为被挂载的文件系统的挂载点
/opt 作为可选文件和程序的存放目录,主要被第三方开发者用来简易地安装和卸装他们的软件包
/proc 存放所有标志为文件的进程,它们是通过进程号或其他的系统动态信息进行标识,例如 cpuinfo 文件存放 CPU 当前工作状态的数据
/root 根用户(超级用户)的主目录
/sbin 存放更多的可执行文件(二进制),包括系统管理、目录查询等关键命令文件
/srv
/sys
/tmp 存放用户和程序的临时文件,所有用户对该目录都有读写权限
/usr 用于存放与系统用户直接有关的文件和目录,例如应用程序及支持它们的库文件。以下罗列了/usr 中部分重要的目录。
/usr/X11R6: X Window 系统
/usr/bin 用户和管理员的标准命令
/usr/include c/c++ 等各种开发语言环境的标准 include 文件
/usr/lib 应用程序及程序包的连接库
/usr/local 系统管理员安装的应用程序目录
/usr/local/share 系统管理员安装的共享文件
/usr/sbin 用户和管理员的标准命令
/usr/share 存放使用手册等共享文件的目录
/usr/share/dict 存放词表的目录
/usr/share/man 系统使用手册
/usr/share/misc 一般数据
/usr/share/sgml SGML 数据
/usr/share/xml XML 数据
/var 通常用于存放长度可变的文件,例如日志文件和打印机文件。以下罗列了/var 其中部分重要的目录。
/var/cache 应用程序缓存目录
/var/crash 系统错误信息
/var/games 游戏数据
/var/lib 各种状态数据
/var/lock 文件锁定纪录
/var/log 日志记录
/var/mail 电子邮件
/var/opt /opt 目录的变量数据
/var/run 进程的标示数据
/var/spool 存放电子邮件,打印任务等的队列目录。
/var/tmp 临时文件目录

基本目录

  • 绝对路径和相对路径

    在认识到 Linux 文件系统是树形分层的组织结构,且只有一个根节点之后。在 Linux 文件系统中查找一个文件,只要确定文件名和路径,就可以惟一确定这个文件。

  • 绝对路径:指文件在文件系统中的准确位置。通常在本地主机上,以根目录为起点。例如“/usr/games/gnect”就是绝对路径。

  • 相对路径:指相对于用户当前位置的一个文件或目录的位置。例如,用户处在 usr 目录中时,只需要“games/gnect”就可确定这个文件。

Linux 文件系统与 Windows 文件系统比较

Linux 文件系统 Windows 文件系统
文件格式 使用的主要文件格式有:EXT2、EXT3、RerserFS、ISO9660、vfat 等 使用的主要文件格式有:FAT16、 FAT32、NTFS 等
存储结构 逻辑结构犹如一颗倒置的树。将每个硬件设备视为一个文件,置于树形的文件系统层次结构中。因此,Linux 系统的某一个文件就可能占有一块硬盘,甚至是远端设备,用户访问时非常自然 逻辑结构犹如多颗树(森林)。将硬盘划分为若个分区,与存储设备一起(例如 CD-ROM、USB 存储器等),使用驱动器盘符标识,例如 A:代表软驱、C:代表硬盘中的第一个分区等。
与硬盘分区的关系 分区在目录结构中 目录结构在分区中
文件命名 Linux 文件系统中严格区分大小写,MyFile.txt 与 myfile.txt 指不同的文件。区分文件类型不依赖于文件后缀,可以使用程序 file 命令判断文件类型。 windows 文件系统中不区分大小写,MyFile.txt 与 myfile.txt 是指同一个文件。使用文件后缀来标识文件类型。例如使用“.txt”表示文本文件。
路径分隔符 Linux 使用斜杠“/”分隔目录名,例如“/home/usr/share”,其中第一个斜杠是根目录(/),绝对路径都是以根目录作为起点 Windows 使用反斜杠“\”分隔目录名,例如“C:\program \username”,绝对路径都是以驱动器盘符作为起点
文件与目录权限 Linux 最初的定位是多用户的操作系统,因而有完善文件授权机制,所有的文件和目录都有相应的访问权限 Windows 最初的定位是单用户的操作系统,内建系统时没有文件权限的概念,后期的 Windows 逐渐增加了这方面的功能

文件系统相关命令

file

在 Linux 文件系统中,文件扩展名不总是被使用或被一致地使用。如果一个文件没有扩展名,或者文件与其扩展名不符时怎么办呢?file 命令功能用于判定一个文件的类型。file 命令一般语法格式为:

image

其中 filename 是文件名。命令的输出将显示该文件是二进制文件、文本文件、目录文件、设备文件,还是 Linux 中其他类型的文件。

image

ln

创建链接文件:

Linux 中有两种类型的链接:

  • 硬链接是利用 Linux 中为每个文件分配的物理编号——inode 建立链接。因此,硬链接不能跨越文件系统。

  • 软链接(符号链接)是利用文件的路径名建立链接。通常建立软链接使用绝对路径而不是相对路径,以最大限度增加可移植性。(类似快捷方式)

需要注意的是,如果是修改硬链接的目标文件名,链接依然有效;如果修改软链接的目标文件名,则链接将断开;对一个已存在的链接文件执行移动或删除操作,有可能导致链接的断开。假如删除目标文件后,重新创建一个同名文件,软链接将恢复,硬链接不再有效,因为文件的 inode 已经改变

ln 命令可以用于创建文件的链接文件。ln 命令一般语法格式为:

image

其中,选项“-s”表示为创建软链接。在缺省情况下,创建硬链接。参数 target 为目标文件,link_name 为链接文件名。如果链接文件名已经存在但不是目录,将不做链接。目标文件可以是任何一个文件名,也可以是一个目录。

image

压缩文件

  • 归档文件是将一组文件或目录保存在一个文件中。

  • 压缩文件也是将一组文件或目录保存一个文件中,并按照某种存储格式保存在磁盘上,所占磁盘空间比其中所有文件总和要少。

    • 归档文件仍是没有经过压缩的,它所使用的磁盘空间仍等于其所有文件的总和。因而,用户可以将归档文件再进行压缩,使其容量更小。
    • gzip 是 Linux 中最流行的压缩工具,具有很好的移植性,可在很多不同架构的系统中使用。bzip2 在性能上优于 gzip,提供了最大限度的压缩比率。如果用户需要经常在 Linux 和微软 Windows 间交换文件,建议使用 zip。
压缩工具 解压工具 文件扩展名
gzip gunzip .gz
bzip2 bunzip2 .bz2
zip unzip .zip

gzip 与 gunzip 命令

与 zip 明显区别在于只能压缩一个文件,无法将多个文件压缩为一个文件。gzip 命令符号模式的一般语法格式为:

image

其中,filename 表示要压缩的文件名,gzip 会自动在这个文件名后添加扩展名为.gz,作为压缩文件的文件名。

选项 描述
-l 查看压缩文件内的信息,包括文件数、大小、压缩比等参数,并不进行文件解压
-d 将文件解压,功能与 gunzip 相同
-num 指定压缩比率,num 为 1~9 个等级

gunzip 命令符号模式的一般语法格式为:

image

  • 其中,选项“-f”用于解压文件时,对覆盖同名文件不做提示。

  • 在执行 gzip 命令后,它将删除旧的未压缩的文件并只保留已压缩的版本。以下命令以最大的压缩率对文件 file_1 进行压缩,生成 file_1.gz 文件。使用“-l”选项可以查看压缩的相关信息。最后使用 gunzip 命令对文件进行了解压。与压缩时相反,file_1.gz 文件会被删除,继之生成 file_1。

image

image

image

tar

tar 命令主要用于将若干文件或目录合并为一个文件,以便备份和压缩。当然,之后出现 tar 程序的改进版本,可以实现在合并归档的同时进行压缩。tar 命令符号模式的一般语法格式为:

image

选项 描述
-t 显示归档文件中的内容
-x 释放归档文件
-u 更新归档文件
-c 创建一个新的归档文件
-v 显示归档和释放的过程信息
-f 用户指定归档文件的文件名,否则使用默认名称
-j 由 tar 生成归档,然后由 bzip2 压缩
-z 由 tar 生成归档,然后由 gzip 压缩

如果想查看一下归档文件中的详细内容,使用类似以下命令:

image

使用以下命令完成 tar 文件的释放。其中,“tar -xjf”和“tar –xzf”等效与先解压缩后释放 tar 文件。

image

网络配置

网络配置基础

image

选择自定义或者局域网,如果用的是校园的局域网的网络的话,要选择 nat。

配置 IP 地址

第一种方式——命令

第一步:修改静态 ip。

bleaaach@bleaaach-virtual-machine:~$ sudo vi /etc/network/interfaces

image

以下分别为配置静态 IP 和动态 IP 时,配置文件“/etc/network/interfaces”的实例。

image

image

第二步,配置 dns:

DNS 客户端配置文件—resolv.conf

Ubuntu Linux 将 DNS 服务器地址保存在配置文件/etc/resolv.conf 中。

依然延续上面的例子,添加 DNS 服务器 IP 地址后,查看配置文件/etc/hosts,如下所示。

image

第三步:

sudo vi /etc/rc.local ​写入:

image

每次启动 linux,就会启动这个,就能实现永久有效了。

第四步:重启服务。

wdl@ubuntuwdl:~$ sudo /etc/init.d/networking restart

可以通过 ping 测试网络。

第二种方式——图形界面

进入设置:

image

image

​​image​​

断开连接再重新连接上,就可以重新配置了。(要和本地 ip 处于同一个子网)

网络相关命令

Ifconfig 命令

ifconfig 是 GNU/Linux 中配置网卡的基本命令,包含在 net-tools 软件包中。它可用于显示或设置网卡的配置,如 IP 地址、子网掩码、最大分组传输数、IO 端口等,还可以启动或禁用网卡。ifconfig 命令有以下两种格式:

image

ifconfig 的第一种格式用于查看当前系统的网络配置情况;第二种格式用于配置网卡,包括添加、删除网卡,以及绑定多个 IP 地址等。

image

从下面的运行结果可以看出,主机有两个接口 eth0、lo。lo 代表主机本身,也称回送接口(Loopback),其 IP 地址约定为 127.0.0.1。

如果主机安装了第二块、第三块网卡,则有 eth1,eth2 标识。常见的接口类型还有以下几种(N 表示接口号):

  • pppN 表示调制解调设备

  • wlanN 表示无线网卡

  • trN 表示令牌环网卡

如果只是关心某个网络设备,可以在 ifconfig 后面加上接口名称,则只显示该设备的相关信息,例如:

image

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    946 引用 • 943 回帖 • 2 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...