您的位置:首页 > 运维架构 > Linux

linux系统命令--不断补充

2018-02-27 14:42 267 查看
第一天去深入学习linux,发现了很多之前模棱两可的地方。受益匪浅,坚持下去。
(1) 今天重新学了find命令,发现有很多参数之前都不知道什么意思,在此做一个整理。
find  [路径] [选项] [操作]
*路径
/ 根目录
. 当前目录
/etc 写绝对路径
*选项
-name 按名称查找,后面接正则表达式匹配,但是正则需要用引号包起来,单引号双引号都可;此选项较常用
-perm 按照文件权限查找
-type 按照文件的类型进行查找 d:目录,f:文件 p:管道文件 l:连接文件 b:块设备 c:字符设备
-atime 搜索在过去n天读取过的文件
-ctime 搜索在过去n天修改过的文件
-mtime -n搜索多少天内文件,+n 距今多少天之前文件
--以上各种time,一般用的多的是-mtime,具体参考实例
此外还有不少有用的选项 user group nouser nogroup等。
注:选项可以叠加使用,要不咋叫选项呢哈哈
*操作
-exec 执行后面的命令,没啥可说的
-ok  效果和exec一样,比exec更安全,每次执行命令前都要询问y/n。
-print 打印出筛选结果。但在测试中发现加不加都会打印出来,我用的centos7和rocky4.2(国产凝思),不知其他系统如何。

*实例:find . -name "*conf" -mtime -2 -ok rm {} \;
删除当前目录结尾为conf的,两天内的文件; {}代表筛选出的文件,\;代表结束符
(2) linux用户管理
1.用户分为三类:
*root:系统唯一,真实。
*虚拟用户:不具有登录系统的能力,但却真实存在:bin,adm,deamon,ftp,mail
以上两种用户称他为系统用户。
*普通用户:最长用的用户,只能操作该用户的根目录文件。权限受限。
注:系统用户的uid:etc/passwd uid前1000,普通用户一般从1001开始。不同系统界定不一样centOS7是这样,rocky4.2貌似是从101。
2.useradd or adduser [选项] [用户名]
*useradd执行后都干了些啥?
1.在passwd添加一条记录,uid 和gid是 +按照普通用户+1顺延下去的
2.创建用户主目录,并将/etc/skel中的文件复制过去,我看了skel里面啥也没有,复制个蛋
注:etc/shadow里面是个用户的密码,不过是加密的,没有细研究过用什么方法加密的。
*选项
-g 指定用户组
-d 指定用户家目录
-s 指定shell类型
-u 设置用户uid,一般不用加
-m 目录如果不存在则自动建立
*用户名
系统管理员(root),建立的用户名
实例:useradd wangran -d /home/wangran -g wangran -s /bin/tcsh与useradd wangran -s /bin/tcsh相同
选项只是你想去改变的时候再去修改,一般情况下默认就给你加上了。
3.usermod [选项] [用户名]
*选项和useradd相同,用于修改用户名,登录目录,数组等等。
4.userdel  [选项] [用户名]
*选项
-r 删除用户时连同默认的属组和根目录一起删除。
注:etc/shadow 里面如果用户“!!”表示该账户不可使用。
(3)用户组管理
用户组管理分为增加用户组,修改用户组,删除用户组
1. groupadd
*-g 增加用户组时为用户指定用户组号,如果不加该参数,他的值就递增加1
2.groupmod
*-g 为用户组指定新的GID
*-n 修改用户组名
3.groupdel
*无参数,直接加用户组名。但如果该用户组下包含某些用户,需要删除用户后才能删除用户组
下面是自己总结的基础命令
cp
-p 只复制目标中不存在的文件 或者更新过只复制目标中不存在的文件 
-d 覆盖目标文件,且不做提醒
-i 保持文件属性
rm 
-i 交互式询问 (询问是否删除文件等)
-f 不提醒直接删除
-r 递归删除
mv
移动:原文件/目录可以有多个,目标路径存在
改名:原文件/目录只有一个,目标路径不存在
mkdir 
-p 递归建目录
-v 显示建目录信息
ls 
-a 查看所有文件
-A 不包括. ..
-s 以块大小为序
-i 按照inode号排序(这是刚知道的一个概念)

*linux上的inode编号是索引节点的编号。理解inode,要从文件储存说起。
文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。
每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读
取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常
见的是4KB,即连续八个 sector组成一个block。文件数据都储存在"块"中,那么很显然,还必须找到一个地方储存文件的元信息
,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索
b14e
引节点"。
每个inode都有一个号码,操作系统用inode号码来识别不同的文件。这里值得重复一遍,Unix/Linux系统内部不使用文件名,
而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称或者绰号。表面上,用户通过文件名,
打开文件。实际上,系统内部这个过程分成三步:首先,系统找到这个文件名对应的inode号码;其次,通过inode号码,
获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据。
tar 
-c 创建文件
-x 解压文件
-v 详细报告文件处理情况
-f 使用档案名称或设备,必选
-z 压缩或者解压.gz文件时需要增加
-t 抽取tar文件内容,键入 tat -tvf
gzip 
解压.gz文件
-d 解压
-v 列出详细信息
实例:gzip xx.tar -->xx.tar.gz|| gzip -d xx.tar.gz -->xx.tar
unzip  zip文件的解压缩
chmod
两种方式:字母和数字
chgrp 
更改文件属组
chown 
更改文件所有者或组
free 
-b -k -m 
-s  time 多长时间打印一次
-t 显示内存总和列(这个参数比较重要)
-o 不显示缓冲区列
uptime 系统运行时间
ps 
aux 列出所有用户的信息
2018/02/28  正则表达式
(1)grep
-c 显示含字符串行的数量
-n 列出所有匹配行,并显示行号
-v 不包含模式的行
-i grep命令不区分大小写
-l 只列出符合匹配的文件名
-r 只对当前文件夹和子目录进行搜索
-x 匹配整行,即只有当整行与模式匹配时才能够显示出来
-w 匹配整词,即精确匹配,grep -w the = grep \<the\>  类似单词then,they都匹配不出来的意思
(2)sed--将文本文件复制到缓冲区-对副本进行编辑。
-n 表示不打印文件的所有行
-e 表示将下一个字符串解释为sed编辑命令。换句话说,如果只有一个编辑命令,e就没啥用了。
*书中给出的例子:sed -n -e '/the/' -e '/the/=' demo.txt  :打印匹配'the'的行同时打印行号
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: