线上 Linux 学习 day 1 day2 总结

分享 wwwzhangnanwc ⋅ 于 2020-07-05 13:57:13 ⋅ 最后回复由 wwwzhangnanwc 2020-07-05 15:41:49 ⋅ 1618 阅读

大数据之Linux(day01,day02)相关知识复习
day01
1.安装虚拟机
2.安装centos-7
3.安装secureCRT
4.配置静态网卡配置
1.ip add 查看一下自己的Ip地址

2.cat /etc/sysconfig/network-scripts/
编辑 vi ifcfg-ens33,如下图

红笔划的需要改成自己的,每台机器都不一样
TYPE 网络类型(Ethernet代表以太网)
PROXY_METHOD()
BROWSER_ONLY()
BOOTPROTO(协议类型|协议类型有:none(不使用协议)|static(静态分配IP)|bootp|dhcp(动态分配IP))
DEFROUTE(启动默认路由)
操作完后要停止NetworkManager.service
systemctl stop NetworkManger.service
然后移除自动启动
systemctl disable NetworkManager.service
注意:最后编辑etc下 resolv.conf 文件
vi /etc/resolv.conf
添加name server 你的IP号(注意:如果忘记这一步,会出现无法ping通外部网的情况)
重启网络服务
systemctl restart network.service
ping www.baidu.com

发现可以ping通,修改静态分配ip地址成功

5.群组操作(CURD)
1.查看所有群组 cat /etc/group

群名:口令(一般为空或者X(有口令)):组ID(1000以下是系统组):组内用户列表
2.查看组密码 cat /etc/gshadow

用户组名:用户组密码(如果是空的或有!就表示没有密码):用户组管理者:组成员(每次创建用户的时候为了让用户归属某个组,所以创建用户的时候自动创建和用户同名的组)
3.添加组 groupadd [选项] 用户名
添加组 groupadd group1
groupadd -g 1003 group1 给新创建的组赋予组ID
groupadd -r sysop1 创建系统组
4.修改组
groupmod [选项] 组名
groupmod -g 996 -n sysug1 sysop2 将名称为 sysop2的组名称改为sysug1 并赋予996的组ID
5.删除组
groupdel group1
6.用户操作(CURD)
1.查看所有用户 cat /etc/passwd

用户名:口令:用户ID:归属组ID:注释性描述:主目录(起始工作目录):登录shell(进程:用户与linux系统之间的接口)
2.查看用户执行密码 cat /etc/shadow

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
3.用户创建 useradd [选项] 用户名
-g 赋予初始用户名ID useradd -g 1000 user1(创建user1并将user1归属于组ID为1000的的组)注意:已经创建了基础组,就不会创建同名组
-G 创建一个用户,将用户归属于某个组并且创建同名组 useradd -G 1000 user1
4.用户修改
usermod [选项] 用户名称
usermod -g group1 user1 将现有用户添加到组中
usermod -G group1 user1 修改用户所属的附加群组
usermod -l userop1 user1 修改用户名称
5.修改用户密码
passwd [选项] 用户名
-d 删除密码(只有系统管理员有权限);
-f 强制执行;
6.用户删除 userdel [选项] 用户名
-r 递归删除
-f 无需询问
7.查看用户信息
id 命令
id [选项] 用户名
8.用户切换
su (-) 用户名
1.su 切换用户不会切换环境变量
2.su - 会随着用户切换环境变量
9.linux 系统属性

权限 此文件连接了多少inode 所属用户 所属用户组 文件大小 最后被修改日期 文件名(.lesshst被隐藏文件)

权限:第一个字母为文件类型
d是目录
-是文件
l是链接文档
b是装置文件可供存储的接口设备(可随机存储装置)
c是装置文件里串行端口设备,例如键盘鼠标(一次性读取装置)
剩下的九个格子
前三位代表文件所属者执行权限
中三位代表用户同属组执行权限
后三位代表其他用户执行权限
r:代表读权限 可用数字4代替
w:代表写权限 可用数字2代替
x:代表执行权限 可用数字1代替
什么是inode?
inode包含文件的元文件(文件block的位置)(inode大概占 unix系统百分之一的磁盘空间。)
用stat 可以查看某个文件的inode

Linux 系统如何读取数据?
linux使用inode号码来识别文件。

  1. 找到这个文件的inode号码;
    2.通过inode号码,找到inode信息;
    3.根据inode信息找到文件数据所在的block,读出数据。
    10.Linux链接概念
    Linux 链接有两种
    硬链接(Hark Link):同一个inode指向两个不同的文件。删除其中一个,不会影响另一个文件。
    软链接 (Soft Link)(推荐):类似于快捷方式

Linux Ln 命令(默认为硬链接)
ln [] 源文件 目标文件
-s 软连接
1.删除软连接对源文件没有影响,因为只是一个快捷方式
2.删除硬链接对源文件和软连接没有影响,因为是一个独立的文件
3.删除源文件,对软连接有影响,对硬链接没有影响
4.同时删除硬链接和源文件,这个文件会被真正的删除
day02
1.Linux基本操作
1.pwd 显示当前工作路径
pwd [参数]
833f7f48-a75e-49a2-84d9-add2a03df4ed.png
-P 真实路径,而非链接路径
2.改变目录:cd
3.列出目录内容 ls
ls [-参数] 目录
-a 列出目录下所有文件,包括.开头的隐藏文件
-l 除了文件名,还想文件权限、所有者文件、大小等信息展示出来。ll网络编程没有环境变量的支持,所有没有支持ssh命令用不了
-r 相反次序排列
-t以文件修改时间排序
4.查看文本文件 cat
5.阅读文件开头 head
head [-参数] 文件(默认10行)
head -c 显示的字节数
head -n 显示的行数
6.阅读文件的结尾和循环查看新日志 tail
tail [-参数] 文件 (默认10行)
-f 循环读取
-c<数目> 显示的字节数
-n<行数> 显示的行数
7.文本分析工具 awk
用法1:awk '{print $1,$4}' log1 (截取文件log1 1到4行的数据)
用法2: awk -F ',' '{print $1}' log1(截取log1 1到4行截取以,分割的数据)
用法3: awk '{print $1 $NF}$1' log1 (第一列 $NF最后一列)
8.文本编辑工具 SED(不在打开文件的基础上就可以编辑 vi vim需要打开文件)
例:sed -e 4a\hello,sed file1(在file1 文件 第四行添加一行数据hello,sed)(在内存中进行操作,不改变源文件)
例:sed -i 直接改变源文件,比较危险
9.find查找文件
与grep区别:grep 查找文件内容,find查找文件
模糊查询:find home/user4 -name 'f*'
10.查找特定程序whereis
whereis只能用于程序名的搜索,而且只能搜索二进制文件
与find相比,whereis查找速度更快,
11.查找可执行文件which
查询命令的全路径
12.用户信息查询
who (显示登录信息等)和 whoami(只显示登陆账号)
13.寻求帮助 man
14.查看系统信息uname
-a 查看系统信息
-r查看内核信息
2.Linux文件与目录操作
1.Linux常用目录
/ 根目录
/bin 存放二进制可执行文件
/sbin 存放系统管理命令
/root 存放root用户
/home 存放普通用户
/usr 用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
/tmp 存放临时文件
/proc 虚拟文件系统,存放当前文件的映射
/boot 存放用于系统引导时使用的各种文件
2.改变文件所有权 chown
3.改变文件权限 chmod
4.输入输出重定向
0 标准输入1标准输出 2错误输出
5.输出重定向>>
3.Linux安装常用软件
1.RPM离线(路径依赖问题)
2.YUM在线
安装小工具(上传文件) yum install -y lrzsz
安装下载小工具 yum install -y wget
切换yum源: 保存centos7.repo 文件到本地tmp下 wget http://mirrors.aliyun.com/repo/Centos-7.repo
cd /etc/yum.repos.d/
mv CentOS-Base.repo ~/
cp /tmp/Centos-7.repo ./CentOS-Base.repo
cat CentOS-Base.repo
发现已经切换成阿里云源了
执行yum源更新命令
yum clean all && yum makecache && yum update -y
安装常用软件
yum install -y openssh-server vim gcc gcc-c++ glibc-headers bzip2-devel lzo-devel curl wget openssh-clients zlib-devel autoconf automake cmake libtool openssl-devel fuse-devel snappy-devel telnet unzip zip net-tools.x86_64 firewalld systemd ntp
openssh:SSH协议 --依赖--> openssl:加密软件
curl :利用URL语法在命令行方式下工作的开源文件传输工具
wget :下载工具
zlib、snappy-devel、unzip、zip:压缩工具
autoconf、automake、cmake、fuse-devel:源代码编译相关
libtool:动态库
3.安装JDK
rz 上传JDK
安装rpm
rpm -ivh jdk-8u144-linux-x64.rpm
配置JDK的环境变量
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_144
2
export JRE_HOME=$JAVA_HOME/jre
3
export PATH=$PATH:$JAVA_HOME/bin
4
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
配置完成后刷新环境变量
source /etc/profile
查看环境变量是否配置成更 echo $PATH
查看JDK java -version 成功后如下图
8c09ed50-921e-4237-a248-995f2d34112f.png
4.安装tomcat
rz
解压文件到 /usr/local 下 tar -zxf apache-tomcat-8.0.53 -C /usr/local
重新修改tomcat 名字
cd /usr/local
mv apache-tomcat-8.0.53 tomcat
5.tar命令压缩软件
1.打包 tar -cvf etc.tar etc
2.压缩 tar -zcvf etc.tar.gz etc
3.解压 tar -zxvf etc.tar.gz
4.类似加载方法 gzip,unzip
unzip -q etc.zip -d /tmp/
zip -r etc.zip etc >> log

4.进程管理
1.ps aux 查看系统所有进程(带父ID)
2.ps -ef 查看系统中所有进程,使用BS操作系统格式(带cpu和内存信息)
3.kill -9 进程号 强制结束进程
4.kill-15 温柔结束进程
5.pkill 进程名 结束一个程序的所有进程
6.top 实时监控各个进程资源的占用情况
memory:物理内存
swap:使用硬盘作为内存的补充
5.内存管理
.free 选项 类似于top
-b 字节
-k KB
-m MB
-g GB

6.硬盘管理
1.文件系统
xfs 最优秀、最先进的文件系统,64位
2.磁盘管理
df 命令查看linux系统中各文件系统的硬盘使用情况
df -aT展示全部的文件系统
du命令统计目录或文件所占磁盘大小的命令
du -sh /home 统计目标文件总大小
mount命令
mount -l 显示出系统中挂载的设备信息
mount -a -a 选项的含义是自动检查 /etc/fstab 文件中有无疏漏被挂载的设备文件,如果有,则进行自动挂载操作。
3.挂载
挂载目录
mkdir -p mnt/cdrom
挂载光驱,映射到这个目录上
ll /dev | grep cdrom
mount /dev/cdrom ./mnt/cdrom
ll ./mnt/cdrom
查看挂载情况
mount
设置自动挂载
vi /etc/fstab
挂载U盘
挂载硬盘
1.在虚拟机设置里添加一块硬盘
2.fdisk -l 查看到新添加的硬盘
071a30cc-5a00-4eac-b90c-bdf198365b36.png
3.格式化硬盘fdisk /dev/sdb n p w
4.设置分区格式 mkfs.ext4 /dev/sdb y
5.创建挂载点 mkdir /data
6.挂载 mount /dev/sdb /data
7.配置自动挂载vim /etc/fstab
写入
/dev/sdb /data ext4 defaults 0 0
7.网路管理
命令格式如下:
```Shell,default
netstat [选项]


选项:
-a:列出所有网络状态,包括 Socket 程序;
-c秒数:指定每隔几秒刷新一次网络状态;
-n:使用 IP 地址和端口号显示,不使用域名与服务名;
-p:显示 PID 和程序名;
-t:显示使用 TCP 协议端口的连接状况;
-u:显示使用 UDP 协议端口的连接状况;
-I:仅显示监听状态的连接;
-r:显示路由表;

1) Proto:网络连接的协议,一般就是 TCP 协议或者 UDP 协议。
2) Recv-Q:表示接收到的数据,已经在本地的缓冲中,但是还没有被进程取走。
3) Send-Q:表示从本机发送,对方还没有收到的数据,依然在本地的缓冲中,不具备 ACK 标志的数据包。
4) Local Address:本机的 IP 地址和端口号。
     访问端口的方式
     1.  0.0.0.0 是对外开放端口,说明80端口外面可以访问;
     2.  127.0.0.1 说明只能对本机访问,外面访问不了此端口;
     3.  ::: 这三个: 的前两个”::“,是“0:0:0:0:0:0:0:0”的缩写,相当于IPv6的“0.0.0.0”,就是本机的所有IPv6地址,第三个:是IP和端口的分隔符

5) ForeignAddress:远程主机的 IP 地址和端口号。
6) State:状态。常见的状态主要有以下几种。
-LISTEN:监听状态,只有 TCP 协议需要监听,而 UDP 协议不需要监听。
-ESTABLISHED:已经建立连接的状态。如果使用"-I"选项,则看不到已经建立连接的状态。
-SYN_SENT:SYN 发起包,就是主动发起连接的数据包。
-SYN_RECV:接收到主动连接的数据包。
-FIN_WAIT1:正在中断的连接。
-FIN_WAIT2:已经中断的连接,但是正在等待对方主机进行确认。
-TIME_WAIT:连接已经中断,但是套接字依然在网络中等待结束。
-CLOSED:套接字没有被使用。

在这些状态中,我们最常用的就是 LISTEN 和 ESTABLISHED 状态,一种代表正在监听,另一种代表已经连接。

netstat - tuln 查看本机开启的端口 只能查看到监听状态,不能看到已连接的状态
netstat -tulnp 可以看到到底是哪个程序占用了端口,并可以知道程序ID
netstat -aptn 可以查看所有连接,包括监听状态和已经建立状态、socket程序连接等
版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海汼部落-wwwzhangnanwc,http://hainiubl.com/topics/75181
回复数量: 2
  • 青牛 国内首批大数据从业者,就职于金山,担任大数据团队核心研发工程师
    2020-07-05 15:25:08

    同学你参考老马发的(http://www.hainiubl.com/topics/75180
    你笔记中有一张图挂了,可能markdown用的不太熟练:bowtie:
    再接再厉,搭集群时候加油

  • wwwzhangnanwc
    2020-07-05 15:41:49

    @青牛 好的^-^

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter