![]() |
![]() |
磁盘的种类主要是SCSI、IDE、以及现在流行的SATA等。
1.合理规划分区
2.文件系统的挂载
命令:
fdisk [必要参数][选择参数]
-l 列出所有分区表
-u 与"-l"搭配使用,显示分区数目
fsck [-sACVRP] [-t fstype] [--] [fsck-options] filesys [...] # fsck(英文全拼:file system check),利用fsck命令检查文件系统的正确性,并对linux磁盘进行修复。
df [选项]... [FILE]... # df(英文全拼:disk free)查看文件系统的磁盘空间占用情况。利用df命令可以获取硬盘被占用了多少空间,目前还有多少空间等信息,还可以获得文件的挂载位置。
-a, --all 包含所有的具有 0 Blocks 的文件系统
-i, --inodes 列出 inode 资讯,不列出已使用 block
-h, --human-readable 使用人类可读的格式(预设值是不加这个选项的...)
-T, 显示文件系统类型
-l, --local, 只显示本地文件系统使用状况
du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件] # du (英文全拼:disk usage)查看磁盘空间的使用情况。
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-k或--kilobytes 以1024 bytes为单位。
-s或--summarize 仅显示总计。
mkfs [-V] [-t fstype] [fs-options] filesys [blocks] # mkfs(英文全拼:make file system)命令用于在特定的分区上建立 linux 文件系统。
-t : 给定档案系统的型式,Linux 的预设值为 ext2
-f : 强制格式化。
例子:
fdisk -l # 显示当前分区情况。可以看到磁盘大小、扇区、扇区大小、分区类型等信息。
fsck -y /dev/vda3 # 这里检查分区vda3上是否有错误,如果有错误自动修复(-y参数为自动确认修复)。
df -ia # 列出各文件系统的占用情况、列出各文件系统的i节点使用情况、列出文件系统类型。
df -h # 显示已挂载的分区列表
du -ab # 以字节为单位列出当前目录下所有文件和目录的磁盘空间占用情况。
du -sh /boot # 估算/boot目录已经使用的空间。
du -sk * | sort -rn #工作目录为/var时,该命令以容量大小为依据依次从大到小显示/var目录中,文件和目录的大小
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n #以大小为依据依次显示已安装的rpm包所使用的空间。
lsblk # 列出所有可用块设备的信息。
umount /boot # vda1已经挂载在/boot上了,我们现在要卸下挂载。
mkfs -t xfs -f /dev/vda1 # 将vda1强制格式化为xfs格式。
mount /dev/vda1 /boot # 将vda1重新挂载到/boot目录
自动挂载:
修改/etc/fstab文件,使开机直接挂载vda1。
vi /etc/fstab
添加一行:
/dev/vda1 /boot xfs defaults 0 0
关机之后,再次开启就会自动挂载了。
备份的分类:备份可以分为系统备份和数据备份。
命令:
xfsdump [-L S_lable] [-M M_lable] [-l #] [-f 备份档] 待备份资料 # 用于备份文件系统
xfsdump -I
-L:xfsdump会记录每次备份的session标头,这里可以填写针对此文件系统的简易说明;
-M:xfsdump可以记录存储媒体的标头,这里可以填写此媒体的简易说明。
-l:是L的小写,就是指定等级,有0~9共10个等级,默认为0,即完整备份。
-f:有点类似tar,后面接产生的文件,也可以接例如/dev/st0设备文件名或其他一般文件文件名;
-I:大写的“i”,从/var/lib/xfsdump/inventory 列出目前备份的信息状态。
xfsrestore #把备份的文件系统还原
-I:大写的“i”跟xfsdump相同的输出!可查询备份数据,包括Label名称和备份时间等;
-f:后面接的就是备份文件!企业中很有可能会接/dev/st0等磁带机!
-L:可用“-I”查询到的数据。在这个选项后输入;
-s:需要接某特定目录,也能复原某一文件或目录;
-r:如果是用文件来存储备份数据,那这个就不需要使用。如果是一个磁盘内有多个文件,需要使用它来达成累积复原;
-i:进入互动模式(一般不需要)
rsync [OPTION]... SRC DEST # rsync是类unix系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。
-r, --recursive 对子目录以递归模式处理
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-p, --perms 保持文件权限
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-v, --verbose 详细模式输出
--delete 删除那些DST中SRC没有的文件
-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
-z, --compress 对备份的文件在传输时进行压缩处理
dd # 从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
if=file
从 file 中读而不是标准输入。
of=file
写到 file 里去而不是标准输出。除非指定 conv=notrunc ,否则, dd 将把 file 截为O字节(或由 seek= 选项指定的大小)
tar (英文全拼:tape archive )命令用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的
-P或--absolute-names 文件名使用绝对名称,不移除文件名称前的"/"号。
-u或--update 仅置换较备份文件内的文件更新的文件。
-f<备份文件>或--file=<备份文件> 指定备份文件。
-c或--create:建立新的备份文件。
-v或--verbose:显示指令执行过程。
-s或--same-order 还原文件的顺序和备份文件内的存放顺序相同。
例子:
xfsdump -f /2.bak /boot -L 2.bak -M media0 # 针对/boot目录进行非交互式备份。生成2.bak备份文件。
xfsrestore -f /2.bak /boot # 使用之前备份的文件/2.bak来还原/boot目录。
rsync -rogpav --delete /home /boot # 同步/home和/boot的目录。
rsync -rogpav -e ssh --delete /home 192.168.15.16:/tmp # 通过SSH,将操作机的/home目录同步到目标机(192.168.15.16)的/tmp。
rsync -az -e ssh --delete 192.168.15.16:/home /home # 通过ssh和压缩将目标机(192.168.15.16)的home目录同步到本地home目录中。
rsync -az -e ssh --delete /home 192.168.15.16:/home # 通过ssh和压缩将操作机的home目录同步到目标机home目录中。
dd if=/dev/vda1 of=/root/123 # 将/dev/vda1全盘数据备份到/root目录中,并命名为123
dd if=/root/123 of=/dev/vda1 # 将上一步备份的文件恢复到/dev/vda1中。
tar -Puf backup.tar /home # 使用tar命令对/home目录进行压缩备份,并将备份的文件命名为backup.tar。
tar cvfs - 1.txt | ssh 192.168.15.16 "cat >1.tar.gz" # 新建一个1.txt。并将它打包发送到目标机(192.168.15.16)中。
find /root -name '*.txt' | xargs cp -av --target-directory=/home --parents # 查找/root目录下所有后缀名为“.txt”的文件,并将其复制到/home目录中。
find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 # 查找/var/log目录中所有以 '.log' 结尾的文件并做成一个bzip包
文件系统层次:由上而下主要分为用户层、VFS层、文件系统层、缓存层、块设备层、磁盘驱动层、磁盘物理层
xfs的命令行工具:
例子:
badblocks -v /dev/vda1 # 检查磁盘vda1上的坏磁块 。
xfs_info /dev/vda1 # 查看xfs文件系统信息。
xfs_db -c frag -r /dev/vda1 # 查看vda1中文件系统碎片。
xfs_fsr /dev/vda1 # 整理碎片
xfs_repair /dev/vda1 #xfs文件系统不能用fsck命令修复,要用xfs_repair命令
e2fsck /dev/vda1 #e2fsck命令:检查,修复ext2文件系统的正确性
dumpe2fs /dev/vda1 # dumpe2fs命令:用于打印“ext2/ext3”文件系统的超级块和块组信息。
mke2fs -n /dev/vda1 #mke2fs命令:建立Linux系统使用的ext2或ext3文件系统。
命令:
tar 命令的参数:
-c或--create:建立新的备份文件。
-v或--verbose:显示指令执行过程。
-f<备份文件>或--file=<备份文件>:指定备份文件。
-x或--extract或--get:从备份文件中还原文件;
-j:支持bzip2解压文件;以.tar.bz2来作为tar包名
-z或--gzip或--ungzip:通过gzip指令处理备份文件;以.tar.gz或.tgz来代表gzip压缩过的tar包
-t或--list 列出备份文件的内容。
-C<目的目录>或--directory=<目的目录>:切换到指定的目录。
例子:
# Linux文件是不需要后缀名的,后缀名是为了方便用户快速知道这是个什么文件,比如压缩文件通常写为xx.tar.gz
# 注意下命令参数的顺序,j/z要放前面,不然会报一些奇怪的错。
创建一个bzip2格式的压缩包: tar -jcvf archive.tar.bz2 dir1
解压一个bzip2格式的压缩包 : tar -jxvf archive.tar.bz2
创建一个gzip格式的压缩包 : tar -zcvf archive.tar.gz dir1
解压一个gzip格式的压缩包: tar -zxvf archive.tar.gz
查阅tar包内有哪些文件(显示长格式,就是ll命令的那种效果):
查看bz2包: tar -jtvf file3.tar.bz2
查看gz包: tar -ztvf file3.tar.gz
查看包内容(只显示文件名): tar -tf oarchive.tar
释放包: tar -xvf oarchive.tar
解压文件: tar -xvf oarchive.tar -C /tmp
解压tar包文件到 /tmp目录下: tar -xvf oarchive.tar -C /tmp
linux文件特点:
命令:
修改文件权限:
chmod [-R] user mode filename
各参数含义:
user:指定更改权限的用户对象,分为4种类型u(user,文件的所以者)、g(group,文件所有者所在的组)、o(other,其他用户)、a(all,包含了上述3种用户)。
Mode:对指定用户的权限进行修改。可以在指定用户名后面使用+r、+w、+x来增加用户的权限,也可以使用-r、-w、-x来减小用户的权限,使用=r、=w、=x来指定用户的权限。
filename:操作文件后的目录名称。
R:递归修改子目录的文件。
创建用户组:
groupadd usergroup
创建用户user1到usergroup组中:
useradd -g usergroup user1
例子:
chmod o+w file。
chmod 755 file
创建用户:useradd test
添加密码:passwd test
修改文件的所有者:chown [-R] user filename
修改文件属于的组:chgrp [-R] groupname filename
命令:
find 命令 # 在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。
-type<文件类型>:只寻找符合指定的文件类型的文件;
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-perm<权限数值>:查找符合指定的权限数值的文件或目录;
-atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-exec<执行指令>:假设find指令的回传值为True,就执行该指令;
whereis 命令 #该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。
-b:只查找二进制文件;
-m:只查找说明文件;
-s:只查找原始代码文件;
locate 命令 和 slocate 命令 # 用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。
-i, --ignore-case -- 忽略大小写
which 命令 # 会在环境变量$PATH设置的目录里查找符合条件的文件。
-V:显示版本信息。
例子:
find / -name hongya1 #搜索文件
find /home/ -name \*.bin #在目录 '/ home/等目录' 中搜索带有'.bin' 结尾的文件
find /usr/bin/ -type f -atime +1 #搜索在过去1天内未被使用过的执行文件
find /usr/bin -type f -mtime -1 #搜索在1天内被创建或者修改过的执行文件
find /home/ -type f -perm 755 #当前/home目录下搜索出权限为755的文件。
find /home/ -name \*.rpm -exec chmod 755 '{}' \; #搜索文件并修改权限
whereis vim
只将二进制文件查找出来: whereis -b vim
查出说明文档路径: whereis -m vim
找source源文件: whereis -s vim
locate /etc/sh #搜索etc目录下所有以sh开头的文件
locate -i ~/d #搜索用户主目录下,所有以d开头的文件,并且忽略大小写
locate /home/ \*.ps #寻找以 '.ps' 结尾的文件
which -v #查看版本信息
which halt #显示一个二进制文件或可执行文件的完整路径
#说明:which是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!
命令:
cd 命令 # (英文全拼:change directory)命令用于切换当前工作目录。
ls 命令 # (英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
mkdir 命令 # (英文全拼:make directory)命令用于创建目录。
-p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
touch 命令 #用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
rmdir 命令 # (英文全拼:remove directory)命令删除空的目录。
rm 命令 # 删除目录、文件
mv 命令 # 该命令用于移动/重命名 文件/目录
cp 命令 # 复制文件/目录(复制目录会把目录下的文件一起复制了)
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
例子:
pwd #查看工作目录的全路径
cd ../.. #返回上两级目录
cd ~ #进入个人的主目录
cd - #返回上次所在的目录
mkdir hongya2 hongya3 #创建多个目录
mkdir -p /root/hongya4/ #创建root目录下的目录
rm -rf hongya2 hongya3 #同时删除两个目录及它们的内容
#touch、vi、vim命令都可以用来新建文件
touch /home/a.txt #在/home下新建文件
vi /home/b.txt #在/home下新建文件,并写入文件内容
mv [options] source dest #该命令用于移动/重命名 文件/目录
mv hongya6 hy6 #文件改名,hongya6改名为hy6
cp hy6 file1
cp /home/hongya1/* . #复制hongya1这个目录下的所有文件到当前工作目录
cp -a /home/hongya1/ . #复制hongya1目录和其下文件到当前工作目录
cp -a hongya1 hongya2 #复制当前工作目录下的hongya1目录和其下文件,到当前工作目录下,叫hongya2目录和其下文件
用户账户文件:
组群文件:
linux 新建用户配置文件 /etc/login.defs 简介_whatday的专栏-CSDN博客
复制部分如下:
/etc/login.defs 是设置用户帐号限制的文件。该文件里的配置对root用户无效。/etc/login.defs 文件用于在Linux创建用户时,对用户的一些基本属性做默认设置,例如指定用户 UID 和 GID 的范围,用户的过期时间,密码的最大长度,等等。
需要注意的是,该文件的用户默认配置对 root 用户无效。并且,当此文件中的配置与 /etc/passwd 和 /etc/shadow 文件中的用户信息有冲突时,系统会以/etc/passwd 和 /etc/shadow 为准。
命令:
useradd 选项 用户名
-g 用户组:指定用户所属的用户组。
-s Shell文件:指定用户的登录Shell。
-u 用户号:指定用户的用户号,如果同时有-o选项,则能重复使用其他用户的标识号。
userdel [-r][用户帐号]
-r 删除用户登入目录以及目录中所有文件。
passwd 选项 用户名
用户账号刚创建时没有口令,是被系统锁定的,无法使用,必须为其指定口令后才能使用,即使是空口令。
指定和修改用户口令的Shell命令是passwd。终极用户能为自己和其他用户指定口令,普通用户只能修改自己的口令。
groupmod [-g <群组识别码> <-o>][-n <新群组名称>][群组名称]
-g <群组识别码> 设置欲使用的群组识别码。
-o 重复使用群组识别码。
-n <新群组名称> 设置欲使用的群组名称。
例子:
useradd –g hongyagroup hongya2 #添加一个名为“hongya2”的用户,并把该用户加入到组“hongyagroup”中
userdel hongya4
groupadd hongyagroup #添加一个名为hongyagroup的组
tail /etc/group #查看/etc/group文件最后10行,可以查看到新建的群组信息。
groupmod -g 1005 hongyagroup #修改组群gid
groupmod -n testgroup hongyagroup #修改群组名称
groupdel testgroup #如果这个组为组内任何一个用户的主组,那么这个组是不能被删除的,所以需要先删除掉组内的把它当主组的用户,再删掉这个组
whoami #查看当前用户
su hongya1 #切换用户,这里切换到hongya1这个用户
命令:
查看文本文件的命令:
cat
more
less
head
tail
ps 命令(process status)查看进程,显示当前进程的状态,类似于 windows 的任务管理器。
ifconfig 查看网卡获取的地址。可以发现ip地址,子网掩码,默认网关等网卡信息。
ping 命令 #执行 ping 指令会使用 ICMP 传输协议
-c <完成次数> 设置完成要求回应的次数。
history # 历史命令的查看。
例子:
ping baidu.com -c 6 #因为Linux中ping命令和windows的不同,在linux中如果后面不加参数会一直ping。
ping -h #查看帮助,help可以查看对应的一些命令的参数和简单的介绍。我们这里就查看ping命令的帮助。
命令:
shutdown [-t seconds] [-rkhncfF] time [message] # 用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。使用权限:系统管理者。
-r : 关机后重新开机。
-h : 关机后停机。
-c : 取消目前已经进行中的关机动作。
以下命令尝试使用:
关闭系统: shutdown -h now
关闭系统: init 0
关闭系统 : telinit 0
按预定时间关闭系统 : shutdown -h hours:minutes &
取消按预定时间关闭系统 : shutdown -c
重启: shutdown -r now
重启: reboot
注销 : logout
Linux的体系结构:Linux操作系统一般由以下3个主要部分组成: 内核(Kernel)、命令解释层(Shell或其他操作环境)、实用工具。
Linux Shell:Shell(命令解释器)是系统的用户界面,提供用户与内核进行交互操作的接口。它接收用户输入的命令,并且把它送入内核去执行。
操作环境:在操作系统内核与用户之间提供操作界面,它可以描述为一个解释器。操作系统对用户输入的命令进行解释,再将其发送到内核。Linux拥有桌面(desktop)、窗口管理器(window manager)和命令行shell(command line shell)等几种操作环境。
命令:
uname (英文全拼:unix name)命令用于显示系统信息。可显示电脑以及操作系统的相关信息。
-a或--all 显示全部的信息。
-m或--machine 显示电脑类型。
-r或--release 显示操作系统的发行编号。
查看系统版本: uname -a
查看并显示机器信息:
显示机器的处理器架构: arch
显示机器的处理器架构: uname -m
显示正在使用的内核版本: uname -r
显示硬件系统部件 - (SMBIOS / DMI): dmidecode -q
查看配置信息:
显示CPU info的信息 : cat /proc/cpuinfo
显示中断 : cat /proc/interrupts
校验内存使用 : cat /proc/meminfo
显示哪些swap被使用: cat /proc/swaps
显示内核的版本: cat /proc/version
显示网络适配器及统计: cat /proc/net/dev
显示已加载的文件系统: cat /proc/mounts
显示设备信息:
罗列 PCI 设备 : lspci -tv
显示 USB 设备 : lsusb -tv
时间显示与设置:
显示系统日期 : date
显示2017年的日历表 : cal 2017
设置日期和时间 - 月日时分年.秒: date 041217002007.00
将时间修改保存到 BIOS: clock -w
Linux基础课程 - 实验平台:有文字和图片的教程,有虚拟机,可以跟着把验证性实验跟着教程做一遍。
这个网站上的Linux基础课程是华南农业大学Linux课程布置的课后作业。学起来很方便。
如果上不去别着急,这个网站上一周白天 天天上不去,晚上睡前看一眼发现他能上去了。_(:з」∠)_
。
2、重定向
< 文件:输入重定向
mail root < list.txt
> 文件:输出重定向,覆盖原有内容
ls > out.txt
>> 文件:追加重定向,文件末尾添加
echo abc >> out.txt
3、管道
作用:把前一个命令的输出作为下一个命令的输入
符号: |
例子:ls /var/log | grep log | wc -l
Linux 命令大全 | 菜鸟教程:哪个命令不会,Ctrl + F 搜一下。
linux命令在线中文手册:有些命令菜鸟教程没有,可以在这里找到。