Fork me on GitHub

Linux教程.md

LINUX 初探

知识概念

网络概述

1970年 — Linux元年
1969年 — Internet元年

  • 局域网(LAN)

    - Local Area Network : 指范围在几百米到十几公里内办公楼群或校区内的计算机相互连接所构成的计算机网络
    
  • 城域网(MAN)

    + Metropolitan Area Network
    
  • 广域网(WAN)
    - Wide Area Network : 通常跨接很大的物理范围,如一个国家
    


网络分类 – 公网 & 内网

公网:上网的计算机得到的 IP 地址是 Internet 上的非保留地址,公网的计算机和 Internet 上的其他计算机可以随意相互访问

IP 地址

IP (Internet Protocol) : 网络之间互连的协议,即网络相互连接进行通信而设计的协议

IP 地址类型 : 公有地址、私有地址

1.0.0.0 - 255.255.255.255

  • 公有地址(Public address)

    • 公有地址由 Inter NIC (Internet Network Information Center 因特网信息中心)负责。这些 IP 地址分配给注册并向 Inter NIC 提出申请的组织机构(免费),可以通过它直接访问因特网
  • 私有地址(Private address)

    • 私有地址属于 非注册地址,专门为组织机构内部使用,用以分散使用
类别 私有 IP 地址 使用对象 最大主机数 最大网络数
A 类 10.0.0.0 - 10.255.255.255 电信、联通等运营商 16777214 126 (2^7-2)
B 类 172.16.0.0 - 172.31.255.255 65534 16384(2^14)
C 类 192.168.0.0 - 192.168.255.255 使用最多 254 2097152(2^21)

DNS

DNS (Domin Name System 域名系统) : 因特网上作为域名和 IP 地址相互映射的一个分布式数据库,能使用户更方便的访问互联网

域名解析

用户通过主机名,最终得到该主机名对应的 IP 地址的过程

步骤:

用户输入域名 localhost –> DNS (localhost 127.0.0.1) –> 服务器电脑

端口(Port)

端口可以认为是设备与外界通讯交流的出口

端口: 虚拟端口物理端口

虚拟端口 : 计算机内部或者交换机路由器内的端口,不可见端口

物理端口 : 如计算机的 80端口、 21端口等,可见端口例如 计算机背板的 RJ45网口


**用户输入域名 localhost:端口 –> DNS (localhost 127.0.0.1) –> 服务器电脑 –> 软件(服务)

**

文件与用户的关系

  • 所有者 u : 只有一个,但可以交换
  • 用户组 g : 只有一个,可以使用文件,但不是所有者
  • 其他人 o : 既不属于所有者,又不是用户组

格式

  • -: 表示文件
  • d: 表示目录
  • l : 表示软连接
    • 例子 :rw- r– r–
      • rw- : 代表文件的所有者有读写的权限,代表最高权限,不一定需要赋予所有权限,够用就行
      • r– : 代表赋予用户组的权限
      • — : 代表赋予其他人的权限
  • 软链接
    • 类似 Windows快捷方式,不决定原文件的权限,只是符号链接
    • 三种用户都有所有权限 rwx , 文件为 l 开头 ,文件大小较小
  • 硬链接
    • 相当于拷贝 cp -p(保留属性) + 同步更新 一个i节点对应到了两个文件
    • 注意 : 硬链接不能跨分区 ,而且不能针对目录使用

      文件操作

      • r(读) w(写) x(执行)
  • 文件覆盖 y

Linux配置

设置Linux的IP地址

ifconfig eth0 ip地址

  • 添加虚拟网卡
    • ifconfig eth0:1 198.168.1.1

操作技巧

  • 文件部分名称+ tab : 自动补全文件名
  • Ctrl shift = : 放大终端窗口的字体显示
  • Ctrl - : 缩小终端窗口的字体显示
  • 向上/下箭头:查看历史输入命令

Linux命令

查阅命令帮助信息

help:command --help : 显示帮助信息
man:man command : 查阅使用手册

  • 空格:显示手册下一屏
  • Enter:下一行
  • b:回滚一屏
  • f:前滚一瓶
  • q:退出
  • /word:搜索word字符串

  • 命令格式

    • 命令 -选项 -参数
      • 例子 : ls -la /etc
        命令的选项可以同时使用,且不分顺序

文件处理命令

文件命令 作用 英文
ls 目录处理命令 list
ls -a 查看目录所有文件(含隐藏文件) 可以添加目录参数
ls -l 查看文件的详细信息
ls -lh 人性化显示文件信息,更直观显示文件大小
ls -ld /etc 只示目录本身的信息
ls -i 查看文件的i节点 (即为文件的id信息)

说明

  • .开头为隐藏文件,需要-a参数查看或者Ubuntu进入目录,按ctrl h就能看见以点号开头的隐藏文件
  • .当前目录
  • ..上一级目录
目录命令 英文 作用
mkdir make directories 创建新目录
mkdir -p 递归创建新目录,并且在新目录在再进行创建,可同时创建多个
cd change directories 切换目录 . 代表当前目录 ..回到上一级目录
pwd print working directories 显示当前工作目录
rmdir remove directories 删除空目录
cp copy 拷贝目录或文件 cp -rp [原文件或目录] [目标目录] r为复制目录操作 p为保留文件属性 可以同时复制多个
mv move 目录剪切 移动 mv [绝对路径] [目标路径] 若是要剪切当前路径下的文件 可以直接 mv [文件名] [目标目录]
rm remove 删除文件或名录 要慎重 rm -f 强制删除 rm -r 删除目录 rm -rf 直接删除目录
cd 补充 作用
cd ~ 切换到当前用户的主目录
cd . 保持在当前目录不变
cd .. 切换到上级目录
cd - 可以在最近两次工作目录之间来回切换
文件处理 作用 例子
touch 创建空文件 touch /root/book.list
cat 浏览文件内容 可以加 -n 参数 cat -n /etc/issue
tac cat 的倒序显示可以倒序显示文件内容
more 分页显示文件,适合查看长文件
less 分页浏览
head 查看文件的前n行,默认为10行 head -n 8
tail 查看文件的末尾n行 tail -f /var/log/message 动态显示问文件
链接处理 作用 例子
ln /etc/issue /tmp 默认创建硬链接 ln -s 软连接

  • 注意事项:
    • touch
      • 若要创建带空格文件名的文件,可touch "my love",即加上双引号
      • 最好不要在Linux中创建带有特殊符号的文件名
    • cat
      • 不太适合浏览含有非常多内容的文件
    • more
      • 按 空格 : 一页一页浏览
      • 按 回车 : 一行一行浏览
      • 按 q : 退出浏览
    • cp
      • cp -p : 该属性可以保持复制文件或目录的信息,如创建和修改的时间等 cp -r
      • cp -r : 可以在复制文件或目录时,将文件名进行修改
    • mv
      • mv 当前目录下的文件名 要修改成的名字 : 可以作为文件名修改命令
    • less
      • 可以倒回去浏览内容
      • pageup : 一页一页往回翻
      • 上箭头 : 一行一行往回翻
      • /service : / 斜杠可以用来搜索,按 n 可以翻看下一页

权限管理命令

命令名称: chmod

  • 命令原意: change the permissions mode of a file
  • 所在路径: /bin/chmod
  • 功能描述: 改变文件或目录权限
  • 可以更改权限的对象: root & 所有者
  • 语法

    • chmod [{ugoa}{+-=}{rwx}] [文件或目录]
      [mode=421] [文件或目录]
      -R 递归修改
      
      • 例子 : chmod u+x myblog.md – 给所有者(u)赋予myblog文件的写(x)的权限
      • 补充 : 通过”+-=”来修改权限
        • 一般通过权限的数字来表示: r–4 w–2 x–1
        • rwx : 7 ; rw- : 6 ; r–: 4
        • 例子 : chmod 640 myblog.md
      • 注意: chmod 默认改变当前指定的文件或目录,对目录下的子目录不进行修改
        • 若需要修改,则可以添加-R属性
  • 正确理解目录rwx权限

img

注意:r+x 权限是同时出现的

w权限的说明:

对文件的删除是否能进行,是与用户在该文件所在目录被赋予的权限有关

若用户被给予W权限,则可以删除该文件

改变所有者命令 chown

  • 命令名称 : chown – change file ownership
  • 命令所在路径 : /bin/chown
  • 执行权限 : root用户
  • 功能描述 : 改变文件或目录的所有者


  • 语法
    - 基本语法  : chown [用户][文件或目录]
    


  • 注意事项

    只有root管理员身份才能修改所有者

    修改所有者时,要确保新所有者用户存在

    创建新用户 useradd 用户名 ,并且谁创建的文件,谁就是所有者

改变文件所有组 chgrp

  • 命令名称 : chgrp – change file group ownership
  • 命令所在路径 : /bin/chgrp
  • 执行权限 : 所有用户


  • 语法
    • 基本语法 : chgrp [用户组][文件或目录]
    • 范例 : $ chgrp newgroup doc : 将doc文件的所属组改为newgroup
    • 创建新组 : groupadd 新组名

设置新建文件的缺省权限 umask

  • 命令名称 : umask – the user file-creation mask
  • 命令所在路径 : Shell内置命令
  • 执行权限 : 所有用户
  • 功能描述 : 显示、设置文件的缺省权限


  • 语法
    • 基本语法 : umask [-S]
      • S : 以 rwx 形式显示新建文件的缺省权限
      • 范例 : $ uamsk -S
    • 拓展语法
      • umask 023
      • 含义 :所有权限777 ,将 777 - 023 = 754 ,则为新设置的目录权限为 rwx–rx–r
  • 注意
    • touch 创建新文件是不具有可执行权限

文件搜索命令

文件搜索命令 find

  • 命令名称: find
  • 命令所在路径: /bin/find
  • 执行权限: 所有用户

  • 语法

    • find [搜索范围][匹配条件]
    • 更多用法
      • $find /etc -name init :使用-name 精准搜索
        • 粗略搜索 *init*
        • 不分文件名大小写 -iname
          • :匹配任意字符 ?:匹配单个字符
      • $find / -size : 使用-size 根据文件大小来查找
        • find / -size +204800 : 在根目录下查找大于100MB的文件
        • +n 大于 -n 小于 n 等于
        • 大小说明
          • 1K = 2数据块 1数据块 = 512字节 = 0.5K
      • $find /home -user(-group) yonghu :根据文件所有者(所属组)来查找
      • find -type f :根据文件类型查找 – f 文件 d 目录 l 软连接文件
      • find -inum : 根据i节点查找 ,通过i节点,可删除特殊文件
      • 根据文件信息修改的时间来查找
        • $find /etc -amin -5:查找5分钟内被访问过的文件和目录 – access
        • $find /etc -cmin -5:查找5分钟内被修改过属性的文件或目录 – change
        • $find /etc -mmin -5:查找5分钟内被修改过内容的文件或目录 – modify

常用连接选项 作用 范例
-a (and) 表示两个条件同时满足 $find /etc +163840 -a -size -204800
-o (or) 表示两个条件满足任意一个即可 $find /etc 163840 -o -size 204800


注意事项
  • 查找文件时,文件名的大小写是区分开来的

文件搜索命令 locate

  • 命令名称: locate
  • 命令所在路径: /usr/bin/locate
  • 执行权限 : 所有用户

语法

  • 基本语法

    • locate 文件名
    • 功能 : 在文件资料库中查找文件
    • 范例:$locate init
    • 文件库: /var/lib/mlocate/mlocate.db
  • 拓展语法

    • locate -i 文件名 : 不区分大小写来查找文件

注意

当创建的文件没有被存入文件资料库中时,无法使用locate查找到文件

解决方法: $ updatedb 手动更新

文件资料库不会收取 /tmp 临时文件夹下的文件,故使用locate可能无法搜索到该目录下文件

文件搜索命令 which

  • 命令名称: which
  • 命令所在路径 : /usr/bin/which
  • 执行权限 : 所有用户
  • 功能描述: 搜索命令所在目录及别名信息
  • 例子 : $ which ls

文件搜索命令 whereis

  • 命令名称: whereis
  • 命令所在路径: /usr/bin/whereis
  • 执行权限 : 所有用户
  • 功能描述: 搜索命令所在目录及帮助文档路径
  • 例子: $ whereis ls

文件搜索命令 grep

  • 命令名称 : grep
  • 命令所在路径: /bin/grep
  • 执行权限: 所有用户
  • 功能描述 : 在文件中搜寻字串匹配的行并输出,即在文件内进行搜索

语法

  • 基本语法

    • $ grep mysql /root/install.log
    • $ grep + 查找关键词 + 文件所在地址
  • 拓展语法

    • $ grep -i : 不区分大小写来查找
    • $ grep -v : 排除指定字串来查找
    • $ grep -v ^# : 过滤掉位于行首的文件脚本注释行

文件解压操作

tar -zxvf 压缩文件名


注意事项

目录:

/proc/ /sys/ : 为系统内存和内核,只可读,写入的数据在重启时会清除,不要往内写入文件

/tmp : 临时目录,存放临时文件,建议不要存放重要文件,重启时最好清除

/var : 动态数据保存位置,注意保存缓存,日志已经软件运行产生的文件

/usr : 系统软件资源目录,为“Unix Software Resource”的缩写,用于存放系统软件资源的目录,系统安装的软件资源基本存放在此目录

服务器:

  • 远程服务器不允许关机,只能重启
  • 重启时应该关闭服务
  • 不要在服务器访问高峰运行高负载命令 ,如对大数据的处理
  • 远程配置防火墙(过滤作用)时,不要把自己踢出服务器

其他:

  • 指定合理的密码规范并定期更新
  • 合理分配权限 – 用户的权限越少越好
  • 定期备份重要数据与日志,多处存储
  • Linux命令若未指定目录,则默认在当前目录里执行操作
  • Linux 新建的文件的 x(可执行)权限会自动去除

喜欢的可以对我打赏了哟~