Linux
用户管理
查看用户
who am i
#或者
who mom likes
创建用户
sudo adduser lilei
用户组
groups shiyanlou
cat /etc/group | grep -E "shiyanlou" #结果:group_name:password:GID:user_list
将其它用户加入 sudo 用户组
#1.
su -l lilei
sudo ls
#2.
sudo usermod -G sudo lilei
删除用户和用户组
#--remove-home 参数在删除用户时候会一并将该用户的工作目录一并删除
sudo deluser lilei --remove-home
用户及文件权限管理
查看文件权限
一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件
#显示隐藏文件
ls -al
#查看某一个目录的完整属性,而不是显示目录里面的文件属性
ls -dl <目录名>
#显示所有文件大小,并以普通人类能看懂的方式呈现
#小 s 为显示文件大小,大 S 为按文件大小排序
ls -asSh
变更文件所有者
sudo chown shiyanlou iphone11
修改文件权限
g、o 还有 u 分别表示 group(用户组)、others(其他用户) 和 user(用户),+ 和 - 分别表示增加和去掉相应的权限
chmod 600 iphone11
chmod go-rw iphone11
目录结构及文件基本操作
目录路径
.
表示当前目录,..
表示上一级目录,-
表示上一次所在目录,~
通常表示当前用户的 home 目录.
开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,你可以使用ls -a
命令查看隐藏文件
文件的基本操作
-
新建
touch
mkdir
-
使用 -p 参数,同时创建父目录(如果不存在该父目录)
mkdir -p father/son/grandson
-
复制
-
#cp复制无法创建目录(此语句) cp test father/son/grandson
-
mkdir family cp -r father family #要成功复制目录需要加上 -r 或者 -R 参数,表示递归复制
-
-
删除
rm,-r递归,-f强制
-
移动文件与文件重命名
mv 源目录文件 目的目录
mv 旧的文件名 新的文件名
-
查看文件
-
cat
为正序显示,tac
为倒序显示- -n显示行号
-
nl
命令,添加行号并打印,这是个比 cat -n 更专业的行号打印命令-
-b : 指定添加行号的方式,主要有两种: -b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式) -b t:只列出非空行的编号并列出(默认为这种方式) -n : 设置行号的样式,主要有三种: -n ln:在行号字段最左端显示 -n rn:在行号字段最右边显示,且不加 0 -n rz:在行号字段最右边显示,且加 0 -w : 行号字段占用的位数(默认为 6 位)
-
-
使用
more
和less
命令分页查看文件 -
使用
head
和tail
命令查看文件- 默认查看头部/尾部 10行
- 加上 -n 参数,后面紧跟行数,查看对应的行数
-
-
查看文件类型
file
-
在 Linux 中文件的类型不是根据文件后缀来判断的。当你在文件里输入内容后才会显示文件类型
-
编辑文件
vim
gedit
环境变量与文件查找
环境变量
-
添加自定义路径到“ PATH ”环境变量
PATH=$PATH:/home/shiyanlou/mybin
-
我们可以简单地使用下面命令直接添加内容到 .zshrc 中
echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc source .zshrc
-
删除和修改已有的环境变量
-
变量设置方式 说明 ${变量名#匹配字串}
从头向后开始匹配,删除符合匹配字串的最短数据 ${变量名##匹配字串}
从头向后开始匹配,删除符合匹配字串的最长数据 ${变量名%匹配字串}
从尾向前开始匹配,删除符合匹配字串的最短数据 ${变量名%%匹配字串}
从尾向前开始匹配,删除符合匹配字串的最长数据 ${变量名/旧的字串/新的字串}
将符合旧字串的第一个字串替换为新的字串 ${变量名//旧的字串/新的字串}
将符合旧字串的全部字串替换为新的字串 -
使用
unset
命令删除一个环境变量
-
搜索文件
-
whereis
只能搜索二进制文件(-b),man 帮助文件(-m)和源代码文件(-s)whereis find
-
locate
快而全-
locate 命令查找文件也不会遍历硬盘,它通过查询
/var/lib/mlocate/mlocate.db
数据库来检索信息sudo apt-get update sudo apt-get install locate sudo updatedb
-
-
which
小而精- 通常使用 which 来确定是否安装了某个指定的程序,因为它只从 PATH 环境变量指定的路径中去搜索命令并且返回第一个搜索到的结果。也就是说,我们可以看到某个系统命令是否存在以及执行的到底是哪一个地方的命令
-
find
精而细-
find [path] [option] [action]
-
#列出用户家目录下比 /etc 目录新的文件 find ~ -newer /etc
-
文件打包与解压缩
概念
- *.tar——tar 程序打包,未压缩的文件
zip 压缩打包程序
-
#-r 参数表示递归打包包含子目录的全部内容 #-q 参数表示为安静模式,即不向屏幕输出信息 #-o 表示输出文件,需在其后紧跟打包输出文件名 #-e 参数表示加密 #-l 参数将 LF 转换为 CR+LF 以此来兼容windows