linux 操作系统
企业版vmware vsphere esxi服务器
在线下载资源 wget命令 ,需要安装
自动下载文件的自由工具
yum install wget
常识
快捷键
xshell快捷键
logout 命令退出
ctrl+d 退出用户登陆
ctrl+shift+f 快速登陆
知识点
登陆默认显示相对路径
不区分的空格 多少空格都可以
后面.文件后缀只是文件标识
查找以什么开头^
以什么结尾 $
查找空白符 ^$
掌握普通用户登录后系统的提示符:$
掌握root用户登录后系统的提示符:#
Linux终端也称为虚拟控制台,Linux终端采用字符命令方式工作,用户通过键盘输入命令,通过Linux终端对系统进行控制
Linux是一个多用户、多任务、支持多线程和多CPU的操作系统
默认端口号
ftp:23
dns:53
http:80
https:443
ssh:22
NAT模式
电脑宿主机的ip在局域网内是唯一的,选择了NAT模式创建虚拟机,虚拟机就是一个新的局域网
桥接模式
用此模式,就是局域网中一台独立的主机,它可以访问该类网段任意一台机器,
仅主机模式
单机模式
yum 装软件
ifconfig 查看网络路径
lo:本机回环
ens33 inet 连接外网的地址
查看帮助
命令 --help
ls --help
-用man帮助手册
man ls
-去寻找在线的linux解释中文网站 http://linux.51yip.com/search/ls
概念性的理解
1.Linux内置解释器bash 相当于pyhon解释器
2.Linux的内部大多是使用python去书写
云计算
1.只需要 花钱,买腾讯,阿里云服务器
2.专人维护
缺点 容易信息数据泄露
文件目录结构
linux和window的区别
蓝色是文件夹的意思
绿色 chmod 777 test(文件名)
ls usr/bin 二进制可以执行命令
Linux不像Windows那样的系统目录,Linux使用正斜杠"/"而不是反斜杠""来标识目录。
Windows目录:
Linux目录:
/opt 第三方模块
/etc 放置配置文件
/root 存放root的信息
/home /etc /var
树形结构
根目录是 斜杠 /
所有目录都是以根目录为开头
目录中间的斜杠是,目录分隔符
Linux首先是建立一个根"/"文件系统,所有的目录也都是由根目录衍生出来。
ls / 查看根
/bin:
bin是Binary的缩写, 这个目录存放着最经常使用的命令。
/boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt:
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/selinux:
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv:
该目录存放一些服务启动之后需要提取的数据。
/sys:
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp:
这个目录是用来存放一些临时文件的。
/usr:
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin:
系统用户使用的应用程序。
/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:内核源代码默认的放置目录。
/var:
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
linux起步
虚拟机设置
1.首先创建centos 下载
查看ip路径 ip addr 可以简写成 ip a
设置一下网络连接和磁盘
Linux一切皆文件
2.ipconfig 不能在centos中使用 使用步骤
配置好网络后,安装网络工具包
yum install net-tools -y #
就可以使用
3.如果使用ifconfig看不到ip地址的话,那就得重启网络服务
3.1重启网络的步骤
-确保配置文件正确配置
vim /etc/sysconfig/network-scripts
确保onboot=yes即可
3.2重启网络服务
systemctl restart network
远程连接linux
1.下载Xshell
2.命令:ssh ip (默认22端口)
host only 仅主机 单机模式,了解即可
电脑pc > 皇帝
虚拟机 > 老百姓
老百姓被皇帝控制,无法与外届通信
nat模式(网络地址转换)
电脑pc > 皇帝
nat > 宰相
虚拟机 > 老百姓
老百姓的房子是宰相分配的 与皇帝无关
虚拟机的ip是nat分配的,电脑环境无论怎么变化,都不会影响虚拟机
好处:
在家,在学校,在公司,使用虚拟机,ip地址都不会变化
桥接
电脑pc > 皇帝
虚拟机 > 老百姓
只要更换了一波皇帝,老百姓房子都得换
只要换了个教室,插上网线,ip就变了
好处:不用配置
坏处:更换ip麻烦
概念 硬件介绍
虚拟环境 是主机本体''分身''出的多个环境
redis缓存数据库 放入数据库
云计算用于 服务器的租赁
XSHELL 和 虚拟机linux进行关联
#登陆服务器
ssh 用户名@路径
快捷登陆
ctrl+shift+f#登陆之后使用
ctrl+d 快速退出
远程连接
18.查看linux网络端口的命令
netstat -tunlp
参数解释:
netstat [选项]
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
-n或--numeric:直接使用ip地址,而不通过域名服务器;
-l或--listening:显示监控中的服务器的Socket;
-p或--programs:显示正在使用Socket的程序识别码和程序名称;
-a或--all:显示所有连线中的Socket;
#案例
检查服务器的80端口是否打开
netstat -tunlp | grep 80
#安装nginx,且运行nginx,打开80端口
#安装 yum install nginx -y
#启动 通过yum安装的软件,都可以通过系统服务管理命令,去启动,无论是nginx 还是mariadb等
systemctl start/stop/restart/status nginx
#注意关闭防火墙的命令
systemctl stop firewalld #停止防火墙服务
systemctl disable firewalld #停止防火墙开机自启
iptables -F #清空防火墙规则
查看主机名
hostname 查看主机名
hostnamectl set-hostname 新的主机名
修改 linux命令提示符
echo $PS1 查看命令提示符的
用于修改每次显示的权限
示例
#PS1='[\u@\h \t \w]\$'
[root@localhost 04:22:10~]
#\u@\h \w
PS1='[\u@\h \t \w]\$'
参数
\d 日期
\H 完整主机名
\h 主机名第一个名字
\t 时间24小时制HHMMSS
\T 时间12小时制
\A 时间24小时制HHMM
\u 当前用户账号名
\v BASH的版本
\w 完整工作目录
\W 利用basename取得工作目录名
\# 下达的第几个命令
\$ 提示字符,root为#,普通用户为$
PS1 > 变量名
$PS1 > 查看变量内容
PS1=新内容 重新赋值
变量赋值,查看
name='chaoge'
echo $name
PS1显示ip地址
export PS1="[\u@\h `/sbin/ifconfig ens33 | sed -nr 's/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'` \w]\$"
语法操作
> #重定向覆盖输出符 如同python的 with open w模式
>> #重定向追加输出符 a 模式
< #重定向写入覆盖符 用在mysql数据导入
<< #不常用
echo 24{1..6}> b.py#覆盖写
cat b.py -n 查看数据并显示行数
echo 24{1..6}>> b.py#添加写
cat b.py -n 查看数据并显示行数
顶点(跟)路径是绝对
不是顶点(根)路径是相对
用户管理 权限
组操作
1.创建组
groupadd test
增加一个test组
2.修改组
groupmod -n test2 test
将test组的名子改成test2
3.删除组
groupdel test2
删除 组test2
4.查看组
4.1 查看当前登录用户所在的组 groups
groups someuser
查看apacheuser所在组
4.2 查看所有组
cat /etc/group
sodu管理员权限
使用sodu权限要修改文件
visudo 编辑sudoers文件
写入
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
chaoge ALL=(ALL) ALL
esc :wq保存
#允许chaoge在任何地方,执行任何命令
用于 需要sudo ls /root 以root身份去运行
sodu知识点扩展
sudo 【选项】【参数】
-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。
用户分类
root 最高用户
个root管理员就是所有UNIX系统中的超级用户,它拥有最高的系统所有权,
2.查看所有用户组 cat /etc/group
3.cat /etc/passwd 可以查看所有用户的列表
cat /etc/passwd|grep 用户名 #这条命令可以用来精确查找某个用户
sudo命令 管理员权限
普通用户
系统管理员UID为0
系统自带用户是1-999
普通用户是1000之后
etc/passwd 用户信息文件
4.$符号是普通用户命令提示符,#是超级管理员的提示符
创建用户
创建用户的的同时会创建用户组GID
cx 用户名
useradd cx #创建用户cx 创建用户组cx
passwd cx
#查看当前用户
whoami
普通用户可以在临时文件
创建 /tmp默认是临时文件
passwd 用户名 #更改用户密码
查看用户的id属性
uid=0(root) gid=0(root) groups=0(root)
u 当前用户id
gid 用户组id
groups 组
参数
tty 查看当前终端
who am i 仅显示当前用户正在使用的终端和登录时间
w
查看所有终端(功能最全,显示用户名,终端标记,登录时间,负载等信息)
id 用户名 #查看用户的id 和组id
切换用户
su username #切换用户
su - 用户名 #切换用户
用户环境变量
完全切换到新的用户
·····························
root 切换普通不需要密码
su - 普通用户名
普通 切换root需要密码
su - root
删除用户
userdel -rf cx 完全删除用户
-f 强制删除用户
-r 同事删除用户以及家目录
退出登陆
#先看下当前用户(我是谁)
whoami
#切换用户
su - oldboy
#退出用户登录
logout
ctrl + d
文件夹权限
什么是权限
在Linux中,每个文件都有所属的所有者,和所有组,并且规定了文件的所有者,所有组以及其他人对文件的,可读,可写,可执行等权限。
对于目录的权限来说,可读是读取目录文件列表,可写是表示在目录内新增,修改,删除文件。可执行表示可以进入目录
root不会被权限挡住(无视权限)
用户分为三个等级
u (user)属主
g (group)属组
u (others)其他用户(不是属主也不是属组)
- 第一个符号是文件类型
文件是- 文件夹是d
查看权限
Linux权限的观察
使用一条命令查看权限
ls -l /var/log/mysqld.log
1.权限,第一个字母为文件类型,后续9个字母,每3个一组,是三种身份的权限
2.文件链接数
3.文件拥有者-属主
4.文件拥有组-属组
5.文件大小
6.最后一次被修改的时间日期
7.文件名
文件类型
- 一般文件
d 文件夹
l 软连接(快捷方式)
b 块设备,存储媒体文件为主
c 代表键盘,鼠标等设备
文件权限
r read可读,可以用cat等命令查看
w write写入,可以编辑或者删除这个文件
x executable 可以执行
目录权限
r 可以对此目录执行ls列出所有文件
w 可以在这个目录创建文件
x 可以cd进入这个目录,或者查看详细信息
清空权限命令
chmod 0 清空所有人的权限
参数
ls-l 当前文件夹下的详细信息 简写ll
chmod 修改权限
chmod 用户+权限 文件名
chmod o+w 文件名
chmod 可以直接修改数字权限
r4 w2 x1 7
文件权限
文件的读写执行是:
顺序必须是 读写执行
r read 读
w write 写
x exec可执行
- 没有权限
参数详细介绍
[root@s24_linux tmp]# ls -l
#ll
total 0
-rw-r--r--. 1 root root 0 Oct 27 16:36 gg.txt
- 这是一个普通文件, d 代表文件夹 l 代表软连接快捷方式
rw-(users 属主的权限 ) 读 写 权限
r--(group 属组的权限,在这个组里面的人,都有) 只读的权限
r-- ( others 当前登录的用户,和这个文件没关系,就是其他人的身份权限) 只读的权限
修改用户权限
chmod
chmod [身份] [参数] [文件]
u(user) +(添加)
g(group) -(减去)
o(other) =(赋值)
a(all)
增加删除权限
方法一
u user用户 o 其他人权限 g
chmod (chang mode) #修改权限
chmod u+x filename #给文件的user用户,添加x可执行权限
chmod o-r gg.txt #给其他人去掉r的读取权限
方法二 权限与数字转化
属主添加可读可写可执行权限
chmod 700 pyyu.txt
属主可读可写可执行
属组可读可执行
其他人可读可执行
chmod 755 pyyu.txt
文件和文件夹的读写执行
1.文件的读写执行
r cat more less 读取文件内容
w vim echo追加 编辑文件内容
x 可以执行的文件
2.文件夹的读写执行
r ls
w 在文件夹中 mkdir 或者touch等创建文件,必须有x权限才行
x 可以cd进入文件夹
切换属组
chgrp wy filename.txt
#修改文件的属组为wy组
修改文件属主
chown wy filename.txt #修改文件的主人是 wy
加入组
usermod -G 想要加入的组名 加入的组名
#加入组 需要退出会话,重新登陆才能生效
usermod -G gg wy
#把wy组加入gg组
在文件中yy 是复制 p是打印
chagrp 换组
增
touch创建文件
touch xxx.py
1.如果文件已经存在,修改文件的访问时间
2.如果文件不存在,则创建这个文件
cat写入创建文件
cat -n ''
EOF 文件结束标识符
tac 倒序输出
解压 zxvf
[root@localhost tmp]# cat >> music.txt < 左手根我一起画个龙
> 右手捧着一个大碗面
> EOF
#在每一行的结尾加上$符
[root@master tmp]# cat -E 1.txt
mkdir
mkdir oldoy(文件夹名) 创建文件夹
mkdir -p oldoy/3344/oopp
改
sed处理字符的命令
s是替换模式 g 全局替换 -i插入
sed "s/替换的字符/替换成的/g" 路径
示例
找到passwd文件中所有的root替换为大写的ROOT
sed -i "s/root/ROOT/g" passwd
知识点补充
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
命令格式
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
选项
-e