## 当前用户退出 linux
exit
## 完整日期时间
date
# 日期 格式 2019/2/18
date +%Y/%m/%d
# 时间 格式 09:42
date +%H:%M
## 日历指令
cal
# 显示2017年所有月份
cal 2017
# 显示2017年5月
cal 5 2017
## 计算器指令: +(加法),-(减法),*(乘法),/(除法),%(取余),^(次方)
# 进入计算器
cal
# 退出计算器
quit
## --help 帮助文档
date --help
cal --help
## man 文档说明, q: 退出文档
man date
man cal
## info 文档说明,q: 退出文档
info info
info date
## 正确的关机方式
# 立刻关机
shutdown -h now
# 系统在今天20:25分关机,如果在20:25以后下达的指令,那就是隔天20:25分关机
shutdown -h 20:25
# 十分钟后自动关机
shutdown -h +10
# 立刻重启
shutdown -r now
# 30分钟后重启,并且显示信息给,其他在登录状态的用户,
shutdown -r +30 '系统会在30分钟后重启,请赶快保存'
# 仅发出警告。系统并不会真的关机
shutdown -k now '系统马上要关机了,请赶快保存'
## halt 系统停止,屏幕可能会保留系统以及停止的信息
halt
## poweroff 系统关机,所以没有提供额外的电力,屏幕空白!
poweroff
## systemctl 关机指令
# 重启
systemctl reboot
# 关机
systemctl poweroff
需要理解的概念。1.拥有者。2.群组。3.其他人(非拥有和群组之外的人)
拥有者:
文件的拥有者,例如:我(小毛)有一封情书放在我的房间,我就是这个情书的拥有者,除了我之外谁也无法,查看,修改,删除这个封情书。只有我把房间的钥匙给别人,也就是授权给别人。
群组:
多个人都有某个文件的操作权限。如:王家有三兄弟,大毛,二毛,小毛。他们都有自己独立的房间。也有公共的客厅,都可以在客厅看电视,玩手机。这个客厅就是群组,大毛,二毛,小毛就是群组的成员。所以可以在客厅做自己事情。
其他人:
非拥有和群组之外的人。如:张三是张家的人,所以没有王家的钥匙。但是他想看我的情书,那他就需要跟我做朋友。得到我的授权,才可以。而张三就是:其他人。
万能的神:
Linux中有一个万能的神,那就是root,他无所不能,想看情书就可以看,可以为所欲为。
Linux文件属性
先看红色框框
-rw------.: 表示文档类型权限
1 : 连接数
第一个 root : 文档拥有者 test用户
第二个root:文档所属群组
0 : 表示文档大小,默认单位:bytes
2月 18 09:25 : 表示2月18日 9:25 是最后修改的日期
yum.log:表示文档名称
看黄色框框
d: 目录 ,r:读,w:写,x:执行
第一个字符代表文档类型:
d: 目录
-:文件
l : 连结文档
b : 表示为装置文件里面的可供存储的接口设备
c : 表为串行端口设备,如键盘,鼠标
接下来的字符中,以三个为一组:且均是[ r w x] 的三个参数组合
r :读(read) w :写(write) x : 执行(execute) 。这三个权限的位置不会发生变化。没有权限 - 代替
第一组:文档拥有者权限
第二组:文档所属群组权限
第三组:其他人权限
修改文档权限
## 修改文档所属群组 chgrp -R 群组名称 文件名称。-R 可以不加,加上表示递归变更,整个目录下所有文件
chgrp -R users test
## 改变文件拥有者 chown -R 账号名称 文件或者目录。-R 可以不加,加上表示递归变更,整个目录下所有文件
chown -R root test
## 改变文件权限,
# 数字形式 r:4 w:2 x:1
# owner = rwx = 4+2+1 = 7
# group = rwx = 4+2+1 = 7
# others = --- = 0+0+0 = 0
chmod 700 文件或者目录
# 也可以这样写
chmod -R xyz 文件或者目录
# 还可以用这样写。u:拥有者,g:群组,o :其他人
chmod u=rwx,g=rw,o=rw 文件名称
# 去掉权限(作用于:拥有者,群组,其他人)
chmod a-rwx 文件名称
# 添加读写权限(作用于:拥有者,群组,其他人)
chmod a+rw 文件名称
目录操作
. # 代表此层目录
.. # 代表上一层目录
- # 代表前一个工作目录
~ # 代表【当前用户身份】所在的家目录
~account # 代表account这个用户的家目录(account就是账号名称 如:~root)
cd # 变换目录
cd .. # 去上一层目录
cd - # 去前一个工作目录
cd ~ # 去【当前用户身份】所在的家目录
cd /home # 去/home这个目录
pwd # 显示当前目录
mkdir # 建立一个新的目录
mkdir test # 建立一个新的test目录
mkdir -p test1/test2/test3 # 级联建立目录
mkdir -m 711 test4 # 新建目录时并且预设权限。如果没有加 -m 就是默认权限
rmdir # 删除一个空目录
rmdir test # 删除名为test的空目录
rmdir -p test/test1 # 级联删除空目录
文件与目录管理
ls # 文件显示 常用命令。
ls -a # 显示全部文件,包括隐藏文件
ls -A # 显示全部文件,但是不包括【.】和【..】这两个目录
ls -d # 仅列出目录本身,而不是列出目录中的文件
ls -l # 长数据串行,包含文件的属性和权限等信息: 简写: ll
cp # 文件拷贝 常用命令
cp t1 /home/t2 # 拷贝当前目录中的t1到/home目录下,并且更改名称为t2
cp t1 t2 t3 /home # 拷贝当前目录中的t1,t2,t3到/home目录下
cp -i t1 /home/t2 # 拷贝当前目录中的t1到/home目录下,更改名称为t2。如果home下有t2 就覆盖
cp /home/t2 . # 拷贝/home/t2下的t2 到当前目录
cp -r /tmp/test1/ /tmp/test2 # 拷贝test1这个目录,到test2目录下
rm # 文件删除
rm -f # force的意思。忽略不存在的文件。不会出现警告信息
rm -i # 互动模式。在删除前会询问使用者是否确定
rm -r # 递归删除,最常用在目录的删除,这是一个非常危险的选项!!!
mv # 文件移动,或者更改名称
mv -f # force 强制的意思,如果目标文件以及存在,不会询问而直接覆盖
mv -i # 若目标文件,已经存在时,就会询问是否覆盖
mv -u # 若目标文件以及存在,且source比较新,才会更新
# 路径截取。在shell scripts 里面常用
basename /etc/sysconfig/network # 后缀、得到 network
dirname /etc/sysconfig/network # 前缀,得到 /etc/sysconfig
# 文件内容查阅
cat # 由第一行开始显示文件内容
tac # 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl # 显示的时候,顺道输出行号。
more # 一页一页的显示文件内容
less # 与 more 类似,。但是比more 更好,可以往前翻页
head # 只看头几行
tail # 只看尾巴几行
od # 以二进制的方式读取文件内容!
修改文件时间和新建文档
modification time (mtime)
当文件的【内容数据】变更时,就会更新这个时间!内容数据,就是文件的内容
status time (ctime)
当该文件的【状态】改变的时,就会更新这个时间,例如:文件的权限或者属性被更改了,就会更新这个时间
access time (atime)
当【该文件的内容被取用】是,就会更新这个读取的时间;列如:我们使用cat去读取/etc/man_db.conf 。就会更新这个时间
touch [-acdmt] 文件名称
#参数:
# -a : 仅修改 access time
# -c : 仅修改文件的时间,如果该文件不存在,则不建立新文件
# -d :后面可以接想要修改的日期,而不用当前日期。也可以用 --data="日期或者时间"
# -m :仅修改 mtime
# -t :后面可以接欲修改的时间而不用当前的日期。格式为[YYYYMMDDhhmm]
文件预设权限:umask
umask # 与一般权限有关的是后面三个数字
0022
umask -S
u=rwx,g=rx,o=rx
文件隐藏属性
chattr [+,-,=] [ASacdistu] 文件或者目录名称
+ :添加某一个特殊参数,其他参数不变
- :移除某一个特殊参数,其其他参数不变
= :设置参数,后面接受参数
lsattr # 显示文件隐藏属性
-a # 将隐藏文件的属性也显示出来
-d # 如果接的是目录,仅列出目录本身的属性而非目录内的文件名
-R # 连同子目录的数据也一并列出来
执行文档查找
which # 寻找【执行档】
which [-a] command
-a # 将所有由PATH目录中可以找到的指令均列出,而不止第一个被找到的
列:
which which # 查询which在哪个目录下
文档名搜索
whereis # 由一些特定的目录中寻找文件
whereis [-bmsu] 文件或者目录名
-l # 列出whereis会去查询的几个主要目录
-b # 只找 binary 格式的文件
-m # 只找在说明文件 manual 路径下的文件
-s # 只找 source 来源文件
-u # 搜寻不在上述三个项目当中的其他特殊文件
例:
whereis passwd # 全部的档名都列出来
whereis -m passwd #只有在 man 里面的档名才列出
locate [-ir] keyword # 我最新版本CentOS 7.6 没有这个命令
-i # 忽略大小写
-c # 不输出档名,仅计算找到文件数量
-l # 仅输出几行的意思。列出输出五行则是 -l 5
-S # 输出 locate 所使用的数据库文件的相关信息,包括该数据库记录的文件/目录数量等
-r # 后面可以接正规表示法的显示方式
find # 全磁盘搜索,比较耗时间
find [PATH] [option] [action]
1. 与时间有关的选项:共有 -atime , -ctime , -mtime
以 -mtime 说明:
-mtime n : n 为数字,意义为在n天之前的 【一天之内】被更改过内容的文件档名
-mtime +n :列出在n天之前(不含n天本身)被更改过内容的文件档名
-mtime -n : 列出在n天之内(含n天本身)被更改过内容的文件档名
-newer file :file为一个存在的文件,列出比file还要新的文件档名
列:
find / -mtime 0 # 将过去系统上面24小时内有过改变内容。的文件列出
find /etc -newer /etc/passwd # 寻找/etc 地下的文件,如果文件日期比 /etc/passwd 新,就列出