linux学习摘记.docx
《linux学习摘记.docx》由会员分享,可在线阅读,更多相关《linux学习摘记.docx(11页珍藏版)》请在冰点文库上搜索。
linux学习摘记
Linux
一、sudo命令
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。
这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性。
Sudo不是对shell的一个代替,它是面向每个命令的。
它的特性主要有这样几点:
§Sudo能够限制用户只在某台主机上运行某些命令。
§Sudo提供了丰富的日志,详细地记录了每个用户干了什么。
它能够将日志传到中心主机或者日志服务器。
§Sudo使用时间戳文件来执行类似的“检票”系统。
当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。
§Sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。
它所存放的位置默认是在/etc/sudoers,属性必须为0440。
二、热键Tab、Ctrl-c、Ctrl-d
【Tab】:
命令补全与文件补齐(连续按两次)。
【Tab】接在一串命令的第一个命令的后面,则为“命令补全“。
【Tab】接在一串命令的第二个命令以后时,则为“文件补齐“。
【Ctrl-c】:
中断目前程序(正在运行的)。
【Ctrl-d】:
通常代表键盘输入结束,它也可以替代exit的输入。
三、man文档中出现在命令后面的数字所代表的的意义
代号
代表的内容
1
用户在shell环境中可以操作的命令或可执行文件
2
系统内核可调用的函数与工具等
3
一些常用的函数与函数库,大部分是C的函数库
4
设备文件的说明,通常在/dev下的文件
5
配置文件或者是某些文件的格式
6
游戏
7
惯例与协议,例如linux文件系统、网络协议等
8
系统管理员可用的管理命令
9
跟kernel有关的文件
四、在man里常用按键
按键
进行的工作
/string
向下查询string字符串
?
string
向上查询string字符串
n,N
查询时,下一个,上一个
q
结束退出
(1)man–fstring:
查找与string有关的帮助文档所在文件
例如:
man-fls
ls
(1)-listdirectorycontents
此时可以输入:
man1ls进行查看
(2)man-kstring:
在系统说明文件中,只要有string这个关键字就会被列出来。
例如:
man-kwhat
w
(1)-Showwhoisloggedonandwhattheyaredoing.
w.procps
(1)-Showwhoisloggedonandwhattheyaredoing.
whatis
(1)-displaymanualpagedescriptions
五、正确的关机相关命令
(1)数据同步写入磁盘:
sync
在关机前多使用,比较好。
(2)shutdown
用法:
shutdown[-tsec][-arkhncfF]时间[警告信息]
-tsec:
过几秒后关机
-k:
不要真的关机,只是发送警告信息出去
-r:
在将系统的服务停掉之后就重启
-h:
将系统服务停掉后,立即关机
-n:
不经过init程序,直接以shutdown的功能来关机
-f:
关机并开机后,强制略过fsck的磁盘检查
-F:
系统重启之后,强制进行fcsk的磁盘检查
-c:
取消已经在进行的shutdown命令的内容
时间:
这是一定要加的参数。
指定系统关机的时间
举例:
(1)Shutdown–hnow立刻关机
(2)Shutdown–h20:
25系统在今天的20:
25分关机,如果过了,则隔天执行
(3)Shutdown–h+10系统过十分钟后自动关机
(4)Shutdown–rnow系统立刻重启
(5)Shutdown–r+30‘thesystemwillreboot’再过30分钟系统重启,并显示后面的消息给所有在线的用户
(6)Shutdown–know‘thesystemwillreboot’仅发出警告信件的参数,系统并不会关机
(3)重启、关机:
reboot,halt,poweroff
(4)切换执行等级:
init
总共7种等级,知道下面四种即可
Runlevel0:
关机
Runlevel3:
纯命令行模式
Runlevel5:
含有图形界面模式
Runlevel6:
重启
Init0:
关机
六、文件类型
(1)【d】:
目录
(2)【-】:
普通文件
(3)【l】:
连接文件
(4)【b】:
设备文件里面的可供存储的接口设备,可查看/dev/sda
(5)【c】:
设备文件里面的串行端口设备,例如:
键盘、鼠标(一次性读取设备)
(6)【s】:
socket(套接字)文件
(7)【p】:
管道(FIFO,pipe)文件,主要目的在解决多个程序同时访问一个文件所造成的错误问题。
7、目录权限和文件权限的区别
目录权限
【r】:
可以读取目录的文件名列表
【w】:
新建、删除、重命名、转移目录或文件
【x】:
进入该目录
文件权限
【r】:
读取文件内容
【w】:
修改文件内容,但不能删除文件
【x】:
执行该文件
8、FSH(目录配置标准)定义的目录
可分享的
不可分享的
不变的
/usr(软件放置处)
/etc(配置文件)
/opt(第三方软件)
/boot(开机与内核文件)
可变动的
/var/email(用户邮件箱)
/var/run(程序相关)
/var/spool/news(新闻组)
/var/lock(程序相关)
/(root,根目录):
与开机系统有关
/usr(UNIXsoftwareresource):
与软件安装/执行相关
/var(variable):
与系统运作过程有关
FSH建议:
根目录所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一分区内,保持跟目录越小越好。
如此不但性能较好,根目录所在的文件系统也较不容易发生问题。
9、Linux下rename命令(有问题)
rename[-v][-n][-f]perlexpr[files]
-v,–verboseVerbose:
printnamesoffilessuccessfullyrenamed.
-n,–no-actNoAction:
showwhatfileswouldhavebeenrenamed.
-f,–forceForce:
overwriteexistingfiles.
简单的rename使用命令:
字母的替换:
rename“s/AA/aa/”*//把文件名中的AA替换成aa
修改文件的后缀:
rename“s/\.html/\.php/”*//把.html后缀的改成.php后缀
批量添加文件后缀:
rename“s/$/\.txt/”*//把所有的文件名都以txt结尾
批量删除文件名:
rename“s/\.txt//”*//把所有以.txt结尾的文件名的.txt删掉
批量修改大小写:
rename‘tr/A-Z/a-z/’*//把所有文件名中的大写改为小写
10、文件内容查看命令
有cat、tac(从最后几行显示)、nl(显示的时候输出行号)、more、less、head、tail、od(以二进制方式读取)。
11、文件时间修改或创建新文件:
touch
(1)modificationtime(mtime)
当该文件的内容修改时,就会更新这个时间。
内容指的是文件的内容而不是文件的属性或权限。
(2)staustime(ctime)
当该文件的状态改变时,就会更新这个时间。
例如属性和权限被改了。
(3)accesstime(atime)
当该文件的内容被取用时,就会更新这个读取时间。
例如说:
用cat去查看某个文件时,就会更新。
注:
Ls默认显示出文件的mtime
Touch最常用为:
(1)创建空文件
(2)将某个文件日期改为目前日期(mtime和ctime)
12、umask命令
取消某些权限的意思。
例如002,就是取消其它用户的写权限。
13、命令与文件的查询
(1)which(寻找“执行文件”)
这个命令式根据PATH这个环境变量所规范的路径去查询“执行文件”的文件名。
(2)whereis(寻找特定文件)
whereis[options]file
Options:
-fdefinesearchscope规定文件搜索范围
-bsearchonlybinaries只找二进制文件
-Bdefinebinarieslookuppath确定二进制文件搜索路径
-msearchonlymanualpaths只找在说明文件manual路径下的文件
-Mdefinemanlookuppath
-ssearchonlysourcespath只找源文件
-Sdefinesourceslookuppath
-usearchfromunusualenties搜索其他特殊文件
(3)locate(依据(/var/lib/mlocate/mlocate的内容,找出用户输入的文件名)
用法:
locate[OPTION]...[PATTERN]...
在mlocate数据库中搜索条目.
-b,--basename匹配唯一的路径名称的基本文件名
-c,--count只显示找到条目的号码
-d,--databaseDBPATH用DBPATH替代默认的数据库(/var/lib/mlocate/mlocate.db)
-e,--existing只显示当前存在的文件条目
-L,--follow当文件存在时跟随蔓延的符号链接(默认)
-i,--ignore-case匹配模式时忽略大小写区别
-l,--limit,-nLIMIT限制为LIMIT项目的输出(或计数)
-m,--mmap忽略向后兼容性
-P,--nofollow,-H当检查文件时不跟随蔓延的符号
链接
-0,--null输出时以NUL分隔项目
-S,--statistics不搜索项目,显示有关每个已用数据库的统计信息
-r,--regexpREGEXP搜索基本正则表达式REGEXP来代替模式
--regex模式是扩展正则表达式
-s,--stdio忽略向后兼容性
-w,--wholename匹配完整路径名(默认)
Locate寻找数据是由以创建的数据库/var/lib/mlocate/里面的数据所查到的,所以很快,但是有一定的限制,因为数据库的创建默认是每天执行一次,所以当你新建文件后查找该文件就找不到,因为必须更新数据库。
更新locate数据库的方法非常简单,直接输入updatedb就可以。
(4)find
Find【path】【option】【action】
参数:
(1)与时间相关的参数:
有-atime、-ctime与-mtime,下面以-mtime说明。
-mtimen:
n为数字,意义为在n天之前的“一天之内”被更改过的文件,代表n~n+1那一天的;
-mtime+n:
列出在n天前(不包含n天本身)被更改过的文件,代表大于等于n+1天前;
-mtime-n:
列出在n天内(含n天本身)被更改过的文件名,代表小于等于4天内;
-newerfile:
file为一个存在的文件,列出比file还要新的文件。
(2)与用户或用户组名有关的参数:
-uidn:
n为数字,这个数字是用户的账号ID,即UID,这个UID记录在/etc/passwd里面与账号名称对应的数字。
-gidn:
n为数字,这个数字是用户组名的ID,即GID,这个GID记录在/etc/group中。
-username:
name为用户账号名称。
-groupname:
name为用户组名。
-nouser:
寻找文件的所有者不在etc/passwd的人
-nogroup:
寻找文件的所有用户组不在etc/group中的文件
(3)与文件权限及名称有关的参数:
-namefilename:
查找文件名为filename的文件。
-size[+-]size:
查找比size大(+)或小(-)的文件。
这个size的规格有:
c代表byte,k代表1024bytes。
例如“-size+50k”。
-typeTYPE:
查找文件类型为TYPE的,有f、d、b、c、l、s、p等文件类型。
-permmode:
查找文件权限等于mode的文件。
例如:
“-perm755”。
-perm-mode:
查找权限包含mode的文件。
-perm+mode:
查找权限包含任一mode的权限的文件。
例如“-perm+755时,文件权限为-rw-------的文件也会被列出来”。
(4)其它可进行的操作:
-execcommand:
command为其它命令,-exec后面可接其它命令来处理查找到的结果。
例如:
find/-perm+7000-execls-l{}\;
其中:
{}代表的是“find找到的内容”;-exec一直到“\;”是关键字,代表find额外命令的开始(-exec)到结束(\;);如果你要找的文件是具有特殊属性的,例如SUID、文件所有者、文件大小等,那么利用locate是没办法查找的。
此时find很重要。
另外,find还可以利用通配符来查找文件,例如:
find/etc-name‘*httpd*’查找文件名包含httpd的文件。
14、linux文件系统(索引式文件系统)
superblock:
记录此文件系统的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息等;
inode:
记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码;
block:
实际记录文件的内容,若文件太大时,会占用多个block。
15、磁盘与目录的容量
df:
列出文件系统的整体磁盘使用量;
du:
评估文件系统的磁盘使用量(常用于评估目录所占容量);
16、连接文件:
ln
(1)hardlink:
(硬连接或实际连接)
只是在某目录下新建一条文件名连接到某inode号码的关联记录而已,即多个文件名指向同一个文件,不产生新文件,编辑任何一个“文件名”都会作用于那个实际的文件,比较安全,因为你删除一个“文件名”,其实inode和block还在。
它不会增加inode也不会消耗block的数量。
但硬连接只能在单一文件系统中进行,不能跨文件系统。
且不能连接到目录,只能作用于文件。
例如:
ln.txtt为s.txt创建硬连接t
323377-rw-rw-r--2yuanyuan07月2816:
41s.txt
323377-rw-rw-r--2yuanyuan07月2816:
41t
可看出inode相同,即同一个文件。
(2)symboliclink:
(符号连接,也即是快捷方式)
就是在创建一个独立的文件,而这个文件会让数据的读取指向它连接的那个文件的文件名。
当源文件被删除后,符号链接的文件就找不到源文件了。
会占用inode和block。
例如:
ln–ss.txtt为s.txt创建快捷方式
323377-rw-rw-r--1yuanyuan07月2816:
41s.txt
323404lrwxrwxrwx1yuanyuan57月2816:
44t->s.txt
可以看出两者inode不同,t指向s.txt。
这两个文件独立存在,而且连接文件的重要内容就是它会写上目标文件的“文件名”,连接文件的大小是“目标文件名的长度,一个英文一个byte”。
新建一个目录,新目录的连接数为2,而上层目录的连接数会增加1,因为新建/tmp/testing时,会有3个东西:
/tmp/testing、/tmp/testing/.、/tmp/testing/..,其中/tmp/testing与/tmp/testing/.相同,/tmp/testing/..代表/tmp这个目录。
17、系统分区:
fdiskmkfs
18、磁盘检验:
fsckbadblocks
19、磁盘挂载与卸载
单一文件系统不应该被重复挂载在不同的挂载点(目录)中;
单一目录不应该重复改在多个文件系统;
作为挂载点的目录理论上应该都是空目录才是;
20、磁盘参数修改:
mknode2labeltune2fshdparm