了解Linux
更新:HHH   时间:2023-1-7


linux01
一、linux介绍与作用
windows: 95 98 2000 xp win7 win8 win10(客户机)
windows 2003server 2008server(服务器)
linux: 乌班图 红帽 红旗 安卓 ios 小米 锤子
linux:CentOS(服务器)
Linux特点:
开源(免费)
安全
稳定
可靠
windows 2008 server
简单
易用
用户友好
http://www.netcraft.com 踩点技术
李纳斯 托瓦斯
肯 汤普森
丹尼斯里奇
二、命令行提示符
a) [root@localhost ~]#(掌握)
[当前登录用户@主机名 当前所在目录] #
linux 超级用户: root
windows 超级用户: administartor

超级用户

$ 普通用户
当前所在目录 ~ 用户的家目录
管理员超级用户 /root/
普通用弩 /home/用户名/所在目录
b) linux 命令格式
命令 空格 [选项] 空格 [参数]
选项: 使用与调整命令的功能
参数 : 参数是命令操作的对象 如果可以省略 说明有默认值的参数显示
注意: 在linux下是严格区分大小写的 所有内容都严格区分大小写
c) ls list 显示目录下的内容(重点重点重点)
ls 直接回车 显示目录下的内容
ls -l 长格式显示(缩略的选项用一个减号 完整的选项使用两个减号)
别名 ll
-rw-r--r--. 1 root root 27034 7月 25 22:42 install.log
第一列 权限 所有者权限 所属组权限 其他人权限(了解)
第二列: 引用计数
第三列: 所有者
第四列: 所属组
第五列: 大小 默认单位Byte
第六列: 文件最后一次修改和访问时间
第七列: 文件名
ls -hl -h 人性化显示 文件大小显示为 M K G T
多个选项可以一起使用而且大部分没有任何顺序
ls -a 显示所有文件(包含隐藏文件)
文件名前面带点的文件是隐藏文件
需求: 我想要所有文件人性化 长格式显示
ls -ahl
d) 目录操作命令(重点重点重点重点重点)

  1. cd 切换所在目录
    a) 命令名称 :cd
    b) cd /home
    相对路径
    参考当前所在目录 进行查询 如果使用相对目录 请先查看好所在目录是哪一个
    绝对路径
    从根目录(/)开始 一级一级的查找 直到找到位置 对于初学者来说 建议使用绝对路径
    cd 回到登录用户的家目录
    cd - 进入上一次操作目录
    cd .. 进入上一级目录
    tab键 可以对我们的目录和文件进行补全
    c) 终止命令执行 使用ctrl+c
  2. pwd 显示当前所在目录(重点重点重点)
  3. linux常见目录(以下目录必须全部记录)(重点重点)
    / 根目录
    /root 超级管理员的家目录
    /home 普通用户的家目录
    /bin 命令保存目录(普通用户的命令)
    /sbin 命令保存目录(超级用户的命令)
    /dev 设备文件保存目录
    /etc 配置文件的保存目录
    /lib 函数库的保存目录
    /mnt 系统挂载目录(推荐使用)
    /media 挂载目录
    /tmp 临时目录
    /proc 直接写入内存
    /usr 系统软件资源目录
    /var 系统相关文件内容
    /var/log 系统日志
  4. 建立目录(重点重点重点)
    蓝色名字的文件是目录
    mkdir 目录名
    mkdir weisuobao
    mkdir -p weisuobao/shuaiqixiang/qiuqiu/baizi
    加上-p 就是递归创建
  5. 删除(重点 重点 重点)
    rm -rf 文件/目录
    -r 删除目录
    -f 强制
    快捷键:
    强制终止 : ctrl+c
    清屏: ctrl + l
    三、文件操作命令 (重点重点重点重点重点)
  6. 创建文件 新建文件
    touch 文件名
    touch hetao.avi
  7. cat 文件名 查看文件
    cat -n install.log
    -n 查看文件同时显示行号
  8. more 文件名 分屏显示
    more install.log
    空格向下翻页 b 向上翻页 q 退出
  9. head -要查看的条数 文件名
    head -10 install.log
    四、文件和目录都能操作的命令(重点重点重点)
  10. rm 删除 rm -rf 文件/目录
  11. cp 复制拷贝 copy
    cp ./xiaoni.laodu ./weisuobao/shuaiqixiang/xiaoni.laodu
    cp /root/xiaoni.laodu /root/weisuobao/shuaiqixiang/xiaoni.laodu
    复制文件
    cp -r /root/sanpi /root/weisuobao/sanpi/
    -r 复制目录

  12. mv 剪切或改名
    mv 源文件 目标位置
    mv /root/xiaoni.laodu /tmp/xiaoni.laodu剪切
    mv ./xiaoni.laodu ./weisuodelaodu 改名
    既要剪切也要改名
    mv /root/sanpi/xiaoni.laodu /root/weisuobao/ml.laodu

五、权限管理(重点重点重点重点重点重点难点难点)

  1. 权限位

d rwx r-xr-x
权限位是十位
第一位: 代表文件类型

  • 普通文件
    d 目录文件
    l 链接文件
    后面九位 每三位代表一个权限
    第二位到第四位 所有者权限 u=user
    第五位到第七位 所属组权限 g =group
    第八位到 第十位 其他人权限 o = other
    r 读取 4
    w 写入 2
    x 执行 1
    • 无权限
      1. 修改权限(超级重点重点重点重点)
        chmod 权限 文件名
        逻辑描述法:
        chmod u+x yanquan.avi
        chmod u-x yanquan.avi
        chmod u=rwx yanquan.avi
        chmod g=rwx yanquan.avi
        其他人权限上加上rwx 对于yanquan.avi这个文件
        chmod o=rwx yanquan.avi
        请将其他人权限改为rw 对于yanquan.avi这个文件
        chmod o-x yanquan.avi
        数字描述法
        r =4 w =2 x=1
        chmod 5 5 5 yanquan.avi
        chmod 755 yanquan.avi
        chmod 777 yanquan.avi
        777最大权限 在生产服务器中 禁止赋予这个权限
        实验: 问 root用户创建一个目录(默认权限 rwxr-xr-x) 在目录里面新建一个文件 设置为777 普通用户是否能删除文件
      2. mkdir /jack
      3. cd /jack
      4. touch rose.rmvb
      5. chmod 777 rose.rmvb
      6. useradd 用户名(添加用户)(了解)
      7. passwd 用户名 (为用户添加密码)(了解)
        使用普通用户去尝试删除rose.rmvb 文件
        得到的结果是什么? 删除失败
        原因: rwx 权限对于目录和文件实际意义不一致
        文件:
        r: 查看文件内容
        w: 修改文件内容
        x: 执行文件
        目录:
        r: 列出文件
        w: 创建删除文件
        x: 进入目录
        如果想要删除目录中的文件修改目录权限
        chmod 777 /jack
        总结:
      8. 对文件有写权限 只能代表可以修改这个文件 要想删除需要文件所在目录有写权限
      9. 只要对目录有写权限 目录中的文件就算是root创建的文件也可以删除掉
        赋予权限要合理
      10. 对目录有w权限 就意味着需要有rwx权限
      11. 对脚本执行 需要rx 并且对该目录也有rx权限

chown 修改所有者和所属组
命令名称: chown
chown 用户名 文件名 改变文件所有者
chown linlin yanquan.avi linlin这个用户必须存在
chown 用户名:用户组 文件名
chown linlin:linlin yanquan.avi 改变所有者同时改变所属组
六、帮助命令
i. man 命令名
man ls 空格向下翻页 b 向上翻页 q退出
ii. 命令 --help
ls --help
七、关机和重启命令

  1. shutdown -h now 关机 -h 关机 now 马上
  2. shutdown -r now 重启 -r 重启 now 马上
  3. reboot 重启
    注意: 如果是服务器请不要关机 但是如果是你的虚拟机你就自己开心就好
    linux02
    八、查找命令
  4. whereis 命令 查找命令的命令 同时可以看到帮助文档位置 (掌握)
  5. find 搜索命令 在系统中搜索符合条件的文件名(重点重点重点重点重点)
    find 查找位置 按什么模式搜索 搜索的条件
    a. 按照文件名查找
    find 查找位置 -name 文件名
    find / -name “sanpi” 按照文件名查找sanpi的文件(区分大小写)
    find / -iname “sanpi” 按照文件名查找sanpi的文件(不区分大小写)

b. 按照文件大小查找
-size 按照文件大小
+50k 大于50k
-50k 小于50k
50k 等于50k
b k M G
find / -size +50k 查找 根目录下文件大小大于50k的所有文件
c. 按照那文件类型查找
-type 类型 按照文件类型查找 f:文件 d:目录 l 链接文件
find /root -type d 查找家目录下面所有文件类型为目录的全部查找出来
d. 在查询出来的结果中 直接进行命令操作
find /root -name “yanquan.avi” -exec ls -l {} \;
find 要查找的位置 按照什么方式查找 文件名 -exec 要操作的命令 {} \;
{} 是用来放置你前面查询出来的结果
\是转义 表示一个命令使用其本身的意义,不使用别名
; 语句的结束
注意固定格式 只能这样写而且注意空格

  1. grep “字符串” 文件名 在文档中搜索符合条件的内容(重点重点重点重点)
    -v 反向选择
    -i 忽略大小写
    grep -i “root” /root/install.log
    grep -v “root” /root/install.log
    grep “字符串” 文件名
  2. 管道符
    命令1 | 命令2 命令1 执行的结果 作为命令2的操作对象
    ls -l /etc | grep yum
    ls -l /etc | more 分屏的形式显示etc目录下面的所有内容 向下翻页 空格 b不能操作
    九、压缩和解压缩(重点重点重点重点重点重点)
    windows 下面压缩类型: rar zip .7z
    linux 压缩类型: tar.gz tar.bz2
  3. 压缩
    tar -zcvf 压缩文件名 源文件
    -z 识别.gz格式
    -c 压缩
    -v 显示压缩过程
    -f 执行压缩包名
    压缩的选项不要改变顺序
    tar -zcvf shuaiqixiang /root/meilidelixiang

tar -jcvf 压缩的文件名 源文件
-j 识别 .bz2 格式
tar .jcvf shuaiqidebao.tar.bz2 meilidelixiang

  1. 解压缩
  2. tar -zxvf 压缩文件路径
    tar-zxvf shuaiqixiang.tar.gz
    -x 解压缩
  3. tar -jxvf 压缩文件路径
    -x 解压缩
    tar -jxvf shuaiqidebao.tar.bz2
  4. 指定解压缩路径
    tar -zxvf 解压缩文件路径 -C 要解压缩的位置路径
    -C指定路径
    tar -jxvf 解压缩文件路径 -C 要解压缩的位置路径
    -C 指定路径
    十、挂载命令(重点重点重点重点重点重点重点重点重点)
    linux 所有的存储设备都必须挂载才能使用(linux中的挂载点就是window中的盘符) 如果你挂载的是光盘 那么必须提前将光驱中有光盘
  5. 放入光盘iso
  6. 建立挂载点
    mkdir /mnt/cdrom
  7. mount 设备描述文件 挂载点(必须存在目录并且目录必须是空目录)
    mount /dev/sr0 /mnt/cdrom
    如果出现下面这句话 说明你光盘挂载成功
    mount: block device /dev/sr0 is write-protected, mounting read-only
    光盘卸载
    umount /mnt/cdrom
    报错;
    umount: /mnt/cdrom: device is busy.
    (In some cases useful info about processes that use
    the device is found by lsof(8) or fuser(1))
    计算机想说: 大哥能不能行了 我不想自杀
    重点: 一定要退出你当前挂载点目录之后再进行卸载

十一、网络命令

  1. ifconfig 与windows 里面 ipconfig -all 是一样的显示网络信息
    ifconfig eth0 192.168.204.250 临时修改
  2. ping 网络连通性测试
    ping 192.168.204.148
    ping -c 次数 ip ping 多少次
  3. netstat 查看网络状态命令
    -t 查看tcp端口 tcp传输控制协议
    -u 查看udp端口 udp 用户数据报协议 即时通讯
    -l 监听
    -n 显示ip 和端口号
    -a 查看所有连接
    :80 apache
    :3306 mysql
    netstat -talun | grep :80 查看80端口是否被使用 apache
    netstat -talun | grep :3306 查看3306端口使用情况 mysql
    今天晚上各位需要将你们的外部链接工具给我连接成功
    将/etc/selinux/config 里面的SELINUX = enforcing 改为 SELINUX=disabled 改完之后 reboot 重启才能生效

十二、vim编辑器
vim 是全屏幕纯文本编辑器

  1. vim使用
    怎么进入vim
    vim 后面写上你要操作的文件名即可
    例如:vim 1.php
    a. vim 模式

命令模式->插入模式(输入模式)
a 后插入模式 (追加)
i 前插入模式
o 下插入模式
A 在本行末尾进行插入
I 在本行行首进行插入
O 上插入模式
插入模式->命令模式 ESC键
命令模式->编辑模式 (:)冒号 :w 保存 :wq 保存并退出 :q! 不保存退出(!强制)
快捷键 但是这个快捷键只允许在命令模式下使用
ZZ 保存并退出
b. 命令模式操作(linux 是鼠标操作 ,vim中都是通过快捷键来进行操作,这些快捷键可以替代鼠标)

  1. 光标操作
    :n 移动到第n行
    :set nu 显示行号
    在命令模式下
    h左 j 下 k 上 l右
    gg 移动到文件头
    G 移动到文件尾
  2. 删除整行、剪切
    dd 删除单行
    ndd 删除多行 n代表你要删除的行数
    dG 从光标所在行删除到文件末尾
    p 粘贴
  3. 复制
    yy 复制单行
    nyy 复制多行 n代表你要复制的行数
    p 粘贴
    np 粘贴 n行
  4. 撤销回来
    u 撤销 windows ctrl+z
    ctrl+r 反撤销 windows ctrl+y
    注意: 如果你使用内网通飞秋等一系列软件 请退出软件之后再使用ctrl+r 为什么因为ctrl+r在这些软件中有热键(快捷键)
  5. 显示行号
    :set nu 显示行号
    :set nonu 隐藏行号
  6. 查找
    / 查找内容
    n 下一个
    N 上一个
    linux03
    一、软件包管理
    a) windows 和Linux的 软件不能通用 windows的.exe文件 不能在linux下直接安装
    缺点: 所有软件都要在linux当中独立开发
    优点: windows的病毒和***都无法在linux 下安装
    b) 软件包选择原则
    i. 如果软件包安装之后 是给大量客户端提供访问 我们就使用的都是(源码包)安装
    ii. 如果软件包安装之后 是给本机或者少量客户端使用建议我们使用(二进制包)安装
    c) 软件包分类
  7. 源码包
    优点: 开源 自定义 本身编译 效率高
    缺点: 编译时间长 一旦报错 不容易排除
  8. 二进制(rpm)包
    优点: 安装速度快 简单
    缺点: 不开源 自定义性能差 软件包依赖性高
    A--------------->B---------------------->C 树形依赖
    A---------------->B-------------------->C------------------->A 环形依赖 (库软件依赖)
  9. rpm 安装
    i. 包命名
    包名-版本号-发布次数-适合的linux-适合的硬件.rpm

ii. 包全名:操作未安装软件包 使用我们的包全名就是(有后缀名)
iii. 包名: 操作已经安装的软件包 使用我们的包名(就是没有后缀名)

  1. 依赖性特别严重
  2. 安装
    rpm -ivh 包全名(绝对路径)
    -i 安装
    -v 显示详细信息
    -h 显示进度
    安装位置: 默认位置
    rpm包不建议指定安装位置
    1.系统习惯使用默认位置来查找rpm相关信息
    1. rpm包有对应的卸载命令 不用担心 安装的太凌乱 导致无法卸载
  3. 升级
    rpm -Uvh 包全名
    -U 升级
  4. 卸载
    rpm -e 包名
    --nodeps 不检查依赖性
  5. 查看
    a) 查看软件是否安装
    rpm -q 包名 -- 查询包是否安装
    rpm -qa | grep httpd -- 显示所有安装 查询http的是否安装
    -q 查询
    -a all 所有
    b) 查询软件包安装的位置
    rpm -ql 包名 -- 查询软件包中文件安装的位置
    -l list 列表
    c) 查询系统文件属于哪个包
    rpm -qf 系统文件名 -- 查看这个系统文件是哪个包的文件
    -f file 文件

  6. 实验: 安装httpd
    准备工作: 挂载光盘
  7. 放入iso镜像文件
  8. 创建目录如果你已经有了就不用在创建了
  9. mount /dev/sr0 /mnt/cdrom
  10. 如果挂载成功之后进入到挂载点目录
    cd /mnt/cdrom/Packages/

E rpm -ivh httpd-2.2.15-53.el6.centos.i686.rpm
C rpm -ivh apr-util-ldap-1.3.9-3.el6_0.1.i686.rpm
B rpm -ivh apr-util-1.3.9-3.el6_0.1.i686.rpm
A rpm -ivh apr-1.3.9-5.el6_2.i686.rpm
D rpm -ivh httpd-tools-2.2.15-53.el6.centos.i686.rpm

  1. 启动httpd服务
    service httpd start
    如果在浏览器上访问的时候 比较慢 请查看你的防火墙是否没有关闭 如果是请关闭掉
    setup->防火墙->*号去掉 进行保存即可
  2. yum 命令安装rpm包 没有yum包 yum 是rpm的在线自动安装方式
    yum -y install 包名 安装
    install 安装
    -y 自动回答yes
    yum -y remove 包名 卸载
    yum -y update 包名 更新
    yum list 查看所有可以安装的包
  3. 将光盘作为你的源地址 yum源(非常重点非常重点非常重点非常重点非常重点非常重点)
    1. cd /etc/yum.repos.d/
    2. mv CentOS-Base.repo CentOS-Base.repo.bak

      CentOS-Base.repo 网络源

      上面的操作的作用是让yum的网络源失效

  4. mount /dev/sr0 /mnt/cdrom (如果没有挂载请输入这条命令 如果已经挂载请忽略)
  5. vim /etc/yum.repos.d/CentOS-Media.repo
    [c6-media] # yum源名称
    name=CentOS-$releasever - Media #yum源说明
    baseurl=file:///media/CentOS/ #指定yum源地址
    file:///media/cdrom/
    file:///media/cdrecorder/
    gpgcheck=1 #yum源验证生效
    enabled=0 # yum 文生效
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    将上面的内容改为下面内容
    [c6-media]
    name=CentOS-$releasever - Media
    baseurl=file:///mnt/cdrom/
    file:///media/cdrom/
    file:///media/cdrecorder/
    gpgcheck=1
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    改完之后保存并退出文件
  6. 做一个实验 用于测试yum源是否改变成功 yum -y install gcc(gcc是c语言编译器 不装gcc源码包无法安装)
    d) 源码包安装
    1. 上传软件包
      使用winscp 等远程工具连接linux上传输文件
      实验 上传httpd
    2. 安装(重点重点重点)
      a) 解压缩
      tar -zxvf 文件名
      b) cd 进入解压缩目录
      cd 进入解压缩目录
      c) 查看安装文档(了解)
      INSTALL
      README
      d) 检测
      ./configure --prefix=/usr/local/apache2
      --prefix= 两个中间不能出现空格
      功能:
      1.检测系统环境 声明 makefile文件
    3. 定义软件选项
      --prefix 指定软件安装目录
      e) 编译
      make
      若编译失败 使用make clean 清空编译文件
      f) 安装
      make install
      报错判断:
      第一个: 安装过程是否停止
      第二个: 停止的地方是否出现error warning这样的报错提示
  7. 启动
    /usr/local/apache2/bin/apachectl start
    注意下面的错误是80端口被占用
    (98)Address already in use: make_sock: could not bind to address [::]:80
    (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
    no listening sockets available, shutting down
    Unable to open logs
    解决方法就是马上重启电脑 之后开启你要开启的apache
    报下面的错误应该怎么改
    httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
    将配置文件
    vim /usr/local/apache2/conf/httpd.conf 的内容 大概在97行左右 将前面的#号去掉
    #ServerName www.example.com:80
  8. 卸载
    直接删除安装目录
    rm -rf /usr/local/apache2
    问题:
    1.什么样的服务可以改端口号
    如果服务给大量客户端使用访问的话我们不推荐去修改端口号 因为改了之后找不到
    如果服务只是给你自己使用我们建议修改端口号 为什么 因为有利于安全
  9. 我们rpm包安装了一个apache 我们使用源码包还安装了一个apache 能行吗?
    答案: 可以 因为安装的位置不一样
    rpm 包安装的是系统默认位置
    源码包 安装的是我们手动安装的位置
  10. 能启动两个apache服务吗?
    答案: 不能 只能开启一个 因为80端口被占用
  11. 源码包从哪里获取
    rpm包从哪里获取
    rpm 包从光盘获取
    源码包 是从官方网站获取
    www.apache.org
    www.php.net
    linux.cn Linux中国

系统管理和网络管理
用户与用户组管理
用户信息文件: /etc/passwd 查看所有用户
影子文件: /etc/shadow 查看哪些用户有密码
组信息文件: /etc/group 查看系统中有哪些用户组

  1. 添加用户
    useradd 用户名
  2. 设定密码
    passwd 用户名
    千万千万千万 要写用户名 不写用户默认修改root密码
  3. 删除用户
    userdel -r 用户名
    -r 连带家目录一起删除
  4. 添加组
    groupadd 组名
  5. 删除组
    groupdel 组名
  6. 把已经存在的用户加入到组中
    gpasswd -a 用户名 组名 -- 用户加入到组中
    gpasswd -d 用户名 组名 -- 把用户从组中删除
  7. su 用户名 -- 切换用户身份
    进程管理
    进程管理 三个主要任务
    1. 判断服务器健康状态
      内存/cpu 占比 70/90 安全范围
  8. 查看所有正在运行的进行
    a) 合法进程占用资源
    b) 非法进程占用资源
  9. 强制终止进程

一、 进程查看

  1. ps aux 查看当前系统所有运行的进行
    -a 显示所有前台进程
    -u 显示用户名
    -x 显示所有后台进程
    a. user: 用户名
    b.pid: 进程id
    c. %CPU : CPU占用百分比
    d.%MEM: 内存在用百分比
    e. command: 进行本身
    前台进程是使用之后不可以操作别的命令 需要等待进行结束之后再次操作
    后台进程不需要等待进行结束就可以再次操作命令后台进程使用需要在后面加上&
  2. pstree 查看进程树
    -p 查看pid

二、

返回web开发教程...