兄弟连linux笔记.docx
《兄弟连linux笔记.docx》由会员分享,可在线阅读,更多相关《兄弟连linux笔记.docx(35页珍藏版)》请在冰豆网上搜索。
![兄弟连linux笔记.docx](https://file1.bdocx.com/fileroot1/2023-3/30/07a93738-a8b2-4aa1-ad16-6ceefd7b83fe/07a93738-a8b2-4aa1-ad16-6ceefd7b83fe1.gif)
兄弟连linux笔记
兄弟连Linux笔记
linux严格区分大小写,全都是小写,不论是命令还是文件名等等
liunx所有内容都以文件的形式保存,
硬盘文件是/dev/sd[a-p]
光盘文件是/dev/sr0等
lnux是通过操作文件来操作硬件的,命令都不是长久有效的,重启后无效,命令只是暂存内存
windows是直接操作硬件的
linux不以文件后缀扩展名来区分文件类型的,是靠权限的。
.html.php.sh(shall脚本),.gz(压缩包).cofig等等这些扩展名只是帮助管理员来识别的,但是对linux是可有可无的
windows的exe文件不能在linux上运行,也就是linux的安全原因,因为病毒没权限也运行不了,因为它是以权限识别文件的
linux的所有存储设备都必须挂载之后才能用,包括硬盘,u盘
sq
服务器管理和维护的建议
各目录作用
/bin/存放系统命令的目录,普通和超级用户都可以执行,不过放在/bin
下的命令在单用户模式下也可以执行
/sbin/保存和系统环境设置相关的命令,只有超级用户可以使用这些命令进行系统环境的设置,但是有些命令可以允许普通用户查看
/usr/bin/存放系统命令的目录,普通用户和超级用户都可以执行,这些命令和系统的启动无关,在单用户模式下不能执行
/usr/sbin/存放根文件的系统不必要的系统管理命令,例如多数服务程序。
只有超级用户可以使用。
(观察可知,所有sbin目录中的命令只有茶几用户可以使用,bin中所有用户都可以访问)
/boot/系统的启动目录,保存系统启动的相关文件,如内核文件和启动引导程序文件等
/dev/设备文件的保存位置。
我们已经说过linux中的所有内容以文件的形式保存,包括硬件,那么这个目录就是用来保存所有硬件设备的文件
/ect/配置文件的保存位置。
系统内多采用的默认安装方式(rmp安装)的服务配置文件全都保存在这个目录,如用户账号密码,服务的启动脚本,常用的服务配置文件等
备注:
单用户类似于windows的安全模式
前四个是存放的是命令的
空目录才才能作为挂载点
练习可以在tmp目录下练习,也可以自建,一般不要见太多目录,影响性能
/sur/系统软件资源
/var/动态数据保存位置,如缓存,日志,等
服务器注意事项:
远程服务器不允许关机,只能重启,断电了就连不上了!
重启时应该关闭服务
不要在服务器访问高峰期运行高负载命令(如大数据量的解压,压缩,大数据量的扫描等等一般在3点---5点访问比较少)
在配置防火墙的时候,不要把自己踢出服务器(防火墙就起过滤的作用,根据ip,端口等等来过滤,符合可以访问,没通过阻止访问)
指定合理的密码,指定定期更新
合理分配权限,分配权限越小越好,够用就好。
定期备份重要数据
4.1.1
命令格式
命令格式
命令【-选项】(调整命令功能的)【参数】(是操作的对象比如目录)例:
ls-la/etc
1.个别命令使用不遵循各式
2.有多个选项时,可以写在一起
3.简化选项与完整选项
目录处理命令ls
命令原意:
list
命令所在路径:
/bin/ls
执行权限:
所有用户
功能描述:
显示目录文件
语法:
ls选项【-add】
ls-a是显示所有的文件(包括隐藏文件)-a是all的意思
linux的隐藏文件是以‘.’点开头的
ls-l(-l的意思是long)是显示目录文件的相应信息(第一个信息先不说,第二个数字是文件的引用计数,第3个信息是文件的所有者(如root)所有者只有一个,所有者是可以改变的。
第4个信息是用户组,用户组可以使用,但不是文件的所有者,第五个信息是文件大小(以字节为单位不方便的话可以用-lh便可显示相应的单位,第6个信息是最后的修改时间,第7信息是文件名)
linux把用户分为了3类,所有者,用户组,其他人
目录前面是以d开头的,以l开头的是软连接,以-开头是文件
权限详解r读w写x执行
有权限用相应的字母表示,没有用-表示一般有读写权限就可以了,执行一般是需要时脚本运行
如:
-rw-------表示WOD这个文件所有者有读写的权限,用户组与其他的没有任何权限
ls-ld【目录】显示此目录的本身的信息而不显示下面的文件信息
ls-d查看目录下的所有目录
每个文件目录都有自己的id号及方便系统的索引(i节点)
ls-i查看文件的i节点
4.1.2
文件处理命令
命令名称:
mkdir
原意:
makedirectories
命令所在路径:
/bin/mkdir
执行权限:
所有用户
语法:
mkdir-p【目录名】
功能描述:
创建新目录-p表示递归创建
例:
mkdir/tmp/123但是mkdir/japan/123不行,因为japan不存在,便不能在其下创建子目录可以mkdir-p/japan/123加一个-p;并且是可以连续创建的。
如:
mkdir-p/japan/123mkdir-p/japan/234
目录处理命令cd
命令名称:
cd
原意:
changedirectory
命令所在路径:
shell内置命令
执行权限:
所有用户
语法:
cd【目录】
功能描述:
切换目录
范例:
cd/tmp/japan/134切换到指定目录
cd..回到上级目录
命令名称:
pwd
英文原意:
printworkingdirectory
命令所在路径:
/bin/pwd
执行权限:
所有用户
语法:
pwd
功能:
查询当前的目录的路径
范例:
pwd显示当前目录的路径
pwd..显示上级目录
pwd../..
命令名称:
rmdir
原意:
removeemptydirectories
命令所在路径:
bin/rmdir
执行权限:
所有用户
语法:
rmdir【目录名】
功能描述:
删除空目录(是空目录非空目录不能删除)
范例:
rmdir/tmp/japan/134
命令名称:
cp
原意:
copy
命令所在路径:
/bin/cp
执行权限:
所有用户
语法:
cp-rp【原文件或目录】【目标目录】
cp-r复制目录
cp-p保留文件属性(属性如:
文件最后修改时间,假使不想改变被复制文件的属性加-p)
功能描述:
复制文件或目录
范例:
cp-r/tmp/japan/123/root把目录/tmp/japan/123复制到root目录下
cp-rp/tmp/japan/123/tmp/japan/234/root将/tmp/japan目录下的123和234复制到root下并保持其属性
cp-r/tmp/japan/123/root/+把/tmp/japan/123复制到/root/并改名+
clear或ctrl+l清屏
命令名称:
mv
原意:
move
命令所在路径:
/bin/mv
执行权限:
所有用户
语法:
mv【原文件或目录】【目标目录】
功能描述:
剪切文件,改名
范例:
mv/tmp/123/root
mv/345/root把当前目录的345剪切到/root下,事前要确定你的当前目录有345这个目录
mv/tmp/japan/heheroot/japan/haha剪切并改名
mvhehehaha把hehe改为haha
命令名称:
rm
原意:
remove
命令所在行:
/bin/rm
执行权限:
所有用户
语法:
rm-rf【文件或目录】
-r删除目录(删除目录的时候要加,因为rm默认是删除文件的)
-f强制执行(不会询问你是否删除)
功能描述:
删除文件
删除文件之前最好先备份,删除重要文件之后,最好不要频繁的查找,复制等,以免最后难以找回数据
范例:
rm-rf/root/japan强制删除/root/japan这个目录,此时如果用rm-r的话,假使japan内有很多文件的话,会不停的询问你是否删除。
因此用rm-rf会避免麻烦
4.1.3
常用文件处理命令
命令名称:
touch
命令所在路径:
/bin/touch
执行权限:
touch【文件名】
功能描述:
创建空文件
范例:
touch
默认是在当前路径创建文件,指定的话要指定路径如touch/root/
文件的后缀名是没有什么用的,除了‘/’符号不能用,其他特殊符号基本都能用于文件的命名touchhehehaha创建了hehehaha两个文件
如果想创建“hehehaha”可以用双引号touch“hehehaha"但是不建议这样用,空格一般用于命令或参数的分隔符,因此不建议文件名中含有空格
命令名称:
cat
命令所在路径:
/bin/cat
执行权限:
所有用户
语法:
cat【文件名】
功能描述:
显示文件内容
-n显示符号,行号
范例:
cat/etc/issue(linux的欢迎文件)
cat-netc/services
但是当文件的内容比较长的时候,这个命令就不太适合了
可以用more命令来查看
命令名称:
tac
命令所在的路径:
/usr/bin/tac
执行权限:
所有用户
语法:
tac【文件名】
功能描述:
显示文件的内容(反向列示,即倒着显示)
范例:
tac/etc/issue
命令名称:
more
命令所在路径/bin/more
执行权限:
所有用户
语法:
more【文件名】
进入内容后
(空格)或f翻页
(enter)换行
q或Q退出
注意:
一旦翻下去就不能往回翻了,因此还有个命令less
功能描述:
分页显示文件的内容,用于文件内容比较长的
范例:
more/etc/services
命令名称:
less
命令所在路径:
/usr/bin/less
执行权限:
所有用户
语法:
less【文件名】
进入内容后
pageup按页往上翻pagedown往下翻页
上箭头按行往上翻下箭头按行往下翻页
还可以搜索/搜索关键词之后会把包含关键字变成白色背景(此时只在本页,按n的话会遍历整个文件内容的关键词)
功能描述:
分页显示文件内容(类似于more但是可向上翻页)
范例:
less/etc/services
命令名称:
head
命令所在路径:
/usr/bin/head
执行权限:
所有用户
语法:
head【文件名】
功能描述:
显示文件的前面几行-n指定行数默认是前10行
范例:
head-n20/etc/services
命令名称:
tail
命令所在路径:
/usr/bin/tail
执行权限:
所有用户
语法:
tail【文件名】
功能描述:
显示文件的后面几行默认是10行
-n指定行数
-f动态显示文件末尾的内容(即假使在这个命令打开日志文件的窗口,假使有新日志产生,屏幕会自动的更新末尾的数据显示)
范例:
tail-n18/etc/services
常用于监视apache的日志文件等等,不太常用
退出此状态ctrl+c
4.1.4
链接命令
软链接文件的作用类似于windows的快捷方式,指向了真实原文件的地址,软链接文件的权限是全部的-lrwxrwxrwx,实际的的权限决定于源文件的权限,只是一个符号链接
硬链接文件的信息和原文件的信息是一样的,就好像是cp-p命令的执行结果一样,只不过硬链接是同步更新的(改变原文件,硬链接文件也同时变化)即cp-p和同步更新;
软硬的区别:
删除原文件,软链接文件将失效,硬链接可以打开,因为硬链接相当于有备份的功能,硬链接是不能跨分区的(如ln/tmp/issue/boot/),软连接可以;硬链接不能应用于目录如:
ln/tmp/root/,
如何区分软硬链接呢ls-i
硬链接的i结点与原文件的i结点相同软链接与原文件的i结点不同。
由于每个文件只有一个i结点,用于系统对文件的管理,这里源文件与硬链接的i结点相同,也就能说明为什么改变源文件的内容时硬链接也会改变了,因为他们的i节点相同,系统是根据i结点来操作文件的
命令名称:
ln
原意:
link
命令所在路径:
/bin/ln
执行权限:
所有用户
语法:
ln-s【原文件】【目标文件】
-s创建软链接
功能描述:
生成链接文件
范例:
ln-s/etc/issue/tmp/创建文件/etc/issue的软链接/tmp/
ln/etc/issue/tmp/创建文件etc/issue的硬链接/tmp/
4.2.1权限管理命令
权限管理命令chmod
命令名称:
chmod
原意:
changethepermissionsmodeoffile
命令所在路径:
/bin/chmod
执行权限:
所有用户
语法:
chmod[{ugoa}{+-=}{rwx}][文件或目录]
u表示所有者g表示用户组o表示其他a表示全部+表示增加权限-表示减少权限=表示使用现在的权限
[mode=421][文件或目录]
-R递归修改(不递归的话,假使改一个目录的权限,他下面的子目录权限是不会改变的,加上-R的话会把目录下面的所有文件目录的权限也改变)
功能描述:
改变文件或目录
范例:
chmodu+x增加所有者的执行权限
chmodg+w,o-r可以多个操作增加用户组对的写权限,减少对其他用户的读权限
chmodg=rwx使用户组对文件有读写执行的权限而不管以前是什么权限,就是说+或-是在以前的基础上进行的,而=就是不管以前的是什么就赋予等号后面的权限
还有以下的方法,以上的不常用
权限的数字表示:
注意rwx的权限对文件和目录起的作用是不一样的
r-------4r权限意味着可以查看文件的内容,catmoreheadtailless
w------2w权限意味着只是可以对文件进行写入操作(注意要删文件的话,是要他的目录有w的权限)
x-------1x意味着可以执行文件
注意:
以上是rwx对文件权限的说明
r对目录可以是显示目录的文件ls
w是可以touchmkdirrmdirrm
x是可以打开目录cd
一般目录是rx权限共存的
例如:
rwxrw-r--前三个数字相加表示所有者的权限4+2+1=7,后面三个4+2=6,最后三位4+0+0=4,所以上面的权限相应的数字表示就是764
用数字的方法更改权限
范例:
更改的权限-rw-r-----
chmod640
********************************************************练习到此********************************************************
4.2.2
其他权限管理命令
命令名称:
chown
命令原意:
changefileownership
命令所在路径:
/bin/chown
执行权限:
所有用户
语法:
chown【用户】【文件或目录】
范例:
chownpengliang改变的所有者为penglinag
root和文件所有者可以改变文件的权限,
例如一个用户创建了一个文件,该文件的权限所有者和root都可以
注意:
文件所有者可以改变文件的权限,但是不能改变文件的所有者,只有root可以
useradd【用户名】添加普通用户
groupadd【用户组名】添加用户组
命令名称:
chgrp
原意:
changefilegroupownership
命令所在路径:
/bin/chgrp
执行权限:
所有用户
语法:
chgrp【用户组】【文件或目录】
功能描述:
改变文件或目录的所属组
范例:
chgrpdajiajapan改变文件japan的所属组为dajia
谁创建了文件谁就是文件的所有者,他的用户组就是他的缺省组,每个用户只能有一个缺省组,谁创建了文件,文件的用户组就是所有者的缺省组
当新建一个文件或目录是都有一个默认的权限,怎么样该默认权限呢
命令名称:
umask
原意:
theuserfile-creationmask
命令所在路径:
shell内置命令
执行权限:
所有用户
语法:
umask【-S】
-S以rwx形式显示新建文件缺省权限(即新建文件的默认权限)
功能描述:
显示,设置文件的缺省权限
范例:
umask-S
umask显示文件的默认权限的掩码
掩码详解:
比如umask命令后显示0022第一个0是特殊的权限先不管,022就是权限的掩码。
有什么用呢
可以计算出默认文件的权限,即777-022=755755就是-rwxr-xr-x
linux的任何新建文件都没有x权限,目录有,安全性方面的考虑
更改默认权限
范例:
比如要设置默认权限为754不能直接umask754可以计算掩码777-754=023
可以umask023
一般不要改默认的缺省权限,系统默认的就很好了系统默认是(755)
4.2.3文件搜索命令find
搜索会占用大量的资源,因此尽量在建文件的时候就规划好文件目录结构
不要再服务器高峰期的时候做搜索,搜索条件越精准越好
命令名称:
find
命令所在路径:
/bin/find
执行权限:
所有用户
语法:
find【搜索范围】【匹配条件】
功能描述:
文件搜索
范例:
find/etc-nameinit在/etc目录中查找文件init
find/etc-name*init*搜索/etc目录下的所有文件名含有init的文件(*是通配符)
find/etc-nameinit搜索init后面的跟三个字符的文件(匹配单个字符)
find/etc-inameinit搜索init文件不区分大小写
根据大小查找
find/-size+204800(LINUx中数据块是最小的单位,这里的单位是数据块,一个数据块为)在根目录下查大于100M的文件(+n大于-n小于n等于)
根据所有者来查找
find/home-usershenchao在/home下查找所有者为shenchao的文件
根据时间的属性来查找
-amin访问时间
-cmin文件属性
-mmin文件内容
find/etc-cmin-5在/etc下查找5分钟内被修改过属性的文件
find/etc-mmin-30在/etc下查找30分钟内被修改过内容的文件
稍微复杂的find
find/etc-size+163840-a-size-204800在/etc下查找大于80MB小于100MB的文件
-a两个条件同时满足(and)
-o两个条件满足任意一个即可(or)
find/etc-nameinittab-execls-l{}\
在/etc下查找inittab文件并显示其详细信息
-exec/-ok命令{}\;对搜索结果执行操作(\表示转义符,-ok会在执行前询问,-exec不会)
find/etc-nameinit*-a-exec-typefls-l{}\查找以init开头的文件,并显示其详细信息
-type根据类型查找
f文件d目录l软链接文件
find/etc-nameinit*-a-typef在/etc查找以init开头并且是文件
find/etc-nameinit*-a-typed在/etc下查找以init开头并且是目录
-inum根据结点查找文件
find.-inum31531-execrm{}\查找并删除i结点为31531的文件
4.3.2
命令名称:
locate
命令所在路径:
/usr/bin/locate
执行权限:
所有用户
语法:
locate文件名
功能描述:
在文件资料库中查找文件
范例:
locateinittab
速度比较快!
因为locate'在文件系统中维护着一个资料库,在/var/mlocate/
缺点:
假使新建的文件没有收录更新在库中就会找不到!
而find就不会
怎样更新用命令:
updatedb
此时便会被收录!
注意:
但是查找的文件在/tmp临时文件夹中,即使update也是找不到的。
locate-i不区分大小写查找
命令名称:
which
命令所在路径:
/usr/bin/which
执行权限:
所有用户
语法:
which命令
功能描述:
搜索命令所在目录及别名信息
范例:
whichls查找ls命令所在的路径
whichcp查找cp命令所在的目录
结果中的alias‘命令’=‘命令别名’
如:
whichcp查找cp命令所在的目录结果显示aliascp='cp-i'后面的cp-i就是cp的别名
命令名称:
grep
命令所在路径:
/bin/grep
执行权限:
所有用户
语法:
grep-iv【指定字串】【文件】
功能描述:
在文件中搜寻字串匹配的行并输出
-i不区分大小写
-v排除指定字串
范例:
grepmysql/root/
在linux中#表示注释行
grep-v^#/etc/inittab去掉以#开头的行,比如读取apache的配置文件时用,用来排除注释的干扰
文件搜索命令--帮助命令
命令名称:
man
原意:
manual
命令所在路径:
/usr/bin/man
执行权限:
所有用户
语法:
man【命令或配置文件】
功能描述:
获得帮助信息
范例:
manls查看ls的帮助信息
manservices查看配置文件的services的帮助信息(注意。
此处的配置文件不要加绝对路径,只要名称就可以了)就是查看配置文件的作用等
帮助类型的说明:
1表示命令说明
5表示文件说明
下面是一些查看命令或简短的作用
whatis【命令名称】查看ls命令的作用
apropos【配置文件名】查看配置文件的作用
【命令】--help列出命令的属性
如ls--help列出ls命令的属性(-a-l等)
man很有用,可以查看命令的格式等,不必强记
命令名称:
help
所在路径:
Shell内置命令
执行权限:
所有用户
语法:
help命令
功能描述:
获得Shell内置命令的帮助信息
范例:
helpumask查看umask命令的帮助信息
内置命令是没有路径的
如whichcd会找不到路径
manumask找不到umask的帮助信息,找到的是shell的帮助信息
helpumask可以找到umask的帮助信息
因此找不到shell命令的格式的话,可以help
网络命令
命令名称:
write
所在路径:
/usr/bin/write
执行权限:
所有用户
语法:
write用户名
功能描述:
给用户发消息,以ctrl+D结束保存
范例:
writeluogaorui
注意:
得用户在线才能发出去,用who查看
指令名称:
wall
原意:
writea