(完整)详细linux学习笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、linux文件系统
linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。
文件系统树状结构如下:
/ 根目录
┏━━━┳━━━┳━━━┳━━┳━━━┳━━┳━━┳━━┳━━━┳━━━━━┳
━━┓
bin home dev etc lib sbin tmp usr var lost+found root
linux采用的是树型结构。
最上层是根目录,其他的所有目录都是从根目录出发而生成的。
微软的DOS和windows也是采用树型结构,但是在DOS和windows中这样的树型结构
的根是磁盘分区的盘符,有几个分区就有几个树型结构,他们之间的关系是并列的。
但是
在linux中,无论操作系统管理几个磁盘分区,这样的目录树只有一个。
从结构上讲,各
个磁盘分区上的树型目录不一定是并列的。
下面列出linux的一些主要目录的功用
/bin:存放用户命令文件。
/home:存放用户主目录文件。
/dev:存放设备特殊文件。
/etc:存放系统管理和配置文件。
/etc/rc.d:存放启动的配置文件和脚本
/lib:存放标准程序设计库,又叫动态链接共享库。
类似windows里的.dll文件
/sbin:存放系统管理命令。
/tmp:存放公用的临时文件存储点。
/root:存放系统管理员的用户文件。
/mnt:存放让用户临时挂载其他的文件系统。
/lost+found:用于存放系统非正常关机产生的零散文件。
/proc:存放虚拟的目录,是系统内存的映射。
/var:存放某些大文件的溢出区,比方说各种服务的日志文件。
/usr:存放最庞大的目录,要用到的应用程序和文件几乎都在这个目录。
Linux内核支持十多种不同类型的文件系统,对于Red Hat Linux,系统默认使用ext2或ext3和swap文件系统,下面对Linux常用的文件系统作一个简单介绍。
ext2、ext3与swap文件系统介绍:
ext是第一个专门为Linux设计的文件系统类型,称为扩展文件系统,在Linux发展的早期,起过重要的作用。
由于稳定性,速度和兼容性方面存在许多缺陷,ext现已很少使用。
ext2是为解决ext文件系统存在的缺陷而设计的可扩展、高性能的文件系统,称为二级扩
展文件系统。
ext2于1993年发布,在速度和CPU利用率上具有较突出的优势,是
GNU/Linux系统中标准的文件系统,支持256个字节的长文件名,文件存取性能极好。
ext3是ext2的升级版本,兼容ext2,在ext2的基础上,增加了文件系统日志记录功能,称为日志式文件系统。
日志式文件系统在因断电或其他异常事件而停机重启后,操作系统会
根据文件系统的日志,快速检测并恢复文件系统到正常的状态,并可提高系统的恢复时间,
提高数据的安全性。
若对数据有较高安全性要求,建议使用ext3文件系统。
swap文件系统用于Linux的交换分区。
在Linux中,使用整个交换分区来提供虚拟内存,其分区大小一般应是系统物理内存的2倍,在安装Linux操作系统时,就应创分交换分区,它是Linux正常运行所必需的,其类型必须是swap,交换分区由操作系统自行管理。
二、linux命令介绍
1. 查看linux版本信息
1) uname –a
2) lsb_release –a
3) cat /proc/version
4) cat /etc/issue
2. ls 列出当前目录内容
格式:ls [选项] 目录或文件名
-a:列出隐藏目录和文件。
-c:按文件最后修改时间排序。
-t:按最后修改的时间排序(新的在前,旧的在后)。
-l:列出文件或目录的详细信息。
1) ls -al:以详细方式列出所有文件。
2) ll:同ls -l类似
3) ls /boot直接显示boot目录下文件信息
4) ls / 显示根目录信息
5) ls -R 递归显示所有目录
6) ls –ltr查看目录的所有文件信息(包括权限信息,同时排序)
3. pwd 列出当前用户所在目录路径
格式:pwd
1) pwd:显示当前路径。
4. cd更改当前目录路径。
1) cd: 返回到当前用户的主目录。
注意cd后面紧跟冒号
2) cd .. 返回到当前目录的上一层目录,例当前目录为/home/user,使用该命令后将当前的目录返回到/home下。
注意cd后面有空格。
3) cd ~ 返回到当前用户的主目录,适合任何用户。
4) cd / 返回到根目录/目录。
5) cd ../..返回到当前目录的父目录,cd ../../..返回当前目录的父目录的父目录,该命令可以类推。
5. mkdir 创建目录
格式:mkdir [选项] 目录名
-m:数字设置目录权限。
-p:创建父目录并创建子目录。
1) mkdir -p li/document 如果li目录不存在,则创建li目录和document目录。
6. rmdir 删除空目录
格式:rmdir [选项] 目录名
1) rmdir –pv link/doc:删除指定目录和该目录的祖先目录(路径中的目录必须非空,只要有任何一级目录不为空,则删除目录就会失败)
rm -rfv:递归删除目录(r表示递归删除目录及其内容,f表示ignore nonexistent files, never prompt,v表示详细显示进行的步骤)
7. cp 复制目录或文件
格式:cp [选项] 源文件目录目标文件目录
-a:复制目录时保持文件属性。
-f:目标文件存在时,则不加提示的覆盖目标文件。
-i:目标文件存在时,则会让用户输入"Y"来确认是否覆盖。
-r:若源是一个目录,那么cp将递归复制该目录下所有子目录和文件。
1) cp -arf:递归复制该目录下的所有子目录和文件,且不加提示,同时保持文件属性。
8. mv 移动或重命名文件或目录
格式:mv [选项] 源文件目录目标文件目录
-f:覆盖目标文件时不加提示。
-i:交互式操作,覆盖时询问。
1) mv –vf test2 test3将test2文件名修改为test3,且打印出详细信息。
2) mv –vf mulu2 mulu1将mulu2移动到mulu1中,且打印出详细信息。
9. rm 删除文件或目录
格式:rm [选项] 文件目录名
-f:删除时不加提示。
-r:删除目录包括子目录。
-i:交互式删除。
1) rm –rf 文件或者文件夹名称:删除该目录以及子目录,且忽略不存在的文件。
2) rm –rfv doc1:删除该目录以及子目录,且忽略不存在的文件,同时打印出详细信息。
10. cat 显示文件
格式:cat [选项] 文件名
11. vi 全屏幕编辑器
格式:vi [参数] [文件]
1) 重复操作命令
Ctrl+r:重做上一个动作。
(常用)
2) 撤销命令
u:复原前一个动作。
(常用)
3) 进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次编辑
4) 移动光标类命令
h 或向左方向键(←):光标左移一个字符
l 或向右方向键(→):光标右移一个字符
k 或向上方向键(↑)或Ctrl+p :光标向上移动一行
j 或向下方向键(↓)或Ctrl+n :光标向下移动一行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
G:光标移至文件最后一行首
gg:光标移至第一行首
nG:光标移至第n行首
space:光标右移一个字符
Backspace:光标左移一个字符
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字j至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
5) 屏幕翻滚类命令
Ctrl+b;向文件首翻一屏
Ctrl+f:向文件尾翻一屏
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
6) 插入文本类命令
Esc:退出插入命令使用其他命令
i,I:在目前的光标所在处插入输入之文字,已存在的文字会向后
a,A:a 为从目前光标所在的下一个字符处开始插入, A 为从光标所在行的最后一个字符处开始插入。
(常用)
o,O:o 为在目前光标所在的下一行处插入新的一行,O 为在目前光标所在处的上一行插入新的一行!(常用)
r,R:r替换当前字符,R替换当前字符及其后的字符,直至按ESC键
s,S:从当前光标位置处开始,以输入的文本替代指定数目的字符,S删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
7) 删除命令
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本
dd:删除游标所在的那一整列(常用)
ndd:n 为数字。
删除光标所在的向下n 列,例如20dd 则是删除20 列(常用)
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
8) 复制命令
yy:复制游标所在的那一行(常用)
nyy:n 为数字。
复制光标所在的向下n 列,例如20yy 则是复制20 列(常用)
y1G:复制光标所在列到第一列的所有数据
yG:复制光标所在列到最后一列的所有数据
y0:复制光标所在的那个字符到该行行首的所有数据
y$:复制光标所在的那个字符到该行行尾的所有数据
p, P:p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!举例来说,我目前光标在第20 行,且已经复制了10 行数据。
则按下p 后,那10 行数据会贴在原本的20 行之后,亦即由21 行开始贴。
但如果是按下P 呢?那么原本的第20 行会被推到变成30 行。
(常用)
9) 搜索及替换命令
/pattern:从光标开始处从上到下搜索pattern
pattern:从光标开始处从下到上搜索pattern
n:在同一方向重复上一次搜索命令
ddp:上下两行的内容互换
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
:1,$s/word1/word2/g:n1 与n2 为数字。
在第n1 与n2 行之间寻找word1 这个字符
串,并将该字符串取代为word2 !举例来说,在100 到200 行之间搜寻vbird 并取代为VBIRD 则:『:100,200s/vbird/VBIRD/g』。
(常用)
:1,$s/word1/word2/g:从第一行到最后一行寻找word1 字符串,并将该字符串取代为word2 !(常用)
:1,$s/word1/word2/gc:从第一行到最后一行寻找word1 字符串,并将该字符串取代为word2 !且在取代前显示提示字符给使用者确认(conform) 是否需要取代!(常用)
10) 最后行方式命令
:w :保存当前文件
:x :保存当前文件并退出
:q :退出vi
:q! :不保存文件并退出vi
:wq! :强制写入并保存(前提是当前用户有权限改变文件写入权限)
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:e filename:打开文件filename进行编辑
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指
定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行。
12. grep 在文本中搜索指定的字符串
格式:grep [options] [pattern] [文件]
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
[pattern]主要参数:
\:忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求。
:所有的单个字符。
* :有字符,长度可以为0。
1) grep –i [要搜索的字符串] [要搜索的文件],注意i表示忽略大小写。
例如:grep –i wo test.txt
2) grep –l [要搜索的字符串] [要搜索的文件],注意l表示列出匹配的文件名。
例如:grep -l wo test.txt
3) grep ^th test.txt,在test.txt中搜索以th开头的行
4) grep "145608157732696" reso* 在以reso开头的resourcePool.log文件中查找其内容包含145608157732696的文件
5)
13. find 在目录中查找
格式:find pathname -options [-print -exec -ok ...]
Pathname: find命令所查找的目录路径。
例如用.来表示当前目录,用/来表示系统根目录。
Option参数:
-name 按照文件名查找文件。
-perm 按照文件权限来查找文件。
-prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth 选项,那么-prune将被find命令忽略。
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-mtime -n +n 按照文件的更改时间来查找文件,- n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。
find命令还有-atime和-ctime 选项,但它们都和-m time选项。
-nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。
-type 查找某一类型的文件,诸如:b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件
/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
-print:find命令将匹配的文件输出到标准输出。
-exec:find命令对匹配的文件执行该参数所给出的shell命令。
相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
1) find :
14. more 分页显示文件
格式:more [选项] 文件名
+n:从第n行开始显示。
-n:定义屏幕大小为n行。
-c:从顶部清屏显示。
-d:提示"Press space to continue,q to quit"(按空格键继续,按q退出)。
显示文件2行
head 输出文件开头部分
格式:head [-n]
-n:显示文件从第n行开始显示,默认显示前10行
chmod 设置文件或目录的权限
格式:chmod [选项] 权限范围文件或目录名
-c:当发生改变时,报告处理信息。
-f:错误信息不输出。
-R:处理指定目录及子目录下的所有文件。
-v:运行时显示详细信息。
权限对应关系
--- 0 表示没有任何权限
-x- 1 表示有执行权限
-w- 2 表示有写入权限
-r- 4 表示有只读权限
chmod 777 a.txt 表示用户所有者及其他组和用户拥有该文件的全部权限。
chmod 755 a.txt 表示用户所有者拥有全部权限,其他组和用户拥有该文件只读和执行权限。
chown 改变文件的拥有者或群组
格式:chown [选项] 用户或组群文件名
chown test:test file.txt 改变文件的用户和组信息
chown test:file.txt 改变文件的用户和组信息
chown :root file.txt 改变文件的组信息
15. du 显示目录或文件所占的磁盘空间
格式:du [选项] 文件目录名
-a:显示所有文件大小。
-b:以字节单位显示文件大小。
-c:显示目录或文件的总和。
-h:以便于用户阅读的方式显示结果。
> 输出重定向
>将输出到屏幕信息重定向到文件中,如果重定向的文件不存在,则自动创建,如果文件存在则覆盖文件。
>>将新添加的数据追加到文件文件的尾部,以避免文件被覆盖。
<< 附加输入重定向
格式:<< [字符]
16. df -h 查看各分区使用情况
格式:df [options] [pattern] [文件]
1) df -h 查看各分区使用情况
17. hostname 查看服务器ip
1) hostname –i查看主机IP
2) hostname查看主机名
18. env查看环境变量
19. ps –ef查看进程
1) ps –ef | grep dbm 查看包含dbm字符串的进程
20. ifconfig查看所有网络接口的属性
21. chmod权限修改
chmod命令用于修改文件的权限,一般来说文件的创建者拥有修改文件权限的能力。
文件
权限分为3中:一种是文件属主权限,另一种是同组用户权限,最后一种是其他用户权限。
权限的描述形式一般为:-rwxr-xr-x或者drwxr-xr-x。
权限若已-开头,则表示该资源为文件,若为d开头,则表示该资源为目录。
除了开头字符外,后面的9为字符中每3个字符为一组,共3组,第一组为文件属主权限,第二组为同组用户权限,第三组为其他用户权限。
r代表读权限(对应的数字为4),w代表写权限(对应数字为2),x代表为执行权限
(对应数字为1)。
我们通常用命令“chmod 755 文件名”来修改文件的权限,那么755这个数字与rwxr-xr-x
是什么对应关系呢?我们可以这样看,将rwxr-xr-x分为3组,rwx、r-x、r-x。
然后根据
r、w、x这3个字母对应的数字,对rwxr-xr-x字符串进行翻译,得到的结果为4214-14-
1。
然后我们将4214-14-1又分为3组,421、4-1、4-1,每3个数字进行相加,得到
7、5、5(其中-字符忽略不计)。
解释到这,我想大家都应该看明白了。
那么如果我们想
将一个文件的权限设置为,属主能够读写执行,同组用户和其他用户只能读,那么我们可
以这样修改权限。
命令为:chmod 744 文件名。
1) chmod 755 属主可以读写执行,其他用户只能读、执行
2) chmod 777赋予所有用户所有权限
22. 常用的Linux命令
1) uname -a 查看内核/操作系统/CPU信息
2) head -n 1 /etc/issue 查看操作系统版本
3) cat /proc/cpuinfo 查看CPU信息
4) lsmod
lsmod 列出加载的内核模块
free -m 查看内存使用量和交换区使用量
du -sh 查看指定目录的大小
grep MemTotal /proc/meminfo 查看内存总量
grep MemFree /proc/meminfo 查看空闲内存量
5) uptime 查看系统运行时间、用户数、负载
cat /proc/loadavg 查看系统负载磁盘和分区。