【Linux】当初的学习笔记

Linux 笔记

哔哩哔哩 @ 萌狼蓝天

微信公众号 @ 萌狼蓝天

博客:https://mllt.cc

学习站:https://edu.mllt.cc

[如果你想支持我,可以为我的哔哩哔哩账号(萌狼蓝天)充电]

linux基本概念

linux终端四部分

[当前登录用户@主机名 当前所在路径]用户类型

linux的实质

可执行二进制文件或shll脚本,存放在/bin目录下

linux系统操作命令

查询用户

who

查询主机上所有普通用户

  -H或--heading  显示各栏位的标题信息列。
  -i或-u或--idle  显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串。
  -m  此参数的效果和指定"am i"字符串相同。
  -q或--count  只显示登入系统的帐号名称和总人数。

who -H

跟who相比多了一行表头

whoami

查询当前登录的账户

修改密码

passwd  用户名

root用户修改普通用户的密码无需验证旧的密码

快速切换到用户目录

cd ~用户名

sshd

ssh协议远程开启其他主机shell的服务

systemctl

负责控制systemd系统和服务管理器

查看服务状态
systemctl status 服务
开启服务
systemctl start 服务
关闭服务
systemctl stop 服务

关机

取消关机 shutdown -c
将系统关机 shutdown -h
shutdown -h +5 "5分钟后关机。"
shutdown -h  1:00 "凌晨一点关机"
提示关机 shutdown -k
重启 shutdown -r
关机流程
  1. 查看在线用户和在线服务
  2. 通知用户关机/重启原因和时间安排
  3. 下达关机命令或者重启命令

shell 命令

man 常用的帮助命令

history 历史命令

history n

查询之前输入的n条命令

重执行某一条
!n
!之前执行过得命令的首字母

重执行某一条

【练习作业】

Bash

pwd

ls

查看目录下文件

ls -a

查看目录下所有文件 包括隐藏文件

ls -l

查看目录下文件详细信息

ls -ld

查目录的详细信息

ls -al(ll -a)

显示所有文件详细信息(包括隐藏文件)

ls -lr

查看目录下文件与文件权限、文件所属等信息

递归显示目录

ls -R

注意:r和R效果不一样

image-20210929165014323

alias

alias 新命令名字=' 命令 '

eg:使用alias给 echo " hello linux" 取别名为 linux

alias linux=' echo "hello linux" '

image-20210915163416999

linux相关配置

配置主机名称

配置文件所在: /etc/hostname

配置网卡信息

配置文件所在 /etc/sysconfig/network-scripts/ifcfg-ens33

/etc/sysconfig/network-scripts
IPADDR=192.2.25.100
GATEWAY=255.255.255.0
NETMASK=192.2.25.0
BOOTPROTO=static

原本是BOOTPROTO="dhcp",意思是动态的,自定义IP后,改成静态的

ONBOOT="yes"

设置完成后,保存退出,重启网络

systemctl restart network

实现远程联机

vim文本编辑器

命令模式

dd:删除(剪切)光标所在整行

ndd:删除(剪切)从光标开始的n行

yy:复制光标所在整行

n yy:复制从光标处开始的n行

n:显示搜索命令定位的下一个字符串

N:显示搜搜命令定位到的上一个字符串

u:撤销上一步操作

p:将之前删除(dd)或复制(yy)过来的数据粘贴到光标后面

work:查找work。从下往上搜索work这个字符串。

/ work:查找work。从上往下搜索work这个字符串。

输入模式

a:在光标所在字符后插入

i:在光标所在字符前插入

o:在光标下插入新行

A:在光标所在行尾插入

I:在光标所在行首插入

末行模式

:q:退出

:w:保存

:q!:强制退出(不保存)

:wq!:强制保存退出

:set nu:显示行号

:set nonu:隐藏行号

:行号:定位到该行

:命令:执行该命令

:整数:跳转到该行

: n1 , n2 s /word1 /word2 /gc:从n1行到n2行的字符串,将word1替换为word2。gc表示是否确认替换的询问肯定回答。

定位

gg:到第一行

G:到最后一行

nG:到n行

$:行尾

0:行首

查找

eg:例如要查找/boot

因为/有特殊含义,所以需要使用\将其转换为一个普通字符

: ? \/boot

eg:例如查找特殊单词 io

\<io\>

向上查找
:?
向下查找
:/

查找后定位到下一个字符(n),上一个字符(N

替换

:n1,n2s/word1/word2

将n1到n2行的字符串中的word1替换为word2

替换前询问是否替换

:n1,n2s/word1/word2/gc

恢复

撤销快捷键:Ctrl+r

vim崩溃恢复:

if(vim.崩溃==true){
恢复文件(.xxxx.swp){
R;
}
}

文件系统架构

 文件通配符

只能匹配非隐藏文件

快速创建多个文件

touch 文件名{num1..num2}

实例:Practice

 目录管理

创建目录

mkdir 文件夹名称

嵌套创建目录

mkdir -p dirA / dirB

mkdir -p dirA / dir{x,y}

 复制文件cp

如果复制文件夹,需要添加参数 -r

如果存在同名文件,需要添加参数-i

 删除文件rm

删除目录 -r

全部删除 -f

 移动文件mv

-i 交互式操作,如果文件存在,出现覆盖情况会先询问,要求用户回答以避免误操作覆盖文件
-f 禁止交互式操作,覆盖也不会给出提示

归档管理tar  gzip

tar

-c 创建压缩文件

-x 解压

-t 查看压缩包内文件

-z 用Gzip压缩或者解压

-j 用bzip2压缩或者解压

-v 显示压缩或者解压的过程

-f 目标文件名

-p 保留原始属性与权限

-P 使用绝对路径来压缩

-C 解压到指定目录

创建压缩包 tar -zcvf fileName filePwdAndName

解压 tar -zxvf fileName

gzip

-c 把压缩后的文件输出到标准输出设备,不去更动原始文件

-d 将压缩文件解压

-数字 压缩效率是介于1-9的数值,预设值为6,指定越大的数值,压缩率越高

Linux文件安全模型

用户组

相同特征的用户集合。用户组作为用户容器,方便管理用户

文件类型 文件属主 同组用户 其他用户
d(目录文件) r(读)w(写)x(执行)
-(非目录文件)

链接数:可来到该文件的所有路径

用户名:

组名:

文件大小:

文件修改日期:

文件名:

字符设备:一个字节一个字节读写(鼠标,键盘,LED设备等)

修改所属用户和用户组chown

只能有用户本身或超级用户才能去修改文件的权限

chown [参数] 属主[:组] 文件或者目录

同时修改目录及其子目录所属用户和用户组

chown -R root:root 文件夹名称

读取4,写入2,执行1

所有者、用户组,公共

image-20211020171049072

修改文件或者目录的权限 chmod
chmod g- rx,o- rx 文件夹名称

u:所属用户

g:用户组

o:公共

-:减去权限

+:增加权限

=:赋予新的权限(覆盖旧的权限)

r:4

w:2

x:1

组、用户组、存储文件

/etc/passwd

内容包括:用户名 | 用户ID | 用户主组ID | 家目录 | 用户Shell

字段意义:(书上也有)

序号 说明 备注
1 用户组名
2 组密码 没有太大作用,一般都显示“x”字符(实际密码存放在:/etc/gshadow 文件夹中)
3 GID 用户组ID,GID是用户组的唯一标识
4 组中附加用户

/ect/shadow

字段 说明 备注
用户名
加密密码
密码最后一次修改日期
两次密码修改间隔时间
密码有效期
密码修改到期前的警告天数
密码过期后的宽限天数
账号失效时间。留空则永不失效

/ect/gshadow

/ect/gshadow 是 ect/passwd的影子文件,二者互补

useradd命令

作用:添加用户。默认创建与用户同名的组

-u UID

-d 家目录

-g 用户组

-b, --base-dir BASE_DIR 指定新账户的家目录;

-c, --comment COMMENT 新账户的 GECOS 字段;

-d, --home-dir HOME_DIR 新账户的主目录;

-D, --defaults 显示或更改默认的 useradd 配置;

-e, --expiredate EXPIRE_DATE 新账户的过期日期;

-f, --inactive INACTIVE 新账户的密码不活动期;

-g, --gid GROUP 新账户主组的名称或ID;

-G, --groups GROUPS 新账户的附加组列表;

-h, --help 显示此帮助信息并推出;

-k, --skel SKEL_DIR 使用此目录作为骨架目录;

-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值;

-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库;

-m, --create-home 创建用户的主目录;

-M, --no-create-home 不创建用户的主目录;

-N, --no-user-group 不创建同名的组;

-o, --non-unique 允许使用重复的 UID 创建用户;

-p, --password PASSWORD 加密后的新账户密码;

-r, --system 创建一个系统账户;

-R, --root CHROOT_DIR chroot 到的目录;

-s, --shell SHELL 新账户的登录 shell;

-u, --uid UID 新账户的用户 ID;

-U, --user-group 创建与用户同名的组;

-Z, --selinux-user SEUSER 为SELinux 用户映射使用指定 SEUSER。

id
id 用户名

查询用户信息

usermod

修改组

添加扩展组

usermod -G 扩展组 用户名
usermod -u {ID} -g {初始组} -G {扩展组} {用户名}
passwd

-l 锁定用户,禁止登陆

-u 解锁

-S 查看状态

echo '密码' | passwd --stdin 用户名
userdel

-r 删除和用户相关的目录例如用户家目录

groupadd

创建用户组

-r :系统用户组

让渡用户权限
1./etc/sudoers

文件类型:文本文件

打开方式:visudo

2.字段
字段 说明
1 授权给用户或者用户组。①不以%开头的表示“被授权的用户”,eg:root | ②以%开头的表示“被授权用户组”,eg:wheel
2 允许登陆的主机。
3 授权哪些用户或用户组的权限
4 执行指定指令时是否需要输入当前用户密码(不需要 则写:NOPASSWD:
5 授权给用户的命令。多个命令逗号(英文输入状态下)隔开

注意事项:

1.命令要使用绝对路径(可以通过whereis查询命令路径)

 <用户名> <权限> <切换sudo时是否需要输入密码> 添加记录

重定向和管道

一、输入输出重定向

标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可以从其他文件或命令中输入

标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕

错误输出重定向(STDERR,文件描述符2):默认输出到屏幕

文件描述符是一个非负整数,用于指代被打开的文件,所有与文件读写相关的系统调用都是通过文件描述符调用起来的。

符号 作用 备注
命令 > 文件 标准输出重定向到一个文件中(会清空原有文件数据) 命令 1> 文件
命令 2> 文件 错误输入重定向到一个文件中(会清空原有文件数据)
命令 >> 文件 标准输出重定向到一个文件中(会追加到原有文件数据后) 命令 1>> 文件
命令 2>> 文件 错误输出重定向到一个文件中(会追加到原有文件数据后)
命令 >> 文件 2>&1
命令 &>> 文件

标准输入错误重定向到回收站:命令 2>/dev/null

输入重定向

统计文本文件行数

wc -l < stderr.txt

-l

-w

-c

二、简单过滤器命令

more
head -行数 文件名(顺序)
tail -行数 文件名(倒叙)

替换

tr 原始字符 目标字符

提取

cut 参数 文本

用“列”提取文本字符

按列搜索,要用-f 参数设置需要查看的列数,-d设置间隔符号

排序

sort -r /etc/passwd |  sort

去重

uniq 消除连续重复的行

sort 文件名 | uniq 
sort 文件名 | uniq -c

三、管道命令符

序号 字段
1 远程主机IP
2 远端用户标识(已废弃)
3 远程用户名
4 请求时间
5 请求第一行(典型格式:请求方法/访问资源协议)
6 状态代码(显示客户端的请求是否成功)
7 发送字节数(服务器发送给客户端的总字节数)
8 请求来源
9 客户端浏览器识别信息
posted @ 2022-03-07 09:30  萌狼蓝天  阅读(46)  评论(0编辑  收藏  举报