用户|文件|基础命令|权限管理

Posted seeet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户|文件|基础命令|权限管理相关的知识,希望对你有一定的参考价值。

文件管理 基础命令 用户管理 文件权限

一、目录结构层次结构标准

1、目录结构

它的主要目的是希望让用户可以了解到每个目录的作用和将来安装软件存放的位置以及操作系统自身运行的目录。  
 /:文件结构最高处,也是整个文件系统结构的根目录  
 /bin:存放可执行的二进制程序,管理员和普通用户都可以使用   
 /sbin:用来存放用于管理员使用的存储二进制系统程序文件 大部分文件只有管理员才能执行。 
 /usr/bin:多数日常应用程序存放在这
 /usr/sbin:超级用户不需要的系统管理程序  
 /user/local/bin:目录是给用户放置自己的可执行程序的地方
 /usr/local/sbin:与本机自行安装的软件产生的系统执行文件  
 /boot:存放系统引导文件:内核、ramfs文件、bootloader(grub)  
 /dev:设备文件存放目录  
 /etc:配置文件的集中存放目录  
    /etc/sysconfig:系统级别的应用  
    /etc/init.d:系统服务脚本  
 /home :普通用户,默认在/home下有一个与其名称同名目录,作为用户的家目录  
 /root:管理员的家目录  
 /lib,/lib64:库文件  
 /media:专用挂载位置,通常用来挂载便携式设备  
 /mnt:专用挂载位置,挂载额外的存储设备  
 /misc:杂项,备用目录  
 /opt:可选目录,但通常用来安装第三方软件  
 /proc:所显示的文件都不是文件伪文件系统,运行中的内核参数的映射运行在内存当中  
 /sys:伪文件系统,系统级别的用于配置硬件设备相关的参数  
 /srv:为服务提供数据存放位置的  
 /tmp:临时文件系统:默认存放30天  
 /usr:shared 所有遵循协议的系统都可以使用,readonly 只读  
 /usr/include:头文件存放位置  
 /var:经常发生变化的文件:  
    /var/log
    /var/lock
    /var/run
    /var/cache

2、认识文件类型

白色:表示普通文件  
蓝色:表示目录
绿色:表示可执行文件
红色:表示压缩文件
浅蓝色:链接文件
红色闪烁:表示链接的文件有问题
黄色:表示设备文件
灰色:表示其它文件
普通文件:普通文件。长列表中以下划线 _ 开头。
目录文件:目录文件。长列表中以英文字母 d 开头。

3、特殊文件(该类有 5 个文件类型)

   链接文件:链接文件。长列表中以英文字母 l 开头。
   字符设备文件:字符设备文件。长列表中以英文字母 c 开头。
   Socket 文件:Socket 文件。长列表中以英文字母 s 开头。
   命名管道文件:命名管道文件。长列表中以英文字母 p 开头。
   块文件:块文件。长列表中以英文字母 b 开头。

文件管理命令

绝对路径:从根目录开始直到文件位置
相对路径:从当前位置开始的路径   

1、cd命令:将新目录作为cd命令的参数,就可以切换到目录
选项:

 .  当前目录
 .. 切换至父目录及上一级目录
 ~  切换到别的账号家目录cd  ~wjc
 -  切换至以前的工作目录,仅可撤销一次.

技术图片

2、ls命令列出目录内容

选项:

    -a :包含隐藏文件
    -l:长格式显示额外的信息
    -R:目录递归通过
     -ld:目录和符号链接信息
    -1:文件分行显示
    -S:按从大到小排序
    -t:按时间排序
    -u:配合-t选项,显示并按atime从新到旧排序
    -U:按目录存放顺序显示
    -X:按文件后缀排序
    -m 所有项目以逗号分隔,并填满整行行宽 
    stat   查看文件的所有时间信

 

技术图片

技术图片

 

 3、文件通配符|特殊符号

通配符

^:以什么什么开头
*:匹配零个或多个字符
?:匹配任何单个字符
~:当前用户家目录
~mage: 用户mage家目录
~+ :当前工作目录
~-:前一个工作目录
【0-9】匹配数字范围
【a-z】匹配小写字母范围
【A-Z】匹配大写字母范围
【wujiancong】匹配列表中的任何一个字符
【^wujiancong】匹配列表中的所有字符以外的字符

通配符特殊符号

【:digit:】任意数字,比如0-6
【:lower:】任意小写字母
【:upper:】任意大写字母
【:alpha:】任意大小写字母
【:alnum:】任意数字和字母  所有的字母和数字
【:blank:】t水平空白字符
【:space:】所有横向或纵向的空白
【:punct:】标点符号
【:print:】可打印字符(所有课打印字符和空白)
【:cntrl:】控制(非打印)字符
【:graph:】图形字符
【:xdigit:】十六进制字符

示列:

ls /etc/i*[[:digit:]]*[[:lower:]]  
ls /etc/[0-9]*[^0-9]  
ls /etc/[^[:alpha:]][[:alpha:]]*  
ls /etc/rc[0-6]*  
ls /etc/*.d  
ls /etc/[mnrp]*.conf  
ls -a .*  
ls -d /etc/*/  

4、touch创建空文件命令

选项:

 -c:不创建空文件,只修改时间戳
 -t:指定时间戳
 -a:仅修改访问时间
 -m:仅修改修改时间
 先加-m,在加-t 后跟时间

5、mkdir命令创建目录

-p:存在于不报错,且可自动创建所需的目录
-v:显示详细信息
-m: MODE:创建目录时直接指定权限

6、CP命令复制文件和目录

选项
-a:此参数的效果和同时指定"-dpR"参数相同; -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录; -f:强行复制文件或目录,不论目标文件或目录是否已存在; -i:覆盖既有文件之前先询问用户; -l:对源文件建立硬连接,而非复制文件; -p:保留源文件或目录的属性; -R/r:递归处理,将指定目录下的所有文件与子目录一并处理; -s:对源文件建立符号连接,而非复制文件; -u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名 称相互对应的目标文件并不存在时,才复制文件; -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀; -b:覆盖已存在的文件目标前将目标文件备份; -v:详细显示命令执行的操作。 SCP命令跨网络拷贝文件 用法:scp wget.txt 192.0.0.0:/data 并提供口令 示列 cp -av /etc/ /data/etcdate +%F拷贝后加上时间 示列 cp -a /root /data/rootdir

7、MV命令可移动文件和重命名文件

-i 交互式
-f  强制删除
-r 递归

8、rm删除命令 rmdir 删除空目录

rmdir 删除空目录  -p:递归删除父目录  -v:显示详细信息
rm 命令 移除,删除非空目录  
-r:删除提示是否删除
rm -rf  强制删除不提示

9、索引节点inode

Inode(index node),索引节点。Linux系统中,分区要进行格式化,创建文件系统。在每个Linux存储设备或存储设备的分区(可以是硬盘,软盘,U盘等)被格式化为ext3文件系统后,一般分为两个部分:第一部分是Inode,第二部分是Block。
Block是用来存储文件实际内容的,例如:文本内容,照片内容,视频内容等。
而inode是用来存储这些文件属性信息的(也就是ls -l的大部分内容),inode包含的属性信息包括文件大小,用户ID,组ID,读写权限,文件类型,修改时间,还包括指向文件实体的指针的功能,但是,不包括文件名。
因为inode要存放文件的属性信息,所以inode是有大小的。有的系统是128字节,有的是256字节,看系统实现。inode大小在文件系统被格式化之后就无法更改了,格式化之前可以指定inode大小。
    ll  -i  查看目录或文件节点(inode)编号
    stat 文件 :查看文件的lnode信息

10、软硬连接

软连接

  文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的”软链接”(soft link)或者”符号链接(symbolic link)。
这意味着,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错:”No such file or directory”。这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode”链接数”不会因此发生变化

硬连接

 一般情况下,文件名和inode号码是”一一对应”关系,每个inode号码对应一个文件名。但是,Unix/Linux系统允许,多个文件名指同一个inode号码。
 这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为”硬链接”(hard link)。

ln 硬连接

 ln  -s   软连接可跨分区  
 ln   -s   [源文件或目录]    [目标文件或目录]  
 ln  –snf   [新的源文件或目录]    [目标文件或目录]   这将会修改原有的链接地址为新的地址  
 -b 删除,覆盖以前建立的链接  
 -d 允许超级用户制作目录的硬链接  
 -f 强制执行  
 -i 交互模式,文件存在则提示用户是否覆盖  
 -n 把符号链接视为一般目录  
 -s 软链接(符号链接)  
 -v 显示详细的处理过程  

11、file命令查看文件类型

命令参数:

 -b        列出文件辨识结果时,不显示文件名称。  
 -c        详细显示指令执行过程,便于排错或分析程序执行的情形  
 -f        列出文件中文件名的文件类型  
 -F        使用指定分隔符号替换输出文件名后的默认的":"分隔符。  
 -i        输出mime类型的字符串  
 -L        查看对应软链接对应文件的文件类型  
 -z        尝试去解读压缩文件的内容  
 --help    显示命令在线帮助  
 -version    显示命令版本信息  

12、标准IO和管道 三种I/O设备 把I/O设备重定向到文件

把输出的错误重定向到文件

 命令    |   操作符号    |   文件名  |   操作符号    |  
 >  把SEDOUT(标准输出)  
 2>  把STDERR(标准错误)重定向到文件  
 &>   把所有输出重定向到文件  
 >  追加符号文件内容会被覆盖  
 sec  -C  禁止将内容覆盖已有文件,但是可以追加  
 sec   +C   允许覆盖  
 >|  file    强制覆盖  
 >>   原有内容基础上,追加内容  
 2>  覆盖重定向错误输出数据流  
 2>>   追加重定向错误输出数据流  
    标准输出和错误输出各自定向至不同位置  
 命令   > /path/to/file.out  2>  /path/to/error.out
 合并标准输出和错误输出为统一个数据流进行重定向  
 &>  覆盖重定向  
 &>>  追加重定向  
 ()多个数据流进行重定向  
 (ls,ll)  >  /tmp/laji.log  
 bc  <   /file1.txt     
 bc < f2.txt > f3.txt  标准输入和输出不能再同一个文件。  
 <<   多行重定向 

13、tr 命令用于转换或删除文件中的字符

tr命令

 tr指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
 tr ‘cvf’   ‘hjb’ 替换
 -d  删除指定内容
 -c  取字符集补集 tr -dc ‘abc’ (除abc以外全删)
 -s   取字符集连续字符
 示列: [root@iZrcplwgv2yai5Z ~]# tr -s ‘abc‘
        aabbccdd
        abcdd
 tr ‘[:lower:]‘ ‘[:upper:]‘ < /etc/issue > /tmp/issue.out    

修改内容为大写输出

 cat jiji.out | tr ‘[:lower:]‘ ‘[:upper:]‘ > ki.out   

道修改内容为大写输出

 who | tr ‘a-z‘ ‘A-Z‘ > po.txt   将当前用户信息修改为大写保存	
 将文件testfile的中的小写字母全部转换成大写字母
 cat testfile | tr az AZ 

14、hexdump 二进制文件查看工具

 它可以将二进制文件转换为ASCII、八进制、十进制、十六进制格式进行查看。
 选项:-c  每个字节显示为ASCII字符

15、命令用于读取标准输入的数据并将内容输出成文件

 cat /etc/sysconfig/network-scripts/ifcfg-ens33 |tee
 jiji.out    查询结果输出为文件
 -a 选项 不覆盖替换文件内容:ls /etc |tee -a jiji.out

16、vi输入模式操作

输入操作

i  insert,在光标所在处输入
I  在当前光标所在行的行首输入
a  append,在光标所在处后面输入
A  在当前光标所在行的行尾输入
o  在当前光标所在行的下方打开一个新行
O  在当前光标所在行的上方打开一个新行
q:退出         q!:强制退出   wq:保存退出	  
x:保存退出     zz:保存退出    zq:不保存退出

vi扩展命令

 !:执行命令  
 r!:读入命令的输出  
 w:将当前文件内容写入到另一个文件  
 r:读文件内容到当前文件中  

命令模式翻盘操作

 ctrl+f:向文件尾部翻一屏		
 ctrl+b:向文件首部翻一屏
 ctrl+d:向文件尾部翻半屏	
 ctrl+u:向文件首部翻半屏

字符编辑

x:删除光标处的字符	    #x:删除光标处起始的#歌字符
xp:交换光标所在处的字符及其后面字符的位置
~:转换大小写		J:删除当前行后的换行符  

替换命令

r:替换光标所在处的字符	R:切换为取代模式  

删除命令

d:删除命令,结合上下键删除上下行,左右一个字母
d$:光标处删除到行尾	dw:删除光标往前单词
de:删除光标往后单词	db:删除光标
dd:删除光标所在行	D:从当前光标位置删除到行尾  

复制命令

ye:复制光标所在单词	yw:复制光标往前单词
yb:复制光标所在处前单词
命令模式:查找
/jiji:从当前光标所在处向文件尾部查找	n:查询结果往上搜
?jiji:从当前光标所在处向文件首部查找	N:查询结果往下搜  

命令模式:撤销更改

u:撤销最近的更改		U:撤销最近的多次修改
#u:撤销之前多次更改	.:重复前一个操作
v:选择性删除结合         y辅助或d删除多种使用

使用多个窗口

 -o:水平分割		-O:垂直分割
 ctrl+w :多窗口切换

定制VIM的工作特性

 配置文件:永久有效
 全局:/etc/vimrc	个人:~/.vimrc 

扩展命令模式:当前vim进程有效

 set  nimber   显示行号	
 set  nonumber  取消显示
 set ignorecase:启用忽略字符大小写
 set  noic:禁用忽略字符大小写

技术图片

 

复制保留格式

 启用:set paste		禁用:set nopaste
 显示Tab和隐藏换行符 ^I 和$显示
 启用:set list		禁用:set nolist

高亮搜索

 启用:set hlsearch		禁用:set nohlsearch
 语法高亮
 启用:syntax on	禁用:syntax off

文件格式转换和换行宽度标识线

 set fileformat=dos(简写:set ff=dos)   转换为windows格式
 set  fileformat=unix (简写:set ff=unix) 转换为unix
 设置文件换行宽度
 set  textwidth=65		set  wrapmargin=15
 光标所在行的标识线
 set  cursorline(简写:set  cul):光标所在行加标识符
set nocursoline(简写:set nocul):取消光标标识符

set指令集合

 set:列出当前指令		set all:列出所有指令

vim内置帮助

 help		:help  topic	vimtutor:练习
 标准输入和输出及操作符号
 程序:指令+数据
 读入数据:input	输出:Output
 打开的文件都有一个fd:file descriptor(文件描述符)

linux提供三种io设备

 标准输入(STDIN)-0 默认接受来自键盘的输入
 标准输出(STDOUT)-1 默认输出到终端窗口
 标准错误(STDERR)-2 默认输出到终端窗口

把输出和错误重定向到文件

 格式   命令    操作符号    文件名

支持的操作符号包括

 >	把输出重定向到文件
 2>	把错误输出重定向文件
 &>	把所有输出重定向文件

> 文件内容会被覆盖

 set -C :禁止将内容覆盖已有文件,单可追加
 >| file	强制覆盖
 set+c:允许覆盖
 >>:原有内容基础上,追加内容

三、用户管理和文件权限管理

用户管理命令 useradd:创建用户

 -d<登入目录> 指定用户登入时的目录。
 -g<群组> 初始群组。
 -G<群组> 非初始群组。
 -m 自动创建用户的家目录。
 -M 不要创建用户的家目录。
 -N 不要创建以用户名称为名的群组。 useradd -N wjc
 -s 指定用户登入后所使用的shell。
 -o  允许创建用户相同的UID:列如 useradd -u 1000  -o wjc
 -r: 创建系统用户 特点:id 1-499 不会为用户创建家目录 默认shell	  
 为/sbin/nologin

批量改口令: cat pass.txt | chpasswd

 /etc/skel    新建用户时默认复制skel家目录   /etc/defaults/useradd
 /etc/login.defs  默认创建用户账户属性
 -s /sbin/nologin 

usermod用户属性修改

 -c<备注>  修改用户帐号的备注文字。
 -d登入目录>  修改用户登入时的目录。
 -e<有效期限>  修改帐号的有效期限。   usermod  -e  2019.07.15  wjc   最够过期时间为07.15
 -f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。
 -g<群组>  修改用户所属的群组。
 -G<群组>  修改用户所属的附加群组。
 -l<帐号名称>  修改用户帐号名称。
 -L  锁定用户密码,使密码无效。
 -s<shell>  修改用户登入后所使用的shell。
 -u<uid>  修改用户ID。
 -U  解除密码锁定。
 usermod -G “ ” wjc   去除所有附加组
 userdel 删除用户及家目录
 -r  一并删除家目录

设置密码选项

 passwd [OPTIONS] UserName: 修改指定用户的密码
 常用选项:
 -d:删除指定用户密码
 -l:锁定指定用户
 -u:解锁指定用户
 -e:强制用户下次登录修改密码
 -f:强制操作
 -n mindays:指定最短使用期限
 -x maxdays:最大使用期限
 -w warndays:提前多少天开始警告
 -i inactivedays:非活动期限
 --stdin:从标准输入接收用户密码
 示例:echo "PASSWORD" | passwd --stdin USERNAME

修改用户密码策略

 -l:列出用户的以及密码的有效期限
 -m:修改密码的最小天数
 -M:修改密码的最大天数
 -I:密码过期后,锁定帐号的天数
 -d:指定密码最后修改的日期
 -E:有效期,0表示立即过期,-1表示永不过期
 -W:密码过期前,开始警告天数

用户相关的其他命令

 chsh 指定个人信息
 chsh 指定shell
 finger:查看用户信息
 -l:显示用户信息		
 -m:指定用户信息

组 管 理

goroupmems 命令

 -a 指定用户加入组
 -d  从组中删除用户
 -p  从组中清除所有成员 ,只能清除附加组
 -l   显示组成员列表
 groupadd创建组
 groupadd [OPTION]   group_name
 -g GID 指明GID号;[GID_MIN, GID_MAX]
 -r 创建系统组		CentOS 6: ID<500	CentOS 7: ID<1000

组属性修改

 -n group_name: 新名字-g GID: 新的GID
 groupdel :删除组
 pwconv  命令  开启用户/etc/passwd的投影密码
 chfn  用户 :增加用户修改描述信息
 chsh   命令用于查看显示和修改我们系统的登陆shell。
 -l  查看当前shell
 cat /etc/shells   查看当前shell
 echo  $SHELL  :查看当前正在使用的shell。
 chsh  修改当前shell  
 id命令  查看用户id号
 -u 显示uid
 -g 显示gid
 -G 显示用户所属的组的ID
 -n 显示名称,需要配合ugG使用
 sudo 命令
 su   不完全切换
 -l    完全切换
 -  -c   切换用户查看信息然后退回,su - wjc -c ‘ls /tmp/‘

chage 命令 修改用户的日期属性

 -I: 设置活动天数
 -m:修改密码最小使用时间
 -M:修改密码最长使用时间
 -W:警告时间

文件权限
修改文件的属主和属组
数字法修改权限chmod 755 /tmp/wjc/
chown 命令:修改文件所属主 -R :递归 --refernce 文件:参考文件 chgrp 命令:修改文件所属组 -R:递归 文件权限u、g、o owner 属主, u group 属组, g other 其他, o
文件的默认权限:

新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权
限,则将其权限+1
新建目录的默认权限:777-umask

文件权限:

r:Readable 读	可使用文件查看类工具获取其内容
w:Writable  写	可修改其内容
x:eXcutable执行   可以把此文件提请内核启动为一个进程

特殊权限:SUID、SGID、Sticky

SUID:针对命令和二进制程序的,当普通用户执行某个(passwd)命令的时候,可以拥有这个命令对应用户的权限。
SGID:希望一个目录被多个用户(同属于一个组)共享,同一个组的用户可以处理
粘滞位(t): 把一个文件夹的权限都打开,然后共享文件,像/tmp一样,但是 生产环境一般不使用

用法:
chmod u+s file
chmod u-s file
chmod g+s file
chmod g-s file
chmod g+s file
chmod g-s file

以上是关于用户|文件|基础命令|权限管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux的权限管理及基础常用命令

Linux 基础——权限管理命令chmod

Python基础之Linux基础:用户权限相关命令

Linux基础--权限管理

Linux用户权限管理

linux基础命令之权限管理命令