一. 用户管理
1.创建用户
sudo adduser lilei
使用命令 ll /etc 可以知道如下
/etc/sudoers.d 目录下有文件shiyanlou,说明shiyanlou是在sudo用户组内的,说明sudo有root的权限
/etc/sudoers 文件 不要乱动
/etc/group 文件 有用户组的信息
2.查看用户属于哪个用户组
groups shiyanlou
显示 shiyanlou : shiyanlou
刚创建的用户,默认所属的用户组名和用户名一样
3.查看用户组信息
cat /etc/group | sort
按照字典排序
cat /etc/group | grep -E "shiyanlou"
按照用户组名查看
(
grep 命令用于查找文件里符合条件的字符串
grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来
)
每个用户组一条记录,格式如下
group_name:password:GID:user_list
比如查到shiyanlou
shiyanlou : x : 5000;
x表示密码不可见,当用户的GID等于用户组的GID,那么最后一个字段user_list就是空的,不会显示
4.切换用户
su - shiyanlou
5.改用户密码
sudo passwd shiyanlou
6.将其他用户加入到sudo组
sudo usermod -G sudo lilei
7.删除用户
sudo deluser lilei --remove-home
使用--remove-home参数在删除用户时会将该用户的工作目录一并删除
如果不使用,则会自动再/home目录下保留该用户的工作目录
删除用户组里所有的用户后,才可以删除该用户组
使用 sudo groupdel 用户组名
二、文件管理
文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作
1.Linux里面一切皆文件
-
文件类型
正因为这一点,才有设备文件(/dev目录下有各种设备文件,大都跟具体的硬件设备相关)
socket:网络套接字,具体后面讲
pipe:管道,这个东西很重要,后面讲
l:link 软链接文件:等同于Windows上的快捷方式,记住这点就够了
-
文件权限
读权限,表示你可以实用cat < file name> 之类的命令来读取某个文件的内容
写权限,表示你可以编辑和修改某个文件的内容;
执行权限,通常指可以运行的二进制程序文件或者脚本文件,如同 Windows 上的
exe
后缀的文件,不过 Linux 上不是通过文件后缀名来区分文件的类型
你需要注意的一点是,一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息。
所有者权限,这一点相信你应该明白了,至于所属用户组权限,是指你所在的用户组中的所有其它用户对于该文件的权限,比如,你有一个 iPad,那么这个用户组权限就决定了你的兄弟姐妹有没有权限使用它破坏它和占有它
2.变更文件所有者
sudo chown shiyanlou fileName
然后查看目录所有者
ll fileName
3.vi vim常用操作
vi vim
yy 复制当前光标所在行
5yy 复制当前光标所在行往下的5行
p 将复制内容粘贴到光标所在行的下面
dd 删除光标所在行
3dd 删除光标所在行往下的3行
wq 保存修改后退出
q 未修改直接退出
q! 不保存修改,强制退出
/关键字 查出关键字,n切换这些关键字
: set nu 显示文件的行号
: set nonu 取消显示的行号
gg 到达第一行
G 到达最后一行
普通模式下,数字+ shift+g 光标跳转到数字行处
shutdown -h now 立即关机 = halt
shutdown -r now 立即重启 = shutdown
logout 注销,断开XShell这边与远程Linux的连接
4.远程登录Linux和上传下载
如果希望安装好XShell6可以远程访问Linux服务器的话,前提是Linux启用了SSHD服务,该服务会监听22号端口
命令 setup
root密码登录--系统服务--sshd.service前面必须有*号
XShell实现远程访问Linux,Xftp实现上传下载
注意: 网络一定要连接上
5.Linux目录结构及文件基本操作
1.文件常用的基本操作,包括:新建、复制、删除、移动文件与文件重命名、查看文件、查看文件类型、以及编辑文件
创建空白文件
touch 文件名
新建目录 mkdir = make directories
mkdir 目录名
使用 -p 参数,同时创建父目录(如果不存在该父目录),这在安装软件,配置安装路径时非常有用
mkdir -p father/son/grandson
注意: 若当前目录存在一个test文件,再使用mkdir test 新建同名的目录,系统会报错文件已存在。这符合Linux一切皆文件的理念
若当前目录存在一个mydir的目录,则touch mydir命令,会更改该目录的时间戳,而不是新建文件
复制文件
使用 cp
命令(copy)复制一个文件到指定目录
将之前创建的 test
文件复制到 /home/shiyanlou/father/son/grandson
目录中
cp test father/son/grandson
复制目录
mkdir family
将之前的father目录复制到新建的family目录里
cp -r father family
删除文件
使用rm (remove files or directories)命令删除一个文件
rm test
有时候会遇到想要删除一些为只读权限的文件,直接使用rm删除会显示一个提示,你如果想忽略这个提示,直接删除文件,可以使用
-f 参数强制删除:
rm -f test
删除目录
跟复制目录一样,要删除一个目录,也需要加上 -r 参数
rm -r family
遇到权限不足删除不了的目录也可以和删除文件一样加上 -f 参数
rm -rf family
移动文件
使用mv(move or rename files)命令移动文件(剪切)。
命令格式是 mv 源目录文件 目的目录
例如将文件 file1 移到到 documents目录
mkdir documents
touch file1
mv file1 documents
重命名文件
命名格式为 mv 旧的文件名 新的文件名
例如将documents的 file1 重命名为 myfile
cd documents
ll
mv file1 myfile
ll
批量重命名
使用通配符创建5个文件
touch file{1..5}.txt
批量将这5个后缀为 .txt的文本文件 重命名为 以 .c为后缀的文件
rename 's/ .txt / .c/' *.txt
批量将这5个文件,文件名和后缀改为大写
rename ‘y/ a-z / A-Z /’ *.c
简单解释一下上面的命令,rename
是先使用第二个参数的通配符匹配所有后缀为 .txt
的文件,然后使用第一个参数提供的正则表达式将匹配的这些文件的 .txt
后缀替换为 .c
,这一点在我们后面学习了 sed
命令后,相信你会更好地理解
查看文件
使用cat tac nl 命令查看文件
前两个命令都是用来打印文件内容到标准输出(终端),其中cat 为正序显示, tac 为倒序显示
标准输入输出:当我们执行一个 shell 命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),默认对应终端的键盘、标准输出文件(stdout)和标准错误输出文件(stderr),后两个文件都对应被重定向到终端的屏幕,以便我们能直接看到输出内容。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中
比如拷贝/etc目录下的passwd文件到当前目录,并命名mypasswd
cp /etc/passwd mypasswd
cat mypasswd
可以加上 -n 参数显示行号