1、在Linux系统当中,每个设备都被当成一个文件对待。几乎所有的硬件设备文件都在/dev这个目录下。(IDE硬盘/dev/hd[a-d]有主从设备之分;SATA、USB /dev/sd[a-p],没有固定顺序)
2、命令格式:[用户名@主机名 ~]$ command [-options]parameter1 parameter2…
Command 必须是命令或者可执行文件
区分大小写
-options:-h是缩写,也可是--help全写
3、基础指令:
指令 | date | cal | bc |
用法 | 查看日期 +%Y/%m/%d指定输出格式;--date=“”的用途很广;+%s指的是距1970/01/01的秒数 | 显示日历 cal [month] year | 计算器:进入计算器模式。quit退出。 scale=n可是是除法显示小数点后n位而不取整 |
故指令有两种模式:直接显示结果;进入另一种模式
4、热键:Ctrl+Alt+F1~F6进入命令模式(shell),称tty1-tty6终端;
Ctrl+Alt +F7退出命令模式到图形界面(X-Window)
Ctrl+Alt +t 打开通用终端
Tab键可补全指令或者补全文件
Ctrl+c中止正在运行的程序
Ctrl+d 代表键盘输入的结束,也可以等同exit来退出某种模式
5、man page:man 指令 用以查询指令的具体使用方法(man=manual),或查询与关键字有关的文件。
6、nano文本编辑器 【nano文件名】新建或打开一个文件,并可对其编辑;
^表示[Ctrl] M表示[Alt]
7、shutdown来关机——由于Linux关机是重要的操作,可能会影响其他用户对计算机的访问。故shutdown命令只能由root用户来操作。
设置root密码【sudo passwd root】
从普通用户切换到root:【sudosu】或者直接【su】;切换回普通用:【su 用户名】
【shutdown -h 时间(now +10 20:25) ‘警告消息’】 (执行关机)
立刻 10分钟后 到20:25
【shutdown -r 时间 ‘警告消息’ 】 (执行重启)
shutdown可以只是发出警告,来通知其他用户:【shutdown-k ‘警告消息’ 】
另外还有reboot(重启)、halt(挂起,加-p才关闭)、poweroff来重启或关机
8、Linux操作系统自从开始启动至启动完毕需要经历几个不同的阶段,这几个阶段就叫做runlevel(运行模式)。
0 Halt the system
1 Single user mode
2 Basic multi user mode
3 Multi user mode
5 Multi user mode with GUI
6 Reboot the system
在root下使用init 数字 来切换runlevel
9、文件权限很重要。分owner、group、others来区分不同用户。不同用户对文件操作权限不同rwx(read、write、execute)。
【ls(list)-al】列出文件及相关属性(文件所有者、权限、文件名等)
权限:- rwx r-x --- (第一个字符-表示文件、d表示目录…,后三组rwx(-)分别表示文件所有者、同用户组、非本用户组的权限,-表示无权限)
chgrp:改变文件所属用户组(change group)【chgrp [-R] 文件名/目录名】(-R表示进行递归,即连同子目录下的所有文件、目录)
chown:改变文件所有者 【chown[-R] 账号名称 文件或者目录】(也可用来改变文件所属用户组)
chmod:改变文件权限
【chmod [-R] xyz 文件或目录 】(r=4,w=2,x=1)xyz分别表示owner、group、others的权限属性和。如chmod 777 .bashrc 改变.bashrc文件的权限为rwxrwxrwx(.开头表示该文件时隐藏(implied)文件)
或者chmod [u=|+|-rwx, g=|+|-rwx,o=|+|-rwx,a=|+|-rwx] 文件或目录
user group others all
rwx对于文件: rwx对于目录:
r—读; r—读取目录结构,可以查询该目录下的文件名(属性无法查看);
w—写(没有删除权限); w—改变目录结构列表(新建、删除、重命名、转移)
x—被系统执行的权限; x—用户能否进入该目录成为工作目录(即能否切换到该目录下)
删除目录或文件还要看目录或文件所在目录的权限!
10、文件种类:
一般文件(-):即普通文件,纯文本文件(ASCII)、二进制文件(binary)、数据格式文件(data)。
目录文件(d)
连接文件(l):类似windows系统下的快捷方式;
设备文件:与系统外设及存储相关的文件。块设备文件(b),字符设备文件(c);
套接字(s):网络数据连接;
管道(p):FIFO(firstin first out),pipe主要用于解决多个程序同时访问一个文件造成的错误问题
11、绝对路径:由根目录(/)开始写起的文件名或者目录名称,如/home/dmtsai/.bashrc
相对路径:相对于目前路径的文件名写法,如./home/dmtsai或../../home/dmtsai——不是/开头的就是属于相对路径写法。
.:代表当前目录,也可用./表示;
..:代表上一层目录,也可用../表示;
-:代表前一个工作目录;
~:代表目前用户身份所在的主文件夹;
~account:代表account这个用户所在的主文件夹(account是账号名称);
12、路径切换cd
【cd [相对路径或绝对路径]】
cd ~用户名->切换到这个用户的主文件夹,即/home/用户名
cd ~ ->回到自己的主文件夹,即/root
cd ->回到自己的主文件夹
cd .. ->回到上一层目录
cd - ->回到前一个目录
显示目前所在的目录 pwd(print workingdirectory)
【pwd [-P]】 参数-P显示当前路径而非使用连接(link)路径;
新建目录mkdir
【mkdir [-mp] 目录名称】
-m:配置文件权限。直接设置,不需要看默认权限(umask)
mkdir –m 711test1 ç创建test1的同时设置其权限
-p:直接将所需的目录(包含上层目录)递归创建起来
mkdir –ptest2/test3/test4 ç同时创建多层目录
删除“空”目录rmdir
【rmdir [-p] 目录名称】 –p连同上层“空的”目录一起删除
rmdir –p test2/test3/test4 ç同时删除多层目录
若直接删除test2,则提示有误,因为test2下有目录,不为空
因为环境变量$PATH的存在,使得在不同路径下可以使用一些相同的指令(如ls),而有些指令不在指定路径下不能使用
13、查看文件与目录 ls
常用:ls -a 列出当前目录下全部文件,包括隐藏文件及. 与..这个两个目录
ls -A列出当前目录下全部文件,包括隐藏文件,不包括. 与..这个两个目录
ls -d 仅列出目录本身(即.)
ls -l 列出长数据串,包含文件属性与权限等数据,不包含隐藏文件
ls -al 是-a,-l的组合,列出全部文件目录并显示属性
ls结果中第一行的total指的是文件block的总数而不是文件个数
文件、目录复制cp 【复制文件(本身)、目录、文件链接(快捷方式)、对比文件更新】
cp [-adfilprsu] 源文件名 目标文件名(可以是新的命名)
cp [option] 源目录1源目录2…… 目的目录
-a :相当于-pdr
-d:如源文件为链接文件,则复制链接文件属性而非文件本身;
-p:连同文件属性一起复制——默认情况下复制文件会改变文件属性;
-r:递归复制,用于目录复制;
-i:当目标文件已存在时,在覆盖时先询问;
-l、-s是硬连接和软连接,分别复制文件本身(-)和产生连接文件(-l)
-u:比较新旧文件差异(存在差异)才复制(u=update);
root和普通用户对文件cp操作,存在差异。普通用户不能随意更改文件权限。
文件/目录删除 【rm [-fir] 文件或目录】
-f:force;-i:删除前询问;-r:递归删除(不需要目录为空--区别于rmdir)
文件移动【mv[-fiu] 源文件或者目录 目的目录】
【mv 原文件 新文件名】 可用来重命名文件——另有rename批量重命名
14、文件查看
直接查看cat(concatenate,从一行开始连续显示)
反向查看 tac(cat的反写,从最后一行开始显示)
显示行号 nl
翻页查看 more、less(一页一页翻看)
取开头几行查看head、末尾几行查看tail,查看非文本文件od
touch修改文件事件/创建空的文件
15、文件默认权限及隐藏属性
在创建新文件或者目录时,有其默认的属性:文件644(文件一般不需要x,也不给其他用户w)、目录755(目录的x不能随便赋予)
Umask是设置系统创建文件时的默认权限,是创建文件权限补码,对文件来说最大值是6。Umask设为为244,则创建的文件默认权限是422,文件的第一位是‘-’也就是-r---w--w-。
用umask查看默认的权限,并修改默认权限:
【umask 已减掉的权限值】(如002 u-0,g-0,o-2,即减掉w没有w权限,-0没有减掉)
另文件有隐藏属性:
a:文件只能增加数据,而不能删除也不能修改或移动;
i:文件不能删除、改名、写入或添加数据、设置连接;
chattr [+-=] [option] 文件或者目录名(root设置对文件的修改、删除权限)
lsattr查看隐藏文件属性(仅是隐藏属性)
文件特殊权限SUID(4)、SGID(2)、SBIT(1)(s或t取代权限中的x,有其特殊的含义P184-P186)这些特殊权限往往针对/usr/bin下的二进制程序,即命令。命令具备特殊权限时才能对文件或目录操作。例如passwd有SUID权限可操作/etc/passwd文件,而cat没有SUID权限则不能。
SUID只对文件有效,可是该文件(仅限二进制文件)被其他用户执行时(执行者必须具备x权限)暂时获得拥有者的权限;即owner权限中x用s表示。
SGID对文件或目录都有效。对于文件执行者在执行过程中会获得该程序用户组的支持;对于目录来说,用户在此目录下创建的新文件的用户组与此目录的用户组相同(而不是该用户所属的有效用户组)。
file查看文件类型(ASCII、data、binary 有没有用到动态函数库)
16、文件查找 which、where、locate、find
which查找的是执行文件(某个命令)所在的目录
where 查找特定文件(二进制文件、说明文件manual下的文件、source源文件、其他特殊文件)
locate 文件名 查找一般文件所在目录(whereis和locate都是在数据库文件下查找的,而数据库的创建默认一天执行一次,故当天新建或删除的文件查找会有误,需先updatedb)
find [PATH] [option] [action] 可以根据时间(mtime)来按条件查询、按用户条件查询(可查询用户下的所有文件)、按文件权限(-perm 权限)及名称(-name 文件名(可以使通用符’*’找含有某字母的文件))、文件类型或大小查询(-type 文件类型/-size 文件大小)
[action]是用来接另一个命令的,有-exec引导
find /-perm +7000 -exec ls -l {} \;——即将找到的结果放入{},再列出属性。\;是对”;”的转义。
17、文件系统(Ext2)
文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。
每个文件系统都有独立的inode、block、superblock。
inode记录文件或目录的属性(权限等)及文件数据所在的block的号码;block记录具体数据内容(文件名记录在block中而不是inode中);superblock记录整体信息(已用量、可用量)。每个inode和block都有编号,一个文件存放在一个或多个block中,由inode指向对应的block来找到对应的数据。同一个文件系统的某个inode只会对应一个文件内容而已,因此可以通过判断inode的编号来判断不同文件名是否为同一文件(【ls-ild 文件名或目录名】查看inode编号)。所以root下//. /..是同一个文件,因为挂载点都是/。
18、文件系统操作
【df[-options] [目录或文件名] 】列出文件系统的整体磁盘使用量,包括文件系统、总容量、已用和可用空间、挂载点;
【du[-options] 目录或文件名】列出文件容量;
连接文件分硬链接(hard link)、符号链接(symbolic link)。
硬连接【ln 文件名 目标目录或文件名】通过文件系统的inode产生新文件名而不是新的文件——链接文件与原文件的inode是同一个。删除任意一个文件另一个文件都还能使用(就像“复制”了一个文件一样)。只是修改了block里的关联数据。硬连接不能跨文件系统、不能连接目录(参数不能是目录)。文件属性是“-”。
若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软链接。
【ln -s 源文件 目标文件】(-s:symbolic。不加-s表示硬连接)符号连接即windows下的快捷方式。产生新的文件,占用新的inode。故如源文件删除,连接的文件就无法打开。(产生的新链接文件大小与源文件名字符数相等。)文件属性是“l”。可以是连接目录。
19、磁盘分区fdisk、格式化mkfs
【fdisk [-l] 设备名称】显示设备分区,可以对磁盘进行增加或删除分区。当插上U盘时【fdisk-l】指令可以查看U盘管道节点信息(分区方面信息)。
修改分区后一般要重启有效,但可用partprobe强制重新加载分区以对系统更新。
磁盘分区后要进行格式化:【mkfs [-text2/ext3等文件系统格式] 设备文件名】(也可以用能自定义参数的mke2fs指令)
磁盘检查fsck(file system check)检查磁盘是否错乱。
20、磁盘挂载与卸载
挂载:【mount [-option] 设备文件名(/dev/) 挂载点(目录)】
[-option]可以指定文件系统、文件权限、用Label来挂载、重挂载等。
不写任何参数【mount设备文件名 挂载点】(设备文件名可以先通过fdisk -l获得,挂载点是自定义的目录),默认挂载Ext2/Ext3文件系统
当需要重新挂载时,尤其是挂载在根目录下时(因为根目录不能被卸载)使用option中的-o remount。
用Label来挂载(而非设备名)即接入的磁盘的名称(如U盘名为SQQ,即为其label,用mount-l可以查看label)
挂载U盘等外接设备,要先卸载(umount)再拔出。
单一文件系统不应该重复挂载在不同的挂载点中;
单一目录不应该重复挂载多个文件系统;
作为挂载点目录时空目录最好——若非空,原来的文件会被暂时隐藏,当新分区被卸载后原来的内容才显现。
卸载:【umount [-fn] 设备文件名或挂载点】
若执行卸载命令是在该挂载目录将不能成功,此时应离开该目录再卸载。
另有一些修改磁盘参数的命令mknod(修改设备类型)、e2label(修改Label)、haparm(针对IDE接口的参数修改、或者测试cache、buffer的访问性能)。
挂载的信息记录到/etc/mtab与/proc/mounts两个文件中。可以对/etc/fstab添加数据来使开机时就挂载需要的文件系统,务必用mount -a测试语法是否正确。
用-o loop参数来挂载不刻录的镜像文件(.iso)和大型文件制作loop设备文件(dd大型文件->格式化->挂载,可以当做一个分区使用)。可以解决当只有一个/分区时,分区不足的情况——比如创建一个swap分区!
21、swap主要功能是当物理内存不足时,将某些内存中暂时不用的数据暂时移到swap中,让内存可以被需要的程序来使用。
系统安装好后也可划分swap区。用fdisk的添加分区功能或者dd的添加大文件添加分区,并格式化【mkswap 设备文件名】,查看free并加载swapon。
22、压缩与解压
文件压缩是通过算法将编码中的0略去,只记录1的个数
compress——*.Z(不常用)
gzip——*.gz
【gzip[-cdtv#]文件名】在默认状态下生成.gz的压缩文件后原文件会消失。-c参数,通过数据流重定向可以保留原文件。-d用来解压.gz文件(也可以解压有compress生成的.Z文件)。-#表示压缩等级。
zcat可以查看.gz文件(并未解压)。
bizp2——*.bz2
【bzip2[-cdkzv#]文件名】与gzip用法相似。可解压.bz,.bz2,tbz,tbz2等文件。用bzcat查看对应的压缩文件。bzip2 -d或bunzip2解压。
gzip和bzip2也可以对目录进行压缩,但是对目录内文件所有文件分别压缩。用tar将文件打包(同时压缩),其压缩包可在windows下的WinRAR识别!
【tar [-j|-z][p|P][cv] [-f 新建的文件名]filename】——打包并压缩
【tar [-j|-z] [tv] [-f 新建的文件名]】——查看被打包压缩的文件内容
【tar [-j|-z] [xv] [-f 要解压的文件名] [-C目录]】——拆包解压
-c新建打包文件
-j用bzip2压缩;-z用gzip压缩
-p|P是否保留/根目录(p时会在打包时将/丢掉,因为tar主要是备份数据,解压时若有/会覆盖原来的数据。)
-x拆包、解压;-C在解压要指定目录。
-f后直接跟新建的文件名(把-f参数放最后),可以是外接的存储设备名。
解压时可以选取压缩包内某特定文件解压“|grep‘关键字’”;
打包时可以不包含某些文件打包“--exclude=file”,如不压缩目录内已被压缩的文件;
备份比某时刻更新的文件--newer-mtime=“时间”;
23、备份与恢复
dump用来备份文件系统和目录,restore则用dump文件来恢复文件系统。
【dump[-Suvj][-level][-f 备份文件] 待备份数据】
dump可对文件系统进行差异备份:第一次备份为level 0全部备份,接下来的备份可只备份与原来不用的文件level1(0-9)。
dump对目录(非单一文件系统)则只能完全备份(level 0)——文件名可用.dump结尾。
【restore-t|-C|-i|-r [-f dumpfile]】-t|-C|-i|-r是几种模式,不能混用。
-t:查看dump文件;
-C:比较dump文件和源文件;
-i:互助模式,可部分还原;
-r:全部还原。
另有dd来备份整块分区或整块磁盘的文件
【dd if=“inputfile” of=“output file” bs=“blocksize” count=“number”】
if/of,即input file/ output file,也可以是设备。bs是一个block的大小。
dd用来备份:【dd if=要备份的文件 of=新建的备份文件】。需要还原时将of,if互换即可。
cpio配合find等查找命令来备份文件:
【find 文件或目录| cpio -ovcB > 新建的备份数据名】;
或将cpio的文件还原【cpio-ivcdu < [file|device]】。
23、光盘刻录
先将所需备份的数据构建成一个镜像文件(iso,类似于压缩包),利用mkisofs命令;
再将iso文件刻录至光盘或DVD,利用cdrecord命令处理。