马哥教育SRE笔记【作业】week02
1、请总结描述用户和组管理类命令的使用方法并完成以下练习:
(1)、创建组distro,其GID为2019;
[root@centos83localdomain data]#groupadd -g 2019 distro
# 验证
[root@centos83localdomain data]#getent group distro
distro:x:2019:
(2)、创建用户mandriva, 其ID号为1005;基本组为distro;
[root@centos83localdomain data]#useradd -u 1005 -g distro mandriva
# 验证
[root@centos83localdomain data]#getent passwd mandriva
mandriva:x:1005:2019::/home/mandriva:/bin/bash
(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
[root@centos83localdomain data]#useradd -u 1100 -d /home/linux
# 验证
[root@centos83localdomain data]#getent passwd mageia
mageia:x:1100:1100::/home/linux:/bin/bash
(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
[root@centos83localdomain ~]#echo "mageedu" | passwd --stdin mageia
Changing password for user mageia.
passwd: all authentication tokens updated successfully.
(5)、删除mandriva,但保留其家目录;
[root@centos83localdomain ~]#getent passwd mandriva
mandriva:x:1005:2019::/home/mandriva:/bin/bash
[root@centos83localdomain ~]#userdel mandriva
# 验证
[root@centos83localdomain ~]#getent passwd mandriva
[root@centos83localdomain ~]#ll /home
total 8
drwx------. 15 cc1 cc1 4096 Apr 2 20:24 cc1
drwx------. 15 cc2 cc2 4096 Apr 3 11:31 cc2
drwx------. 3 mageia mageia 78 Apr 10 10:13 linux
drwx------. 3 1005 distro 78 Apr 10 07:10 mandriva
(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
[root@centos83localdomain ~]#groupadd peguin
[root@centos83localdomain ~]#useradd -u 2002 -g distro -G peguin slackware
# 验证
[root@centos83localdomain ~]#id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin
(7)、修改slackware的默认shell为/bin/tcsh;
[root@centos83localdomain ~]#usermod -s /bin/tcsh slackware
# 验证
[root@centos83localdomain ~]#getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/tcsh
[root@centos83localdomain ~]#
(8)、为用户slackware新增附加组admins,并设置不可登陆。
# 设置slackware不可登陆
[root@centos83localdomain ~]#chage -E 0 slackware
# 验证用户不可登陆
[root@centos83localdomain ~]#su -slackware
su: failed to execute lackware: No such file or directory
# 新增附加组
[root@centos83localdomain ~]#groupadd admins
[root@centos83localdomain data]#usermod -a -G admins slackware
# 验证附加组
[root@centos83localdomain data]#id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins)
2、创建用户user1、user2、user3。在/data/下创建目录test
(1)、目录/data/test属主、属组为user1
# 创建user1..3 三个用户及/data/test目录
[root@centos83localdomain data]#useradd user1
[root@centos83localdomain data]#useradd user2
[root@centos83localdomain data]#useradd user3
[root@centos83localdomain data]#mkdir /data/test
# 验证
[root@centos83localdomain data]#tail -3 /etc/passwd
user1:x:2003:2003::/home/user1:/bin/bash
user2:x:2004:2004::/home/user2:/bin/bash
user3:x:2005:2005::/home/user3:/bin/bash
# 修改/data/test的属主为user1 属组为user1
[root@centos83localdomain data]#ls -ld /data/test/
drwxr-xr-x. 2 root root 6 Apr 10 14:32 /data/test/
[root@centos83localdomain data]#chown user1:user1 /data/test/
[root@centos83localdomain data]#ls -ld /data/test/
drwxr-xr-x. 2 user1 user1 6 Apr 10 14:32 /data/test/
(2)、在目录属主、属组不变的情况下,user2对文件有读写权限
# user2添加附加组user1
[root@centos83localdomain data]#usermod -a -G user1 user2
[root@centos83localdomain data]#id user2
uid=2004(user2) gid=2004(user2) groups=2004(user2),2003(user1)# 给/data/test目录增加w权限
[root@centos83localdomain data]#chmod g+w /data/test/
[root@centos83localdomain ~]#ls -ld /data/test/
drwxrwxr-x. 2 user1 user1 6 Apr 10 14:32 /data/test/# 给user2创建密码并切换用户user2
[root@centos83localdomain data]#passwd user2
Changing password for user user2.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@centos83localdomain data]#su - user2# 验证
[user2@centos83localdomain ~]$cd /data/test/
[user2@centos83localdomain test]$touch testa.txt
[user2@centos83localdomain test]$echo "user2 info">>testa.txt
[user2@centos83localdomain test]$ll /data/test/
total 4
-rw-rw-r--. 1 user2 user2 11 Apr 10 14:47 testa.txt
(3)、user1在/data/test目录下创建文件a1.sh, a2.sh, a3.sh, a4.sh,设置所有用户都不可删除a1.sh,a2.sh文件、除了user1及root之外,所有用户都不可删除a3.sh, a4.sh
# user1进入到/data/test目录创建4个文件,目录设置sticky
[user1@centos83localdomain test]$ls -ld .
drwxrwxr-x. 2 user1 user1 6 Apr 10 15:20 .
[user1@centos83localdomain test]$touch a{1..4}.sh
[user1@centos83localdomain test]$chmod o+t /data/test
[user1@centos83localdomain test]$ll -ld .
drwxrwxr-t. 2 user1 user1 58 Apr 10 15:22 .
[user1@centos83localdomain test]$ll
total 0
-rw-rw-r--. 1 user1 user1 0 Apr 10 15:22 a1.sh
-rw-rw-r--. 1 user1 user1 0 Apr 10 15:22 a2.sh
-rw-rw-r--. 1 user1 user1 0 Apr 10 15:22 a3.sh
-rw-rw-r--. 1 user1 user1 0 Apr 10 15:22 a4.sh# 此时user2无法删除目录内文件
[user2@centos83localdomain test]$ls
a1.sh a2.sh a3.sh a4.sh
[user2@centos83localdomain test]$rm a3.sh
rm: cannot remove 'a3.sh': Operation not permitted# root用户对a1和a2文件设定特定属性i
[root@centos83localdomain test]#chattr +i a1.sh a2.sh
[root@centos83localdomain test]#lsattr *
----i--------------- a1.sh
----i--------------- a2.sh
-------------------- a3.sh
-------------------- a4.sh# 此时root和user1无法删除a1和a2
[root@centos83localdomain test]#rm -fr a1.sh
rm: cannot remove 'a1.sh': Operation not permitted
[user1@centos83localdomain test]$rm -fr a1.sh
rm: cannot remove 'a1.sh': Operation not permitted
(4)、user3增加附加组user1,同时要求user1不能访问/data/test目录及其下所有文件
# 设置/data/test的属主权限为0
[root@centos83localdomain test]#chmod 044 /data/test/
[root@centos83localdomain test]#ll -d /data/test/
d---r--r--+ 2 user1 user1 58 Apr 10 15:22 /data/test/# 验证
[user1@centos83localdomain ~]$cd /data/test/
-bash: cd: /data/test/: Permission denied
[user1@centos83localdomain ~]$ls /data/test/
ls: cannot open directory '/data/test/': Permission denied
[user1@centos83localdomain ~]$touch /data/test/a
touch: cannot touch '/data/test/a': Permission denied
[user1@centos83localdomain ~]$echo "haha" >> /data/test/a1.sh
-bash: /data/test/a1.sh: Permission denied
(5)、清理/data/test目录及其下所有文件的acl权限
[root@centos83localdomain test]#lsattr /data/test/*
----i--------------- /data/test/a1.sh
----i--------------- /data/test/a2.sh
-------------------- /data/test/a3.sh
-------------------- /data/test/a4.sh
[root@centos83localdomain test]#chattr -i /data/test/*
[root@centos83localdomain test]#lsattr /data/test/*
-------------------- /data/test/a1.sh
-------------------- /data/test/a2.sh
-------------------- /data/test/a3.sh
-------------------- /data/test/a4.sh
3、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来
[root@centos83localdomain test]#cat /etc/passwd | grep "/sbin/nologin" | wc -l
43[root@centos83localdomain test]#cat /etc/passwd | grep "/sbin/nologin" | cut -d: -f1
bin
daemon
adm
lp
mail
operator
games
ftp
nobody
dbus
systemd-coredump
systemd-resolve
tss
polkitd
geoclue
rtkit
pipewire
pulse
libstoragemgmt
qemu
usbmuxd
unbound
gluster
rpc
chrony
avahi
setroubleshoot
saslauth
dnsmasq
radvd
sssd
cockpit-ws
cockpit-wsinstance
flatpak
colord
rpcuser
gdm
clevis
gnome-initial-setup
sshd
rngd
tcpdump
postfix
4、查出用户UID最大值的用户名、UID及shell类型
[root@centos83localdomain test]#cat /etc/passwd | cut -d: -f1,3,7 | sort -t: -k2 -rn | head -1
5、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序
[root@centos83localdomain test]#ss -nt | grep "^ESTAB" | tr -s ' ' : | cut -d: -f6 | sort | uniq -c | sort -nr3 10.0.0.1541 10.0.0.1551 10.0.0.1511 10.0.0.1
6、编写脚本disk.sh,显示当前硬盘分区中空间利用率最大的值
[root@centos83localdomain test]#vim dish.sh
[root@centos83localdomain test]#bash disk.sh
21# 脚本内容:
[root@centos83localdomain test]#cat disk.sh
#!/bin/bash
#
#**********************************
#Author: laozhang
#Date: 2022-04-10
#FileName: dish.sh
#Description: The test script
#**********************************
disk=`df | grep "^/dev/sd" |tr -s " " %|cut -d% -f5|sort -n|tail -1
`
echo $disk# 验证结果
[root@centos83localdomain test]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 947M 0 947M 0% /dev
tmpfs 976M 0 976M 0% /dev/shm
tmpfs 976M 9.4M 966M 1% /run
tmpfs 976M 0 976M 0% /sys/fs/cgroup
/dev/sda2 100G 6.0G 94G 6% /
/dev/sda1 976M 183M 727M 21% /boot
/dev/sda5 50G 390M 50G 1% /data
tmpfs 196M 1.2M 194M 1% /run/user/42
tmpfs 196M 0 196M 0% /run/user/0
7、编写脚本 systeminfo.sh,显示当前主机系统信息,包括:主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小
root@centos83localdomain test]#vim systeminfo.sh
[root@centos83localdomain test]#bash systeminfo.sh
-----------------Host system info----------------
HOSTNAME: centos83localdomain
IPADDR: 10.0.0.150
OSVERSION: CentOS Linux release 8.3.2011
KERNEL: 4.18.0-240.el8.x86_64
CPU: Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz
MEMORY: 1.9Gi
DISK: 200G# 脚本内容:
[root@centos83localdomain test]#cat systeminfo.sh
#!/bin/bash
#
#**********************************
#Author: laozhang
#Date: 2022-04-10
#FileName: systeminfo.sh
#Description: The test script
#**********************************
COLOR="\033[1;31m"
END="\033[0m"
echo -e "\033[1;32m-----------------Host system info----------------\033[1;0m"
echo -e "HOSTNAME: $COLOR`hostname`$END"
echo -e "IPADDR: $COLOR`ifconfig | egrep -o '([0-9]{1,3}.){3}[0-9]{1,3}'|head -1`$END"
echo -e "OSVERSION: $COLOR`cat /etc/redhat-release`$END"
echo -e "KERNEL: $COLOR`uname -r`$END"
echo -e "CPU: $COLOR`lscpu|grep 'Model name'|tr -s ' '|cut -d: -f2`$END"
echo -e "MEMORY: $COLOR`free -h|grep Mem|tr -s ' '|cut -d" " -f2`$END"
echo -e "DISK: $COLOR`lsblk|grep ^sd|tr -s ' ' |cut -d' ' -f4|head -1`$END"
8、20分钟内通关vimtutor(可参考https://yyqing.me/post/2017/2017-02-22-vimtutor-chinese-summary)li
学习笔记如下:
8 文本编辑vim
8.1 vi和vim
Linux中经常编辑的文本文件是由ASCII、Unicode或其他编码的纯文字文件
文本编辑种类:
- 行编辑器: sed
- 全屏编辑器:nano(字符工具),gedit(简单图形化工具), vi、vim
vi:Visual editor,文本编辑器
vim :Vi Improved
其他相关编辑器:gvim 一个vim编辑器的图形版本
vim小抄
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-90n5hXO4-1649580509650)(https://s2.loli.net/2022/04/04/HV4Zb3nxsRJTOB1.png)]
8.2 使用vim
8.2.1 vim格式
vim [OPTION]... FILE...
- +# 打开文件后,让光标处于第#行的行首,+默认行尾
- +/PATTERN 打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
- –b file 二进制方式打开文件
- –d file1 file2… 比较多个文件
- -m file 只读打开文件
- -e file 直接进入ex模式,相当于执行ex file
- -y file Easy mode (like “evim”, modeless),直接可以操作文件,ctrl+o:wq|q! 保存和不保存退出
说明:
- 如果该文件存在,文件被打开并显示内容
- 如果文件不存在,当编辑后第一次存盘时创建他
8.2.2 三种主要模式和转换
三种模式:
- 命令(Normal)模式:默认模式,移动光标,剪切/粘贴文本
- 插入(Insert)或编辑模式:修改文本
- 扩展命令(extended command )模式:保存,退出等
模式转换:
- 命令模式 --> 插入模式
- i insert, 在光标所在处输入
- I 在当前光标所在行的行首输入
- a append, 在光标所在处后面输入
- A 在当前光标所在行的行尾输入
- o 在当前光标所在行的下方打开一个新行
- O 在当前光标所在行的上方打开一个新行
- 插入模式 ----ESC----> 命令模式
- 命令模式 ----- : —> 扩展命令模式
- 扩展命令模式 ----ESC,enter----> 命令模式
范例:插入颜色字符
1 切换插入模式
2 按ctrl+v+[ 三个键,显示^[
3 后续输入颜色信息,如:^[[32mhello^[[0m
4 切换至扩展命令模式,保存退出
5 cat 文件可以看到下面显示
8.3 扩展命令模式
8.3.1 扩展命令模式的基本命令
按“:”进入Ex模式
创建一个命令提示符: 处于底部的屏幕左侧
常用命令:
w 写(存)磁盘文件
wq 写入并退出
x 写入并退出
X 为文件简单加密
q 退出
q! 不存盘退出,即使更改都将丢失
r filename 读文件内容到当前文件中
w filename 将当前文件内容写入另一个文件
!command 执行命令
r!command 读入命令的输出
8.3.2 地址定界
格式:
:start_pos,end_pos CMD
地址定界格式
# #具体第#行,例如2表示第2行
#,# #从左侧#表示起始行,到右侧#表示结尾行
#,+# #从左侧#表示的起始行,加上右侧#表示的行数,范例:2,+3 表示2到5行
. #当前行
$ #最后一行
.,$-1 #当前行到倒数第二行
% #全文, 相当于1,$/pattern/ #从当前行向下查找,直到匹配pattern的第一行,即:正则表达式
/pat1/,/pat2/ #从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束
#,/pat/ #从指定行开始,一直找到第一个匹配pattern的行结束
/pat/,$ #向下找到第一个匹配patttern的行到整个文件的结尾的所有行
地址定界后跟一个编辑命令
d #删除
y #复制
w file #将范围内的行另存至指定文件中
r file #在指定位置插入指定文件中的所有内容
8.3.3 查找并替换
格式
s/要查找的内容/替换为的内容/修饰符
说明:
- 要查找的内容:可使用基本正则表达式模式
- 替换为的内容:不能使用模式,但可以使用\1, \2, …等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容
修饰符:
- i #忽略大小写
- g #全局替换,默认情况下,每一行只替换第一次出现
- gc #全局替换,每次替换前询问
查找替换中的分隔符/可替换为其它字符,如:#,@
范例:
s@/etc@/var@g
s#/boot#/#i
8.3.4 定制vim的工作特性
扩展命令模式的配置只是对当前vim进程有效,可将配置存放在文件中持久保存
配置文件:
- /etc/vimrc #全局
- ~/.vimrc #个人
行号
- 显示:set number,简写 set nu
- 取消显示:set nonumber, 简写 set nonu
忽略字符的大小写
- 启用:set ignorecase,简写 set ic
- 不忽略:set noic
自动缩进
- 启用:set autoindent,简写 set ai
- 禁用:set noai
复制保留格式
- 启用:set paste
- 禁用:set nopaste
显示Tab ^I和换行符 和$显示
- 启用:set list
- 禁用:set nolist
高亮搜索
- 启用:set hlsearch
- 禁用:set nohlsearch 简写:nohl
语法高亮
- 启用:syntax on
- 禁用:syntax off
文件格式
- 启用windows格式:set fileformat=dos
- 启用unix格式:set fileformat=unix
- 简写 set ff=dos|unix
tab用空格代替
- 启用:set expandtab 默认为8个空格代替Tab
- 禁用:set noexpandtab
- 简写:set et
Tab用指定空格的个数代替
- 启用:set tabstop=# 指定#个空格代替Tab
- 简写:set ts=4
设置缩进宽度
- #向右缩进 命令模式>>
- #向左缩进 命令模式<<
- #设置缩进为4个字符
- set shiftwidth=4
设置文本宽度
- set textwidth=65 (vim only) #从左向右计数
- set wrapmargin=15 #从右到左计数
设置光标所在行的标识线
- 启用:set cursorline,简写 set cul
- 禁用:set nocursorline
加密
- 启用: set key=password
- 禁用: set key=
了解更多
- :help option-list
- :set or :set all
8.4 命令模式
命令你模式功能强大,但按键时不在屏幕显示
8.4.1 退出vim
扩展命令模式:
- :q 退出 - :q! 强制退出,丢弃做出的修改 - :wq 保存退出 - :x 保存退出
命令模式:
- ZZ 保存退出 - ZQ 不保存退出
8.4.2 光标跳转
字符间跳转:
h: 左
l: 右
j: 下
k: 上
#COMMAND:跳转由#指定的个数的字符
单词间跳转:
w:下一个单词的词首
e:当前或下一单词的词尾
b:当前或前一个单词的词首
#COMMAND:由#指定一次跳转的单词数
当前页跳转:
H:页首
M:页中间行
L:页底
zt:将光标所在当前行移到屏幕顶端
zz:将光标所在当前行移到屏幕中间
zb:将光标所在当前行移到屏幕底端
行首行尾跳转:
^: 跳转至行首的第一个非空白字符
0: 跳转至行首
$: 跳转至行尾
行间移动:
#G、 扩展命令模式下 :# 跳转至由#指定行
G:最后一行
1G, gg: 第一行
句间移动:
):下一句
(:上一句
段落间移动:
}:下一段
{:上一段
命令模式翻屏操作:
Ctrl+f 向文件尾部翻一屏,相当于Pagedown
Ctrl+b 向文件首部翻一屏,相当于Pageup
Ctrl+d 向文件尾部翻半屏
Ctrl+u 向文件首部翻半屏
8.4.3 字符编辑
字符编辑:
x: 剪切光标处的字符
#x: 剪切光标处起始的#个字符
xp: 交换光标所在处的字符及其后面字符的位置
~:转换大小写
J:删除当前行后的换行符
8.4.4 替换replace
替换命令(r, replace)
r: 替换光标所在处的字符
R:切换成REPLACE模式,esc回到命令模式
8.4.5 删除delete
删除命令:
d: 删除命令,可结合光标跳转字符,实现范围删除
d$: 删除到行尾
d^: 删除到非空行首
d0: 删除到行首
dw:
de:
db:
#COMMANDdd: 删除光标所在的行
#dd:多行删除
D:从当前光标位置一直删除到行尾,等同于d$
8.4.6 复制yank
y: 复制,行为相似于d命令
y$
y0
y^
ye
yw
yb
#COMMANDyy:复制行
#yy: 复制多行
Y: 复制整行
8.4.7 粘贴paste
p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴
至当前光标所在处的后面
P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴
至当前光标所在处的前面
8.4.8 改变change
c: 修改后切换成插入模式
c$
c^
c0
cb
ce
cw
#COMMAND
cc:删除当前行并输入新内容,相当于S
#cc
C:删除当前光标到行尾,并切换成插入模式
命令模式操作文本总结:
8.4.9 查找
/PATTERN:从当前光标所在处向文件尾部查找
?PATTERN:从当前光标所在处向文件首部查找
n:与命令同方向
N:与命令反方向
8.4.10 撤销更改
u撤销最近的更改
#u撤销之前多次更改
U 撤消光标落在这行后所有此行的更改
按Ctrl - r重做最后的“撤消”更改
. 重复前一个操作
n.重复前一个操作n次
8.4.11 高级用法
<start position><command><end position>
- Command:
- y 复制
- d 删除
- gU 变大写
- gu 变小写
范例:0y$命令
0 → 先到行头
y → 从这里开始拷贝
$ → 拷贝到本行最后一个字符
范例:粘贴“wang”100次
100iwang [ESC]
di" 光标在”“之间,则删除”“之间的内容
yi( 光标在()之间,则复制()之间的内容
vi[ 光标在[]之间,则选中[]之间的内容
dtx 删除字符直到遇见光标之后的第一个 x 字符
ytx 复制字符直到遇见光标之后的第一个 x 字符
8.5 可视化模式
允许选择的文本块
v 面向字符
V 面向行
ctrl-v 面向块
可视化键可用于与移动键结合使用:
- -w ) } 箭头等
突出显示的文字可被删除,复制,变更,过滤,搜索,替换等
范例:在文件行首插入#
光标在文件起始位置
输入ctrl + v 进入可视化模式
输入 G 跳到最后一行,选中第一列
输入 I 切换至插入模式
输入 #
按 ESC 键
8.6 多文件模式
vim FILE1 FILE2 FILE3 ...
- :next 下一个
- :prev 前一个
- :first 第一个
- :last 最后一个
- :wall 保存所有
- :qall 退出所有
- :wqall保存所有退出
8.7 多窗口模式
8.7.1 多文件分割
vim -o|-O FILE1 FILE2 ...
- -o: 水平分割
- -O: 垂直分割
- 在窗口间切换: Ctrl+w, 方向上|下
8.7.2 单文件窗口分割
Ctrl+w,s: split, 水平分割
Ctrl+w,v: vertical, 垂直分割
ctrl+w,q:取消相邻窗口
ctrl+w,o:取消全部窗口
:wqall 退出
8.8 vim的寄存器
有26个命名寄存器和1个无命名寄存器,常存放不同的剪贴版内容,可以不同会话间共享
寄存器名称a,b,…,z,格式:“寄存器 放在数字和命令之间
如:
3"tyy 表示复制3行到t寄存器中 "tp 表示将t寄存器内容粘贴
未指定,将使用无命名寄存器
有10个数字寄存器,用0,1,…,9表示,0存放最近复制内容,1存放最近删除内容
当新的文本变更和删除时,1转存到2,2转存到3,以此类推
数字寄存器不能在不同会话间共享
8.9 标记和宏
ma 将当前位置标记为a,26个字母均可做标记, mb 、 mc 等等;
'a 跳转到a标记的位置; 实用的文档内标记方法,文档中跳跃编辑时很有用
qa 录制宏 a,a为宏的名称
q 停止录制宏,
@a 执行宏 a
@@ 重新执行上次执行的宏
8.10 编辑二进制文件
以二进制方式打开文件
vim –b binaryfile
扩展命令模式下,利用xxd命令转换为可读的十六进制
- :%!xxd
编辑二进制文件
扩展命令模式下,利用xxd命令转换回二进制
- :%!xxd –r
保存退出
马哥教育SRE笔记【作业】week02相关推荐
- 马哥教育SRE笔记【作业】week05
week05 1.简述DNS服务器原理,并搭建主-辅服务器 (1)DNS原理 客户机向本地DNS服务器发起DNS查询(递归查询),请求某域名的IP地址 本地DNS服务器向其他DNS服务器发起迭代查询 ...
- python训练营免费领取-马哥教育官网-专业Linux培训班,Python培训机构
[课程第一天] [课程第二天] [课程第三天] [课程第四天] [课程第五天] [课程第六天] [课程第七天] 三.学习的具体平台和方式 1.学习的平台 以录播视频和文字版本为主,QQ社群资深工程师答 ...
- 马哥教育linux面授班37期第一周博客
马哥教育linux面授班37期第一周博客 2019年5月5号晚,我怀着忐忑和激动的心情坐上了开往了北京的列车,我忐忑自己此行的目的地,马哥教育Linux第37期北京面授班,是因为我接下来五个月的时 ...
- linux本地agent执行脚本_github 4.4K星|马哥教育企业教练团队研发一款轻量级、无Agent自动化运维平台...
马哥教育企业教练团队研发了一款自动化运维平台系统-Spug,上线后广受中小运维爱好者喜爱,目前github4.4k星,已经成为自动化热门项目.2020年了,运维不会搞运维自动化,都不好意思说自己做运维 ...
- 《马哥教育协办GIAC、GOPS顶级技术峰会完美落幕》
GIAC.GOPS大会完美落幕 除了你.我.他,还有马哥教育陪你走过 马哥教育协办过多次全球大会,此次GIAC.GOPS全球互联网大会完美落幕,作为协办方我们也是很荣幸!马哥教育的创始人马哥带着马帮学 ...
- 写在马哥教育第八期开始之前
"你不能剥夺别人思考的权力"!记得读研期间一位导师在谈到"传道.授业.解惑"时特地强调.当时身为学生,并未能完全.真切地理解这位导师表述的真正意图.而当自己独立 ...
- python入门到精通需要学多久-从Python入门到精通,你只需要在马哥教育待四个月...
如果你想选择一种语言来入门编程,那么Python绝对是首选! Python非常接近自然语言,精简了很多不必要的分号和括号,非常容易阅读理解.编程简单直接,更适合初学编程者,让其专注于编程逻辑,而不是困 ...
- 济南python工资一般多少钱-马哥教育官网-专业Linux培训班,Python培训机构
主角:李学员岗位:K1实施工程师地区:济南 薪资:8.5K [注:马哥教育学员喜讯旨在通过一小部分学员自主的.真实的分享,将学习方法,学习经验,学习成果分享给正在或即将进入马哥教育学习课程的小伙伴们! ...
- python类型转换-马哥教育官网-专业Linux培训班,Python培训机构
今天马哥教育要跟大家分享的文章是类型转换是什么?我们要跟大家探讨的是Python课程中类型转换的相关内容,比如将小数转化为小数如何表达?整数转化为字符如何表达? Python的几种最基本的数据类型,我 ...
- 自动化专业学python有用吗-马哥教育官网-专业Linux培训班,Python培训机构
今天小编要来说一下Python自动化的学习思路, 对于刚刚进入的测试行业的人来说,未来该怎么样朝着自动化方向发展,即使接触到了自动化测试,又该从何下手去学呢? 简单的说, 做测试做的好,会了接口,会了 ...
最新文章
- img 服务器上的图片不显示图片,img显示服务器图片不显示
- AI基础:矩阵求导,你一定要收藏
- lvs dr模式安装
- mysql多表内连接查询
- 实时数据产品实践——美团大交通战场沙盘
- 用Java编写的密码翻译问题
- ZF环境要求及如何配置
- Activiti Workflow HelloWorld 示例与测试环境搭建
- 深度学习 --- 优化入门五(Batch Normalization(批量归一化)二)
- python获取cpu信息_使用python获取CPU和内存信息的思路与实现(linux系统)
- Python搭建简易HTTP服务(3.x版本和2.x版本的)
- java 抓取搜狗微信_大虾们,求帮助……用httpclient 进行获取微信搜狗公众号文章问题...
- Unity-URP-基于模板的延迟渲染
- OneNote2016安装代码高亮插件
- 定时器concurrent属性简单介绍
- 爬虫实战—拿下最全租房数据 | 附源码
- 指令集 x 数澜科技丨加速政企数字化转型,打造DT领域独角兽企业联盟
- 【学了.Net能做什么开发】
- STM32--STM32F051 IAP的实现
- css专栏 01.css简介 02.css注释及语法结构
热门文章
- USF MSDS501 计算数据科学中文讲义 2.7 如何阅读代码
- 服务器被攻击的常见手段以及解决方法
- android 上传图片视频教程,秒拍怎么上传长视频 秒拍APP拍长视频并上传图文教程...
- 自然语言处理-聊天机器人
- unity 安卓端输出日志神器--Reporter插件
- vss备份,使用批处理,每次只能备份当前打开的项目,怎么才能备份所有的项目呢...
- 大一总结与突然的感悟
- SEO基础知识简介(一)
- win2012服务器 注册表,第十一章 Windows Server 2012 R2 注册表域注册表编辑器 ---学习笔记...
- php站长统计,如何巧妙去除隐藏“站长统计”文字链接?