1.command [-options] parmeter1 parmeter2...
(1)一行命令中第一个输出的绝对是“命令”或“可执行文件”
(2)【】并不存在于实际的命令中,加入参数设置时,通常是‘-’,例如“-h”。
(3)加入完整参数名称时,输入--符号,例如“--help”
(4)parmeter1 parmeter2... 为依附options或command的参数
(5)command,-options,parmeter1...它们之间用空格分隔,不论空几格,shell视为一格。
2.命令行太长的时候可以用\符号来转义enter符号,使命令连续到下一行。注意:\后立即接特殊字符
3.date +%H:%M (查看时间)
4.tab接在一串命令的第一个字的后面,则为“命令补全”
5..tab接在一串命令的第二个字的后面,则为“文件补齐”
6.ctrl+c:中断当前命令或程序。
7.ctrl+d:表示键盘输入=exit,可以直接退出
8.man page常见数字含义
(1)用户可以操作的命令或可执行文件
(2)系统核心可调用的函数与工具
(3)一些常用的函数与函数库
(4)设备文件说明
(5)设置文件或某些文件的格式
(6)游戏
(7)惯例与协议等,例如Linux标准文件系统、网络协议等说明内容
(8)系统管理员可用的管理命令
(9)与内核有关的文件
- man page 的组成部分
(1)NAME 简短的命令、数据名称说明
(2)SYNOPSIS 简短命令语法简介
(3)DESCRIPTION较为完整的说明,这部分最好仔细看
(4)OPTIONS 针对SYNOPSIS部分中,列举说明所有可用的参数
(5)COMMANDS当这个程序在执行的时候,可以在此程序中发出的命令
(6)FILES这个程序或数据所使用、参考或链接的某些文件
(7)SEE ALSO与这个命令或数据相关的其他参考说明4
(8)EXAMPLE一些可参考的范例
(9)BUGS是否有相关的错误
10.info page----------tab在节点之间移动,有节点的地方通常由*显示
11.关机--shutdown的常用参数
(1)-t sec :-t后加秒数,表示过几秒关机
(2)-k:不要真的关机,只是发送警告讯息出去
(3)-r : 在将系统服务停掉后就重新开机
(4)-h :将系统的服务停掉后立即关机
(5)-n :不经过init程序,直接以shutdown的功能来关机
(6)-f :开机并关机之后,强制略过fsck的磁盘检查
(7)-c : 取消已经在进行的shutdown指令内容
例如:shutdown -h +10 10分钟之后关机
shutdown -r now
(8)reboot 与shutdown -r now几乎相同
(9)halt
(10)poweroff
注:在执行这些命令前,最好多执行几次sync,将内存的内容写入到硬盘。
=========================================================
1.用户与用户组:
只能自己访问,其他均不可访问: -rwx----
组二不能访问组一内的用户: -rwxrwx---
组一允许组二内用户的访问:-rwxrwxrwx
2.Linux文件权限
drwxr-xr-x 2 root root 3072 Apr 23 11:22 bin
档案属性 连结数 拥有者 所属群组 文件容量 修改日期 文件名
drwxr-xr-x解析:rwx是文档拥有者的权限,r-x同组用户的权限,r-x其他用户对该文档的权限
目录的属性意义:
1.r可读:具有读取目录结构清单的权限,当用户具有读取一个目录的权限时,使用ls这个指令就能将目录的内容列表显示出来。
2.w可写:
(1)建立新的文档
(2)删除已存在的档案或目录(不论该档案或目录属于谁)
(3)将已存在的档案或目录重命名
(4)改变该目录内的档案、目录位置。
3.x可执行:与能否进入该目录有关
3.第二栏表示连结占有的节点(i-node):
这个跟链接档(link file)比较有关系。如果是目录的话,第二栏的这个数字与该目录下有多少目录有关(这个数字包括当前目录,上一级目录和当前目录所包含的目录所占用的节点数的总和)
注:第七栏为这个档案的档名,如果档名前多了一个 . 则表示这个档案为隐藏文件。
4.linux系统中的文件的7种类型:---ls -l 来显示个档案的属性
- 普通文件:数据格式文件(cat不能读取)、二进制文件、长文本文件
d 目录文件
l 链接文件 /dev/cdrom
c 字符设备文件 /dev/sg0
b 块设备文件 /dev/sr0
s 套接字文件 /run/systemd/journal/dev-log
p 管道文件 sudo mkfifo /dev/fifo :解决多个程序所访问一个文件所造成的错误
如何改变文档权限?-----如果要连目录下所有目录或档案同时更改档案属性的话,直接加上-r的参数。
5.chmod 命令是用来修改当前文件的权限操作;
格式: chmod mode xxx
例子: chmod 0444 xxx ///将xxx文件的权限中只保留读权限
chmod u+w xxx ///给当前用户单独赋写权限
chmod g+x xxx ///给当前组用户单独赋执行权限
chmod o+r xxx ///给其他用户单独赋读权限
chmod u-r xxx ///取消当前用户的读权限
注意: 一旦权限修改,可能影响文件的读写,一般只在当前家目录操作
特列: root用户不受权限影响
6.chown 命令是用来修改当前文件的用户属主操作;---改变文档所属人
格式: chown user xxx
例子: chown root xxx
注意: 修改属主的目标如果比当前用户身份高级别可能需要管理员权限
sudo chown root d.c
特例:一次可以使用chown将用户和组全部修改
chown root:root xxx ///同时修改用户和组为root
7.chgrp 命令用于修改当前文件的组用户属主操作;
格式: chgrp group xxx
例子: chgrp root xxx
注意:权限可能受限,提权操作加 sudo
=========================================================
1.Linux扩展名与Windows的区别:
(1)Linux档案能不能被执行,与他的第一个属性和文件内容有关,与文件名无关。
(2)Windows下的exe,bat,com都是可执行文件。
*.sh:批文件处理文档,因为它使用shell编写,所以后缀名编成 .sh
z 、.tar 、 .gz 、*zip 、 *tgz:经过打包的压缩档。
*.html 、 *.php:网页相关档案
*.pl:程序语言perl的文档
========================================================================
1.Linux中单一档案或目录的最大允许文件名为255个字符;
2.包含完整路径名称及目录(/)的完整路径名为4096个字符
3.Linux文件名的限制:一般设置Linux文件名最好避免一些特殊字符
Linux目录配置:FHS
(1)/etc开机与系统数据文件均在这个目录之下
(2)/bin ,/sbin,/usr/bin ,/usr/sbin :这是系统预设的执行文件的放置目录
(3)/usr/local:这是系统预设的让你安装你后来升级的套件的目录
(4)/home:这是系统将有账号的人的家目录设置的地方
(5)/var:www , ftp , db , mail , logmessage
(6)/usr/share/man , /usr/local/man :这两个目录为防止各类套件说明档的地方
Linux支持的文件系统
(1)lib/modules/'uname -r/kernel/fs
(2)Linux使用的文件系统由ext2 ,ext3,最新版本还支持reiserfs(基于平衡树结构的文件系统)
==============================================================
一、目录与路径
1.绝对路径:一定由根目录/写起
2.相对路径:不是由/写起,转换路径的时使用
注:(1). 表示当前所在目录
(2).. 上层目录
(3)- 表示前一个工作目录
(4)~代表自己的家目录
(5)~user 代表到user这个人的家目录
(6)su - 用户:登录另一个用户
二、目录的相关操作和路径变量
(1)cd 变换目录
(2)pwd 显示当前所在目录
(3)mkdir 建立一个新目录
(4)rmdir 删除一个里面是空的空目录
(5)环境变量PAYH :当我们执行一个指令的时候,系统会依照PATH定义的路径搜寻档案,先搜寻到的指令档案先被执行
mkdir [-mp] [目录名称]
-m:设定档案的权限,直接设定
-p:递归建立目录
rmdir [-p] [目录名称]
-p:递归删除上层的空目录
三、管理文件与目录:就是显示属性,复制,删除文件,移动文件或目录
(1)ls :显示档案名称、属性
(2)cp:拷贝文档---如果源文件多个则目标文件为目录
(3)rm:删除档案
(4)mv:移动档案
四、查看档案内容
cat 由第一行开始显示档案内容
tac 从最后一行显示,是cat倒写
nl 显示时候,顺道输出行号
more 一页一页的显示档案的内容
less 与more类似但是可以往前翻页
head只看头几行
tail只看尾几行
od 以二进制的方式读取档案内容
touch 修改文件时间与创建新文件
五、档案权限:冒险位
六、搜素档案或目录
(1)which 查看可执行档案的位置
(2)whereis 查看档案的位置
(3)locate 配合数据库查看档案的位置
(4)find 实际搜素硬盘去查询文件名称
=====================================================
vi文字处理器
(1)一般模式:控制光标的移动,删除单个、整行字,复制、粘贴
(2)编辑模式:可以输入字符
(3)指令模式:读取文件,存储文件搜素,取代等功能
编辑模式转到一般模式---esc
一般模式转到指令模式-----:/ ?
一般模式转到编辑模式-----i,o,a,r
注:
(1)i,I插入:i在目前的而光标所在处插入文字会向后退;I在首行插入
(2)a,A增加:a由光标所在的下一个字开始输入,已存在的文字会向后退;A由光标所在行的最后增加
(3)o,O插入新的一行:o从光标所在的下一行的首航驾驶输入文字;O从光标所在行的上一行输入文字
(4)r,R取代:r会取代光标所在的那一个字符;R会一直取代光标所在的文字,直到按下esc
(5)0:移动到这一行最前面
(6)$:移动到这一行最后面
(7)G:移动到这个文档的最后一行
(8)nG:n为数字,移动到这个档案的第n行
(9)gg:移动到这个档案的第一行,相当于1G
(10)n
(11)n
Windows中:复制CTRL+c,粘贴CTRL+v
Linux中:
(1)复制:
yy复制光标所在的一行
nyy复制光标所在的向下n行,eg:20yy复制20行
(2)粘贴:
p,P:p为复制的数据在光标下一行贴上,P则为贴在光标上一行
Windows中ctrl+z撤销,ctrl+f查找
Linux中:
(1)撤销:
u复原前一个动作
ctrl+r重做上一个动作
:e!将文档还原到最原始的状态
(2)查找:
/ word光标之后寻找一个字符串为word的字符串
?word光标之前寻找一个字符串为word的字符串
n重复前一个搜寻的动作
N反向进行前一个搜寻动作
Windows中删除:del , backspace
Linux中:
x:向后删除一个字符
X:向前删除一个字符
nx:向后删除n个字符
dd:删除光标所在的那一整行
ndd:删除光标所在向下n行,eg:20dd删除20行
d1G:删除光标所在到第一行的所有数据0
dG:删除光标所在到最后一行的所有数据
windows中替换:ctrl+h
Linux在指令模式下替换
(1):n1,n2s/word1/word2/g 在第n1与n2行之间寻找word1字符串,并替换为word2 g=global
(2):1,$s/word1/word2/g 从第一行到最后一行寻找word1字符串,并将该字符串替换为word2
(3):1,$s/word1/word2/gc 从第一行到最后一行寻找word1字符串,并将该字符串替换为word2,在取代之间提示是否确定
(4):%s/word1/word2/g 全文替换
Windows中保存:ctrl+s
Linux中保存:
(1):w 将编辑的数据写入硬盘档案中;
(2):w! 若档案属性为只读,强制写入档案-----与用户权限有关
Windows中另存为
Linux另存为:
(1):w filename将百年祭的数据存储成另一个档案
(2):n1,n2 w filename 将n1到n2的内容储存成filename这个档案
Linux中的退出:
(1):q 离开vi
(2):q! 曾修改过档案,又不想储存,使用!为强制离开不存储档案。
(3):wq 储存后离开,若为 :wq! 则为强制储存后退出离开
(4):x 保存并退出
Linux其他命令
(1):r [filename] 在编辑的数据中,读入另一个档案的数据。亦将 【filename】这个档案内容加到游标所在行后面
(2):set nu 显示行号,设定后,在每一行的前缀显示该行的行号
(3):set nonu 与 set nu 相反,取消行号
(4):!command 暂时离开vi,到指令列模式下执行command的显示结果
=========================================================
vim的附加功能可以进行块选择
(1)v 字符选择,将光标经过的地方反白选择。
(2)V 行选择,将光标经过的行反白选择
(3)ctrl+v 块选择,可以用长方形的方式选择数据
(4)y 复制反白的地方
(5)d 将反白的地方删除掉
使用vi打开多个文件----多文件编辑(不太好用,使用vim才好用点)
(1):n 编辑下一个文件
(2):N 编辑上一个文件
(3):files 列出当前vim打开的所有文件
多窗口功能(vim)
(1) :sp filename 打开一个新的窗口,如果加file,表示在新窗口打开一个新文件,否则表示两窗口同时打开一个文件
(2)ctrl+wj 先按ctrl不放,再按w后放开两键,再按j,则光标移动到下方窗口
(3)ctrl+wk 按键同上,光标移动到上方窗口
(4)ctrl+wq 保存退出
写C语言
gcc hello.c
./a.out
=================================================
Linux磁盘与文件系统管理
1.认识EXT2文件系统
(1)在硬盘上最小存储是扇区,每一个扇区能够存储512字节(B)的数据
(2)柱面是分区时的最小单位,分区就是记录了他的起始柱面和结束柱面,
(3)起始柱面和结束柱面的数据存储在MBR(主引导分区)中。
(4)MBR最多提供4个分区的记忆。
(5)为提高磁头的读取效率,使用了逻辑块(Block)的概念,1Block=2的n次方 扇区
(6)每个文件系统开始位置的那个块被称为超级块。超级块存储文件系统的大小、空的和满的块,以及其它信息。
(7)ext2规划处inode与Block来分别存储档案的属性(放在inode中)与档案的内容(放置在Block area当中)
Linux如何读取文件内容?
(1)目录:在Linux ext2文件系统建立一个目录时,ext2文件系统给该目录一个inode和至少一个block,inode记录目录属性,逻辑块记录这个目录下的文件或目录的相关性。
(2)文件:ext2至少给文件分配一个inode和相对与文件大小的块的数量。
(3)inode本身不记录文件名,仅记录文件的相关属性,文件名则记录在目录所属的块区域。
(4)使用dumpe2fs 查看inode等的信息
eg:/etc-----先读取根目录的inode-->根目录的数据区-->/etc的inode-->/etc的数据区
小结:ext2的几个特征:
(1)block与inode在格式化的时候就确定了。
(2)一个分区能够容纳的文件数与inode有关
(3)一个inode的大小为128(字节)B
(4)逻辑块为固定大小,一般为1024/2048/4096,块的大小决定于在初始化的时候根据分区所要存储文件类型
dumpe2fs /dev/sta1---第一个分区
为什么使用日志式文件系统?
注:ext2不是日志式文件系统万一写东西断电了,数据没有保存,开机会进行检查(e2fsck工具进行检查)
(1)当系统要写入一个档案的时候,会现在日志记录区块中记录:某个档案准备要写入磁盘了
(2)开始写入档案的权限与数据;
(3)开始更新matadata的数据;
(4)挖成数据与matadata的更新,在更新日志记录区块当中完成该档案的记录。
(1)Linux系统的运行方式:采取异步方式,读取一个文件时,将文件所在的块数据加载到内存中,如果文件数据被修改,在内存中的数据就被标记为“脏”,而磁盘中的数据还没有被修改,需要写入磁盘,以保证一致性
(2)载入点:必须是一个目录,不能是一个文件。
(3)Linux支持的文件系统查看cat /proc/filesystems 或ls -l /lib/modules/uname -r
/kernel/fs
文件系统的简单操作:
df [-ahikHTm][目录或文件名]
显示系统中当前磁盘的总容量、已使用容量和剩余容量的一些信息
参数:
-a:列出所有的文件系统,包括系统特有的Iproc等文件系统:-b:以Bytes为单位显示各文件系统
-k:以KBytes为单位显示各文件系统;
-m:以MBytes为单位显示各文件系统;
-h:以人们较易阅读的显示各文件系统;
-H:以M=1000K取 代M=1024K的进位方式;
-T:将分区的文件系统名称(例如ext3)显示出来:
-i:不用硬盘容量,而以inode的数量来显示