linux学习

Linux

网络连接三种模式

  1. 桥接模式

​ 虚拟机可以与外部系统通讯但容易造成ip冲突

  1. nat模式

    网络地址转换模式,虚拟系统可以和外部系统通讯,不造成Ip冲突

  2. 主机模式

    独立的系统

关机&重启命令

shut dowm -h now 立即关机 h代表halt
shutdown -h 1 一分钟后关机
shutdown -r now 现在重启计算机  r代表reheat
halt  关机
reboot 现在重启计算机
sync 把内存的数据同步到磁盘

vim 使用

vim xxx 一般模式
i或者a 进入编辑模式
esc键后 :wq(保存退出) :q(退出) :q!退出
正常模式下
yy 拷贝当前地 p 粘贴 5yy复制5行
dd 删除当前行 5dd删除五行
/关键字 进行查找 输入n进行下一个
:set nu 设置文件的行号 :set nonu 取消文件的行号
G 来到文件末行 gg 来到文件的首行
u 撤销刚刚输入的
行号+shift+g 快速定位一行

用户管理

su -用户名 切换到高级用户
logout/exit 返回原来用户
who am i 输出第一次登录的信息
id 用户名  
passwd 用户名 修改用户密码 如果没有指定用户名就是当前登录的用户
userdel 用户名 删除用户
id 用户名 查询用户

用户组

系统可以对有共性的用户建组

新增组
groupadd 组名

删除组
groupdel 组名

增加用户时直接加上组
useradd -g 用户组 用户名

修改用户的组
usermod -g 用户组 用户名
  • /etc/passwd 文件

用户user的配置文件,记录用户的各种信息,每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell

  • /etc/shadow 文件

    口令的配置文件

    每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

  • /etc/group 文件

    组的配置文件,记录linux包含的组的信息,

    每行含义:组名:口令:组标识号:组内用户列表

指定运行级别

  1. 关机
  2. 单用户[找回丢失密码]
  3. 多用户状态没有网络服务
  4. 多用户状态有网络服务
  5. 系统未使用保留给用户
  6. 图形界面
  7. 系统重启

常用运行级别是3和5,也可以指定默认运行级别

init 加运行级别切换

在centos 以前/etc/inittab文件中进行了简化

看当前默认的级别用 systemctl get-default

假设root用户密码错误,我们需要进入单用户重新设置密码

帮助指令

在linux中.是结尾的是隐藏文件

man 获得帮助信息

基本语法: man[命令或配置文件] (获得帮助信息) man ls

help 指令

基本语法:help 命令(获得shell内置命令)

文件目录类

rmdir [选项] 要删除的空目录
rmdir如果要删除非空目录需要使用 rm -rf 要删除的目录

touch 指令创建空文件
touch 文件名

cp 指令拷贝文件到指定目录
cp [选项] source dest
-r:递归复制整个文件夹
使用细节强制覆盖不提示:\cp 

rm 指令移除文件或目录
rm [选项] 要删除的文件或者文件夹
-r:递归删除整个文件夹
-f:强制删除不提示

mv 指令移动文件与目录或者重命名
mv oldNameFile newNameFile
mv /temp/movefile /targetFolder 移动文件

cat 指令查看文件内容
cat [选项] 要查看的文件
-n 显示行号
为了更好的使用我们可以用管道命令 | more 
管道命令即将上一步的结果交给下一个指令来处理

less 要查看的文件名

echo 指令输出内容到控制台

head 用于显示文件的开头部分内容,默认情况显示前10行
head -n 5 文件

tail -n 5 用于输出文件中尾部的内容,默认10行
tail -f 文件(实时追踪该文档的所有更新)

> 指令与>>指令
> 输出重定向和>>追加
> 覆盖写 >>追加
基本使用
ls -l > 文件 
ls -al >> 文件
cat 文件1 > 文件2
echo "内容" >> 文件(追加)

ln 指令类似于快捷方式
基本语法 ln -s[原文件或目录][软链接名]

history 指令查看已经执行过历史命令,也可以执行历史命令
显示最近使用过的10条 history 10
执行最近执行的第10条指令 !10

date指令-显示当前日期
date 显示当前时间
date  "+%Y-%m-%d %H:%M:%S"

在这里插入图片描述

在这里插入图片描述

搜索查找类

find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的显示在终端
find [搜索范围][选项]
选项
	-name<查询方式> 按照指定的文件名查找模式查找文件
	-user<用户名> 查找属于指定用户名所有文件
	-size<文件大小> 按照指定的文件大小查找文件 +n大于 -n小于 n等于
	find / -size +200M 大于200M
	
locate 指令快速定位文件路径,locate指令利用系统事先建立的所有文件名称及路径的locate数据库实现快速定位给定文件,它无需遍历整个文件系统为了保证查询结果的准确度,管理员必须定期更新locate时刻
第一次使用必须使用updatedb 创建数据库

which 命令可以查看某个指令在哪个文件夹下

grep [选项] 查找内容 源文件 管道符号
	-n显示匹配行及行号
	-i忽略大小写
写法1. cat hello.txt | grep "hello"
写法2. grep -n "hello" /opt/ddd/hello.txt

压缩与解压类

gzip 文件名 指令用于压缩文件
gunzip 文件.gz 指令用于解压文件


zip 用于压缩文件,unzip 用于解压的
-r 递归压缩,即压缩目录
unzip 解压
-d <目录> 指定解压后文件的存放目录
将/home下所有的文件/文件夹压缩成myhome文件
zip -r myhome.zip /home/
将myhome.zip 解压到 /opt/tmp 目录
unzip -d/opt/tmp myhome.zip

tar 指令打包指令最后打包后的文件是.tar.zip
基本语法
tar [选项] xxx.tar.gz 打包的内容
  选项
  -c 产生.tar打包文件
  -v 显示详细信息
  -f 指定压缩后的文件名
  -z 打包同时压缩
  -x 解压.tar 文件
压缩多个文件,将 /home/pig.txt 和/home/cat.txt压缩成pc.tar.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt 
将文件解压到指定目录下
tar -zxvf /home/myhome.tar.zip 	-C /opt/tmp

Linux 网络配置

虚拟机有一个ip地址 本机也有一人 vmnet

文件/目录权限

ls -ahl 查看文件的所有者
或者 ll
chown 用户名 文件名 修改文件所有者

某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组
修改文件所在组
chgrp 组名 文件名

改变用户所在组
usermod -d 目录名 用户名 改变该用户登录的初始目录

0-9位说明
1. 第0位确定文件类型
l 是链接,相当于windows的快捷方式
d 是目录,相当于windows的文件夹
c 是字符设备文件,鼠标,键盘
b 是块设备,比如硬盘
2. 第1-3位确定所有者拥有该文件的权限
3. 第4-6位确定所属组拥有该文件的权限
4. 第7-9位确定其他用户拥有该文件的权限
drwxr-xr-x. 2 root root       23 1130 10:15 ddd
d 表明是个目录 rwx 表明root可对这个目录可读可写可执行 r-x表明所在组可读可执行 r-x表明其它用户对该目录可读可执行

chmod 指令可以修改文件或者目录的权限
u:所有者 g:所有组 o:其他人 a:所有人
chmod u=rwx,g=rx,o=x 文件/目录名
chmod o+w 文件/目录名
chmod o-x 文件目录名
r=4 w=2 x=1 共7种组合,也可以通过数字进行修改权限

修改文件所有者
chown newowner 文件/目录 改变所有者
chown newowner:newgroup 文件/目录 改变所有者和所在组
chown -R tom /home/test 将/home/test 目录下的所有文件和目录的所有者修改成tom	

修改文件/目录所在组
chgrp newgroup 文件/目录



Linux 底层细节


crondtab 进行定时任务的设置
任务调度:指系统在某个时间执行的特定的命令或程序
1. 系统工作:有些重要的工作必须周而复始地执行,个别用户工作:个别用户可能希望执行某些程序
crontab [选项]
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
设置个人任务调度,crontab -e 命令
*/1 * * * * ls -l 、/etc/ > /tmp/to.txt
第小时的每分钟执行这条命令
5个占位符说明
第一个* 一小时当中的第几分钟 0-59
第二个* 一天当中的第几小时 0-23
第三个* 一个月当中的第几天 1-31
第四个* 一年当中的第几个月 1-12
第五个* 一周当中的星期几 0-7

at定时任务
1. at命令是一次定时计划任务,at的守护进程atd会以后台模式运行检查作业队列来运行
2.默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配则运行此作业
3. at命令是一次性定时计划任务,执行完后不再执行
4. 在使用at 命令的时候,一定要保证atd进程的启动可以使用相关的指令来查看  ps -ef 查看当前所有进程 ps -ef | grep atd 查询atd相关
at [选项] [时间]
ctrl+D 结束 at 命令的输入
用atq查看当前队列里面的任务
atrm [编号] 删除队列中的任务

linux 分区
1. linux 来说无论有几个分区,分给哪一目录来使用,它只有一个根目录,一个独立且唯一的文件结构,linux中每个分区都是用来构成整个文件系统的一部分
2. linux 采用一种叫"载入"的处理方法,它的整个文件系统包含一整套的文件和目录,且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的存储空间在一个目录下获得
lsblk -f 查看当前磁盘分区
关于磁盘添加挂载新磁盘 https://www.cnblogs.com/superlsj/p/11610517.html

磁盘情况查询
du -lh 
du/目录
	-h 带计量单位
	-s 指令目录占用磁盘大小
	-c 列出明细,并显示汇总值
	--max-depth=1 子目录深度

修改主机名与hosts映射
1. 可以给linux系统设置主机名,也可以根据需要修改主机名
2. 指令hostname: 查看主机名
3. 修改文件在 /etc/hostname 指定
4. 修改后,重启生效
nmtui 可以进入一个图形化的配置工具编辑后直接生效

在这里插入图片描述

Linux 进程管理

  1. 在linux 中,每一个执行的程序都称为一个进程,每一个进程都分配一个进程号
  2. 每个进程都可能以两种方式存在,前台与后台
  3. 一般系统的服务都是以后台进程的方式存在

ps命令查看目前系统中,有哪些正在执行,以及它们执行的状况,可以不加任何的参数

ps -aux 显示当前所有在后台的进程

ps -aux | grep sshd 显示 sshd连接使用的进程

在这里插入图片描述

ps -ef 也可以全格式显示当前所有的进程

-e 显示所有的进程 -f 全格式

若是某个进程执行一半需要停止,可以使用kill指令来完成此项任务

kill [选项] 进程号 通过进程号来杀死进程

killall 进程名称 通过进程名称杀死进程

终止远程登录服务 sshd,在适当的时候再开

kill sshd对应的进程号 /bin/stystemctl start sshd.service

当这个进程正在运行,你需要让它停止,我们需要加上 -9 选项

pstree [选项] 可以更加直观地来看进程信息

-p 显示进程的pid

-u 显示进程所属用户

服务本质就是进程,但运行在后台,因此我们也称为守护进程

service 服务名 [start|stop|restart|reload|staus]

在centos7后很多服务不再使用 service 而是使用systemctl

service指令管理的服务在/etc/init.d中查看

setup ->系统服务可以看到全部

开机流程

开机->bios->/boot->systemd进程1->运行级别->运行级对应的服务

chkconfig命令可以给服务的各个运行运行级别设置自启动与关闭

chkconfig --list[| grep xxx] 查看服务

chkconfig 服务名 --list

chkconfig --level 5 服务名 on/off 设置这个服务在这个运行级别是否自动开启

systemctl 管理指令

systemctl 指令管理的服务在 /usr/lib/systemd/system中查看

systemctl list-unit-files [|grep]

systemctl enable 服务名(开机启动)

systemctl disable 服务名(关闭启动)

systemctl is-enabled 服务名 (查询某个服务是否启动了)

关闭或者启动防火墙后,立即生效,但开机即失效,如果需要永久生效就需要

systemctl disable 服务名

打开或者关闭指定端口

打开端口 firewall-cmd --permanent --add-port=端口号/协议

关闭端口 firewall-cmd --permanent --remove-port=端口号/协议

重新载入生效 firewall-cmd --reload

查询端口是否开放:firewall-cmd --query-port=端口号/协议

top [选项] top 显示的是正在执行的进程状态

-d 秒数 指定几秒更新,默认是3秒

-i 使top不显示显示任何闲置或者僵死进程

-p 通过指定监控进程id来仅仅监控某个进程的状态

显示中使用交互指令进行按照对应的指标进行排序

w 命令查看登录用户正在使用的进程信息

p 以cpu使用率排序,默认

M 以内存的使用率排序

N 以PID排序

q 退出top

监控tom用户

top回车 u+用户名

终止指定的进程

top回车 k+进程号

netstat [选项]

-an 按一定顺序排列输出

-p 显示哪个进程在调用

如果需要建立一个网络连接双方都要一个端口

rpm包的管理

rpm用于互联网下载包的打包及安装工具,它包含在某些linux分发版中,它生成具有.rpm扩展名的文件名

查询已安装的rpm列表 rpm -qa|grep xx

rpm -q 软件包名:查询软件包是否安装

rpm -qi 软件包名:查询软件包信息

rpm -ql 软件包名:查询软件包中的文件

rpm -qf 文件全路径名 查询文件所属的软件包

删除rpm包 rpm -e rpm包名称 //erase

当有其它依赖依赖于它时,我们可以使用 rpm -e --nodeps rpm包

安装rpm包

rpm -ivh rpm包全路径名称 i=install,v=verbose 提示,hash进度条

yum是一个shell前端软件包管理器,基于rpm包管理,能够从指定服务器自动下载rpm包并且安装

yum list|grep xx软件列表 查询yum服务器是否有需要安装的软件

如果有直接 yum install 软件名称 就可以了

shell 编程

脚本格式以 #!/bin/bash开头

脚本需要有可执行权限

脚本常用执行方式

#!/bin/bash
echo "hello,world"
  1. 赋予该权限+x权限,再执行脚本 chmod u+x hello.sh
  2. 不用赋予脚本+x权限,直接执行该脚本 sh hello.sh

shell 变量介绍

  1. linux shell中变量分为 系统变量与用户自定义变量
  2. 系统变量: H O M E , HOME, HOME,PWD, S H E L L , SHELL, SHELL,USER
  3. 显示当前 shell中所有变量:set

shell 变量定义

  1. 定义变量:变量名=值
  2. 撤销变量:unset 变量
  3. 声明静态变量:readonly变量 注意:不能unset

变量名称一般使用大写

行号两侧不能有空格

将命令的返回值赋给变量

A=`date`反引号,运行里面的命令,并将结果返回给A
A=$(date) 等价于反引号

设置环境变量

export 变量名=变量值 (将shell变量输出为全局变量)

source 配置文件 (让修改后的文件立即生效)

echo $变量名 (查询环境变量的值)

多行注解

:<<!

注释内容

!

执行shell脚本希望获取命令行的参数信息,可以使用位置参数变量

$n (n为数字 $0代表命令命令本身,$1-$9代表1-9参数 10以上的参数要用 ${10})

$* 所有的参数

$@ 也代表所有的参数不过进行了区别对待

$# 代表命令行中所有参数的个数

预定义变量

$$ 当前进程号(pid)

$! (后台运行的最后一个进程的进程号)

$? (功能描述:最后一次执行的命令返回值状态,0表示正确执行非0表上次执行的不正确)

后台运行一个脚本 /root/myshell.sh & &代表在后台运行

系统日志

/var/log目录就是系统日志保存的位置

在这里插入图片描述

echo ‘’>secure 将secure 日志清空

centos 7.6服务是 rsyslogd ,centos6.x日志服务是syslogd

/etc/rsyslog.conf 文件限制了日志应该放的位置

在这里插入图片描述

在这里插入图片描述

/etc/logrotate.conf [全局的日志轮替策略,也可以单独给某个日志文件指定策略]

bt忘记密码可以使用 bt default 查看

常用命令

pwd (print work directory) 显示当前工作目录绝对路径
ls 
-a 显示当前目录所有的文件和目录,包括隐藏的
-l 以列表的方式显示信息
-lh 文件的容量用mb或者k或者g的方式显示
cd [参数] 切换到指定的目录
cd:回到家目录
cd .. 回到当前目录的上一级目录
mkdir [选项] 目录名 mkdir 创建一个目录
-p:创建多级目录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值