目录
一、时间相关指令
date显示
时间戳
二、cal指令
三、find指令 (重要)-name
四、grep指令
五、zip\unzip指令
六、tar指令:打包/解压,不打开它,直接看内容
七、bc指令
八、uname -r指令
九、几个重要的热键
十、关机指令
shell命令以及运行原理
Linux权限的概念
Linux权限管理
权限掩码
一、时间相关指令
日志简单理解:程序运行到自己的每一个关键时刻,都要自己打日志
包括:时间,日志等级,日志具体信息,其他信息
以行为单位打印
date显示
date指定格式显示时间:date +%Y:%m:%d(中间的“:”是分割符,也可换成“-”等)
功能:
选项:
%H小时
%M分钟
%S秒
%d日
%m月份
%Y年份
%F相当于%Y-%m-%d
时间戳
时间戳是从1970年1月1日(UTC/GMT的午夜)开始经过的秒数,不考虑闰秒
语法:date +%s(功能:时间转时间戳)
date -d@(时间戳)(功能:时间戳转时间)
二、cal指令
命令格式:cal [参数][月份][年份]
功能:查看日历等信息,如只有一个参数,则表示年份(1-9999),如果有两个参数,则表示月份和年份
三、find指令 (重要)-name
find -name
在指定路径下查找文件
如:find -name *.c
查找当前目录下以.c为后缀的文件
也可以指定路径
find 【路径】 -name
which指令可在指定路径下,搜索指令文件
whereis在系统特定的路径下查找,既可以找到可执行程序,也可以找到手册、安装包等
四、grep指令
格式:grep [选项] 搜索字符串 文件(可以跟多个文件)
功能:将含字符串的行打印出来
选项:
-i :忽略大小写不同
-n:顺便输出行号
-v:反向选择,即显示出没有“搜索字符串”内容的那一行
五、zip\unzip指令
为什么要打包压缩:
能被打包压缩的,一定是一个整体,
由多个文件->一个文件->不容易造成文件缺失
让体积变小->下载时间变短
六、tar指令:打包/解压,不打开它,直接看内容
tar czf XXX 打包文件
tar tzf XXX.tgz 预览
七、bc指令
可以很方便地进行浮点运算
八、uname -r指令
uname -a指令可以查体系结构、内核版本
九、几个重要的热键
检索历史命令Ctrl r
history | head
默认记录最新的1000条历史命令
十、关机指令
shutdown [选项] ** 常见选项:**
Linux操作系统(服务器),永不关机
shell命令以及运行原理
在Windows中,我们操作Windows表示直接操作Windows内核,而是通过图形接口,点击,从而完成我们的操作。
在Linux中,我们也不是直接使用“核心”(kernel)而是通过kernel的“外壳”也就是shell(命令行解释器)来与kernel沟通。
shell主要作用:
#将使用者的命令翻译给核心(kernel)处理。
#同时,将核心的处理结果翻译给使用者。
我们常使用的bash就是shell的一种。
Linux权限的概念
Linux下有两种用户:超级用户(root)、普通用户
超级用户:可以在Linux下做任何事情,不受限制
普通用户:在Linux下做有限的事情
超级用户的命令提示符可以是“#”,普通用户的命令提示符是“$”
超级用户和普通用户直接如何切换?
(1)普通用户切到超级用户
su
再输入root密码,可切换到root用户
exit或Ctrl d热键可从root身份退回普通。
su指令只是直接将身份变为root,并不是以重新登录的方式。
su -
带“-”的才是以重新登录的方式转换。
再输入root密码,可切换到root用户
exit或Ctrl d热键可从root身份退回普通。
(2)超级用户切到其他普通用户
先输入su 用户名
再输入要切换的用户的密码
sudo 【要执行的指令】
功能:用root身份来执行sudo后面的指令
注意:如果我们是adduser新建的用户,没有颁发执行的sudo,系统不信任你,将普通用户添加到系统信任白名单里面。
Linux权限管理
什么叫做权限?
1、权限认证的是身份(权限的“人”有关)
2、权限也和事物的“属性”有关
一、文件访问者的分类(人)
角色,权限身份:
拥有者
所属组
其他人
二、文件类型和访问权限(事物属性)
第一列的d和-表示的是文件类型,后面9列表示文件属性。
1、文件的类型(Linux系统中文件的后缀没有直接的意义。)(但不代表不用)
-:普通文件,文本文件、可执行程序、库
d:目录文件
b:块设备文件(磁盘文件)
c:字符设备文件(键盘、显示器文件等)
p:管道文件
2、文件权限属性
r:可读
w:可写
x:可执行
-:对应的权限位置,没有权限
第一个JY1那一列表示文件的所属者
第二个JY1表示文件的所属组
4096是文件大小,单位字节
再后是文件创建或修改时间
去掉第一列,后面的9列,
3个3个为一组,
如第一行rwx为一组(代表拥有者权限),rwx为一组(所属组权限),r-x为一组(其他组权限)
每组第一个位置表示读(r/-),第二个位置表示写(w/-),第三个位置表示执行(x/-)
-表示没有对应的权限。
注意:root不受限制
可以修改权限的只有两种身份:拥有者和root
1、修改权限方法一:chmod
u:拥有者 g:所属组 o:其他组
+:增加 -:去掉
r:读 w:写 x:执行
如:chmod u-rwx,g-rwx,o-rwx test.txt
这条指令是将test.txt的所有权限都改成否
如:chmod u+rwx test.txt
这条指令是给文件test.txt拥有者加上可读可写可执行的权限
如:chmod o+r test.txt
给其他组加上可读权限。
2、修改权限方法二:用二进制转八进制
权限符号(读写执行) 八进制 二进制 r 4 100 w 2 010 x 1 001 rw 6 110 rx 5 101 wx 3 011 rwx 7 111 --- 0 000
更改文件拥有者
sudo chown 【用户名】【文件名】
修改文件或目录的所属组
chgrp 【参数】【用户组名】【文件名】
-R递归修改文件或目录的所属组
注意:
如果我即是拥有者又是所属组
拥有者权限为r-- 所属组权限为rw-
那我到底有没有写的权限呢?
答案是:没有
why?
因为先看到的是拥有者权限,我(拥有者)只有r权限,就不往后看所属组合其他组了。
权限掩码
普通文件默认给的起始权限是666
目录文件默认给的起始权限是777
为什么我们新建文件时看到的却是普通文件664,目录文件775呢?
实际上你所创建的文件和目录,看到的文件往往不是上面这个值。原因是创建文件或目录的时候还要受到umask的影响。
格式:umask 权限值
普通用户默认是0002,root用户默认是0022(可用umask修改)
最终权限 = 起始权限&(~掩码值)
r:是否允许我们查看指定文件下的目录内容
w:是否允许我们在当前目录下创建和更改
x:是否允许用户进入对应的目录
普通用户自己的家目录权限是700,我在我的家目录创建的文件,别人看不到
有时候,我们需要多个用户进行文件数据共享
因此我们所建立的共享文件,不能在任何一个人的家目录下
一个文件能否被删除,并不由文件本身决定,由这个文件所处的目录决定