linux

linux 操作系统

企业版vmware vsphere esxi服务器

在线下载资源 wget命令 ,需要安装

自动下载文件的自由工具

yum install wget

linux_第1张图片

常识

快捷键

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模式创建虚拟机,虚拟机就是一个新的局域网

linux_第2张图片

桥接模式

用此模式,就是局域网中一台独立的主机,它可以访问该类网段任意一台机器,

linux_第3张图片

仅主机模式

单机模式

 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目录:

img

Linux目录:

/opt 第三方模块
/etc 放置配置文件
/root  存放root的信息 

/home   /etc  /var  

树形结构 

根目录是  斜杠  /

所有目录都是以根目录为开头

目录中间的斜杠是,目录分隔符 

img

Linux首先是建立一个根"/"文件系统,所有的目录也都是由根目录衍生出来。

linux_第4张图片

img

img

ls / 查看根

linux_第5张图片

/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]\$"

linux_第6张图片

语法操作

>       #重定向覆盖输出符    如同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 

linux_第7张图片

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进入这个目录,或者查看详细信息

linux_第8张图片

清空权限命令

chmod 0 清空所有人的权限

img

参数

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
                    
                    

你可能感兴趣的:(linux)