操作系统|第三课(Linux基础)

Linux基础知识

  • linux介绍
    1. 为什么有了很好的unix操作系统还要发展linux操作系统?因为unix很贵,linux系统是免费、自由的操作系统。
      1. 可以运行在pc机上类似于unix风格的操作系统
      2. 由众多程序员通过internet协作开发
      3. Linux是开源的(open source)
    2. 开放源码的好处!
      1. 使用的自由(可以不接受任何限制来使用软件)
      2. 研究的自由(可以研究软件运作方式并使其适合个人需求)
      3. 散布的自由(可以自由的复制此软件并散布给他人)
      4. 改良的自由(可以自行改良软件并散布改良后的版本)
    3. 一篇文章引发的革命
      1. 1991年8月25日:comp.os.minix新闻组发表一篇文章(引发革命的文章)
      2. Linus Torvalds linux之父
  • Linux系统结构
      1. Linux操作系统由内核及应用程序组成
      2. 不同的厂商根据各自的需要讲各种应用软件和linux内核一起打包即可成为一个linux发行版本(distribution)
    1. 常见的发型版本
      1. Redhat linux
      2. SUSE linux
      3. Ubuntu linux
      4. Mandrake linux
      5. Caldera linux
      6. Turbolinux
      7. Debian GUN/linux
      8. Gentoo linux
      9. Linpus linux
  • Linux的优点
      1. 完全免费
      2. 完全兼容POSIX1.0标准
      3. 多用户、多任务
      4. 可靠、安全稳定的性能
      5. 支持多平台
      6. 。。。
    1. 更佳的性能(比Windows性能要好很多)
      1. Lamp平台:Linux Apache MySQL php
      2. Wamp凭条:Windows Apache MySQL php
      3. 磁盘io性能更好
    2. 安全性更好
      1. 木马、病毒
      2. 针对linux的病毒、木马还比较少
      3. 开源使得的linux的漏洞更少
      4. 美国计算机应急反应小组发表的安全漏洞测评报告称,微软的Windows出现了250次安全漏洞,其中有39个安全漏洞的危险程度达到了40分或者40分以上。而Redhat linux只有46次安全漏洞,其中只有3个安全漏洞的危险程度在40分以上。
  • Linux现状
      1. 早期的linux主要用来提供网络基础服务
      2. 打印、文件服务、dns、dhcp、http等
      3. 经过十多年的发展linux的应用已经从网络扩展到几乎所有it领域
      4. 数据库、ERP、决策支持
      5. 企业级office、电子商务软件、网络管理
      6. Ras(可靠性、可用性、可服务性)计算
      7. 计算机辅助设计设计制造(CDA/CAM)
      8. 电影特技模拟
    1. 高性能计算机
      1. 世界级超级计算机500强中linux占据469个,占有率93.8%
      2. 并且前9名都是linux计算机,采用Windows hpc server 2008的计算机仅排行榜第十
    2. Linux在企业和政府中的应用
      1. 大部分大型互联网公司使用linux提供web服务
      2. Google用十万台linux计算机提供搜索服务
      3. Qq也靠linux的服务
      4. Nec、摩托罗拉、诺基亚、和三星都有linux手机
      5. 全球最大的网上书店亚马逊使用的是linux平台
      6. Sony的ps2游戏机其实骨子里就是linux
      7. 中国国家邮政局全面信赖linux平台
      8. 德国慕尼黑市政府的14000台计算机的操作系统是linux
      9. 美国的天气预报现在靠linux系统
  • 如何学习linux
    1. 两个方向:命令、服务搭建
      1. 从命令开始打好基础
      2. 选择一本好书
      3. 养成在命令行下工作的习惯
      4. 学习shell命令解释器
      5. 不要死记硬背,要勤于实践
      6. 学会使用文档
      7. 在linux论坛获取帮助
      8. 学习专业英语
  • Linux系统(安装过程省略)
    1. Linux内核版本号
      1. 由linux内核项目团体同意进行发行
      2. 主版本号、次版本号、末版本号
      3. 次版本号奇数表示开发版本
    2. 磁盘分区表示
      1. Linux中将硬盘、分区等设备均表示为文件
      2. /dev/hda5
        1. Dev:硬盘设备文件所在目录
        2. Hd:表示IDE设备
        3. Sd:表示SCSI设备
        4. 硬盘的顺序号,以字母a、b、c…表示
        5. 分区的顺序号,以数字1、2、3…表示
      3. 硬盘和分区结构
        1. 第一块IDE硬盘设备/dev/hda
          1. 第一个主分区-/dev/hda1
          2. 第二个主分区-/dev/hda2
          3. 第一个逻辑分区-/dev/hda5
          4. 第二个逻辑分区-/dev/hda6
      4. 文件系统类型
        1. Linux中默认使用的文件系统类型
          1. Ext4,第三代扩展(extended)文件系统
          2. Swap,交换文件系统
        2. Linux支持的其他文件系统类型
          1. FAT16、FAT32、NTFS
          2. XFS、JFS
  • Linux目录(/根目录)
    1. Bin(主要用来存放普通用户可执行命令的)
    2. Boot(存放系统装载引导程序)
    3. Dev(存放各种存储介质)
    4. Etc(重要:存放配置文件,例如系统配置文件,程序配置文件)
    5. Hone(普通用户的家目录)
    6. Lib(库文件,函数库等等)
    7. Lost+found(代表挂在一块硬盘,没有任何意义)
    8. Media(光驱挂在点)
    9. Mnt(光驱挂载点)
    10. Opt(用于安装外围大型程序)
    11. Proc(在开机之前没有任何信息,开机后存放系统临时文件)
    12. Root(管理员家目录)
    13. Sbin(存放管理员可执行命令)
    14. Selinux(服务防护,可以理解为服务防火墙)
    15. Srv(用点比较少,存放服务临时配置)
    16. Sys(存放临时配置文件)
    17. Tmp(存放临时配置文件)
    18. Usr(用来安装外部程序,如果是安装外部程序一般安装在这个目录下)
    19. Var(重要:存放系统库,存放系统日志,存放网站根目录)
  • 小结
    1. #(代表管理员用户)$(代表非管理员用户)
    2. 根目录包括哪些常见子目录?作用是什么?
    3. 命令提示符中“#、$”表示什么意思?
    4. 如何从字符界面切换到图形界面?
  • Linux常用命令
    1. Linux命令
      1. 用于实现某一类功能点指令或程序
      2. 命令的执行依赖于解释器程序(例如:/bin/bash)
    2. Linux命令点分类
      1. 内部命令:属于shell解释器的一部分
      2. 外部命令:独立于shell解释器之外点程序文件
    3. Linux命令的通用命令格式
      1. 命令字【选项】 【参数】
      2. 选项及参数含义
    4. 清除命令
      1. Ctrl+k清除光标到结尾点字符
      2. Ctrl+u清除光标到开始点字符
      3. Ctrl+l清屏
      4. 参数:命令操作点对象,如文件、目录名等
      5. 选项:用于调节命令的具体功能
      6. 以“-”引导短格式选项(单个字符),例如:“-l”
      7. 以“--”引导长格式选项(多个字符),例如:“--color”
      8. 多个短格式选项可以写在一起,只用一个“-”引导,例如:“-al”
    5. 获得命令帮助
      1. 帮助内部命令help
        1. 查看bash内部命令点帮助信息
        2. 命令的“--help”选项
    6. Uname命令(特别重要)
      1. 常用命令选项
        1. –a显示主机名、内核版本、硬件平台等详细信息
        2. –r显示内核版本(找到相关内核版本号后才能知道有什么漏洞)
      2. 查看系统相关信息
    7. Hostname命令
      1. 查看主机的完整名称
      2. 包括主机名称、所在域的名称
    8. Ifconfig命令
      1. 查看ip地址
    9. Cat 命令
      1. cat /proc/cpuinfo(查看CPU信息)
      2. cat /proc/meminfo(查看内存信息)
    10. 关机及重启操作
      1. 关机
        1. Shutdown、poweroff、halt
      2. 重启
        1. reboot
    11. 查看及切换目录
      1. Pwd命令
        1. 用途:查看工作目录(print working direction)
      2. Cd命令
        1. 用途:切换工作目录(change direction)
        2. 格式:cd 【目录路径】
      3. 使用man命令阅读手册页
        1. 使用“↑”、“↓”方向键翻页
        2. 使用page up和page down键翻页
        3. 按Q或q键退出阅读环境、按“/”键后查找内容
          1. 适用于大多数外部命令
      4. ls命令
        1. 常用命令选项
          1. –l以长格式显示
          2. –a显示所有子目录和文件的信息,包括隐藏文件
          3. –A类似于“-a”,但不现实“.”和“..”目录点信息
          4. –d显示目录本身的属性
          5. –h以更易读的文字单位(k、m等)显示信息
          6. –R递归显示内容
          7. –color以颜色区分不同类型文件
          8. 格式:ls【选项】。。。【目录或文件名】
          9. 用途:列表(list)显示目录内容
  1. 目录操作命令——du(一般常用du -sh)
    1. Du命令(一般在对源码打包或者脱裤时要用)
      1. 用途:统计目录及文件的空间占用情况(estimate file space usage)
      2. 格式:du 【选项】 【目录或文件名】
    2. 常用命令选项
      1. –a统计包括所有的文件,而不仅仅只是统计目录
      2. –h以更易读的字节单位(K、M等)显示
      3. –s只统计每个参数所占用空间总大小
  2. 创建目录命令——mkdir
    1. Mkdir命令(-p是递归创建)
      1. 用途:创建新的目录(make directory)
      2. 格式:mkdir 【-p】 【/路径/】目录名
  3. 创建文件命令——touch
    1. Touch命令(在渗透测试中可以帮助隐藏踪迹,把安装系统日期全部touch一遍就好了)
      1. 用途:新建空文件,或更新文件时间标记
      2. 格式:touch 文件名…
  4. 创建链接文件——ln
    1. Ln命令
      1. 用途:为文件或目录建立链接(link)
      2. 格式:ln 【-s】 原路径 目标路径
    2. 常用命令选项
      1. –s建立符号链接文件(省略此项则建立硬链接)
  5. 复制文件或目录——cp
    1. Cp命令
      1. 用途:复制(copy)文件或目录
      2. 格式:cp 【选项】 原路径 目标路径
    2. 常用命令选项
      1. –r递归复制整个目录
      2. –p保持源文件的属性不变
      3. –f强制覆盖目标同名文件或目录
      4. –i需要覆盖文件或目录时进行提醒
  6. 删除文件或目录——rm
    1. Rm命令
      1. 用途:删除(remove)文件或目录
      2. 格式:rm 【选项】 文件或目录
    2. 常用命令选项
      1. –f强制删除文件或目录,不进行提醒
      2. –i删除文件或目录时提醒用户确认
      3. –r递归删除整个目录树
  7. 移动文件或目录——mv
    1. Mv命令
      1. 用途:移动(move)文件或目录
      2. ——若目标位置与源文件想吐,则相当于改名
      3. 格式:mv 【选项】 源文件路径 目标文件路径
  8. 查找文件或目录——find
    1. Find命令
      1. 用途:用于查找文件或目录
      2. 格式:find 【查找范围】 【查找条件】
        1. 常用查找条件
          1. –name按文件名称查找
          2. –size按文件大小查找
          3. –user按文件属主查找
          4. –type按文件类型查找
  9. 进入vi
    1. Vi是一个比较大点unix命令,在启动的时候也有它自己点选项和参数
      1. 基本语法
        1. Vi 【-options】 【+[n]】 【file】
        2. 常用选项:-r –R
          1. –r用于恢复系统突然崩溃时正在编辑的文件
          2. –R用于以只读方式打开文件
          3. +n用来指明进入vi后直接位于文件的第n行,如果不指定n,则位于最后一行
      2. 文本插入
        1. 在命令模式下使用某些命令会导致vi马上进入文本插入模式,这些命令包括:i、I、a、A、o、O
          1. a在光标后附加文本
          2. A在本行行末附加文本
          3. i在光标前插入文本
          4. I在本行开始插入文本
          5. o在光标下插入新行
          6. O在光标上插入新行
        2. 在这种方式下用户点任何输入都被当做是文件的内容看待,并将其显示在屏幕上。
      3. Vi内查找
        1. / 【内容】(从光标处向下查找)
        2. ? 【内容】(从光标处向上查找)
        3. 按n查找下一个,按N查找上一个
      4. Dd删除行(删除光标行:实际为剪切,在不粘贴的情况下相当于删除)
        1. 按数字键 在按dd(从光标行向下删除输入数字行数)
      5. P(粘贴)
      6. Yy(复制)
      7. 末行模式(“shift” + “:”)只有在命令模式下才能进入,在插入模式不可以进入
      8. Ctrl + g 显示当前信息(行数等信息)
      9. 搜索和替换
        1. /string 向前搜索指定字符串,搜索时忽略大小写:set ic
        2. n 搜索指定字符串的下一个出现位置
        3. :%s/old/nes/g 全文字替换指定字符串
        4. :n1,n2s/old/new/g 在一定范围内替换指定字符串
        5. u 撤销
        6. 进入末行模式按 e ,强制 e! 恢复到最初状态
        7. 进入末行模式 “wq”保存退出 “wq!”强制保存退出(常用“x”)
  10. Cat命令
    1. Cat显示出文件的全部内容
      1. –n 给输出的所有行加上编号
      2. Cat 1 2 > 3 合并文件
      3. 将文件1和2合并到3
  11. Head 【文本路径】 【n】(默认:查看文本前10行,n表示需要查看的行数)
  12. Tail 【文本路径】 【n】(默认:查看文本后10行,n表示需要查看的行数)
  13. More 【test】 (分屏显示全文)
  14. Wc统计文件中的单词数量 字节数 行数
    1. Wc 统计文件中的单词数量 字节数 行数
      1. –l 统计行数
      2. History查看历史命令
      3. wc sdxh.txt 会出现2 4 26
        1. 2是行数 4是单词数 26是字符数
        2. –c 统计字符数
        3. –w 统计单词书
  15. 归档和压缩命令 gzip bzip2 (重要)
    1. 只针对单个文件压缩
      1. -9显示高压缩比(进行高压缩)
      2. bzip2 文件名 压缩成的文件名 格式为文件名.bz2 它相当对于gzip压缩率更高
      3. gzip 文件名 压缩文件 格式为后缀有.gz
      4. –d释放压缩文件
  16. tar
    1. tar归档命令 释放归档文件 没有压缩功能
      1. 格式 tar 选项 归档文件名 源文件或目录
      2. tar –xvjf test.tar.bz2 –C /usr/src 解压释放归档到/usr/src里面
      3. tar –xvzf test.tar.gz –C /user/src 解压释放归档到/usr/src里面
      4. tar –cvjf test.tar.bz2 被压缩的文件1 被压缩的文件2 创建归档压缩文件 后缀为bz2
      5. Tar –cvzf test.tar.gz 被压缩点文件1 被压缩的文件2 创建归档压缩文件 后缀为gz
      6. –z 调用gzip程序 进行解压或压缩 –j 调用bzip2程序进行解压或压缩
      7. –C(大C)解包时指定释放的目标文件夹
      8. –p 解包时保留原始文件及目录的权限
      9. tar –tvf 4.tar 5 把5加入4.tar
      10. Tar –tvf 4.tar –r 追加tar文件至归档结尾
      11. –x 解开归档文件 –t 列表查看包内文件(不释放解包)
      12. tar –xvf 4.tar 解包归档文件4.tar-xvf 解包归档文件
      13. tar –cvf 4.tar 1 2 3 将文件1 2 3 打包归档为4.tar
      14. –v 输出详细信息-f 表示使用归档文件 如:-cvf 创建归档文件
      15. –c 创建归档文件扩展名为.tar
  17. 安装、升级、卸载rpm软件包2-1
    1. 安装或升级RPM软件
      1. 格式:rpm 【选项】 rpm文件包路径
      2. 用法:不同选项适用于不同情况
        1. –i安装一个新的rpm软件包
        2. –U升级某一个rpm软件,若原本未装,则进行安装
        3. –F更新某个rpm软件,若原本未装,则放弃安装
    2. 卸载指定点rpm软件
      1. 格式rpm –e 软件名
      2. 辅助选项
        1. –force强制安装所指定的rpm软件包
        2. –nodeps安装、升级或卸载时,忽略依赖关系
        3. –h以“#”显示安装点进度
        4. –v显示安装过程中的详细信息
  18. 编译安装过程
    1. tar解包
      1. 用途:解压并释放源代码包到指定的目录
  19. ./configure配置
    1. 用途:设置安装目录、安装模块等选项
  20. make编译
    1. 用途:生成可执行点二进制文件
    2. make install 安装
      1. 用途:复制二进制文件到系统,配置应用环境
  21. apt-get(一般在kali Linux当中会经常用到)
    1. apt-get install xxx.(他的软件源是网络源)
  22. dpkg(debian的一些软件包,用来安装deb结尾的包)
    1. dpkg –i xx(安装)
      1. dpkg –l
      2. dpkg –r xx(移除、卸载)
  23. 添加用户账号
    1. Useradd命令
      1. 格式useradd 【选项】 【用户名】
      2. 常用命令选项
        1. –u指定UID标记号
        2. –d指定宿主目录,缺省为/home/用户名
        3. –e指定账号失效时间
        4. –g指定用户的基本组名(或UID)
        5. –G指定用户点附加组名(或UID)
        6. –M不为用户建立并初始化宿主目录
        7. –s指定用户登录shell
  24. 删除用户账号——userdel
    1. Userdel命令
      1. 格式:userdel 【-r】 用户名
      2. 添加 –r 选项时,表示连用户的宿主目录一并删除
  25. Linux系统网络配置
    1. 查看网络接口信息——ifconfig
    2. 查看所有活动网络接口信息
    3. 执行ifconfig命令
    4. 查看指定网络接口信息
      1. 格式:ifconfig 网络接口名
      2. eth0接口关闭(ifconfig eth0 down)
      3. eth0接口开启(ifconfig eth0 up)
      4. service network restart(重启网络接口/网络服务)
      5. dhclient eth0(重新获取ip)(eth0:以太网)
      6. 如何创建逻辑网络接口
        1. Ifconfig eth0:1 192.168.3.106/24(/24可以加可以不加)
        2. 这样就创建了多个逻辑接口,现在就有两个ip了(可以用这种方式创建多个ip)
        3. 网卡类型
          1. eth0以太网
          2. lo(虚拟)回环接口
          3. fddi0光纤
          4. tr0令牌环(token ring)
          5. ppp0使用ppp协议的串口设备(通常指调制解调器)
  26. 查看主机名称——hostname
    1. Hostname命令
      1. 查看或设置当前主机名
      2. 格式:hostname
  27. 查看路由表条目——rotue
    1. Rotue命令
      1. 查看或设置主机中路由表信息
      2. 格式route 【-n】
  28. 查看网络连接情况——netstat
    1. Netstat命令
      1. 查看系统的网络状态、路由表、接口统计等信息
      2. 格式:netstat 【选项】
      3. netstat –tnlp查看tcp相关信息
      4. netstat –unlp查看udp相关信息
      5. 常用选项
        1. –a显示所有活动连接
        2. –n以数字形式显示
        3. –p显示进程信息
        4. –t查看tcp协议相关信息
        5. –u查看udp协议相关信息
        6. –r显示路由表信息
  29. 网络接口配置文件
    1. /etc/sysconfig/network-scripts/目录下的
      1. ifcfg-eth0第一块以太网卡配置文件
      2. ifcfg-eth1第二块以太网卡配置文件
    2. 域名解析配置文件
      1. /etc/resolv.conf文件
        1. 用途:保存本机需要的dns服务器点ip地址
30.网站搭建(linux一般用lamp方案:linux Apache mysql php)
  1. Yum直接安装(红帽系列,centos系列)命令:
    1. yum –y install httpd php php-mysql mysq-server(安装命令)
    2. service httpd start(启动服务)
    3. netstat –tnlp(查看是否监听80端口)
    4. service mysqld start(启动MySQL服务)
  2. mysqladmin –uroot password 123456(设置数据库密码123456)
  3. mysql –uroot –p123456(进入数据库)
  4. iptables –F(关闭防火墙,如果访问不到网页就是防火墙拦截了,需要进行此操作)
  5. setenforce 0(和此操作)
【操作系统|第三课(Linux基础)】野兔
最后更新:2019.3.14
转载于:https://my.oschina.net/hare1925/blog/3021649

    推荐阅读