命令的组成:命令名称 [操作选项] [操作对象]
1、目录指令
ls:
查看目录下面的文件,也就是相当于查看window文件里面的文件,默认情况下查看当前用户的家目录下的文件。
eg:ls /home/zxl/ 查看根下面的home下面的zxl下面的文件,也就是查看zxl下的文件
操作选项:
-a 打印目录下所有的文件,包括隐藏文件,lunix隐藏文件指的是.开头的文件
-l 查看目录下的详细文件
pwd:查看当前目录的路径(绝对路径)
lunix目录之间是以/为间隔符,但是开头的间隔符表示根,末尾的间隔符表示其前文件为目录。
绝对路径:唯一的路径,是以根为起始表达式的路径 如/home/zxl/
相对路径:多种多样,是以某个路径作为参照路径,通常是以当前目录作为起始路径。
相对路径中:.表示当前目录 ..表示当前目录的上一目录
mkdir:
创建文件夹(空目录)
操作选项:
-p表示递归创建多层目录,由外到内
eg: mkdir -p test/abc 表示在当前路径下创建了test目录,并在test目录里面创建了abc目录。
rmdir:
删除空目录,只能删除空目录
操作选项:
-p表示递归删除多次目录,由内到外
eg:rmdir -p test/abc 表示删除test下面的abc,再将test删除,前提abc为空,不然删除不了。
rm:
删除文件
操作选项:
-r 表示递归删除目录下所有文件,最后删除目录
-i 给出提示信息
-f 不要给出提示信息
eg: rm -rf test 表示删除test目录下的所有文件,最后再将test目录删除
cp:(复制的同时可以改名)
复制文件,将一个文件复制到另一个文件里面
操作选项:
-r:递归复制,将目录下所有文件都拷贝进去,包括目录。
eg:cp -r ./test ./tmp表示将当前目录下的test目录复制到tmp目录里面。
如果当前目录没有tmp文件,那就是将test复制到了当前目录下,并改名为tmp。
mv:(剪切同时可以改名)
将一个文件移到另一个文件里面
eg:mv ./test/ ./tmp表示将test移到tmp下面,如果没有tmp,则将test改名为tmp,这种操作常用来该文件的名字。
cd:
改变当前所在路径(进入某个人目录)
eg:cd tmp表示当前目录为tmp 如果ls则查看的是tmp下的文件
~表示家目录, cd ~表示回到家目录下
2、文件操作指令
touch:
刷新文件的时间属性,if文件不在,则会创建文件
操作选项:
-d使用指定的时间修改时间属性。
eg:touch -d "2020-12-12 12:12:12" password表示以2020-12-12 12:12:12来修改password文件的时间属性。
文件的时间属性:(3种)
最后一次访问时间
最后一次修改时间
最后一次状态改变时间
操作选项:
-a:只使用当前系统时间刷新访问时间
-m:只使用当前系统时间刷新修改时间时间
cat:
将文件内容打印出来
eg:cat password
more
分页显示文件内容;其中使用空格向下滚动一页;使用回车向下滚动一行
less:
分页显示文件内容
可以使用上下左右来访问文件内容,
p匹配查找字符串:/string向下匹配;?string向上匹配字符串。
head:(默认是前10行)
打印文件内容的前n行内容。
操作选项:
-n 数字 表示前数字行
eg: head -n 3 password 打印password 文件的前3行
tail(默认是末10行)
eg:tail -n 3 password 打印password的末尾3行
操作选项:
-n 多少行
-f 表示动态等待文件末尾的新数据进行显示。
ctrl+c 退出
3、打包压缩指令
压缩指令:(将一个文件按照一些压缩算法,将文件数据由多变少)
zip:压缩指令 eg:zip test.zip test.txt。将test.txt文件压缩为test.zip
unzip:解压缩指令 eg:unzip test.zip
gzip:压缩指令 eg:gzip test.txt 将test.txt文件压缩为test.gz .gz为后缀名.
gunzip:解压缩指令:
bzip2:压缩指令: eg:bzip2 test.txt 后缀为.bz2
bunzip2:解压缩指令
打包指令:(将多个文件合成一个文件)
tar:即可打包 也可解包
-c:打包
-x:解包
-z:打包或解包同时进行gzip格式的压缩与解压缩。
-j:打包或解包同时进行bzip2格式的压缩与解压缩。
-v:显示打包解包信息
-f:用于指定tar包名称,通常作为最后一个操作选项,因为后面要跟上包名称。
eg:tar -czvf new.tar.gz test.txt 将test.txt文件打包并同时压缩为new.tar.gz
eg:tar -xzvf new.tar.gz
注意:默认情况下,当前在那个目录下,解压的文件就在当前目录下。
4、匹配查找命令
grep:在一个文件内容里匹配包含某个字符串的行,通常用来某个文件中找函数。
-i:忽略匹配的大小写
-v:反向匹配,打印不包含某个字符串的行
-R:对指定目录下的文件递归逐个进行内容匹配。grep -R “san” ./ 当前目录下找san
find:(在指定的目录下找指定名称/大小/时间/类型的文件)
-name:按照名字找文件
-type:按照类型
-size:按照文件大小
-cmin -mmin -amin 按照最后一次访问、修改、状态改变来查找,单位为分钟
-ctime -mtime -atime 单位为天。
5、查看/打印/设置系统时间命令
date:
+:按照指定格式输出时间
date + "%Y-%m-%d" -> 2020-12-12
-s 设置时间
6、其他指令
stat:查看文件状态信息
echo:将数据写入到标准输出(显示设备文件)
>>:重定向符号,将要操作的数据不在写入到原本的文件,而是写入到新的文件中。
eg:echo "abcd" >>passwd 将abcd写入到passwd中。
>:也是重定向:与>>区别在于;>是清空重定向:将新数据重定向到指定的文件,但是在这之前 清空文件原有内容。>>不会清空原有内容,而是直接追加到文件末尾。
|:管道符
连接2个命令,将前面命令的输出结果当作后便命令的输入数据,让后边数据进行处理。
eg:head -n 23 ./passwd | tail -n 1 打印passwd的第23行。
man:查看手册命令。
eg:man ls 查看ls的手册
shell理解:
什么是shell? 与用户、内核、终端之间的关系
shell是命令解释器(命令解释程序)
因为用户不能直接与操作系统的内核沟通,所以shell的作用是作为用户与内核直接沟通的桥梁,当用户在终端输入一些指令后,shell捕捉到之后就会指向相应的程序,完成相应功能。
shell在lunix下就是命令行解释程序,在window下就是ui操作界面。
7、文件权限的认识:
文件访问对用户的父类:文件的所有者(u)、文件的同组者(g)、其他用户(0)
文件访问对操作的分类:可读(r)、可写(w)、可执行(x)
文件权限表示:
显示字符表示:rwxrwxr--表示u可读可写可操作,g一样,o只能读
3位数8进制数字表示:774;
在系统中权限的存储时用位图存储的,0/1.
ctrl+c:中断当前命令
8、文件访问权限指令:
创建一个文件的默认权限:
umask:查看或设置文件的创建权限的掩码(0002这样的)掩码决定了一个文件创建的默认权限。
-S:人性化的显示权限,也就是u=rwx这样的显示,不在显示掩码
默认创建文件的权限计算方法:
创建一个文件的默认权限=777-八进制的掩码,如掩码为0002,则创建文件的默认权限为
777-002为775,也就是rwxrwxr-x,默认情况下shell创建文件给定权限为777.
正规计算权限方法:777&(~掩码)-》777&(~002)
umask 数字-》直接修改掩码。umask 333 将掩码修改为333.
对已经创建好的文件进行权限修改
chmod 八进制数值 filename
eg:chmod 777 test.txt 将test.txt文件的权限修改为777
针对某个用户进行权限的删除或增加:
chmod a-x test.txt 将test.txt的所有用户的x权限删除
chmod u-x test.txt 将test.txt文件的所属者的x权限删除
总结:chmod [a/u/g/o] +/- [rwx] filename
文件用户信息的修改
chown san root.txt 将root.txt文件的所有者改为san
chgrp san root.txt 将root.txt文件的所属组改为san
文件权限粘滞位:
粘滞位时特殊的权限位:主要用于设置目录的粘滞位,是针对同一目录下,不同用户都可以访问同一目录,如果都可以操作目录下的文件,这样会造成不必要麻烦,所以加上粘滞位后的目录,这目录下面的文件不同用户只能操作自己的文件,不可以删除别的用户的文件。
chmod +t filename