入门容易精通难,现在的小结还只是对文件进行操作。
这次小结将总结一下几个知识点:
1.基础操作
2.对文件的管理操作
3.对文件、用户的编辑
4.对文件、用户的权限管理
5.linux远程连接
本篇小结大部分是语句格式,如果需要代码实现的截图,以及部分额外知识点标注,可以下载安装xmind软件后,下载云盘里的思维导图进行查看。
链接:https://pan.baidu.com/s/1pFXHks7j77YgUrkR2vetNQ 密码:sgqp
xmind内容如下:
基础操作:
一.切换用户和退出:
su:超级用户登录进入当前目录
su - :登录进入超级用户家目录
su后跟用户表示登录该用户。
关机:使用root用户输入poweroff
exit:退出当前shell
二.获取帮助:man/help
man 命令:获得类似用户手册的反馈
命令 --help / -h:获取帮助
文件操作:
一.目录
1.pwd:查看当前工作目录
2.cd:切换工作目录
格式:cd [目录位置] 如果cd,cd ~均是回到当前用户的家目录
3.ls:列表(list)显示目录内容
格式:ls [选项]...[目录或文件名]
-l:以长格式显示,ll:就是ls -l
-a:显示所有子目录和文件的信息,包括隐藏文件
-d:显示目录本身的属性
4.mkdir:创建新的目录
格式:mkdir [-p] [路径] 目录名 -p用于创建多级目录
写成mkdir -p 1/2/3/4 则会目录分级创建下去
{}多个目录同时创建:mkdir {开始..结束}
也可以写上目录进行创建
二.文件
1.touch:创建空文件,或更新文件时间标记(时间戳)
格式:touch 文件名
2.vi/vim:文本编辑器
作用:创建或修改文本文件,维护linux系统中的各种配置文件
格式:vim 文件名
三.操作
1.cp:复制文件或目录
格式:cp [选项] 源文件或目录 目标地址
-r:递归复制整个目录树
用于复制文件夹时
cp可以对文件进行改名,在指令最后如果不是一个目录,则会将目标文件改名为最后的代码
2.rm:删除文件或目录
格式:rm [选项] 文件或目录
-r:递归删除整个目录树
在root下输入:rm -rf /* 有惊喜
删除系统
3.mv:移动文件或目录(如果目标位置与原位置相同,则相当于重命名)
格式:mv [选项] 源文件或目录 目标文件或目录
4.cat/less/more/head/tail:查看文本文件
cat:显示出文件的全部内容
格式:cat 目标文件
less/more:全屏方式分页显示文件内容
格式:less/more 目标文件
交互操作方法:
按enter键向下逐行滚动
按空格键向下翻一屏、按b键向上翻一屏
按q退出
head:查看文件从头开始前10行
格式:head 目标文件
查看前20行:head -n 20 目标文件
tail:查看文件从末尾开始后10行
查看后20行:tail -n 20 目标文件
5.grep:在文件中查找并显示包含指定字符串的行
格式:grep [选项] 查找条件 目标文件
常用命令选项
-i:查找时忽略大小写
-v:反转查找,输出与查找条件不相符的行
查找条件设置
要查找的字符串以双引号括起来
“^......”:以......开头
“......$”:以......结尾
“^$”:空行
6.命令替换:格式 $() 或 ``
举例:echo 'date' 或 echo $(date)会获得当前日期
touch test_`date`;
今天是八月五日,则创建的文件名为:test_2018-8-5
文件编辑:
一.重定向:
小概念:正常显示的内容为标准输出,错误提示的内容是标准错误
1.标准输出的重定向格式:
> file (覆盖重定向)
>> file (追加重定向)(新添数据到最后)
将正确输出的数据保存
2.标准错误的重定向格式:
2> file (覆盖重定向)
2>> file (追加重定向)
将错误输出的数据保存起来
3.标准错误和标准输出同时重定向:
&> file
&>> file
二.管道
| 管道:连接左右两个命令,将左侧的命令输出的结果传递给右侧,作为右侧命令的处理对象
格式:cmd1 | cmd2 [选项]
wc 统计:行数 字数(单词数) 字符数
-l:只查看行
free指令是查看内存
free -m | grep "Mem" | awk '{print $2,$4}' 多个指令一起
三.vi/vim:文本编辑器
作用:创建或修改文本文件,维护linux系统中的各种配置文件
vi:类Unix系统中默认的文本编辑器
vim:vi编辑器的增强版本,习惯上成为vi
末行模式:按v键
:set nu (显示行号)
:set nonu (取消行号显示)
ctrl + v (进入块选择模式)
y (复制)
dd (删除光标所在的一行)
x (删除一个字符)
p (粘贴)
/ 字符 (查找字符)
n/N (匹配寻找到的下/上一个字符)
:noh (取消高亮显示)
:wq等同于ZZ (保存并退出)
:q! (不保存退出)
:s /旧字符/新字符 (将找到的第一个字符替换为新字符)
:% s/旧字符/新字符 (将所有的旧字符替换为新字符)
插入模式:按i键
自由输入
用户、组管理
用户和组账号概述
用户账号:
超级用户root,用户id=0
普通用户
系统用户:id:0id<1000,维护某个服务或进程
组账号:
基本组(私有组)
附加组(共有组)
UID和GID:
UID:用户标识号
GID:组标识号
passwd(用户账号文件):用于保存用户账号的基本信息
文件位置:/etc/passwd
每一行对应一个用户的账号记录
字段1:用户账号的名称
字段2:用户密码字串或者密码占位符“x”
字段3:用户账号的UID号
字段4:所属基本组账号的GID号
字段5:用户全名
字段6:宿主目录
字段7:登录shell信息(bin/bash可以登录,sbin/nologin不可以登录)
1.useradd:添加用户账号
格式:useradd [选项] 用户名
-u:指定UID标记号
-d:指定宿主目录,缺省为/home/用户名
-e:指定账号失效时间
-g:修改用户所属的群组(属组)
-G:修改用户所属的附加群组
-s:指定用户的登录shell
指定多条信息,在每个选项后添上值即可
2.userdel删除用户账号:
格式:userdel [-r] 用户名
-r表示将用户的宿主目录一起删除
3.usermod(修改用户账号的属性):
格式:usermod [选项] 用户名
-u,-d,-e,-g,-G,-s用法与useradd相同
4.passwd:创建或者修改用户密码
格式:passwd [用户] 修改输入用户的密码
passwd 修改当前用户密码
普通用户
root用户(可以无需密码通过su登录其他用户)
另一种修改密码:echo 新密码 | passwd --stdin 用户名
此方法也就是通过管道
5.groupadd添加组账号:
格式:groupadd [-g GID] 组账号名
创建的组是空组
6.groupdel删除组:
格式:groupdel 组账号名
7.groupmod:修改组
格式:groupmod 组账号名
权限管理
1.访问权限
读取:允许查看文件内容、显示目录列表
写入:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行:允许运行程序、切换目录(cd)
归属: 属主:拥有该文件或目录的用户账号
属组:拥有该文件或目录的组账号
l开头的表示链接,d开头表示目录,-开头表示文本文件,.开头表示隐藏文件
2~4是属主的权限,5~7是属组的权限,8~10是其他人的权限
r:读 w:写 w:可执行
权限字符对应的数字:
r:4 w:2 x:1
读写可执行:4+2+1=7
读写:4+2=6
读可执行:4+1=5
写可执行:2+1=3
2.chmod设置文件/目录的权限
格式1:chmod [ugoa][+-=][rwx] 文件或目录
u,g,o,a分别表示属主、属组、其他用户、所有用户
+、-、=分别表示增加、去除、设置权限
[rwx]对应权限的字符
格式2:chmod nnn 文件或目录
nnn是三位八进制数,即与上面读写可执行的数字对应
-R:递归修改指定目录下的所有文件、子目录的权限
特殊权限:
set位权限:
为可执行(有x权限的)违建设置,权限字符为“s”
如同student修改自身密码,可以成功,但进行修改的是root进行修改,而不是student去操作
g+s(对属组):该目录下创建的新目录自动继承属组
student用户创建了一个student目录,通过g+s修改权限为rwxrwsrwx,意为其他组在该组下创建的属组继承student
u+s(对属主):以拥有这个文件的用户的身份去运行
o+t(对其他人):所有用户可以创建目录但是不能删除别人在此目录下创建的目录
suid:4 guid:2 t:1
这个文件的权限是4755
s处如果没有x,显示的会是S
如果:
6755:rwsr-gr-x
7755:rwsr-gr-t
1755:rwxr-gxr-t
4655:rwSr-xr-x
3.chown设置文件/目录的归属
格式1:chown 属主 文件或目录
格式2:chown .属组 文件或目录
格式3: chown 属主:属组 文件或目录
-R:递归修改指定目录下的所有文件、子目录的归属
chgrp:修改属组
chgrp 属组 文件名称
远程链接
systemctl 选项 服务名称
选项:start,restart,stop,enable(设置开机启动),disable(停止开机启动),status(查看服务当前状态)
1.远程连接:
1.在虚拟机设置中找到网络适配器,勾选桥接模式
2.systemctl restart network重启网络
只有重启一次,修改的东西才能生效,sshd也一样
3.ip a查看IP地址,ens33中的是IP地址
4.ssh 被连接者用户名@IP地址 并确认链接
5.输入密码
6.连接成功进行操作
7.退出登录:exit logout
2.通过秘钥无密码链接
ssh(系统中的secure shell软件的软件实施),用于在远程系统上安全运行的shell
ssh-keygen(生成秘钥):
ssh-copy-id root@IP地址(链接)
操作过程:
1.生成秘钥:ssh-keygen
前三个冒号后,可无需内容直接enter
2.将秘钥传递给秘钥接收者:ssh 被连接者用户名@IP地址
输入一次密码,此处的密码是秘钥接受者的密码
3.无密码成功登录
成功后,无需密码便可登陆秘钥接受者账户
秘钥是单向的,对面想无密码登录,也需要来一次秘钥传递
这一周学习状态不佳,而且总结也极其的偷懒,一顿复制粘贴自己也不知道有没有条理,下周的总结希望做的好点吧。如果小伙伴们有疑问或建议,欢迎留言。