diff --git "a/\346\235\250\346\236\227\350\214\202/2024-6-15\347\224\250\346\210\267\346\235\203\351\231\220\347\256\241\347\220\206.md" "b/\346\235\250\346\236\227\350\214\202/2024-6-15\347\224\250\346\210\267\346\235\203\351\231\220\347\256\241\347\220\206.md" new file mode 100644 index 0000000000000000000000000000000000000000..c479d325a416cdb124573ca771dd63c17fb6dd24 --- /dev/null +++ "b/\346\235\250\346\236\227\350\214\202/2024-6-15\347\224\250\346\210\267\346\235\203\351\231\220\347\256\241\347\220\206.md" @@ -0,0 +1,191 @@ +## 6-15讲课内容 + +### 一、用户与文件权限的管理 + +``` +1.用户管理 + 1.分类 + -超级用户 root,最高权限,不受一般权限限制,编号是0,提示符是#; + -内置用户:由系统自动创建,编号1-999; + -普通用户:我们用root权限手动创建用户,受权限控制,编号从1000依次递增; + -创建普通用户test会自动创建他的编号u,他原生组g(和用户名同名test),附加组G(test), + 初始化一定是u 1000(test),1000(test),1000(test); + -普通用户不能创建用户,只有root; + -提示符是$; + - u user 用户 uid; + -group 组 gid; +2.用户 + 1.添加 + - useradd -m /home/xxx -s /bin/bash yyy; + -adduser; + 2.删除 + -userdel xxx + -userdel -r xxx 删除用户和相关目录; + 3.修改 + -usermod -G 组号|组名 xxx; 如:usermod -G student 目录 覆盖原来的附加组(扩展组); + - usermod -aG 组号|组名 XXX : usermod -aG stu u15 保留原有附加组前提下,追加新的附加组 + -usermod -s /bin/aaa(目录) 目录; + 4.密码 + -passwd 用户名 root修改指定用户的密码; + -passwd 修改当前登录用户的密码,就是自己的密码; + 5.查询 + -id 用户名 指定用户 + -/etc/passwd + 6.切换 + - su 仅仅切换了身份,不切换目录和shell等环境变量; + - su - 完全切换,连环境变量和目录一起切换; +1.用户组 + 1.添加 + -groupadd student 添加一个组,编号自动的; + -groupadd -g 999 student1 添加一个组,编号自动的; + 2.删除 + -groupdel 组号|名 + 3.修改 + -groupmod + 4.查询 + /etc/group +2.文件管理 + -文件属性:10个字符,连接数或子目录数,文件拥有者,文件所属的用户组,文件大小,修改时间,文件|目录名 + -10个字符: + -第一位 文件类型 + - d 目录 + - - 普通文件 + - l 连接文件 + - b c s p 等其他文件; + -后九位分别代表了:三种角色的权限,每3位一组 + - 2-4 拥有者权限 + - 5-7 用户组的权限 + -8-10 其他人的权限 + -基本权限 + - r 读,打开并显示文件内容,查看目录基本信息; + - w 写,文件可以写入,修改,删除内容,目录:创建,修改,删除; + - x 执行,文件如果是二进制或脚本文件就可以执行,目录表示可以进入; + -特殊权限 + - SUID + - GUID + -隐藏权限 + - lsatte 列出隐藏权限; + - chattr 修改隐藏权限 + - +i 增加,不得任意更改文件或目录的效果; + - -i 消除 + -权限表示 + -字符 + -数字 + - r==4 + - w==2 + - x==1 + -身份表示 + - u 拥有者(user) + - g 用户组(group) + - o 其他人(other) + - a 所有人(all) + -修改权限:root可以改任何文件,而拥有者可以改自己拥有的文件 + - chmod 要的权限 文件|目录 + - chmod u+w,g-r,o=rw 1.txt + - chmod 777 1.txt + -修改拥有者 + - chown 用户名 文件名 + -修改文件所属的用户组 + - chgrp 组名|组号 + - sudo + - 修改/etc/sudoers 文件 + - 将用户追加到sudo组:sudo usermod -aG sudo 目录 +3.Linux执行命令的过程 + 1.如果这个命令是绝对路径,就直接执行 + 2.如果不是,查一下是不是别名,是就执行对应的命令 + -从环境变量中查找这个命令$PATH中的路径依次查找这个命令 + -本地也没有的话就报错了 +``` + +### 二、作业 + +``` +什么是linux 硬连接和软连接(快捷方式)? +答:1.软连接,其实就是新建立的一个文件,这个文件就是专门用来指向别的文件(和Windowsi下的快捷方式的那个文件接近)。软连接产生的是一个新文件,删了这个软连接文件,那就等于不需要这个连接,和原来存在的实体原文件没有任何关系,但删了原来的文件,则相应的软连接不可用。 + 2.硬连接,实际上是为文件建一个别名,连接文件和原文件实际上是同一个文件。硬连接是不会建立inode的,他只是在文件原来的indoe link count域再增加1而已,因此硬连接是不可以跨越文件系统的。 +``` + +**### 权限管理练习** + +``` +1. 创建/guanli 目录,在/guanli下创建zonghe 和 jishu 两个目录(一条命令) +mkdir -p guanli/{zonghe,jishu} + +2. 添加组帐号zonghe、caiwu、jishu,GID号分别设置为2001、2002、2003; +sudo groupadd -g 2001 zonghe +sudo groupadd -g 2002 caiwu +sudo groupadd -g 2002 jishu + +3. 创建jerry、kylin、tsengia、obama用户,其中的kylin用户帐号在2020年12月30日后失效 +sudo useradd jerry obama + sudo chage -E 2020-12-30 kylin + +4. 将jerry、kylin、tsengia、obama等用户添加到zonghe组内 +ping@hecs-395650:~$ sudo usermod -aG zonghe jerry +ping@hecs-395650:~$ sudo usermod -aG zonghe kylin +ping@hecs-395650:~$ sudo usermod -aG zonghe tsengia +ping@hecs-395650:~$ sudo usermod -aG zonghe obama + +5. 创建handy、cucci用户,其中cucci帐号的登录Shell设置为“/sbin/nologin”; +sudo useradd handy +sudo useradd cucci -s /sbin/nologin + +6. 将handy、cucci等用户添加到jishu组内; +sudo usermod -aG jishu handy +sudo usermod -aG jishu cucci + +7. 将上述的所有用户均要求加入到guanli组内; +sudo groupadd guanli +sudo usermod -aG guanli handy +sudo usermod -aG guanli cucci + +8. 将zonghe组内的obama用户删除; +sudo gpasswd -d obama zonghe + +9. 为jerry用户设置密码为“123456”(使用普通方法)为cucci用户设置密码为“redhat”; +sudo passwd jerry +sudo passwd cucci + +10. 将jerry用户锁定,并查看锁定状态; +usermod -L jerry #锁定 +usermod -U jerry #解锁 + +11. 打开两个xshell窗口,通过(who 或者 w)命令查看连接状态,并通过fuser杀掉其中一个; +fuser -v /dev/pts/0 +kill -9 进程号 + +12. 查看cucci用户,属于那些组,并查看其详细信息; +groups cucci && id cucci +cat etc/passwd |grep 'cucc' + +13. 手工创建账号student(预留); +useradd student + +14. 设置权限及归属:/guanli目录属组设为guanli, /guanli/zonghe目录的属组设为zonghe /guanli/jishu目录的属组设为jishu,设置3个目录都是禁止其他用户访问的权限; +### 归组 +sudo chown :组名 源文件 +### 权限 +sudo chown 770 源文件 #设置3个目录都是禁止其他用户访问 + +15. 建立公共目录/ceshi允许技术组内的所有用户读取、写入、执行文件, 禁止其他用户读、写、执行; +sudo chown :jishu ceshi/ +sudo chown 770 ceshi/ + +16. 清除jerry用户密码; +sudo passwd -d jerry #清除密码 +sudo getent shadow jerry #查看是否清除密码 + +17. 锁定cucci用户密码并查看状态; +sudo passwd -l cucci +sudo passwd -S cucci + +18. 修改obama用户的UID为8888; +sudo usermod -u 8888 obama + +19. 通过passwd命令修改kylin用户的最长密码使用期限为60天 +sudo passwd --maxdays 60 kylin + +20. 通过id groups等命令查看用户handy信息 +id handy +groups handy +``` diff --git "a/\346\235\250\346\236\227\350\214\202/20240605-\350\257\276\345\240\202\350\212\235\345\243\253.md" "b/\346\235\250\346\236\227\350\214\202/20240605-\350\257\276\345\240\202\350\212\235\345\243\253.md" new file mode 100644 index 0000000000000000000000000000000000000000..cbec66a0ab1264c3a1a4462bdd0d3a37650bf2be --- /dev/null +++ "b/\346\235\250\346\236\227\350\214\202/20240605-\350\257\276\345\240\202\350\212\235\345\243\253.md" @@ -0,0 +1,141 @@ +## 6-5讲课内容 + +#### 一、vim编辑器常用命令 + +``` +Vim编辑器常用命令包括: +移动光标:j(向下)、k(向上)、h(向左)、l(向右) +复制:yy(复制一行)、yw(复制光标开始的一个单词) +剪切:x(向后剪切一个字符)、4x(剪切4个字符) +删除:dd(删除一行)、dw(删除一个单词) +粘贴:p(粘贴复制或剪切的内容) + +``` + + + +#### 二、作业 + +``` + +1. vi 编辑器有几种模式? + ``` + 答:分别是命令模式、插入模式和底行模式。 + ``` +2. 如何进入 vi 编辑器的插入模式 + ``` + 答:①按下"i"键,立即切换到插入模式,可以在光标前插入字符; + ②按下"a"键,将光标移到当前字符之后并进行插入模式。 + ③在命令模式下输入“o”或“O”键,可以在当前行的下方或上方插入新行并进入插入模式。 + ④在命令模式下输入“I”或“A”键,可以在当前行的行首或行尾插入字符并进入插入模式。 + ⑤在命令模式下输入"r" "R"键,可以替换当前字符并进行插入模式。 + ``` +3. 如何进入 vi 编辑器的可视化模式 + ``` + 答:在vim命令模式下,输入v或V或Ctrl+v。 + 字符选择模式:选中光标经过的所有字符,普通模式下按小写v进入 + 行选择模式:选中光标经过的所有行,普通模式下按大写V进入 + 块选择模式:选中光标经过的所有块,普通模式下按Ctrl+V进入 + ``` +4. 在 vi 编辑器中如何复制一行 + ``` + 答:在光标位置按“yy”,复制当前行;然后再光标的行按“p”,粘贴到下一行,原来的往下顺移。 + ``` +5. 在 vi 编辑器中如何进行粘贴 + ``` + 在vim中复制或剪切文本后,只需按“p”。可以按p键多次粘贴文本 + ``` +6. 如何删除从 3 行到 15 行的所有数据 + + ``` + 答:在vim编辑器中删除一行是“dd”; + 1、按Esc键进入正常模式。 + 2、输入:3,15d,然后按Enter键以删除行 + ``` + +7.vim练习: + +光标移动练习,命令模式下: + +单位级 h j k l +单词级 w e b +块级 gg G 0 ^ $ H M L ngg nj nk +把下列句子按照第一句的正确顺序修改好并把多余的空行删除 + +g/^$/d +this is a simple easy vim tutorial + +tutorial simple a easy this vim is +is this tutorial vim simple a easy + + +tutorial vim this is a easy simple +tutorial easy vim simple a this is +simple a vim easy tutorial is this + +tutorial is easy vim a simple this + + +vim simple this tutorial a easy is +a vim tutorial simple easy is this + + +easy a simple vim is tutorial this +vim tutorial is a easy simple this +a this vim tutorial is easy simple +this tutorial simple easy a is vim + + +easy tutorial this simple a is vim +a tutorial easy is this simple vim + +a tutorial vim is easy this simple +simple this easy is vim tutorial a + +this tutorial is a easy simple vim +vim is tutorial simple this easy a + +vim is simple this tutorial easy a +easy a simple is vim this tutorial +vim is tutorial simple a easy this +this vim is tutorial simple easy a +先敲出以下代码,然后修正以下代码中的错误单词、重复单词、错误格式、多余行,修改函数名为 typing 并为定时器添加 300 毫秒延迟 + +const bbb = () => { +// this is is a description +// +// another descriptttion +const timer = setTimeout(( ) => { + console.log(that) alert('cool!') + // awosome man ! +}) +} +尝试在下面的文本中进行复制粘贴练习 + +删除这一行 +dd +粘贴到这一行下面 +p +剪切 ABC 并把它粘贴到 XYZ 前面,使这部分内容看起来像 +剪切 并把它粘贴到 ABC XYZ 前面。 +daw +p +尝试修改下列文本的大小写 + +Change this line to UPPERCASE, THEN TO lowercase. +转换词为大写:将光标移动到要修改的单词上,按下 gU 键将单词变为大写。 +转换词为小写:将光标移动到要修改的单词上,按下 gu 键将单词变为小写。 +按下面的说明进行操作 + +按 dd 删除本行 +按 . 重复删除操作 +2. 再删除两行 +这行也没了 +p 把刚才删掉的粘回来 +3. 又多出 6 行 +左缩进、右缩进练习 + +在这一行上依次按 3>>,<< 和 >` +使用形式:定向符前直接用数字,如1>1.txt ,2>2.txt; + 定向符后紧跟定向符并加&号 如 >&1; +``` + +##### 2.输入重定向 '<' + +- 将文件的内容作为命令的输入:例如:sort < unsorted_list.txt + + + +##### 3.错误输出追加重定向 ’2>>‘ + +- ls non_existent_file 2>> error_log.txt + +##### 4.同时重定向标准输出和标准错误输出‘&>’ + +- 使用 `&>` 符号将标准输出和错误输出同时重定向到同一个文件。 + +- ls hhh &> output_and_error_log.txt # 正确和错误原版混搭,原封不动 + + + +##### 5.管道符号 '|' 将一个命令的输出作为另一个命令的输入 + +- ls /home | grep "bb" | grep "3" + +##### 6.将错误输出丢弃 :命令 2> /dev/null + +##### 7.tee命令:从标准输入中读取数据,并同时将数据输出到标准输出和一个或多个文件中。 + +- echo "Hello, world" | tee output.txt:同时写入多个文件 +- echo "New data" | tee -a file1.txt:追加写入文件 \ No newline at end of file