# LINUX 网络配置

# 网络配置文件

在 Linux 中,TCP\IP 网络是通过若干个文本文件进行配置的,系统在启动时通过读取一组有关网络配置的文件和脚本参数文件实现网络接口的初始化和控制;这些文件可以在系统运行时直接修改,更改后会立即生效。


  1. /etc/sysconfig/network-script/ifcfg-enoxxx 文件。这是 个用来指定服务器上的网络配置信息的文件。其中常见的主要参数的含义说明如下:
    TYPE=Ethemet #网络接口类型
    BOOTPROTO=static #静态地址
    DEFROUTE=yes 
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes  #是否支待 IPV6
    IPV6_AUTOCONF=yes 
    IPV6_DEFROUTE=yes 
    IPV6_FA _FATAL=no  
    NAME=enol6780032  #网卡名称
    UUID=l6c93842-a039-4da3-b88a-977ebl20lb3f 
    ONBOOT=yes 
    IPADDR0=10.0.252.198 #IP地址
    PREFIX0=24            #子网掩码
    GATEWAY0=10.0.252.254 #网关
    DNS1=61.134.1.4       # DNS地址
    HWADDR=00:50:56:95:23:CE  #物理地址
    IPV6_PEERDNS=yes 
    IPV6_PEERROUTES=yes
  • 配置完成后,需要使用 systemctl restart network 命令重启网络服务

  1. /etc/hostname 文件,该文件包含了 Linux 系统的主机名
[root@redhat ~]       # vi /etc/hostname 修改配置文件的 Redhat 为 Redhat-64,保存文件,然后重新登录,此时,主机名已经改变
[root@redhet-64 ~]# hostnamectl status
    Status hostname:redhat-64
  • 此时表明静态主机名修改成功
  • 这个文件是在启动时从 /etc/sysconfig/network 的 HOSTNAME 行得到,用于在启动时设置系统的主机名

  1. /etc/resolv.conf 文件。 /etc/resolv.conf 文件配 DNS 客户,它包含了主机的域名搜索顺序和 DNS 服务器的地址,每一行应包含一个关键字和一个或多个由空格隔开的 下面是
    个例子:
search mydomain.edu.cn 
    nameserver 210.34.0.14 
    nameserver 210.34.0.13
  • 常用参数及其意义说明如下。
    • nameserver : 表明 DNS 服务器的 IP 地址。 可以有很多行的 nameserver , 每一个带一个 IP 地址。在查询时就按 nameserver 在本文件中的顺序进行,且只有当第一个 nameserver 没有反应时才查询下面的 nameserver
    • domain : 声明主机的域名 。很多程序用到它,如邮件系统,当为没有域名的主机进行 DNS 查询时也要用到 如果没有域名,主机名将被使用,删除所有在第一个点(.)前面的内容
    • search : 它的多个参数指明域名的查询顺序。当要查询没有域名的主机时,主机将在 search 声明的域中分别查找。 domain 和 search 不能共存
    • sortlist : 允许将得到的域名结果进行特定的排序。它的参数为网络/掩码对, 允许任意的排列顺序。在 Red Hat Linux 中没有提供默认的 /etc/resolv.conf 文件,它的内容是根据在安装时给出的选项 动态创建的

# 安装网卡

网卡的驱动程序是作为模块加载到内核中去的。所有 Linux 支待的网卡驱动程序都是存放在目录 /lib/modules/ (Linux版本号)net/ 下,可以通过修改模块配置文件来更换网卡或者增加网卡。

# 网络配置命令

# ifconfig

  • Linux 系统中通过 ifconfig 命令进行指定网络接口的
    TCP/IP 网络参数设置。执行 ifconfig 配置命令后,系统将在内核表中设置必要的网络参数,这样 Linux 系统就知道如何与网络上的网卡通信了。基本命令格式如下:
ifconfig Interface-name ip-address up/down

# route

  • 配置路由命令 route 。通常在系统使用 ifconfig 命令配置网络接口后,需用 route 命令
    设定主机或局域网的出口 IP 地址。 route 命令的调用参数复杂,它的主要功能是 管理 Linux
    统内核中的路由表
    route 命令的基本格式如下。
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]

# 常用参数及其说明:

  • -c 显示更多信息
  • -n 不解析名字
  • -v 显示详细的处理信息
  • -F 显示发送信息
  • -C 显示路由缓存
  • -f 清除所有网关入口的路由表。
  • -p 与 add 命令一起使用时使路由具有永久性。

  • add : 添加一条新路由。

  • del : 删除一条路由。

  • -net : 目标地址是一个网络。

  • -host : 目标地址是一个主机。

  • netmask : 当添加一个网络路由时,需要使用网络掩码。

  • gw : 路由数据包通过网关。注意,你指定的网关必须能够达到。

  • metric :设置路由跳数。

  • Command : 指定您想运行的命令 (Add/Change/Delete/Print)。

  • Destination : 指定该路由的网络目标。

  • mask Netmask: 指定与网络目标相关的网络掩码(也被称作子网掩码)。

  • Gateway 指定网络目标定义的地址集和子网掩码可以到达的前进或下一跃点 IP 地址。

  • metric Metric : 为路由指定一个整数成本值标(从 1 至 9999),当在路由表 (与转发的数据包目标地址最匹配) 的多个路由中进行选择时可以使用。

  • if Interface: 为可以访问目标的接口指定接口索引。若要获得一个接口列表和它们相应的接口索引,使用 route print 命令的显示功能。可以使用十进制或十六进制值进行接口索引。

# ping

  • ping 命令是常用的网络命令,它通常 用来测试与目标主机的连通性 ,我们经常会说 “ping 一下某机器,看是不是开着”、不能打开网页时会说 “你先 ping 网关地址 192.168.1.1 试试”。它通过发送 ICMP ECHO_REQUEST 数据包到网络主机( send ICMP ECHO_REQUEST to network hosts ),并显示响应情况,这样我们就可以根据它输出的信息来确定目标主机是否可访问(但这不是绝对的)。
  • 标准的命令格式:
ping [参数] [主机名或IP地址]

# 命令功能

  • ping 命令用于: 确定网络和各外部主机的状态;跟踪和隔离硬件和软件问题;测试、评估和管理网络 。如果主机正在运行并连在网上,它就对回送信号进行响应。
  • ping 命令每秒发送一个数据报并且为每个接收到的响应打印一行输出。ping 命令计算信号往返时间和 (信息) 包丢失情况的统计信息,并且在完成之后显示一个简要总结。ping 命令在程序超时或当接收到 SIGINT 信号时结束。Host 参数或者是一个有效的主机名或者是因特网地址。

# 相关参数

  • -d 使用 Socket 的 SO_DEBUG 功能。
  • -f 极限检测。大量且快速地送网络封包给一台机器,看它的回应。
  • -n 只输出数值。
  • -q 不显示任何传送封包的信息,只显示最后的结果。
  • -r 忽略普通的 Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
  • -R 记录路由过程。
  • -v 详细显示指令的执行过程。
  • <p>-c 数目:在发送指定数目的包后停止。
  • -i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。
  • -I 网络界面:使用指定的网络界面送出数据包。
  • -l 前置载入:设置在送出要求信息之前,先行发出的数据包。
  • -p 范本样式:设置填满数据包的范本样式。
  • -s 字节数:指定发送的数据字节数,预设值是 56,加上 8 字节的 ICMP 头,一共是 64ICMP 数据字节。
  • -t 存活数值:设置存活数值 TTL 的大小。

# netstat

  • netstat 命令 用于显示与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况 。netstat 是在内核中访问网络及相关信息的程序,它能提供 TCP 连接,TCP 和 UDP 监听,进程内存管理的相关报告。
  • 标准的命令格式:
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

# 相关参数

  • -a–all 显示所有连线中的 Socket。
  • -A<网络类型>–<网络类型> 列出该网络类型连线中的相关地址。
  • -c–continuous 持续列出网络状态。
  • -C–cache 显示路由器配置的快取信息。
  • -e–extend 显示网络其他相关信息。
  • -F–fib 显示 FIB。
  • -g–groups 显示多重广播功能群组组员名单。
  • -h–help 在线帮助。
  • -i–interfaces 显示网络界面信息表单。
  • -l–listening 显示监控中的服务器的 Socket。
  • -M–masquerade 显示伪装的网络连线。
  • -n–numeric 直接使用 IP 地址,而不通过域名服务器。
  • -N–netlink–symbolic 显示网络硬件外围设备的符号连接名称。
  • -o–timers 显示计时器。
  • -p–programs 显示正在使用 Socket 的程序识别码和程序名称。
  • -r–route 显示 Routing Table。
  • -s–statistice 显示网络工作信息统计表。
  • -t–tcp 显示 TCP 传输协议的连线状况。
  • -u–udp 显示 UDP 传输协议的连线状况。
  • -v–verbose 显示指令执行过程。
  • -V–version 显示版本信息。
  • -w–raw 显示 RAW 传输协议的连线状况。
  • -x–unix 此参数的效果和指定”-A unix” 参数相同。
  • –ip–inet 此参数的效果和指定”-A inet” 参数相同。

# LINUX 文件与目录管理

# Linux 文件组织和结构

# LINUX 文件组织

  • 文件系统组织 是指 文件存在的物理空间 ,Linux 系统中的每个分区都是一个文件系统,都有自己的目录层次结构,Linux 将这些分属不同分区的、单独的文件系统按一定的方式形成个系统的总目录层次结构。
  • LINUX 文件系统 使用索引节点来记录文件信息 ,作用与 Windows 的文件分配表类似。索引节点是数据结构,它包一个文件的文件名、位置、大小、建立或修改时间、访问权限、所属关系等文件控制信息。
  • 对于每个文件都有一个唯一的索引节点号与之对应,而对于一个索引节点号,却可以有多个文件名与之对应 。因此, 在磁盘上的同一个文件可以通过不同的路径去访问它。 Linux 操作系统可以用 1n 命令对一个已经存在的文件再建立一个新的连接,而不复制文件的内容 。连接有软连接和硬连接之分,软连接又叫符号连接。

# LINUX 文件结构

  • Linux 文件系统 采用多级目录的树型层次结构 管理文件。树型结构的 最上层是根目录 ,用 "/" 表示,其他的所有目录都是从根目录出发生成的。 Linux 将所有的软件、硬件都作为文件来管理,每个文件被保存在目录中
  • 微软的 DOS Windows 也是采用树型结构,但是在 DOS Windows 中这样的树型结构的根是磁盘分区的盘符, 有几个分区就有几个树型结构,它们之间的关系是并列的。而在 LINUX 中, 不管操作系统管理多少个磁盘分区,这样的目录树都只有一个

# LINUX 文件挂载

  • 所谓挂载 :就是将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,上一层文件系统的子目录就称为挂载点。这里要注意以下两个间题
    1. 挂载点必须是一个目录,而不能是一个文件。
    2. 一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。

# Linux 文件类型和访问权限

# 文件名与文件类型

  • 是由字母、数字、下划线、圆点组成, 最大的长度是 255 个字符
  • Linux 包括五种基本文件类型:
    • 普通文件 :计算机用户和操作系统 用于存放数据、程序等信息的文件 ,一般又分为文本文件和二进制文件,例如 C 语言源代码、 Shell 脚本、二进制的可执行文件等。
    • 目录文件 : 目录文件是文件系统中一个目录所包含的目录项组成的文件,包括文件名、子目录名及其指针。用户进程可以读取目录文件,但不能对它们进行修改。
    • 链接文件 :链接文件又称符号链接文件, 通过在不同的文件系统之间建立链接关系来实现对文件的访间 ,它提供了共享文件的一种方法。
    • 设备文件 :在 Linux 系统中, 把每一种 I/O 设备都映射成为一个设备文件,可以像普通文件一样处理 ,这就使得文件与设备的操作尽可能统一.
    • 管道文件主要用于在进程间传递数据 。 Linux 对管道的操作与文件操作相同,它把管道作为文件进行处理 。管道文件又称先进先出 (FIFO) 文件。

从对文件内容处理的角度而言 ,无论是哪种类型的文件, Linux 都把它们看作是无结构的流式文件 ,即把文件的内容看作是一系列有序的字符

# 文件和目录访问权限

  • Linux 对文件访问的三级权限
    • 文件所有者
    • 与文件所有者同组的用户
    • 其他用户
  • Linux 对文件的访问设定了三级权限
    • 读取
    • 写入
    • 执行

当用 ls -l 命令显示文件后目录的详细信息时,每一个文件或目录的列表信息分为 4 个部分,其中最左边的一位是第一部分,标识 Linux 操作系统的文件类型,其余三部分是三组访问权限,每组用三位表示,如下图:

wjlx

  • 在默认状态下,系统将创建的普通文件的权限设置为 -rw-r-r-- ,即文件所有者对该文件可读可写(rw),而同组用户和其他用户都只可读;同样,在默认配置中,将每一个用户所有者目录的权限都设置为 drwx------ ,即只有文件所有者对该目录可读、可写和可查询(rwx),即用户不能读取其他用户目录中的内容

# Linux 文件和目录操作命令

# cat

  • cat 命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

# 命令格式

cat [选项] [文件]...

# cat 三大功能

  1. 一次显示整个文件: cat filename

  2. 从键盘创建一个文件: cat > filename 只能创建新文件,不能编辑已有文件.

  3. 将几个文件合并为一个文件: cat file1 file2 > file

# 命令参数

  • -A , --show-all 等价于 -vET
  • -b , --number-nonblank 对非空输出行编号
  • -e 等价于 -vE
  • -E , --show-ends 在每行结束处显示 $
  • -n , --number 对输出的所有行编号,由 1 开始对所有输出的行数编号
  • -s , --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
  • -t 与 -vT 等价
  • -T , --show-tabs 将跳格字符显示为 ^I
  • -u (被忽略)
  • -v , --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

# more

  • more 命令,功能类似 catcat 命令是整个文件的内容从上到下显示在屏幕上。 more以一页一页的显示方便使用者逐页阅读 ,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。 more 命令从前向后读取文件,因此在启动时就加载整个文件。

# 命令格式

more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]

# 命令功能

  • more 命令和 cat 的功能一样都是查看文件里的内容,但有所不同的是 more 可以按页来查看文件的内容,还支持直接跳转行等功能

# 命令参数

  • +n 从笫 n 行开始显示
  • -n 定义屏幕大小为 n 行
  • +/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
  • -c 从顶部清屏,然后显示
  • -d 提示 “Press space to continue,’q’ to quit(按空格键继续,按 q 键退出)”,禁用响铃功能
  • -l 忽略 Ctrl+l(换页)字符
  • -p 通过清除窗口而不是滚屏来对文件进行换页,与 - c 选项相似
  • -s 把连续的多个空行显示为一行
  • -u 把文件内容中的下画线去掉

# less

  • less 工具也是 对文件或其它输出进行分页显示的工具 ,应该说是 linux 正统查看文件内容的工具,功能极其强大。 less 的用法比起 more 更加的有弹性。在使用 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

# 命令格式

less [参数]  文件

# 命令功能

  • lessmore 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

# 命令参数

  • -b <缓冲区大小> 设置缓冲区的大小
  • -e 当文件显示结束后,自动离开
  • -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
  • -g 只标志最后搜索的关键词
  • -i 忽略搜索时的大小写
  • -m 显示类似 more 命令的百分比
  • -N 显示每行的行号
  • -o <文件名> 将 less 输出的内容在指定文件中保存起来
  • -Q 不使用警告音
  • -s 显示连续空行为一行
  • -S 行过长时间将超出部分舍弃
  • -x <数字> 将 “tab” 键显示为规定的数字空格
  • /字符串 :向下搜索 “字符串” 的功能
  • ?字符串 :向上搜索 “字符串” 的功能
  • n 重复前一个搜索(与 / 或?有关)
  • N 反向重复前一个搜索(与 / 或?有关)
  • b 向后翻一页
  • d 向后翻半页
  • h 显示帮助界面
  • Q 退出 less 命令
  • u 向前滚动半页
  • y 向前滚动一行
  • 空格键 滚动一行
  • 回车键 滚动一页
  • [pagedown] : 向下翻动一页
  • [pageup] : 向上翻动一页

# cp

  • cp 命令 用来复制文件或者目录 ,是 Linux 系统中最常用的命令之一。一般情况下,shell 会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用 -i 参数。但是如果是在 shell 脚本中执行 cp 时,没有 -i 参数时不会询问是否覆盖。这说明命令行和 shell 脚本的执行方式有些不同。

# 命令格式

cp [选项]... [-T] 源文件 目的文件
       或:cp [选项]... 源... 目录
       或:cp [选项]... -t 目录 源...

# 命令功能

  • 将源文件复制至目标文件,或将多个源文件复制至目标目录。
  • 目标文件是普通文件,会询问是否要覆盖它
  • 目标文件如果不存在,则会执行正常的复制操作

# 命令参数:

  • -a , --archive 等于 -dR --preserve=all
    –backup [=CONTROL 为每个已存在的目标文件创建备份

  • -d , 若目标文件为 “链接文件”,则保留该 “链接文件的属性”

  • -f , --force 如果目标文件无法打开则将其移除并重试 (当 -n 选项存在时则不需再选此项)

  • -i , --interactive 覆盖前询问 (使前面的 -n 选项失效)

  • -P , --no-dereference 不跟随源文件中的符号链接

  • -p 等于 --preserve=模式 ,所有权,时间戳
           --preserve [= 属性列表 保持指定的属性 (默认:模式,所有权,时间戳),如果可能保持附加属性:环境、链接、xattr 等

  • -R , -r , --recursive 复制目录及目录内的所有项目


# mv

  • mv 命令是 move 的缩写,可以 用来移动文件或者将文件改名 (move (rename) files),是 Linux 系统下常用的命令,经常 用来备份文件或者目录

# 命令格式

mv [选项] 源文件或目录[目标路径|目标文件名]

# 命令功能

  • 视 mv 命令中第二个参数类型的不同(是目标文件还是目标目录),mv 命令 将文件重命名或将其移至一个新的目录中 。当第二个参数类型是文件时,mv 命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv 命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv 先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。

# 命令参数

  • -b :若需覆盖文件,则覆盖前先行备份。
  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
  • -u :若目标文件已经存在,且 source 比较新,才会更新 (update)
  • -t--target-directory = DIRECTORY move all SOURCE arguments into DIRECTORY ,即指定 mv 的目标目录,该选项适用于移多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

注意: mv cp 的结果不同。 mv 好像文件"搬家”,文件个数并未增加;而 cp 对文件进行复制,文件个数增加了


# rm

  • rm 是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。 对于链接文件,只是删除了链接,原有文件均保持不变

  • rm 是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在 /(根目录)下执行 rm * -rf )。所以,我们在执行 rm 之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。

# 命令格式

rm [选项] 文件…

# 命令功能

  • 删除一个目录中的一个或多个文件或目录,如果没有使用 -r 选项,则 rm 不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。

# 命令参数

  • -f , --force 忽略不存在的文件,从不给出提示。
  • -i , --interactive 进行交互式删除
  • -r , -R, --recursive 指示 rm 将参数中列出的全部目录和子目录均递归地删除。
  • -v , --verbose 详细显示进行的步骤 -
           --help 显示此帮助信息并退出 -
           --version 输出版本信息并退出

# mkdir

  • linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。

# 命令格式

mkdir [选项] 目录...

# 命令功能

  • 通过 mkdir 命令可以实现在指定位置创建以 DirName (指定的文件名) 命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限。并且,所创建的文件夹 (目录) 不能与其父目录 (即父文件夹) 中的文件名重名,即 同一个目录下不能有同名的 (区分大小写)

# 命令参数

  • -m , --mode = 模式,设定权限 <模式> (类似 chmod),而不是 rwxrwxrwx 减 umask

  • -p , --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,一次 - 以建立多个目录;

  • -v , --verbose 每次创建新目录都显示信息

            --help 显示此帮助信息并退出

            --version 输出版本信息并退出


# cd

  • Linux cd 命令可以说是 Linux 中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的。

# 命令格式

cd [目录名]

# 命令功能

  • 切换当前目录至 dirNames

# pwd

  • pwd 命令 用于显示用户当前所处的工作目录 ,当不太确定当前位置时,就会使用 pwd 来判定当前目录在文件系统内的确切位置。

# 命令格式

pwd [选项]

# ls

  • ls 命令是 linux 下最常用的命令。 ls 命令就是 list 的缩写,缺省下 ls 用来打印出当前目录的清单;如果 ls 指定其他目录,那么就会显示指定目录里的文件及文件夹清单。 通过 ls 命令不仅可以查看 linux 文件夹包含的文件,而且可以查看文件权限 (包括目录、文件夹、文件权限) 查看目录信息等等。

# 命令格式

ls [选项] [目录名|文件]

# 命令功能

  • 列出目标目录中所有的子目录和文件。

# 命令参数

  • -a , –all 列出目录下的所有文件,包括以。开头的隐含文件
  • -A , 同 -a ,但不列出 “.”(表示当前目录) 和 “…”(表示当前目录的父目录)。
  • -c , 配合 -lt :根据 ctime 排序及显示 ctime (文件状态最后更改的时间) 配合 -l:显示 ctime 但根据名称排序否则:根据 ctime 排序
  • -C , 每栏由上至下列出项目
  • -d , –directory 将目录象文件一样显示,而不是显示其下的文件。
  • -D , –dired 产生适合 Emacs 的 dired 模式使用的结果
  • -f , 对输出的文件不进行排序,-aU 选项生效,-lst 选项失效
  • -g , 类似 -l , 但不列出所有者
  • -G , –no-group 不列出任何有关组的信息
  • -i , –inode 印出每个文件的 inode 号
  • -I , –ignore = 样式 不印出任何符合 shell 万用字符 <样式> 的项目
  • -l , 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。

# chmod

  • chmod 命令用于 改变 linux 系统文件或目录的访问权限 。用它 控制文件或目录的访问权限 。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
  • Linux 系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。

# 命令格式

chmod [-cfvR] [--help] [--version] mode file

# 命令功能

  • 用于改变文件或目录的访问权限,用它控制文件或目录的访问权限。

# 命令参数

  • -c , 若该档案权限确实已经更改,才显示其更改动作
  • -V , 显示权限变更的详细资料
  • -R , 对当前目录下的所有文件与子目录进行相同的权限变更
  • -mode , 权限设定字符串

# ln

  • ln 是 linux 中又一个非常重要命令,它的功能是 为某一个文件在另外一个位置建立一个同步的链接。当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用 ln 命令链接(link)它就可以,不必重复的占用磁盘空间。

# 命令格式

ln [参数][源文件或目录][目标文件或目录]

# 命令功能

  • Linux 文件系统中,有所谓的链接 (link),我们可以将其视为档案的别名,而链接又可分为两种:硬链接 (hard link) 与软链接 (symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。

# 命令参数

  • 必要参数 :
    • -b 删除,覆盖以前建立的链接
    • -d 允许超级用户制作目录的硬链接
    • -f 强制执行
    • -i 交互模式,文件存在则提示用户是否覆盖
    • -n 把符号链接视为一般目录
    • -s 软链接 (符号链接)
    • -v 显示详细的处理过程
  • 选择参数 :
    • -S “-S < 字尾备份字符串> ” 或 “ --suffix =<字尾备份字符串>”
    • -V “-V < 备份方式>” 或 “ --version-control =<备份方式>”
             --help 显示帮助信息
             --version 显示版本信息

# Linux 用户和组管理

# 用户管理概述

  • 在 Linux 中,每个文件和程序都必须属于某个用户,每个用户对应一个账号,其中, 最重要的就是超级用户 root
  • 超级用户 root 管理系统的一切任务,可控制所有的程序,访问所有的文件。Linux 系统中的其他一些组群和用户都是由 root 来创建的

# 用户和组群管理概念

  • 用户标识 (UID):系统中用来表示用户的数字
  • 用户主目录 :也就是用户的起始工作目录,它是用户在登录系统后所在的目录,用户的文件都放在此处
  • 登录 Shell :用户登录后启动以接收用户得到输入并执行输入相应命令的脚本程序,Shell 是用户与 Linux 系统之间的接口
  • 用户组 / 组群 :具有相似属性的多个用户被分配到一个组中
  • 组标识 (GID):用来表示用户组的数字标识

超级用户在系统中的用户 ID 和组 ID 都是 0,普通用户的用户 ID(UID)从 500 开始编号,并且默认属于与用户名同名的组,组 ID 也是从 500 开始编号

# 用户管理配置文件

# /etc/passwd 文件

  • /etc/passwd 文件是 Linux 中 用于用户管理得到最重要文件,该文件对所有用户均可读 。每个用户在该文件中都有一行对应的记录,每条记录都用冒号(:)分成 7 个域,记录了这个用户的基本属性,形式如下:
用户名:加密的命令:用户ID(UID):组ID(GID):用户的全名或描述:登录目录:登录shell
  • 用户 ID(UID)对于的每个用户必须是 唯一的, 一般情况下,它与用户名是一一对应的
  • 编号 0 是 root 用户的 UID,编号 1-99 是系统保留的 UID,100 以上给用户做标识
  • Linux 把每个用户看成一个数字,每个用户只有唯一的 UID 来识别,配置文件 /etc/passwd 给出了系统用户 ID 与用户名之间及其他信息的对应关系。
  • 由于 /etc/passwd 文件 对所有用户都可读 ,所有现在的 Linux 系统都使用 shadow 技术,把真正加密后的用户口令字存放在 /etc/shadow 文件中,而在 /etc/passwd 文件的口令字段只存放一个特殊的字符,如 x 或 “*”,并且该文件只有根用户可读,大大提高系统安全性

# /etc/shadow 文件

  • /etc/shadow 文件是为了保证系统用户的安全性, 建立的只有一个超级用户 root 才能读取的文件 /etc/shadow ,该文件包含了系统中所有用户及其口令等相关信息,用冒号 (:) 分层 9 个域,下面是其格式:
    1. 用户登录名
    2. 用户加密后的口令(若为空,表示该用户不需口令即可登录;若为 * 好,表示该账号被禁止)
    3. 从 1970/1/1 至口令最近一次被修改的天数
    4. 口令在多少天内不能被用户修改
    5. 口令在多少天后必须被修改
    6. 口令过期多少天后用户账户被禁止
    7. 口令在到期多少天内给用户发出警告
    8. 口令自 1970/1/1 其被禁止的天数
    9. 保留域

# /etc/group 文件

  • /etc/group 文件。在 Linux 中,使用组来赋予同组的多个用户相同的文件访问权限。 一个用户也可以同时属于多个组,管理用户组的基本文件是 /etc/group, 与用户账户基本文件相似,每行记录用冒号(:)分成 4 个域,格式如下:
用户组名:加密后的组口令:组ID:组成员列表
  • 用户组 sys 在 /etc/group 中对应的记录行
    sys:x:3:root,bin,adm
    • 其代表额信息包括系统中有一个称为 sys 的用户组,设有口令,组 ID 为 3,组中成员有 root,bin,adm

# 用户和组管理命令

# 用户管理

  • 作用是 通过建立一个合法的用户账户、设置后管理用户密码、修改用户的账户属性以及必要式删除已经废弃的用户账号
  • 在 Linux 中增加一个用户就是在系统中创建一个新账号,然后给新账号分配用户号、用户组、主目录和登录 shell 等资源, 在 Linux 中,只有具有超级用户 root 权限的用户才能创建新的用户增加用户 的格式如下:
adduser [-选项] username
  • 常用选项参数
    • -d , 指定用于取代默认 /home/username 的用户主目录
    • -g , 用户所属用户组的组名或组 ID(用户组在指定前应该存在)
    • -m , 若指定用户主目录不存在则创建
    • -p , 使用 crypt 加密的口令
    • -s , 指定用户登录 shell,默认为 /bin/bash
    • -u uid , 指定用户的 UID,它必须是唯一的且大于 499

  • Linux 出于安全考虑,每个用户除了用户名,还设置了登录系统的用户口令。当用户账号刚刚创建时没有口令,但是被系统锁定,不可用,必须为其指定口令后才可使用。
  • 超级用户可以为自己和其他用户指定口令,但普通用户只能修改自己的口令,passwd 的格式如下
passwd [-选项][username]
  • 常用参数说明
    • -l , 锁定口令
    • -u , 口令解锁
    • -d , 使账号无口令
    • -f , 强迫用户下次登录时修改口令

  • 删除用户命令 userdel 的功能是系统中如果一个用户的账号不再使用,可以将其从系统中删除。删除一个用户的命令格式如下:
userdel [-选项] username
  • 常用的参数选项是 -r , 它的作用是把用户的主目录一起删除。
  • 删除用户账号就是要将 /etc/passwd 等系统文件中的该用户记录删除,必要时还删除用户的目录,可以使用 " userdel -r 用户名 ” 来实现这一目的;因此,完全删除一个用户包括:
    1. 删除 /etc/passwd 文件中此用户的记录;
    2. 删除 /etc/group 文件中该用户的信息;
    3. 删除用户的主目录;
    4. 删除用户所创建的或属于此用户的文件

  • 用户在系统使用过程中可以随时使用 SU 命令来改变身份。例如,系统管理员在平时工作时可以用普通账号登录,在 要进行系统维护时用 SU 命令获得 root 权限,之后为了安全再用 SU 回到原账号。 SU 命令的一般格式如下:
su [usermame]
  • username 是要切换到的用户名,如果不指定用户名,则默认将用户身份切换为 root, 系统会要求给出正确的口令。

# 用户组管理

  • 每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。默认 Linux 下的用户属千与它同名的用户组,这个用户组在创建用户时同时创建。与用户管理相类似,用户组的管理包括组的增加、删除和修改,实际上就是通过修改 /etc/group 文件实现这些操作

  • Linux 系统中将一个新用户组加入系统的命令是 groupadd 。该命令的一般格式如下。

groupadd [-选项] groupname
  • 常用选项参数说明如下
    • -g GID : 指定用户组的 GID, 它必须是唯 的,且大于 499
    • -r : 创建小千 500 的系统用户组
    • -f : 若用户组已存在,退出并显示错误(原用户组不会被改变)。

  • 删除一个用户组时要注意以下几点
    1. 组中的文件不能自行删除,也不能自行改变文件所属的组;
    2. 如果组是用户的基本组(即 etc passwd 文件中显示为该用户的组),则这个组无法删除;
    3. 如果组中有用户在系统中处千登录状态则不能删除该组, 最好删除用户后再删除组。
  • 修改用户组的属性使用 groupmod 命令,其格式如下。
groupmod [-选项] groupname
  • 常用选项参数说明如下
    • -g : 为用户组指定新的组标识号
    • -n : 将用户组的名字改为新名字