Unix.docx
《Unix.docx》由会员分享,可在线阅读,更多相关《Unix.docx(22页珍藏版)》请在冰豆网上搜索。
![Unix.docx](https://file1.bdocx.com/fileroot1/2023-1/31/f904870f-eb88-41a9-9167-11c9da4dcedc/f904870f-eb88-41a9-9167-11c9da4dcedc1.gif)
Unix
UNIX总结
zhaoxiang@
课程目标:
1、登录和退出Solaris/Unix操作系统
2、操作Solaris/Unix文件系统
3、创建、删除、查找文件和目录,并且改变它们的权限
4、熟练使用vi编辑器
5、掌握环境变量的配置
6、了解基本的网络命令
知识体系:
一、unix的两种登录方式:
控制台登录/远程登录
控制台登录(console):
也叫本地登录,一般是用图形方式登录,系统管理员。
远程登录(telnet):
访问同一个unix系统资源,我们是伪终端,一般用命令行方式登录,远程登录也有图形登录方式。
例:
telnet192.168.0.23
二、SolarisOS:
1、kernel(内核,驱动):
负责管理设备、内存、进程,负责系统程序和硬件的交互。
管理swapspace(交换空间),daemons(精灵进程,服务进程,后台进程),文件系统等等。
2、shell(外壳,命令解释器):
负责找命令并执行,为命令申请进程,
shell本身是文件
例:
windows的cmd。
linux里新建终端,相当于建了一个shell,在咱们的26服务器上默认的登录shell是csh
常用的shell:
bash和csh
区分:
bash提示符:
#超级用户$普通用户
csh提示符:
#超级用户%普通用户
bash支持历史命令(即用上下方向键可以翻阅以前所执行的命令)
csh的语法、环境变量等与sh是不兼容的
改变shell:
在命令行输入想要的shell回车,便可把当前的命令解释器改变为所需的shell
例:
Bourneshell(sh)的命令是:
sh
Bourne-againshell(bash)的命令是:
bash
Cshell(csh)的命令是:
csh
3、unix文件系统是一个树状结构
a).所有文件和目录都在一个统一的目录下
/:
根目录
b).都叫文件
普通文件
目录文件
....文件
c).目录:
存放其他文件与目录的地方
目录结构:
路径:
有目录构成文件的位置
/目录/目录/目录/目录
d).相对路径与绝对路径
绝对一定使用/开始
e).关于目录的约定:
/bin可执行程序
/sbin
/etc系统配置文件
/dev
/devices设备文件
/opt用户应用文件(完整)
/usr用户应用文件(非完整)
/lib库目录
/proc进程的信息文件
/home所有用户的主目录
/var经常改变的文件
特殊的临时文件
/var/adm/wtmpx所有用户登录的历史记录
last
/var/adm/utmpx所有在线用户的记录
who
绝对路径:
从根开始,既以斜线开始的路径称为绝对路径例:
/etc/passwd,绝对路径与当前目录无关
相对路径:
相对路径所指定的文件是相对于当前工作目录的,不是以斜线开始。
pwd:
查看当前工作目录,是个绝对路径
三、登录和退出:
1、login:
登录。
第一次登录时设置密码的要求:
必须为6--8位字符,且必须包含2个字母和1个数字或特殊字符,必须与登录ID不同,必须有三个字符与以前的密码不相同
passwd:
修改密码命令
步骤:
1、输入passwd命令回车
2、输入当前密码回车
3、输入新密码回车
4、重新输入新密码回车
2、exit:
退出当前shell,如果是loginshell,和logout一样,就会退出系统、失去连接
3、logout:
中断当前连接,这个命令只能那个在loginshell里使用,
bshell:
不支持logout
4、ctrl+d:
结束终端输入
unix是大小写敏感的,既严格区别大小写,路径分隔符为/.
Windows是大小写不敏感的,路径分隔符为\.
建议使用exit或ctrl+d
四、/etc/passwd文件
/etc/passwd文件里存放的是用户注册信息
查看文件内容用more命令:
例:
more/etc/passwd
得出的列表:
s081101:
x:
741:
1:
:
/user/sd0811/s081101:
/bin/csh
依次对应:
用户名:
密码占位符:
uid(系统唯一标号):
gid(组编号):
说明信息:
主目录:
loginshell
用户主目录(homedirectory):
系统为每个用户分配的,使每个用户都有自己的领地.
密码以加密形式放在/etc/shadow文件里
格式:
用户名:
加密之后的口令
Permissiondenied权限被否定
五、unix基本命令:
1、clear:
清屏命令
2、id:
返回uid,gid
3、cd:
改变当前工作目录,可以使绝对路径或相对路径
例:
cd/export/home/hiloo用绝对路径进入某一级目录
cdhome/hiloo使用相对路径进入某一级目录
cd返回到当前用户的主目录,但这个与环境变量有关
cd../..向上返回二级,即返回到父目录的父目录
cd..返回到父目录,即返回到上一级目录
cd~s081102使当前工作目录改变到用户名s081102的主目录,
bshell不支持这个命令,cshell和bash支持~
cd~/dir1改变到主目录的dir1目录下
.当前目录例:
cdopenlab和cd./openlab是等价的
..父目录
/根目录
4、ls:
查看文件和目录
ls-a:
显示隐藏文件,以点开头的文件。
例:
.cshrc.bash_profile
ls-R:
显示递归列表,把所有子目录全部展开
ls-t:
按时间顺序显示
ls-F:
显示文件类型,*表示可执行文件/表示目录@表示链接文件什么都没有表示普通文本文件
ls-l:
以长列表形式显示,按文件名顺序显示
ls-ld:
显示当前目录列表,也可以显示指定目录的权限,不指定目录时显示当前目录的权限
ls-lu按最后一次访问时间排序
ls-lt:
以长列表形式显示,按最后一次修改时间排序
-rwxr-xr-x4usernobody1024Feb2209:
20a.txt
文拥同其硬拥拥大最后一次文件名
件有组它接有有小修改时间
类者人人数者组
型权权权
限限限
文件类型:
d代表目录,l代表链接文件,-是普通文件
拥有者:
生成文件的人,权限最高,用u表示
同组人:
系统管理员分配的同组的一个或几个人,用g表示
其它人:
除拥有者,同组人外的人,用o表示
所有人:
包括拥有者、同组人及其它人,用a表示
对于文件来说:
硬链接数>=1
对于目录来说:
最小是2,子目录数=这个数-2,这个2就是.和..,
.代表自己,..代表父目录
用ASCII码文本显示文件信息可以用file,例:
file文件名
5、chmod:
改文件权限
你必须是文件的拥有者或root才能修改文件权限
chmod-R目录名修改目录的权限,包括目录下的所有文件
rwx-分别代表读、写、执行、没有权限
也可用数字421表示:
4---r,2---w,1---x
文件:
r可以使用more/cat
w可以使用vi
x可以把这个文件作为命令去运行
例:
运行一个脚本文件a.sh回车,a.sh就要有执行权限
目录:
r可以使用ls
w在这个目录底下可以创建文件(touch),删除文件(rm),
创建目录(mkdir),删除目录(rmdir)
x可以使用cd命令
目录的缺省权限是755
文件的缺省权限是644
chmodg-rfile1删除同组人对file1的读权限
chmoda=rwfile1所有人对file1有读写权限
chmoda+rwfile1给所有人加上file1的读写权限
chmod644file1拥有者有读写权限,同组人和其他人有读权限
6、touch:
创建新文件
如果文件不存在创建一个新的空文件(0字节),
如果文件存在则更新最后一次访问和修改的时间
语法:
touchfilename(s)例:
touchfile1
7、mkdir:
创建目录
格式:
mkdir[-p]目录名
mkdirdir1/dir2这条命令应该是mkdirdir1dir1/dir2
既必须先创建dir1,才能在dir1下面创建dir2
mkdirdir3dir4dir5在当前目录下创建这三个目录
mkdir~/games在主目录下创建games目录
mkdir-pdir6/dir7/dir8按照dir6/dir7/dir8的层次创建这三个目录,用-p这个选项就可以按层次创建目录
8、cp:
复制文件或目录,备份文件和目录
格式:
cp[-i]原文件名目标文件名
对原文件要有读权限,若目标文件不存在则要对它所在的目录有写权限,若目标文件存在则对目标文件要有写权限
cp[-i]多个原文件名目标文件名
cp-r原目录名目标目录名
cp-r多个目录名目标目录名
cpbeansapple这条命令的前提条件是要有beans文件,目标文件若存在则覆盖,不存在则创建
cpbeansappledir2把beans和apple这两个文件拷贝到dir2目录下
cp/etc/passwd.把/etc/passwd这个文件拷贝到自己的主目录,与umask设置有关。
若第一次做这条命令时,只要对当前目录有写权限就可以执行,因为会创建一个文件名为passwd的文件,
若第二次执行相同命令时,就要先把passwd这个文件的权限加上写权限,否则法执行。
cp–ibeansapple加上-i参数,若apple文件存在时,就会询问是否覆盖,增加交互
cp-rdir6dir6bak把dir6这个目录备份一份为dir6bak,
若dir6bak不存在时,则dir6bak的目录结构与dir6结构相同,
若目标目录存在时,拷贝以后原目录会作为目标目录的子目录
9、mv:
改名,移动文件或目录,mv比cp速度快,
mvapplebeans给apple改名,改为beans,
若目标文件或目录名不存在就是改名。
mvbeansdir3把beans这个文件移动到dir3的目录下
mvbeans..把beans这个文件移到上一级目录
10、rm&rmdir:
rm删除文件,要求对这个文件所在的目录要有写权限
rmapplebeans删除这两个文件
touchapplebeans
chmod444apple把apple改为只读文件
rmapple这时再删除只读文件时会有交互,询问是否要删除
chmod444beans
rm-fbeans加-f选项,强制删除只读文件
touchfile1
rm-ifile1加-i选项的话,无论这个文件是什么权限,都会增加交互。
rmdir:
只能删除空目录
rm-rdir6删除只读目录会增加交互
rmdir-rfdir6强制删除目录
rmdir-ridir6删除这个目录时对里面的目录或文件每一个都增加交互
11、ln:
创建链接文件
(1)硬链接:
lnfile1file2file1和file2的硬链接数一样
(2)软链接:
ln-sfile1file2链接数不变,file2相当于file1的快捷方式,文件类型为l
区别:
硬链接的原文件只能是文件,软链接的原文件可以是文件或目录.
硬链接没有新建文件,增加了硬链接数,增加了inode的对应关系,
不能跨文件系统
软链接申请新的inode,软链接里存的是原文件的文件名,可以跨文件系统
ls-lii代表inode表,硬链接的inode是一样的.
inode节点:
保存除了文件名以外的这个文件的所有属性。
包括文件大小,类型,数据块,创建时间等等,i节点保存在inode表里,创建创建一个新文件,申请inode文件的datablock里保存的是文件的内容。
目录的datablock里:
子目录目录名和文件名与inode的对应关系
12、man:
查看帮助
manname查某一个命令
man–kkeyword把与这个关键字相关的命令都列出来
Spacebar向下翻屏
b退回
f前进
q退出
/string向前搜索与string相匹配的字符
n查找下一个与string匹配的字符
13、特殊字符:
(1)*通配符,0或多个
lsd*显示以d开头的
(2)?
通配符,表示任意1个字符
(3)[]集合匹配
[b-f]表示与b-f中的任意一个字符
(4);在一个命令行里可以输入多条命令,命令与命令之间用分号相隔
(5)date返回系统当前日期
(6)cal返回当月日历
cal200901显示2009年1月的日历
(7)pwd显示当前目录
例:
date;cal;pwd
(8)>输出重定向,重定向的是标准输出设备,
如果重定向的文件不存在则创建新文件,如果文件存在就会覆盖。
例:
cal>cal.lst把当前月的日历输出到cal.lst的文件里
cal122008>cal.lst把2008年12月份的日历输出到cal.lst这个文件里
cal>/dev/null把一个命令的输出扔掉
(9)<输入重定向
(10)>>把一个命令的输出追加到一个存在的文件里
(11)|管道,把一个命令的输出传给下一个命令,作为下一个命令的输入
例:
ls-l|more显示当前目录下所有文件或目录,分屏显示
ls-l/etc|more
cal112008|lp把2003年7月份的日历打印出来
(12)tee把结果输出到两个地方:
屏幕和文件
例ls-l|teetee.lst
tee-a追加到文件中
六、文本文件
1、查看文本文件
(1)cat:
不分屏,适合查看小文件,
可以把两个或多个小文件连接起来合并成一个大文件,经常用于合并文件
例:
echoa>file1
echob>file2
echoc>file3
catfile*>newfile把上面三个文件合并成一个文件
cat/dev/null>~/b.txt把>右边的文件置空datablock没有了,
字节变为0,但inode还在
cat/etc/passwd|awk-F:
'{print$1"\t"$6}'\
|sort>~/userinfo
冒号是/etc/passwd的分隔符,\是换行符,因为这条命令没有写完。
$1,$6表示这个文件的第1个字段,第6个字段。
cat回车,cat的标准输入设备是键盘,输准输出设备是屏幕
catf2.txt把f1.txt文件里的内容输出到f2.txt
(2)more:
查看文件内容,可分屏显示,适合查看大文件
按空格继续,底行显示:
---还有---(70%),表示已经显示了70%
2、显示文件
head显示一个文件的前10行
head-5/etc/passwd查看前5行
tail显示一个文件的尾10行
tail-f时时刷新,常用来查看日志文件,ctrl+c终止,
另一个终端向日志文件中追加。
例:
tail-fcal.lst
另一个终端:
cal32008>>cal.lst
3、编辑器:
Editorvi
命令模式:
输入的内容当做命令执行
编辑模式:
输入的内容为文件内容按Esc返回到命令模式
(1).启动vi编辑器
vi
vi不存在的文件名
vi存在文件名
(2).vi编辑器有三种模式:
命令模式
输入、编辑模式
命令模式->[a,i,o]->编辑模式->[Esc]->命令模式
(3).简单的底行命令
w文件//另存为
w//保存
q//退出
结合:
wq//保存退出
w!
//强制保存
w!
文件名//强制保存
q!
//强制退出
e文件名//编辑另外一个文件
sh切换shell行,使用ctrl+d回到编辑器
!
shell命令
(4).定位,然后文件操作:
新增,修改,替换,删除,拷贝
a.行列定位:
h前一列
j后一行
k前一行
l后一列
b.字符查找定位:
f+字符下一个字符
t+字符下一个字符前
c.单词定位
w下一个单词首字母
b上一个单词的首字母
e下一个单词的未字母
d.列定位
数字|
e.行定位
数字G
G末行
1G首行
f.行的特殊定位
0含空字符
^非空行首
$行尾
g.行间定位
+下一行的行首的非空白字符处
-上一行的行首的非空白字符处
注意与jk的区别
h.屏幕定位
H
M
L
i.页定位
ctrl+f向文件尾翻页
ctrl+b向文件头翻页
ctrl+d向文件尾翻半页
ctrl+u向文件头翻半页
ctrl+y向文件尾翻一行
ctrl+e向文件头翻一行
(5).增加:
a:
当前光标的下一个字符
i:
当前光标的字符
o:
添加新行的行首处
(6).删除:
删除字符x数字x
删除单词dw数字dw
删除行dd数字dd
(7).替换
替换字符r
替换单词cw
替换行cc
C替换光标后的行
(8).拷贝
单词拷贝yw数字yw
行拷贝yy数字yy
粘贴p
(9).剪切:
与删除一样
X/x
dw
dd
(10).J删除:
删除的是行尾的硬回车
~大小写切换
(11).查找:
/字符模式往尾巴查找
?
字符模式往头查找
n下一个
N上一个
(12).补充几个底行命令:
a.:
setnumbersetnu
:
setnonusetnonumber
b.与文件操作:
行定位:
:
行数
行拷贝:
开始行,结束行co目标位置
行移动:
开始行,结束行m目标位置
行删除:
开始行,结束行d
c.r
:
r文件名
d.替换
:
开始行,尾巴s/被替换的字符/要替换的字符/g
:
%s/../../g全文替换
补充:
拷贝:
行拷贝数字+yy
粘贴:
p
取消:
u
ZZ保存退出(命令模式)
七、一些查找命令
1、id:
查看当前用户有效身份
idroot查看root用户的有效身份
id-aroot查看root用户所属组
2、users显示登录的所有用户,只显示用户名,并且不换行
3、who显示登录到系统上的所有用户的信息
ww与who同等功能,只是w比who显示信息更详细
whoami显示登录的当前用户真实身份,
即在su后仍然显示登录用户的真实身份
whoami显示当前用户的有效身份,等同于id
4、find:
查找文件
格式:
find要寻找的路径查询条件
查询条件:
-name按文件名查找
-mtime按修改时间查找,-mtime10修改时间距今10天那天的文件,
-10表10天以内,+10表超过10天
-size+400表文件大小超过400个block,
一个block是512字节的文件,即200K
-print打印
-perm777权限是777的文件
-typef只查普通文件,
-atime+365访问时间超过一年的
find/export/home-typef-atime+365-execrm{}\;
找出符合条件的文件然后删掉,这个是从/export/home目录下找到最后一次访问时间是一年前的文件并删除。
若删除目录则用rmdir。
5、grep:
匹配字符
grep^d列出以d开头的目录
grep-i忽略大小写
grep-v否定形式,不包含字符串
greproot/etc/passwd从/etc/passwd这个文件中找出root字符串
ls-la|grep-i'dec1’查出包含隐藏文件在内的文件的详细信息,
并且-i忽略大小写与'nov1'匹配的记录
lsfile*|xargsgrepdd查出所有以file开始的文件,把查找的文件分隔以后传给grep去匹配xargs把一个整体分隔在文件里去找是否是dd的
6、wc统计文件:
wc-l以行为单位统计
who|grepopenlab|wc-l统计openlab这个用户登录了多少次
wc-w以单词为单位统计
wc-c以字母为单位统计
例:
grepwang/etc/passwd|wc-l
统计/etc/passwd这个文件中含有wang这个串的记录有多少条
7、du:
显示目录或文件所占磁盘空间大小
df-k看文件系统的使用情况,其中-k是以千字节的形式显示
du-k:
当前目录下和所有子目录空间占用情况(单位block=512k)
//-k以千字节方式显示.
du-s显示指定目录所占磁盘大小
du-ks统计当前目录的大小
8、ps:
显示进程,一个正在运行