目录
7.权限
一.linux系统操作方式
1.1操作系统
操作系统:是按照程序指令固定完成指定功能的软件程序。
操作方式:当我们通过硬件(鼠标、键盘等)进行操作时,系统会找到程序文件并开始执行这个程序,执行时会给cpu下达指定的指令,完成对应的目的。
//linux是一个多用户操作系统(可以创建多个用户,多个用户可以互相操作,互不影响)。
1.2目录结构与路径显示规则
路径的显示规则:
目录是可以嵌套的,你查看到的路径往往是多个目录的嵌套。通过/方式展示嵌套结构,当/在最前面时表示的则是根目录。--最上一级目录,保存通常root目录和home目录等目录。
路径分类:
绝对路径:以根目录为起始的路径。
相对路径:以当前目录为起始路径。//pwd显示的路径
//.表示目录自身。
//..表示上一级目录,通过..可以逐级退回上一层目录。
目录结构:
linux下的结构:只有一个树状目录结构,最底层是根目录,/。linux下的文件是先把磁盘空间分区再分配给目录进行挂载。(因为根目录,需要储存其他目录,则至少应给linux根目录挂载一个磁盘空间)
windows下的目录结构,对磁盘进行分区,每个分区都有一个目录结构。
隐藏结构:为了保护文件的安全性进行了些隐藏 ,显示为./+文件名
1.3云备份项目(补充)
为方便下一次使用,电脑会把一些文件(新文件,刚修改过的文件)上上传到服务器备份起来,同时服务器会把不经常访问的文件进行压缩。--系统会通过文件的时间属性进行判断
1.4shell
1.shell出现原因
用户直接操作内核的高门槛和危险性,为了避免危险操作。系统向上级提供指定功能的操作接口,让所有的操作受到限制。则想要操作内核就必须通过接口来完成。
接口通过函数调用来完成,但函数调用的门槛太高,于是人们就开始封装实现了很多的常用功能程序,用户想用什么功能,直接通过指定程序完成就行。
2.shell 解释
shell是一个命令行解释器,也是一个程序,通过不断捕捉键盘输入的指令,了解用户想要做什么,然后执行对应指令的功能程序,因此shell被称作命令行解释器。
shell是内核与用户沟通的桥梁程序的统称,最典型的有bash、dash。
windows下的shell--图标界面
3.kill指令(补充)
用kill 可以关掉虚拟机。
kill -9 数字(数字为ps-ef下正在运行的数字),使用完后会断开shell。
//linux下所有功能都是通过指令完成,linux下的文件夹也可称为目录。
//指令根据功能不同而有不同的名称,常见的有目录(文件夹)操作指令,普通文件夹操作指令,压缩指令,匹配查找指令,系统指令,权限指令。
二.基础指令
1.目录操作指令
书写格式 :命令名称 [操作选项] [操作对象] []表示可以没有。
1.1ls查看目录下的信息
ls 查看目录下的信息
-l 查看文件详细信息,也可以查看到权限。
-a 查看文件隐藏信息。
-h 人性化打印文件尺寸大小,通过mb,kb。
-d 将文件像目录一样显示。
-t 以时间排序。
-1 一行只能输出一个文化。
//一般多使用ls -al / ls -a -l
1.2pwd 打印当前的工作路径
/home/dev,表示当前在dev目录中dev在home目录中,home在根目录中。
1.3mkdir 创建目录
mkdir 操作对象,一次只能创建一层。
-p 递归多层创建,那一层不存在创建那一层直到最内层。
mkdir testdir 创建testdir目录
mkdir testdir/newdir 在textdir目录下创建newdir。
mkdir -p ai/bi/ci 直接创建ai,bi,ci目录,系统会自己递归逐层创建。
1.4rmdir 删除空目录,一次只能删除一个。
rmdir ai/bi/ci 删除ci
1.5rm 删除文件(默认删除普通文件)
rm删除文件
-r 递归删除指定目录下的文件,删除完后删除目录。
-i 添加操作提示信息。
-f 忽略所有提示信息,进行操作。当误操作时ctrl+c取消
rm -r ai/bi/ci 删除所有文件后删除ai,bi,ci目录
rm -rf ./* 删除当前目录下所有内容
rm -rf /* 删除根目录及所有--谨慎使用
rm -ri 使用时可以逐步提醒,以防误删除。
1.6cp拷贝文件
cp 拷贝一个文件到指定位置
-r 递归拷贝一个目录及一个目录下所有文件到指定路径下。
cp -r ai testdir 将ai拷贝到testdir下,ai是要拷贝的文件,testdir是目标位置路径。
1.7mv移动文件
mv 将一个文件移动到新的位置
mv passwd ./ 把passwd搬移到当前目录
1.8cd进入目录
cd 进入指定目录
~ ~表示家目录,可以快速返回家目录
cd etc/password 进入到password内
2.文件操作指令
2.1cat 打印文件内容
cat 将指定文件的内容打印到终端显示上,默认十行
-n 对输出所有行编号
cat passwd
cat -n passwd
2.2touch刷新文件时间属性(创建文件)
touch 刷新文件的时间属性,如果文件不存在就会创造一个新文件
touch passwd。
2.3显示文件信息
stat passwd 显示文件详细信息
2.4more 查看文件内容
more将文件内容翻页显示
空格向下翻页码
回车向下按行滚动,到行末尾会结束
q退出显示。
more passwd
2.5less 更详细查看文件内容
less 对文件内容进行分页显示
f-向下翻页 b-向上翻页
jk上下按行滚动 q-退出
/string 查找字符串 ?string从底行向上查找字符串
2.6head 打印文件指定行内容(前)
head显示文件前n行,默认前10行
-n选择显示前n行内容。
head passwd默认前10行
head -n 3 passwd显示文件前三行内容
2.7tail 打印文件指定行内容(后)
tail 显示文件后n行,默认后10行。
-n 选择显示末尾n行内容
-f 动态一直等待文件末尾新内容进行打印,-f命令应用参考echo指令。
//追加时请创新的虚拟主机,ctrl+c退出。
tail passwd 显示文件的末尾10行内容。
tail -n 3 passwd 显示文件的末尾3行内容。
需求:打印文件的第三行内容
head -n 3 passwd| tail -n 1 打印前三行的末尾一行,|为管道符
2.8echo(扩展)
echo “any” 打印字符串
可以使用echo追加到文件echo ”you want”>>test.txt,可通过tail-f动态查看。
也可用ls -l passwd>>test.txt
2.8a管道符:|
竖杠作为管道符作用是连接两个命令,将前面命令输出的结果,作为后面命令的输入,让后面命令来处理。
head -n 3 passwd| tail -n 1 打印文件的前三行内容,在前三行内容中打印最后一行,所以最后打印内容应该为第三行内容。
2.8b重定向符号: > >>
> 清空重定向:将原本要写入标准输出(打印)的内容,不在写入标准输出,而是写入指定文件中
cat passwd > test.txt 把passwd内容打印到文件
ls (-l) >test.txt 把当前目录打印到test文件
ls -l passwd> test.txt 把文件内容的详细信息打印到test文件
用cat 去看文件详细信息
>> 追加重定向:将原本要写入标准输出(打印)的内容,不在写入标准输出,而是写入指定文件中,将数据追加到原文件末尾。
同上 >>不会删除之前内容
3.压缩指令
3.1压缩
文件可以通过压缩剩下储存空间,不同的压缩算法有不同的压缩格式。
常见的压缩格式:win .zip .rar .7z(打包在一个软件) linux: gzip bzip2 tar(需要多个压缩软件)
不同压缩格式解压需要不同的算法,windows的解压算法都打包在同一软件中。
//linux可以把电脑文件拖拽到虚拟机
//ls -lh 先看打包前大小
3.2zip
zip/unzip gzip/gunzip bzip2/bunzip2 zip压缩unzip代表解压缩
zip 1.png.zip(必须有后缀) 1.png 把1.png压缩成1.png.zip
unzip 1.png.zip 不删除原文件(windows)
gzip 1.png 不需要指定,删除原文件。
gunzip 1.png.gz 删除原文件
bzip2和gzip相同
3.3tar
tar 打包指令(对大量文件打包解包同时,可以指定算法,常用)
-c 打包
-x 解包
-v 显示打包或解包文件
-z 打包或解包使用gzip进行压缩或解压缩
-j 打包或解包使用bzip2进行压缩或者解压缩
-f 选项要放到最后,其后面要跟上压缩包名称
tar -cvzf new.gz ai/ passwd/ 1.png 绿色为新压缩包名称,之后为要打包进入的文件。
5.匹配与查找指令
5.1grep
grep字符串匹配功能,在指定的文件中匹配包含有指定字符串的行
-i忽略大小写
-r在指定目录下对所有文件进行匹配查找
grep ‘string’ filename
grep -i ‘a’ etc/passwd
grep -r ‘de’ ./
5.2find
find 指定目录下,查找符合指定规则的文件
-name 通过文件名过滤查找
-size 通过文件大小过滤查找
-mtime -atime -ctime 查找按时间
-type 通过文件查找
find ./ -name “passwd”
find ./ -name “*pass*” 只要含有pass就查找出来
find ./ -name “pass*” pass在前面的查找出来
补充
cal 日历
date日期
ps - ef 查看运行信息
tty 查看连接的端口
6.其他指令
6.1查网卡信息
ifconfig
6.2系统操作指令
1.shutdown
shutdown 关机
shutdown -h now
2.reboot
reboot 开机
reboot
3.man
man ls 查看手册命令
7.权限
linux是一个多用户操作系统,可以各自操作互不影响,为防止其他用户干扰,系统进行了权限的控制。
7.1扩展 su
su的一些指令:
su root 切换到管理员,也可以加用户名切换到新用户
useradd -m 用户名 创建新用户,防止不创建加目录
passwd 用户名 更改用户密码
userdel 删除用户 可以删除用户所有信息
(userdel test,删除不掉可以先kill关闭。)
sudo不是一个指令,只是一个辅助功能,可以为普通用户先提权到管理员用户,与其他指令搭配使用,要使用sudo,需要管理员进行
sudoers的配置:
sudo ls /root
配置方法:
su root
visudo 按esc到底行模式 :90 找到位置后,输入i最后写下插入用户
root ALL=(ALL) ALL
dev ALL=(ALL) ALL
test ALL=(ALL) ALL
zhang ALL=(ALL) ALL
zhang为想要加入用户,使用tab进行空行。添加成功后新用户就可以sudo root权限了。
//普通用户,切换到新用户,可能没有部分权限
返回自己家目录的方法:
cd ~ 返回test
cd ../ 返回test的home
su dev 切换用户dev的home
cd dev 返回原路径/cd ~
7.2系统操作权限:
用户分为两类用户:管理员root、普通用户dev等
普通用户:系统上操作受限,比如安装和卸载,改变时间。
7.3文件操作权限:
系统对文件访问的用户分为3类:
u文件所有者(默认文件创建者,访问权由他控制)
g文件所属组(某一类用户可以进行某些操作)
o其他用户(没有权限)。
下面指令需要我们使用管理员权限操作
文件操作权限:
文件所属组-g 其他用户-o
对文件操作权限进行分类
可读-r 可以查看文件内容
可写-w 可以修改文件内容(对于目录来说,就是可以创建或者删除文件)
可执行-x 可以执行这个文件
drwxrwxrwx 由文件所有者到所属组到其他用户的权限,即使是文件所有者,在有些文件中也不能拥有所有权限,以防止系统被破坏。
rwxrw-r-- 文件所有者可读可写可执行,文件所属组可读可写其他用户可读
rw-r----- 文件所有者可读可写,文件所属组可读,其他用户没有权限。
权限的另类表示:
权限可以以字符来进行,通过1表示有、0表示无
rwxrw-r-- 111 110 100 874 三个比特位为一个八进制数字。
3.1umask
umask-设置文件默认权限掩码,影响默认权限。
-S 查看默认权限
002 rwxrwxrx 775,掩码取反之后的数据。普通文件没有可执行权限,目录默认拥有。
文件权限:touch默认给定666&775=664/默认权限=777-掩码
033 000 011 011 111 100 100 7 4 4 普通文件644 rwxr--r--
3.2chmod
chmod修改文件权限
-a 所有用户 -u 所有者 -g 所属组 -o 其他用户
八进制设置 chmod 777 tool 所有权限
chmod a+r tool 所有用户加入可读权限
chmod u+rw 给所有者加入可读可写条件
chmod o-r 去除其他用户的可读条件
3.3chown/chgrp
chown修改文件所有者(必须是root用户)
chown 用户 文件名 chown test a/
chgrp:修改文件所属组(必须是root用户)
chgrp 用户 文件名 chgrp test a/
7.4沾滞位
其他用户在一个目录下,可以创建文件,可以删除文件,但不能删除别人的文件。
chmod +t 文件名 可以创建不可以删除
演示
a root b dev c test
a.1 cd ../ 回到家目录,以创建文件能被所有用户使用
a.2 mkdir -p tmp
b.1 cd ../ b.2 cd tmp/
b.3 touch dev.txt 无法创建因为dev是其他用户没有可写权限
a.3 chmod o+w tmp/ 给tmp其他用户+可写权限
b.4 touch dev.txt
c.1 cd ../ c.2 cd tmp/ c.3 touch test.txt
b.5 rm -rf dev.txt 删除成功,因为有可写权限
a.4 chmod +t tmp/ 把沾滞位权限给tmp/
c.4 touch test.txt
b.6 rm -rf dev.txt 权限受阻,沾滞位权限不允许删除其他用户文件。