基本常用目录
如何查看一个文件夹下所有文件总和大小?
du -sh * #当前目录下所有文件文件夹大小
1、文件及目录
1.1、文件/文件夹权限
用法:
(1) chgrp group_name dir_name/file_name,
(2) chown user_name:group_name dir_name/file_name
(3) chmod 777 dir_name/file_name ,-R 可以递归
说明:【1】中4为r,2为w,1为x,最末尾的+_号为是否有ACL链接
以.开头的文件默认为隐藏文件
1.2、目录及文件查看/操作
Cd、pwd、mkdir、rmdir、rm、cp、mv、ls、umask、touch、chattr/lsattr、file、which、groupadd、useradd/usermod、su、passwd
./为当前目录,../为上层目录
【1】 cd(change directroy): 进入/切换到某个目录
基本用法:cd /home/test 进入test文件夹
(1)cd - :返回操作之前的目录
(2)cd ~:返回到登录账户的家目录/直接 cd
(3)cd . 进入当前目录
(4)cd ..进入上一级目录
【2】pwd :查看当前目录的绝对路径
基本用法:pwd ,查看当前目录绝对路径
(1) pwd [-P] :返回真实文件名(在有软硬链接的情况下)
【3】mkdir :建立目录
基本用法:mkdir folder ,在当前工作目录建立folder文件夹
(1) mkdir –m 711 path : 新建path目录并授予711权限
(2) mkdir –p folder1/folder2/folder3 :如果folder1不存在,递归建立目录
【4】rmdir:删除空目录
基本用法: rmdir null_ folder删除空目录 null_folder
(1)rmdir –p folder1/folder2/folder3 :如果folder1为空目录,递归删除目录
【5】rm :删除文件/ 加上-r可以删除文件夹
基本用法:rm file_name 删除当前工作目录下文件名为file_name的文件
(1) rm –f file 删除file文件并不提示
(2) rm –i file 删除file文件并做提示是否确认要删除
(3) rm –r folder 删除该文件夹及其下所有文件及文件夹
【6】cp:复制文件
基本用法:cp 源文件 目标路径/目标文件
(1) -a 其实就是 -rpd 一起
(2) -i 确认提醒,以防生成的目标文件覆盖现有同名文件
(3) -r 递归复制/复制目录
(4) -p 连同文件的权限、属性、用户等信息全部复制过去
(5) -d 若源文件是链接文件,则复制链接属性
【7】mv :移动文件
基本用法:mv 源文件 目标路径/目标文件
同cp,有-r 、-i
【8】ls :查看当前目录
基本用法:ls 查看当前目录下非隐藏文件
(1)-a 显示出所有文件(包括隐藏和非隐藏)
(2)-l 显示出非隐藏文件的详细信息(包括权限、归属等)
(3)-h 显示成人能看懂的格式 比如原本文件大小是没有单位的,加上-h就有了
(4)-d 显示目录权限,一般ls -ld /ect/ 类似于这样使用
(5)-i 显示文件的id号
【9】umask:查看当前工作目录的预设权限
基本用法:
(1) umask ,会返回一串字符 如0022 (2)umask 002改变权限。
分析:
(1)中4位数字,第1位代表指令权限,不用管,后面3位分别代表owner,group,other,并且这个数字表达出的意思是没有的权限,比如这个022,那么换成权限就是 rwxr-xr-x,就是说group和other缺少w(换成数字就是2)权限。
(2)把权限改成002,就是变成rwxrwxr-x,也就是说只少other的w权限
【权限0022 第1位是代表特殊权限如1.3,4代表SUID,2代表SGID,1代表SBIT】
(3)umask –S 可以以rwx的形式展现当前工作陌路的预设权限
【10】touch:创建空文件、修改时间 基本用法:touch file_name
【11】chattr/lsattr 隐藏属性
基本用法 chattr +i/+a folder/file , lsattr folder/file
分析:
(1)chattr +i/+a folder/file ,
【+i】 会让文档无法被删除、改名、软连接、写入、修改
【+a】 会让该文档无法删除和修改,只能进行追加操作
设置了chattr +i属性后,可以用chattr -i 文件名 的方式取消i属性,取消后就还原了。
(2)lsattr
显示文档的隐藏属性
【12】file folder/file:查看文件属性
【13】which 命令(如ls):查看该命令在哪个
【14】groupadd newGroupNmae:新建一个群组
【15】useradd/usermod:新建用户/用户属性改变
(1)useradd -g 主组 -G 副组(逗号区分) 用户名
比如useradd -g oinstall -G dba,oper oracle 就是创建oracle用户。主组为oinstall 副组为dba和oper
(2)usermod -G groupname username
将存在的用户名加入到一个存在的组中去
(3)修改用户名:
usermod -l 新用户名 老用户名 -d /home/新用户名 -m 老用户名
【16】id username:查看用户属性
例:id guochaoqun
uid=500(guochaoqun) gid=500(guochaoqun) groups=500(guochaoqun),501(test)
【17】su - username :切换用户
【18】passwd username :修改用户密码(注意只有当前为root才能修改其他用户否则只能修改当前用户的密码)
1.3、文件特殊权限SUID,SGID,SBIT
4代表SUID,2代表SGID,1代表SBIT】
注意,SUID与SGID、SBIT都会显示在X权限的为止
SUID:执行该文件时,拥有该文件own的权限(在777权限中以own中的s表示)
SGID:与SUID相同,只是own变成group(在777权限中以group中的s表示)
SBIT:如果甲于A目录有group和other的w权限,这表示【甲可以对A目录下任何人建立的文件和目录进行 删除/移动/更名 等操作】,如果A目录加上了SBIT的权限项,则甲只能对自己建立的文件进行w操作,而无法对其他人建立的文件和目录进行w操作。(在777权限中,以oher位置的t表示),如图:
权限设定:chmod 4755
大写的S S T
附录
基本:cd,more,less,cat,vi,mkdir,rmdir,rm,cp,mv,grep,ls,head,tail,sort,uniq,diff,file,find,bzip2,bzcat/bunzip2,tar -cvf 文件1 文件2, tar -xvf 文件.tar,
进入目录:cd 目标文件夹
返回上层目录:cd ../
同级目录:cd ./
显示内容:cat 文件名 /more 文件名/less 文件名
创建并编辑文件:vi
创建删除目录:mkdir/rmdir 目标文件夹
删除文件:rm 目标文件 / -i 删除前询问 / -f 直接删除 / -r 删除目录及目录中所有文件
复制:cp 源文件 目标位置新文件名
移动:mv 源文件 目标位置新文件名
文件中内容模糊匹配:grep '匹配字符' 文件名 / cat 文件名 |grep '匹配字符'
查看目录:ls
显示文件头部:head 文件名(默认10行)head -x 文件名(显示前X行)
显示文件尾部:tail 文件名(默认10行 tail -x 文件名(显示后X行)
按照字符排序:sort 文件名 / sort -u 文件名 (去掉重复行显示)
去掉文件内相邻重复行:uniq 文件名,
查看两文件的区别:diff 文件1 文件2 / -u 合并查询,无符号为共有,-号为文件1独有,+号为文件2
查看文件状态信息:file 文件名(查看文件编码/大小等信息)/file 文件1 文件2 文件3
查找的目录:find 后接查找的目录,-name指定需要查找的文件名称,名称可以使用*表示所有。
find /home -name “*.txt” ;查找/home目录下,所有以.txt结尾的文件或者目录。
系统:who,w,finger,write,mesg,date,echo,pwd,ACL
显示当前连接用户信息:who/w
发送信息给连接用户: write 用户 回车 输入发送信息 回车 按ctrl+c结束。
关闭开启信息发送接收:mesg y/n
显示当前日志:date
复制自身参数并在屏幕上显示:echo 数据
查看当前目录所在位置:pwd
ACL使用:
[root@zyq-server data]# setfacl -m u:zyq:rwx test.sh
[root@zyq-server data]# getfacl -c test.sh
ctrl+w:去掉当前单词组
ctrl+u: 行删除
ctrl+h: 单个单词删除
【2】用户操作
【2.1】创建用户 useradd
Linux useradd 命令用于建立用户帐号。 useradd 可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码。而可用 userdel 删除帐号。使用 useradd 指令所建立的帐号,实际上是保存在 /etc/passwd 文本文件中。 语法 useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号] 或 useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>] 参数说明: -c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。 -d<登入目录> 指定用户登入时的起始目录。 -D 变更预设值. -e<有效期限> 指定帐号的有效期限。 -f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。 -g<群组> 指定用户所属的群组。 -G<群组> 指定用户所属的附加群组。 -m 自动建立用户的登入目录。 -M 不要自动建立用户的登入目录。 -n 取消建立以用户名称为名的群组. -r 建立系统帐号。 -s<shell> 指定用户登入后所使用的shell。 -u<uid> 指定用户ID。 实例 添加一般用户 # useradd tt 为添加的用户指定相应的用户组 # useradd -g root tt 创建一个系统用户 # useradd -r tt 为新添加的用户指定home目录 # useradd -d /home/myd tt 建立用户且制定ID # useradd caojh -u 544
【2.2】增删改用户及设置密码 passwd
useradd testuser 创建用户testuser passwd testuser 给已创建的用户testuser设置密码 说明:新创建的用户会在/home下创建一个用户目录testuser usermod --help 修改用户这个命令的相关参数 userdel testuser 删除用户testuser rm -rf testuser 删除用户testuser所在目录
【2.3】添加一个不能登录的用户
#添加一个不能登录的用户 useradd apache -d /usr/local/apache -g apache -s /bin/false
要拒绝系统用户登录,可以将其 shell 设置为 /usr/sbin/nologin 或者 /bin/false。
usermod -s | --shell /usr/sbin/nologin username
或者
usermod -s | -shell /bin/false username
说明及比较:
/bin/false
/bin/false 什么也不做只是返回一个错误状态,然后立即退出。将用户的 shell 设置为 /bin/false,用户会无法登录,并且不会有任何提示。
/usr/sbin/nologin
nologin 会礼貌的向用户显示一条信息,并拒绝用户登录:
This account is currently not available.
有一些软件,比如一些 ftp 服务器软件,对于本地非虚拟账户,只有用户有有效的 shell 才能使用 ftp 服务。这时候就可以使用 nologin 使用户即不能登录系统,还能使用一些系统服务,比如 ftp 服务。/bin/false 则不行,这是二者的重要区别之一。
/etc/nologin
如果存在 /etc/nologin 文件,则系统只允许 root 用户登录,其他用户全部被拒绝登录,并向他们显示 /etc/nologin 文件的内容。
【2.4】 /sbin/nologin和/bin/false的区别
linux 中useradd -s /sbin/nologin和/bin/false的区别
/sbin/nologin只是不允许系统login,可以使用其他ftp等服务
如果想要用false在禁止login的同时允许ftp,则必须在/etc/shells里增加一行/bin/false。