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