1、 常用目录及其作用
/root root用户的家目录
/home 存放普通用户的家目录
/etc 各种配置文件
/bin 二进制文件,用户可以执行的程序和命令。这是一个软连接,指向/usr/bin/var 可变化的数据文件:日志文件、邮件文件
/var/log/messages 系统日志文件
/var/spool/mail 邮件文件
/dev 设备文件 设备与接口设备以文件形式存在于此
2、 系统维护类
ls
pwd
cd
date 时间
passwd 改用户密码
man manual手册
man 命令
who
last 列出目前与过去登入系统的用户相关信息。
ps 当前系统进程状态
3、 文件管理
grep
查找文件里有字符h的字符串:grep h 文件名
匹配整个单词:grep -w 单词 文件名
匹配所有包含a到r的字符:grep [a-r] 文件名
匹配以q开始的行:grep ^q 文件名
匹配以q结束的行:grep q$ 文件名
匹配以数字开头的行:grep 1 文件名
匹配以q或者f开头的行:grep 2 文件名 中间可以加逗号
不匹配以q或者f开头的行:grep [qf] 文件名 同理
匹配oo前面不是f或者g的字符串:grep [^gf]oo 文件名
匹配以#号开头的行:grep ^#
显示没有#号开头的行:grep -v ^#
过滤空白行:grep ^$
grep -v ^$ /etc/passwd | grep -v ^# 显示非#开头非空白的行
如果要明确搜索当前目录下的子目录:grep -r h ./*
忽略子目录:grep -d skip h ./*
-l:查询多文件时只输出包含匹配字符的文件名
搜索时忽略大小写:grep -i
搜索时显示没有匹配到的行:grep -v 取反
搜索时显示匹配到的那一行以及下2行:grep -A 2
搜索时显示匹配到的那一行以及上2行:grep -B 2
搜索时显示匹配到的那一行以及上下2行:grep -C 2
find
1.与时间有关的参数:共有-atime,-ctime,-mtime。ll --time=atime
-mtime n:意义为在n天之前的一天之内被更改过的文件;-mtime 4,前4~5那一天的文件名
-mtime -n:列出在n天之内(包含n天本身)被更改过的文件名;-mtime -4,小于等于4天内的文件名
-mtime +n:列出在n天之前(不包含n天本身)被更改过的文件名;-mtime +4,大于等于5天前的文件名
find /-mtime 0 #0代表目前的时间,所以从现在开始到24小时前有改动过内容的文件都会被列出来
find /etc/ -newer /etc/passwd寻找/etc/下面的文件,如果文件日期比/etc/passwd新就列出
2.与用户或者用户组名有关的参数
-uid n:n为数字,这个数字是用户的账号ID,即UID
-gid n:GID
-user name:根据文件拥有者寻找文件
-group name:根据文件所属组寻找文件
-nouser:寻找文件的所有者不存在/etc/passwd的人
-nogroup:寻找文件的所有用户组不存在于/etc/group(当你自行安装软件时,很可能该软件的属性当中并没有文件所有者)
3.与文件权限及名称有关的参数
-name filename:查找文件名为filename的文件,支持通配符和?(由于find命令自己能解析通配符的含义,所以加引号不会让和?这两个符号失效)
-size [±]SIZE:查找比SIZE还要大(+)或者小(-)的文件。这个SIZE的规格有:c代表字节,k代表1024字节。-size +50k表示要找比50kB还要大的文件。
-type TYPE:根据文件类型查找文件,一般正规文件f,设备文件c、b,目录d,链接文件l,socket(s),FIFO(p)
-perm -mode:根据文件权限寻找文件。-perm -0744,当一个文件权限为4755时,也会被列出来。
-perm +mode:查找文件权限“包含任一mode的权限”的文件。-perm +755,当一个文件权限为-rw-------时也会被列出来,因为它有rw的属性存在
find /bin /sbin -perm +6000找出在/bin和/sbin这两个目录下具有SUID或SGID的文件
4.其他可执行的操作
-exec command:command为其他命令,-exec后面可再接其他的命令来处理查找到的结果
-print:将结果打印到屏幕上,这个操作是默认操作
find / -perm +700 -exec ls -l {} ;
{}表示“由find找到的内容”,find的结果会被放置到{}位置中。
-exec一直到“;”是关键字,代表额外命令的开始(-exec)到结束(;),在这中间的就是find命令内的额外命令。额外的命令不支持命令别名。
ln 为文件创建链接文件
ln -s 创建软链接文件
硬链接(hard link):
A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。如果删除了其中一个,对另外一个没有影响。每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。注:文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。
软链接(soft link):
A是B的软链接(A和B都是文件名),A的目录项中的inode节点号与B的目录项中的inode节点号不相同,A和B指向的是两个不同的inode,继而指向两块不同的数据块。但是A的数据块中存放的只是B的路径名(可以根据这个找到B的目录项)。A和B之间是“主从”关系,如果B被删除了,A仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。
4、压缩和解压缩
gzip
(1)压缩文件gzip:gzip 文件名(原文件不存在)
gzip -c 文件名1 >文件名1.gz (保留原文件)
-c表示将压缩过程中产生的数据输出到屏幕上
(2)解压文件:gzip -d 文件名.gz(不保留)
gunzip 文件名.gz
gzip -cd 文件名2.gz >文件名2(保留原文件)
查看压缩过的文本文件内容:zcat 文件名.gz
bzip
(1)压缩文件bzip2(用法同gzip):bzip2 文件名
bzip2 -c 文件名1 >文件名1.bz2(保留原文件)
(2)解压文件:bzip2 -d 文件名.bz2(不保留原文件)
bunzip2 文件名.bz2
bzip2 -cd 文件名2.bz2 > 文件名2(保留原文件)
查看压缩过的文件内容:bzcat 文件名.bz2
xz
LZMA2压缩算法,比gzip、bzip压缩的文件更小。
-z, --compress # 强制压缩
-d, --decompress, --uncompress
-t, --test # 测试压缩文件的完整性
-l, --list # 列出有关.xz文件的信息
-k, --keep # 保留(不要删除)输入文件
-f, --force # 强制覆盖输出文件和(解)压缩链接
-c, --stdout, --to-stdout
# 写入标准输出,不要删除输入文件
-0 … -9 # 压缩预设; 默认为6; 取压缩机和
# 使用7-9之前解压缩内存使用量考虑在内!
-e, --extreme # 尝试通过使用更多的CPU时间来提高压缩比;
# 要求不影响解压缩存储器
-T, --threads=NUM # 最多使用NUM个线程; 默认值为1; set to 0
# 设置为0,使用与处理器内核一样多的线程
-q, --quiet # 抑制警告; 指定两次以抑制错误
-v, --verbose # 冗长; 指定两次更详细
-h, --help # 显示这个简洁的帮助并退出
-H, --long-help # 显示更多帮助(还列出了高级选项)
-V, --version # 显示版本号并退出
tar
文件的归档即打包文件:tar [主选项+辅选项] 文件或目录
主选项:只能出现一个主选项
c— create 创建一个新归档文件
x— 从归档文件中提取文件出来
t— 列出归档文件的内容,查看已经打包了哪些文件,重点在查看文件名
辅选项
z—通过gzip的支持进行压缩/解压缩,一般格式为*.tar.gz
j— 通过bzip2的支持进行压缩/解压缩,一般格式为*.tar.bz2
J—通过xz的支持进行压缩/解压缩,一般格式为*.tar.xz
v— 归档或解包过程中显示被打包的文件
C—这个参数用在解压缩时,若要在特定目录解压缩,可以使用这个参数
f— 输出结果到文件,必须写该选项
–exclude=FILE在打包的过程中,不要将 FILE 打包! --排除某个文件打包
常见的两种压缩方式:jcvf zcvf
打包、压缩文件1和2并重命名:tar zcvf 新文件名 文件名1 文件名2 文件名3 文件名4
解压:tar xvf 文件名 -C 目标路径 该命令会自动判断归档文件的压缩格式,自动调用相关程序进行解压缩
查看已压缩文件:tar tf 文件名
5、用户管理
useradd (adduser)
添加系统用户:useradd -r 用户名,添加系统用户,不创建主目录和邮箱
添加用户并用选项指定参数:useradd 用户名 -u uid号 -g gid号/组名 -G 附加组/组名 -c 备注 -s 指定shell -d 指定家目录
usermod
-c 改变用户的全名或者说描述名称
-d 改变用户的家目录
-e 设置用户账号的过期时间
-f 密码的过期宽限时间
-g 改变用户的gid
-G 将用户添加入一个新组
-s 改变用户的默认shell
-l 改变用户用户名
-u 改变用户的uid
-L 锁住密码,使账号不能用
在/etc/shadow中的密码字段前加一个!
-U 为用户密码解锁
删除文件中密码字段前的一个!
给用户追加附加组:usermod -a -G 组名 用户名
userdel
userdel -r 用户名 删除用户和用户文件
userdel 用户名 只删除用户
groupadd
添加用户组
创建组:groupadd -g gid 组名
groupmod
修改组信息:groupmod -n 新组名 -g gid 原组名
groupdel 删除组
id
查看用户信息
w
显示目前登陆系统的用户信息
w命令 用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息
who
显示目前登陆系统的用户信息
who命令 是显示目前登录系统的用户信息。执行who命令可得知目前有那些用户登入系统,单独执行who命令会列出登入帐号,使用的终端机,登入时间以及从何处登入或正在使用哪个X显示器。