Linux
Linux简介
Linux是一个自由的,免费的,源码开放的操作系统。也是开源软件中最著名的例子。其最主要的目的就是为了建立不受任何商品化软件版权制约的,全世界都能使用的类Unix兼容产品.而我们将服务器部署在Linux将会更加的稳定、安全、高效以及出色的性能这时windows无法比的。
Linux 发行版
发行版是基于 Linux 内核的一个操作系统。它带有用户可以使用的软件集合。更多的,它还包含系统管理包。目前有许多 Linux 发行版。因为我们不能数清目前所有的 Linux 发行版,所以我们来看一下一些有名的版本: Ubuntu、Redhat Linux VXbox等是几个非常受欢迎的 Linux 发行版。
Linux特点
开放性,多用户,多任务,丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性
运行环境
VMvare虚拟机
步骤:安装虚拟机–>配置网络–>使用Xshell建立windows与虚拟机的连接
配置网络使用NAT结构
桥接与NAT区别
桥接
- 结构:网络与物理机同一个网段(会占用外部IP)
- 特点:
- 1.外网能够访问
- 2.能够访问外网
注意:桥接模式下的虚拟机网关必须改为与物理机网关一致
NAT模式
- 结构:构成一个以物理机为网关的子网
- 特点:
- 1.子网的所有的服务器对外不可见
- 2.子网能够正常访问外网
- 安全!!!
- 节省IP资源
文件系统
Linux目录结构:
- bin 存放二进制可执行文件(ls,cat,mkdir等)
- boot 存放用于系统引导时使用的各种文件
- dev 用于存放设备文件
- etc 存放系统配置文件
- home 存放所有用户文件的根目录
- lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
- mnt 系统管理员安装临时文件系统的安装点
- opt 额外安装的可选应用程序包所放置的位置
- proc 虚拟文件系统,存放当前内存的映射
- root ~ 超级用户目录
- sbin 存放二进制可执行文件,只有root才能访问
- tmp 用于存放各种临时文件
- usr 用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
- var 用于存放运行时需要改变数据的文件
目录操作
- cd + 目录的路径
- 切换目录
- pwd
- 查看当前目录的完整路径
- cd …
- 返回到父目录
- mkdir + 目录名字
- 新建目录
- ls
- 查看该目录下所有的子文件夹和文件
- ll查看所有子文件详情 ll=ls -l
- cp -r 源文件 目标文件
- 拷贝目录及子文件
- -r 递归拷贝
- rmdir 目录
- 删除目录
- 只能删除空目录
- 若要删除非空目录则用rm命令
- rm -r dir
- rm [-rf] dirfile
- mv + 目录/文件名字 + 其他路径
- 移动目录或文件
- mv + 旧目录名字 + 新目录名
- 将目录或文件更名
文件操作
Linux特点:一切皆文件,有事找男人(man)
- touch 文件名
- 新建文件
- cp 源文件 目标文件
- 拷贝文件
- rm 文件名或目录
- 删除文件
- -r为遍历删除 -f为强制删除,无需询问
- cat 文件名
- 查看文件内容
- more 文件名
- more filename 该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比。
- 按Space键,显示文本的下一屏内容。
- 按Enier键,只显示文本的下一行内容。
- 按B键,显示上一屏内容。
- 按Q键,退出。
- less命令 与 more命令非常类似
- head -10 filename
- 从头打印文件内容
- tail -10 filename
- 从尾部打印文件内容
- find pathname –name filename
- 例如find / -name profile
- 查找文件或目录
- 还可以用正则表达式查找
文本编辑
vi为linux的文本编辑器
vi 编辑模式 = i 进入插入模式 esc
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename**:打开文件,并将光标置于第一个与 pattern匹配的串处**
命令行模式
- w保存
- q退出
- q!:不保存文件并退出vi
- 在VI的命令模式下输入“:set nu”,就有行号了。
- 用ctrl+g就可以 显示行号
- : s/p1/p2/g 将当前行中所有p均用p2替代
- : n1,n2s/p1/p2/g 将第n1至n2行中所有p1均用p2替代
- : g/p1/s//p2/g将文件中所有p1均用p2替换
一般模式
- yy 复制光标所在行(常用)
- nyy 复制光标所在行的向下n行,例如, 20yy则是复制20行(常用)
- p|P p为复制的数据粘贴在光标下一行, P则为粘贴在光标上一行(常用)
- G:光标移至第最后一行
- nG:光标移动至第N行行首
- n+:光标下移n行
- n-:光标上移n行
- H :光标移至屏幕顶行
- M :光标移至屏幕中间行
- L :光标移至屏幕最后行
- dd:删除 行
- x或X:删除一个字符,x删除光标后的,而X删除光标前的
- u 恢复前一个动作(常用)
- 删除第N行到第M行:N,Md
- :,$-1d 删除当前光标到到数第一行数据
- i: 在当前光标所在字符的前面,转为输入模式;
- a: 在当前光标所在字符的后面,转为输入模式;
- o: 在当前光标所在行的下方,新建一行,并转为输入模式;
- I:在当前光标所在行的行首,转换为输入模式
- A:在当前光标所在行的行尾,转换为输入模式
- O:在当前光标所在行的上方,新建一行,并转为输入模式;
vim
vim是从 vi 发展出来的一个文本编辑器。代码补完(对于我们基本不使用)、语法高亮、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
安装vim 软件
yum install vim -y
-y 每次询问时自动选择yes
文件传输
远程传输
- 将本地文件复制到远程机器
- scp local_file remote_username@remote_ip:remote_folder
- 将本地目录复制到远程机器
- scp -r local_folder remote_username@remote_ip:remote_folder
- 将远程机器上的文件复制到本地
- scp remote_username@remote_ip:remote_file local_folder
- 将远程机器上的目录复制到本地
- scp -r remote_username@remote_ip:remote_folder local_folder
从windows上传至linux
在任意目录下rz,选择文件后上传
从linux下载文件至windows
sz 目标文件,选择接收目录
磁盘指令
- df
- 查看磁盘信息
- -k 以KB为单位,-m 以MB为单位,-h 更易于阅读
- du 文件名/目录名
- 查看目录名/文件名
- –max-depth=0 目录深度
网络指令
- ifconfig
- 查看网络配置信息
- addr :本机IP
- Bcast:广播地址
- Mask:子网掩码
- ping remote ip
- 测试与目标IP的连通性
- 不会自动结束,需要手动按Ctrl+C结束
- netstat
- 显示各种网络相关信息
- -a (all)显示所有选项,默认不显示LISTEN相关
- -t (tcp)仅显示tcp相关选项
- -u (udp)仅显示udp相关选项
- -n 拒绝显示别名,能显示数字的全部转化成数字。
- -l 仅列出有在 Listen (监听) 的服務状态
- -p 显示建立相关链接的程序名
- -r 显示路由信息,路由表
- -e 显示扩展信息,例如uid等
- -s 按各个协议进行统计
- -c 每隔一个固定时间,执行该netstat命令。
- 可以使用netstat指令来查询端口号是否被占用
- netstat -tunlp|grep 端口号
- telnet ip port
- 测试远程主机的网络端口
- curl [option] [url]
- 使用指令的方法与url发送http请求
- -X/–request [GET|POST|PUT|DELETE|…]
- 使用指定的http method发出 http request
- -H/–header
- 设定request里的header
- -i/–include
- 显示response的header
- -d/–data
- 设定 http parameters
- -v/–verbose
- 输出比较多的信息
- -u/–user
- 使用者账号,密码
- -b/–cookie
- cookie
系统管理
用户操作
- 创建用户
- useradd/adduser username
- 修改密码
- passwd username
- 删除用户
- userdel -r username
- 修改用户
- usermod
- usermod指令不允许修改正在线上登录的用户
- usermod -l new_name old_name
- 修改用户名
- usermod -L username
- 锁定账号
- 建议不要使用root用户锁定root用户!
- usermod -U username
- 解除锁定账号
- whoami
- 查看当前登录用户名
- 普通用户可查看/etc/passwd文件,得出系统一个有多少个用户
- 除此之外,root用户还可以查看/etc/shadow文件,来得出系统一个有多少用户
用户组操作
- 创建用户组
- groupadd groupname
- 删除用户组
- groupdel groupname
- 修改用户组
- groupmod -n new_name old_name
- 查看用户组
- groups
- 查看当前登录用户的组内成员
- groups username
- 查看用户所在的组
- usermod -g groupname username
- 把用户的主组改为其他的组
- usermod -G groupname username
- 将用户添加到附加组当中
- groups
系统权限
- ll 目录
- 查看目录下每个文件的权限
- 权限类别
- r:读取
- w:写入
- x:执行
- UGO模型
- Linux采用UGO模型进行控制
- U为User,即用户
- G为Group,即用户所在组
- O为Other,即其他组
修改权限
- 修改文件/目录的拥有者
- chown username 文件/目录
- 修改文件/目录的所有者
- chown username:groupname 文件/目录
- 同时修改一个文件或目录的所有者和属组。
- 如果要递归修改目录下所有的文件,加参数-R
- chown username 文件/目录
- 修改文件/目录的属组
- chgrp groupname name
- 修改文件/目录的权限
- chmod ugo+rwx name
- 其中ugo代表的是要对谁进行权限操作,rwx代表进行怎样的权限操作,+代表的授权,-代表的取消权限。
- 权限的另外一种修改方式:将rwx rwx rwx 三组权限的读写执行权限分别用0和1代替,1代表有权限,0代表没权限,最后将三组二进制转化成十进制。
- chmod 700 myfile
- 给予myfile所属用户读写执行权限,用户所属组和其他组无任何权限
- r–读权限 = 4,w–写权限 = 2,x–执行权限 = 1
系统配置
- 用户组信息配置
- cat /etc/group
- 用户信息配置
- cat /etc/shadow
- 系统服务初始化配置
- 0:停机状态
- 1:单用户模式,只有root可以操作
- 2:多用户,不能使用net file system
- 3:默认模式,完全多用户
- 4:未使用的保留模式
- 5:图形化界面,3启动的进程都启动,额外启动部分图形界面进程
- 6:停止所有进程,卸载文件系统,重新启动(reboot)
- 注意 :linux默认级别为3,不要把initdefault 设置为0 和 6
- 主机名配置
- /etc/sysconfig/network
- DNS配置
- hosts文件的作用相当于DNS,提供IP地址hostname的对应,可在这个文件里添加映射。
- /etc/resolv.conf 为DNS服务器的地址文件
- sudo权限配置
- 给予普通用户部分root权限
- vim /etc/sudoers
- 格式:授权用户 主机=[(切换到哪些用户或用户组)] [是否需要密码验证] 命令
- sudo -l 列出该用户所有的sudo权限
- %group 将权限赋予某一组
- 查看系统时间
- date
- 查看日历:cal
- 更新系统时间
- date -s
- 使用ntp服务能够与互联网时间服务器同步
- 需要先安装ntp,yum install ntpdate -y
- 命令ntpdate cn.ntp.org.cn
- 环境变量
- /etc/profile
重定向与管道
输入重定向
- < 输入重定向到一个程序
输出重定向
- > 输出重定向到一个文件或设备,覆盖原有文件
- >> 输出重定向到一个文件或设备,追加原有文件
标准输出重定向
- 1> 或 > ,只有输出正确的指令才会输出重定向到指定文件
错误输出重定向
- 2> ,只有输出错误的指令才会输出重定向到指定文件,正确的不会
结合使用
- 2>&1,无论正确与否都输出重定向到指定文件
管道
- | ,把前一个输出作为后一个的输入
- 例:| 与grep命令结合使用
- netstat -anp | grep 22
- 命令含义:把netstat –anp 命令的输出 当做是grep 命令的输入。
命令执行控制
- && 前一个命令成功后才执行后面的命令
- || 前一个命令失败后才执行后面的命令
信息黑洞
- /dev/null
- 写入该文件的内容将永久丢失