文件及权限
与用户相关的文件
linux下一切皆文件:一切设备抽象的进程,运行数据甚至CPU等都可以在文件系统中找到相关的文件
/etc/passwd
/etc/group
ect:全局配置文件夹
其他命令:usermod 、userdel 、id
目录创建:mkdir 文件名目录
空白文件创建:touch 文件名
浏览文件
文件系统:树形结构
切换目录:使用cd,如果有GUI也可使用
查看目录内容:可以使用ls命令查看目录下的文件
盘符:Linux只有一棵树,一个根目录
隐藏文件
隐藏文件都是以“.”开头的
显示隐藏文件:ls -a
查看文件:ls -la
七种基本文件
-:regular file 普通文件
(文本(ascll编码的),二进制,数据)
查看文件登录信息:ls -l 文件名
查看文件属性:file 文件名
数据文件读取:last -f 文件名
d:directory 目录
l:link 链接
b:block 块设备 存储数据以供系统存取的接口设备,就是硬盘
c:character 字符设备 串口设备,键盘,鼠标等
s: socket 套接字
p: pipe 管道
普通文件类型
纯文本文件 使用ASCII编码
二进制文件 系统中的可执行文件,不包括脚本文件
数据格式文件 例如:/var/log/wtmp
文件权限
命令 :ls -al 可查看权限/ls -lh、ls -lha 可查看权限却其中添加了单位
1、每个文件都有一个拥有用户User与拥有组Group
2、文件User可以不在Group中
3、除User和Group外,其余用户都是Others
4、对于不同的身份,对文件有各自不同的权限操作
5、权限有r、w、x三种权限分别表示可读、可写、可执行
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q2nOaZ0v-1678184928883)(C:\Users\86166\AppData\Roaming\Typora\typora-user-images\image-20210616212400670.png)]
有关命令:
chmod
#更改文件权限
chmod a+x file #给file文件的ugo都赋予执行的权限
chmod o-x file #将file文件o减去执行权限
chmod 755 file #设置file文件的权限为rwxr-xr-x
chmod u=rwx,go=rx file #设置file文件的权限为rwxr-xr-x
chown
#更改文件所属用户
chown mengdi:zys_ergou file #修改file的所属用户memgdi,所属组为zys_ergou
chown -R memgdi:zys_ergou directory #修改目录directory及目录下的所有文件的所属用户是mengdi,所属组为zys_ergou
chown mengdi file #修改file的所属用户为mengdi
chgrp
#更改文件所属组
chgrp root file #修改file所属的组为root
初始用户
root和普通用户
root:超级管理员。root拥有系统的完全控制权,所以在使用Linux系统时,需要慎重使用root用户,更多的自由与权限同样也意味着更大的风险。
普通用户:普通用户拥有的权限就没有root用户那么大了,它只能做系统允许做的事。普通用户可以执行大部分的命令,但是root专有的命令却不能执行。
sudo:切换为超级管理员模式,拥有超级管理员权限
切换用户:su - username
修改密码:passwd命令修改
退出用户:exit或logout退出用户,ctrl+d
新建用户:useradd
家目录:用户也拥有自己的家目录
组:用户也有组的概念(id)
zsh环境
安装
sudo apt update
sudo apt install zsh
默认修改解释器修改
chsh -s /bin/zsh
配置文件
~/.zshrc /etc/zshrc
~/.zlogin /etc/zlogin
~/.zlogout /etc/zlogout
~/.zprofile /etc/zprofile
远程连接云主机:
Unix/Linux:使用ssh进行远程Linux
连接命令 :ssh 本地名字 + @ + IP地址
命令别名:alias x = “ssh IP地址”
隐藏文件:. zsh rc
免密登录
免密登录原理:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qMauvyP7-1678184928884)(C:\Users\86166\AppData\Roaming\Typora\typora-user-images\image-20210614215644389.png)]
手动:拷贝公钥到认证文件
自动:ssh-copy-id(公钥发送到authorized_keys)
自动有关流程命令:
ssh-keygen//生成密钥
ssh-copy-id + 用户名@主机名//公钥复制到远程云主机
//
scp 文件名 用户名@主机名:目的位置 //从本地拷贝到远程
scp 用户名@主机名:文件名 目的位置//从远程位置拷贝文件到本地
修改密码命令:passwd
命令行操作
更新
source 目录
移动一个字符
向后 ctrl+b
向前 ctrl+f
移动光标
移动至行首 ctrl+a
移动至行尾 ctrl+e
删除操作
向后删除光标所在字符 ctrl+d
删除至行尾巴 ctrl+k
向前删除一个单词 ctrl+w
清空整行 ctrl+u
查找
ctrl+s 向前查找
ctrl+r 向后查找
跳转目录
显示历史查找目录 ,按 d ,然后根标号按数字可跳转到需要的历史目录
别名
打印别名:alias
使某种类型文件名规定操作:alias -s 文件类型(后缀)= 命令
如alias -s c=vim,下次在终端直接输入a.c即可打开a.c
通配符(重点)
?:代表单个字符
*:代表几个任意字符
[charlist]:匹配charlist中任意单一字符
[^charlist]:匹配除charlist中的任意单一字符
[c1-c2]:匹配字母或数字c1到c2之间任意单一字符
(string1|string2|string3):匹配其中一个字符
< num1-num2 > :匹配任何在num1到num2之间的数字。缺省num1表示从0开始,缺省num2表示到无穷尽
任务管理(重点)
&:加在整条命令后面表示后台执行
;:加在命令中间表示顺序执行
&&:连续两个命令表示“与”
||:连续两个命令表示“或”
`` :命令中如果包含另一个命令,用 ’ '包括的命令将优先执行
ctrl+z:命令挂起
bg:将挂起的命令后台执行
fg:将挂起的命令或后台执行的命令,变为前台运行
jobs:查看后台执行的和挂起的任务及任务编号
重定向(重点)
“>”:重定向符号,从命令到文件的重定向
“>>”:追加符号,从命令到文件的追加
“<”:重定向符号,从文件到命令的重定向
“<<”:表示命令要的输入不是从文件中来着,而是从后面的代码段中来,当输入<<后面的字符串结束代码段中输入,如./a.out<< haha > a.txt,到输入haha结束
管道
连续操作命令
创建管道:mkfifo 管道名
|:匿名管道,将上一个命令的标准输出作为下一个命令的标准输入
转义符
\:反斜杠,转义,去除其后紧跟的元字符或通配符的特殊意义
’ ‘:硬转义,硬引用,其内部所有的shell元字符,通配符都会被关掉。注意,硬转义中不允许出现 ’ ‘
” “:软转义,软引用,其内部只允许出现特定的shell元字符:$用于变量的替换,`用于命令替换,\用于转义单个字符
Linux系统信息的获取
uptime
打印系统运行时长和平均负载(平均负载:单位时间内,系统处于【可运行状态R】或【不可中断状态D】的平均进程个数。也就是进程平均活跃数)
grammer:uptime [options]
options:
-n:以漂亮的格式显示时间
-s:系统启动的时间
-V:输出版本信息
w
当前用户列表及正在执行的任务
grammer: w[options]
options:
-h :不打印头信息
-s :使用短输出格式
-f :切换显示FROM项,默认显示
who
显示当前登录系统的用户信息
grammer:who[options]…[FILE | ARG1 ARG2]
options:
-H:显示各栏的标题信息列
-u:显示空置时间
-q:只显示登入系统的用户名称和总人数
whoami
打印当前有效的用户名称
last
显示用户最近登录信息
lastlog:打印每个账号的最近登录时间
grammer:last[options] [< username >…] [< tty>…]
options:
-f< file>:指定记录文件
-n< num>:指定输出记录
-x:显示系统关机,重新关机等信息
uname
打印当前系统信息
grammer:uname [options]
options:
-a:全部信息
-s:内核名字
-n:网络主机的名称
-r:系统发行编号
-v:os版本与时间
-m:主机类型
-p:处理器类型
-i:硬件平台
-o:操作系统名称
date
显示或设置系统时间与日期
grammer:date [options]…[+FORMAT]
options:
-d”string”:显示字符串所指的日期
-s“string”:设置时间
-u:显示GMT(如果是CST的情况下)
< +FORMAT>:显示使用的日期格式
cal
显示日历
write
给其他用户发送信息
grammer:write user [tty]
如果不想接受信息:mesg n
wall
给其他登录用户广播信息
grammar:wall “message”