一、unix的基本知识
1.背景
由Ken Thompson(肯 汤姆森)和 Dennis Ritchie(丹尼斯·里奇)创建的操作系统
UNIX元年:1970年。
2.与Windows相比的好处
安全性
稳定性
高效性
二、unix组成成分
1.计算机组成:硬件和软件
软件分为:系统软件(操作系统)、应用软件
-
Kernel 内核
1)管理硬件 2)管理内存(内存交换) 3)管理交换空间(虚拟内存) 4)控制系统硬件和系统程序(驱动) 5)管理进程 6)管理守护进程 7)管理文件系统
3 Shell
1)为使用者提供操作界面的软件(提供用户发送命令的界面)
2)是用户和Kernel之间的接口
3)扮演解释者和翻译者
4 Fill system 文件系统
1)所有的硬件都会映射成一个文件,
2)由文件、目录、子目录形成倒立的树形结构。
3)路径 路径名:唯一区分文件
相对路径:相对于当前路径
绝对路径:相对于根路径
注:相对路径不会以"/"开头
三、用户与超级管理员切换
1.Shell界面字符:$:代表普通用户 #:代表超级管理员
2.第一次切换管理员身份需要设置管理员密码
1)sudo passwd root
sudo 临时提升权限
2)切换用户
普通用户到超级管理员:su
超级管理员到普通用户:exit
3.修改普通用户密码: passwd
1)修改普通用户密码有一定要求,对超级用户没有要求
密码长度6到8个字符
密码至少包括2个字母,和一个数字或一个特殊字符
密码不能和用户名相同
新密码和旧密码至少3个字符不同
注:在此为原始的unix系统遵守
四、查看用户与密码信息
1.cat /etc/passwd————查看所有用户信息
2.sudo cat /etc/shadow————暂时提高权限,查看密码相关信息
sudo:遵循最小权限原则:操作尽量由用户完成
五、命令
1.命令的规则
1)空格区分命令行不同部分
2)单行命令最多输入256个字符
3)与dos不同:
1 大小写敏感
2 不同的命令提示符
2. clear 清屏。并非删除,而是将界面上移
3. pwd 查看当前所在目录(print working directory)
4. cd 进入某个路径地址目录(change directory)
cd ..回到上个目录
cd 直接回车则直接回到用户家目录
5. ls 显示当前目录下的文件和目录(文件名,目录名)(list)
ls 目录 显示指定目录下的文件和目录
ls 文件 显示文件名
ls -l 目录 显示指定目录下的文件和目录的详细信息
ls -l 文件 显示指定文件的详细信息
ls -d -l 文件/目录 显示自身的详细信息
注:-d -l可以写一块 ls -dl 也可以ls -ld
ls -R 目录 显示子目录以及子子目录直到最后的里面的文件信息
ls -Rl目录 显示指定目录下的所有子目录及子集,文件的详细信息。
ls -a 目录 显示指定目录下所有文件和目录(包括隐含文件和目录)
ls -t 目录 根据最后一次修改的时间进行排序展示,升序排列,距离当前的时间的间隔由小到大。
ls -t 文件 显示文件名
ls -F 目录 显示指定目录下的文件类型
文件属性 目录文件"/",可执行文件"*",文本文件"none"
ls -F 文件 显示文件名
6. touch 创建文件或者更新访问时间和修改的时间
touch 文件 在当前目录下创建或更新文件
touch 文件 目录 在指定目录下创建或更新文件
touch 文件1 文件2 目录 在指定目录下创建或更新多个文件
注:除了第一种情况,最后都要为目录
注:touch 创建的只能是文件,不能根据后缀名进行判别是否创建的是文件
7. mkdir 创建目录
mkdir 目录 目标目录 目标目录要存在,才能创建(不能多级创建)
mkdir 目录1 目录2 目标目录 在目标目录下创建多个目录(不能多级创建)
mkdir -p 目标目录/目录1/目录2 会自动创建多级目录(会创建目录1/目录2)
注:有些目录去创建是需要一定的权限的 sudo mkdir /etc/目录1
8. chmod 改变读/写/执行权限
1)人员: u(user):拥有者 g(group):同组人 o(other):其他人 a(all):所有人
2)操作符: +添加 -取消 =赋值
3)权限: r读 w写 x执行
4)chmod 人员 操作符 权限 [,人员 操作符 权限]文件或目录
5)用逗号分隔
6)人员可以写在一起,方便赋值
chmod o+w 文件/目录
chmod g-w 文件/目录
chmod g=rw 文件/目录
chmod u+x,go-w 文件/目录
chmod u-x,g+w 文件/目录
数字表示
顺序:拥有者 同组人 其他人
数值:4 read 2 write 1 execute
chmod 465 目录/文件 该目录/文件拥有者只读,同组人可读可写,其他人可读可执行
chmod 664 目录/文件 该目录/文件可读可写,同组人可读可写,其他人只读
9. cp 复制文件,目录
1)cp 源文件 目标文件
目标文件不存在,则复制并改名
目标文件存在,则覆盖
2)cp 源文件1 源文件2 目标目录
目标目录存在,则将源文件复制到目标目录(名字不变)
目标目录不存在,相当于下面的情况
3)cp -r 源目录1 源目录2 目标目录
目标目录存在,则将源目录及子集都复制过去
目标目录不存在,相当于复制源目录并改名为目标目录名
4)若源文件/源目录不存在,则复制失败
5)-i 用于提示当文件/目录已存在时,是否覆盖。-r也可合起来使用。
10.mv 移动文件或目录
1)移动:将源文件内容粘贴过去,并删除源文件
2)mv 源文件 目标文件
目标文件存在,覆盖操作
目标文件不存在,移动操作,若在同一级则为改名操作
3)mv 源文件1 源文件2 目标目录
目标目录存在,移动到目标目录
目标目录不存在,相当于 mv 源文件 目标文件
4)mv 源目录1 源目录2 目标目录
目标目录存在,则将源目录移动到目标目录
目标目录不存在,则移动失败
5)若源文件/源目录不存在,则移动失败
6)-i 用于提示当文件/目录已存在时,是否覆盖。
11. rm 删除文件和目录 rmdir 删除空目录
1)rm 文件1 文件2 删除文件
2)rm -i 文件1 文件2 提示是否删除,几个文件对应提示几次
3)rmdir 空目录1 空目录2 只能删除空目录(没有-i选项)
4)rm -r 文件1 空目录2 非空目录3 都能删除(文件,空目录,非空目录)
12. man 解释说明命令(API)
空格键:一屏一屏的显示
b:回滚到上一屏
f:下一屏
enter:一行一行的显示
/string 要查找的字符串 如:/a
n:查找下一个相关的字符串
q:退出
man -keyword:根据关键字查找命令 如:查找touch: man -keyword tou
六、元字符:
1.定义:具备一定特殊意义的字符,可以代替一些内容
2.作用:简化字符串 模糊匹配
3.字符: ~ *
4. ~代表家目录
5. *代表0到多个字符(任意数量的任意字符)
eg:
ab* ab开头的文件或目录
a*c 以a开头,c结尾的文件或目录
注:后缀名属于文件名
a*c.txt 以a开头,c.txt结尾的文件
*.txt 以.txt结尾的文件
6. ?代表单个字符有且只有一个字符,占位符(单个任意字符)
eg:
*a?c 以c结尾,倒数第三个字符是a的文件
7.[]一系列字符匹配单个字符
touch link1.txt link2.txt n.txt k.txt
ls *link*.txt 得出:link1.txt link2.txt
ls *[link]*.txt 得出:link1.txt link2.txt n.txt k.txt
ls [linka].txt 得出:n.txt k.txt a.txt
注:匹配到中括号中一个单个字符的文件
8. ;连接多条命令,命令之间没有关系
date;cal;pwd
date:显示当前日期
cal:显示当前月份的日历
cal 2017 显示对应年的所有月份日历
cal 4 2017 显示对应年份的月份的日历
七与输入输出有关命令
1. |管道命令 前一个命令的输入作为下一个命令的输入
通常与more同用 more:分屏显示
ls -l /etc| more
2.>>,>,<,重定向命令
>重定向输出 覆盖
>>重定向输出 追加
<重定向输入
标准输出--屏幕
标准输入--键盘
和cat连用
cat -n 显示行数
cat /etc/passwd > a.txt
将文件内容不再显示到屏幕中,而是放在指定文件中,
且将信息内容放到文件中会覆盖
sudo cat /etc/shadow >> a.txt
将文件内容不再显示到屏幕上,而是放在指定文件中,
且将信息内容放到文件中会追加
cat /dev/null > a.txt 清空a.txt
/dev/null 黑洞文件,放不进去东西,也拿不出来东西
3. :是个空操作
:>a.txt 清空a.txt
4. more 分屏显示
空格键:一屏一屏的显示
b:回滚到上一屏
f:下一屏
enter:一行一行的显示
/string 要查找的字符串 如:/a
n:查找下一个相关的字符串
q:退出
八. vi编辑器
1)vi 打开或创建文件
2)vi使用了两种状态,一是命令态,另一是插入态。
Esc回到命令态
i,a,o 进入插入态
3)i 在光标当前位置插入
a 在光标所在位置后插入
o 在光标所在行下插入一空行
4)存档及退出
:w 存盘 write
:w newfile 存成新文件
:wq 存盘退出Vi(或ZZ,或:x)
:q! 强行退出不存盘
5)删除
x 删除一个字符
dw 删除当前词
3dw 删除三个词
dd 删除当前行
5dd 删除五行
:5,10d 删除5-10行(删除了6行)
6)修改
r 替换一个字符
cw 替换一个单词
cc 替换一行
C 替换从光标至行尾
7)复制粘贴
yw 拷贝词
yy 拷贝行(或Y) nyy
p 当前行下粘贴
:1,2co3 拷贝行1,行2在行3之后(复制1-2行)
:.,.+5co.+6 拷贝当前行到当前行的下5行都复制到当前行下第6行下
:4,5m6 移动行4到行5在行6之后
8)特殊:
~ 改变大小写
J 把当前行和下一行连起来
u 废除刚才的编辑操作(undo)(不能连续)
:set nu 显示行代码 (:set nonu)
:2 光标停在指定行
2G 光标停在指定行 (G 到文件尾,1G 到文件头(数字1))
/串 从当前行往下查找
?串 从当前行往上查找
n 查找继续
:r file2 在光标所在位置插入另一个文件
. 重复上一个操作
:1,$s/旧串/新串/g (数字1) 替换全文(或 :%s/旧串/新串/g)
:1,$s/ 1表示文件开头,$表示文件末尾 1,$表示所有,1,$s表示所有字符
9)移动
G到文件尾 ,1G到文件头,NG光标移动到N行, gg移动到第一行
1$光标移动到光标所在行的行尾
2$光标所在行的下一行行尾
0光标所在行的行首
上:k nk向上移动n行
下:j nj向下移动n行
左:h nh向左移动n行
右:l nl 向右移动n行