极客时间--《LINUX实战100讲》笔记

LINUX的用户及用户组

su 切换用户,如果带-则是完全切换,被把目录进入到用户家目录。

sudo 用自己的用户以其他用户身份执行命令

usermod用于修改用户的属性

usermod -d /home/w1 user3 可以用于用户的家目录

创建用户组

groupadd group1

usermod -g group1 user1 将user1的用户组改为group1

useradd -g group1 user2 新建用户并将它设置为group1

/etc/passwd 用来保存用户信息

/etc/shadow 保存用户密码

/etc/group 保存用户组相关信息 ,用来设置一个用户两个组

系统运行级别

checkconfig list查看各服务在什么init级别下运行

systemd的是在wanted里面的target有

和init级别对应的target,达到init的效

如,runlevel.target。

init各级别与systemd对应关系

在这里插入图片描述

linux后台运行

加&,后台运行

jobs列出后台运行的任务

fg jobid弹出到前台

ctrl+z收回到后台,挂起了。

bg1 重新后台运行

信号

管道和信号是两种进程通信的方式

ctrl+c其实是一种信号

kill -l查看所有信号

screen保持后台运行

screen: 即使网络断开了(关闭终端),也可以继续运行 程序。

screen 进入screen

ctrl + a + d退出screen

screen -ls查看当前screen的列表

screen -r screenid切入到screen

SELINUX

SELINUX防止权限控制不当

原理:给用户 进程 文件打上标签 ,标签一致才能修改文件。

vim /etc/selinux/config编辑是否开启selinux,重启生效。

查看磁盘及分区

如果swap不开启,内存不足会随机杀掉。

fdisk查看磁盘及它的分区

parted -l也可以查看 和上面的差不多

df -h看分区和挂载目录及容量

ls -l /etc/passwd,查看含有空洞文件

du /etc/passwd,查看实际占用的文件

dd创建空洞文件

linux文件的构成

ls -li /etc/passwd

查看passwd文件的i节点编号

i节点上存储了权限,所属组之类的信息,i节点链式挂载了datablock数据块

i节点,文件名记录到父目录的i节点中

ls 查看的数据块的整体大小

du是查看数据块实际使用大小

个体比较小的文件,在linux中也是用4K

这是各类文件服务器出现的原因

  • mv改名会改变i节点吗?

不会,他只会改变目录里i节点的文件名

  • mv移动会改变i节点吗?

离开分区时会,不离开分区不会,离开分区时很长。

  • 正常vim修改文件会改变i节点吗?

会,原理是vim有个swp文件存在,这是vim对文件一致性的考虑,相当于改变了文件。

  • rm是什么原理?

父目录的文件名和文件的i节点断开

  • ln的原理(硬链接)?

让文件名指向i节点,就实现了多个文件名指向同一个i节点。

  • 跨越分区,如何链接?

使用软连接,ln -s afile aafile,两者的i节点就不一样了, 它保存了其代表的文件的
绝对路径,是另外一种文件(链接文件),在硬盘上,有独立的区块,访问时会替换自己的路径。
所以,如果删除掉被链接的文件,再去打开软链接,被链接文件,自然打不开。(和win快捷方式一样),但是硬链接能打开,因为他不是替换。而是有相同的i节点引用。软连接的一切操作都是会替换到被链接的文件,虽然他们的i节点不同,但是修改软连接的权限,也是修改的被链接的文件。

普通权限的补充

普通的权限不满足,要使用facl

getfacl afile

setfacl -m :user1:r afile

给硬盘分区

fdisk查看硬盘

fdisk /dev/sdc 对sdc硬盘设备分区

n 新建分区

p 主分区

设置分区号 1

起始值回车用默认

last扇区:+50G 给分区1分配50G

fdisk -l查看分配的分区

mkfs.ext4 /dev/sdc1对分区做文件系统

mkdir /mnt/sdc1

mount /dev/sdc1/ /mnt/sdc1

大于2T的,用parted命令进行挂载

mount挂载是临时的,需要修改etc/fstab才能永久保存

这个文件

/dev/sdc1 /mnt/sdc1 ext4 defaults 0 0

给swap扩容

swap分区扩容

用分区的方式给swap扩容

mkswap /dev/sdd1

swapon /dev/sdd1

swapoff /dev/sdd1

用文件的方式给swap扩容

dd if=/dev/zero bs=4M count=1024 of=/swapfile

mkswap /swapfile

chmod 600 /swapfile

swapon /swapfile

永久保存需要修改fstab

vim /etc/fstab

/swapfile swap swap defaults 0 0
第一个0代表是否备份 第二个0代表自检

linux组RAID

RAID

多块硬盘组合

RAID 0 把一份数据拆成两份,单盘只存50%

RAID 1 镜像,两个硬盘存的一样

RAID 5 有奇偶校验

RAID 10

要使用RAID卡比较好

逻辑卷

LVM

卷:一个物理设备就是一个卷

物理卷分区扩容需要先拷走文件

逻辑卷: 叠在物理上面,逻辑上的一个设备

查看系统综合状态

系统综合状态

sar -u 1 10

sar -r 1 10

linux查看十六进制文件

hexdump可以看十六进制文件

各种方式执行shell脚本

bash ./filename.sh 子进程

./filename.sh 子进程,用#!后面的东西去解释这个脚本

source ./filename.sh 当前进程

. ./ filename.sh 当前进程

cat命令输入文件

cat > /tmp/a.sh < EOF

echo ‘hello’

EOF

let命令

使用let计算

let a=10+20

shell中最好不要计算

将命令结果给到变量

命令结果赋值给变量,也可以使用``

letc=$(ls -l /etc)

变量中如果有空格

name="xu jz "

查看环境变量

env 查看环境变量

set 查看环境变量及预变量

$号的作用

$$ 进程号

$0 进程名 不同执行方式 结果不一样 bash执行时,是shell文件名称

$? 上一个命令执行结果

$1 $2 ${10}读取位置参数

${2-k} 如果$2没值 那就用 'k’替换

默认环境变量加载

/etc/profile

/etc/profile.d

~/.bash_profile

~/.bashrc

/etc/bashrc

source 可以导入环境变量,如果修改了环境变量文件,则source则可以导入环境变量

原理:根据各种情况进入bash,调用不同的配置文件,则变量开始生效,比较nologin shell 和login shell是加载

不同配置。su - root 获取一个 login shell。

数组

IPTS=(10.0.0.1 10.0.0.2 10.0.0.3)

打印数组 echo ${IPTS[@]}

打印数组数量 echo ${#IPTS[@]}

完全引号和非完全引号

“”不完全引号,会去解析$

''是完全引用

``是命令

算数运算

expr 用于算数运算符 a=expr 4 + 5 记得 要空格

let a=4+5 让变量a为9

(( a=4+5 )) 双括号其实是let的简写, 让变量等于9

只支持整数运算

特殊符号总结

圆括号可以产生子shell (a=123),这个产生了一个子shell

数组pts=(10 23 30)

运算echo $(( 10+20))

( ) 用 于 在 里 面 加 入 一 个 命 令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值