有趣的是,因为托瓦茨放置内核的那个FTP网站的目录为Linux,从此,大家便称这个内核为Linux了
对目录有执行权限(x)才能切换到目录内。
向上翻页: shift+PgUp 向下翻页:shift+PgDn
若你的执行文件放置在本目录并且本目录并非正规的执行文件目录(/bin、/usr/bin 等为正规)
,此时要执行命令就得要严格指定该执行文件。(./)
特殊目录:
.代表次层目录
.. 代表上一层目录
- 代表前一个工作目录
~ 代表“目前用户身份”所在的主文件夹
~account 代表 account 这个用户的主文件夹(account是个账号名称)
cp -s 符号连接 (symbolic link)
cp -l 硬链接 (hard link)
查看文件的命令:
纯文本文件:
cat
tac
nl
more
less
head
tail
非纯文本文件:
od
十进制,八进制和十六进制互化应以二进制作为桥梁
用户创建文件的默认权限为:- rw- rw- rw-
用户创建目录的默认权限为:d rwx rwx rwx
又因为
root: umask: 0022 (--- -w- -w-) (不同用户有不同的umask)
一般用户: umask: 0002 (--- --- -w-)
所以
新建一个文件的权限为: root: (rw- rw- rw-) - (--- -w- -w-) = (rw- r-- r--)
一般用户: (rw- rw- rw-) - (--- --- -w-) = (rw- rw- r--)
新建一个目录的权限为:root: (rwx rwx rwx) - (--- -w- -w-) = (rwx r-x r-x)
一般用户: (rwx rwx rwx) - (--- --- -w-) = (rwx rwx r-x)
文件隐藏属性: chattr lsattr
文件特殊权限:SUID、 SGID、 SBIT
SUID不能用在目录上、SBIT不能用在文件上
寻找命令文件:which (在用户自己的PATH变量中寻找)
type (在bash内置命令中寻找)
寻找普通文件:whereis (在文件数据库中查找)
locate (在文件数据库中查找 updatedb根据/etc/updatedb.conf的设置
去查找系统硬盘内的文件名,并更新/var/lib/mlocate内的数据库文件)
find (在硬盘中查找,本身可以查找子目录)
“;”在bash中是有特殊意义的,所以利用反斜杠来转义
一个block中可以有 单个block大小/128byte 个inode
df 调出目前挂载的设备
dumpe2fs 查询每个区段与superblock的信息
查看linux支持的文件系统:ls -l /lib/modules/$ (uname -r) (distruction版本信息)/kernel/fs
查看系统目前已加载到内存中支持的文件系统:cat /proc/filesystems
df:列出文件系统的整体磁盘使用量;
du:评估文件系统的磁盘使用量(常用于评估目录所占容量)
创建实际连接:ln 源文件
创建符号连接: ln -s 目标文件
当我们新建一个新的目录时,新的目录的连接数为2,而上层目录的连接数则会增加1
磁盘分区:
fdisk 硬盘文件名称 只有root可以操作
partprobe 强制让内核重新找一次分区表
磁盘格式化:
mkfs (按两下[Tab]可以看到Linux支持的文件系统格式化软件)
没有特殊需求就使用:mkfs -t ext3 ...
Ext2/Ext3的公用程序:mke2fs
磁盘检验:
fsck 只有root在单用户模式下操作,且被检查的分区务必要处于卸载状态
(按两下[Tab]可以看到Linux支持的文件系统检验软件)
badblocks 可用mke2fs -c 设备文件名替代
磁盘挂载:
mount 设备文件名 挂载点
重新挂载根目录:mount -o remount,rw,auto/
挂载不特定目录:mount -bind /home /mnt/home
使用 Label name 进行挂载:mount -L "xxxx" /mnt/hdc6
卸载:unmount 设备文件名或挂载点
/etc/filesystems: 系统指定的测试挂载文件系统类型;
/proc/filesystems: Linux系统已经加载的文件系统类型;
/lib/modules/$ (unmae-r) /kernel/fs/: Linux支持的文件系统的驱动程序
硬盘参数修改:
修改设备文件:
mknod 设备文件名 [bcp] [Major] [Minor]
主设备代码(Major)
此设备代码(Minor)
修改卷标:
e2label 设备文件名 新的Label名称
将Ext2的文件系统转换为Ext3的文件系统:
tune2fs [-jlL] 设备文件名
设置硬盘参数:(只对IDE接口的硬盘有效)
hdparm [-icdmXTt] 硬盘文件名称
开机挂载:
/etc/fstab -> /etc/mtab, /proc/mounts
如果修改/etc/fatab错误,可用如下命令解决:
mount -n -o remount,rw /
不刻录就读取/修改镜像文件的内容:
mount -o loop 镜像文件名 挂载点
新建大文件以制作loop设备文件:
dd if=/dev/zero of=/home/loopdev bs=1M count=512
ll -h /home/loopdev
mkfs -t ext3 /home/loopdev
mount -o loop /home/loopdev /media/cdroom
df
内存交换空间的构建:
使用物理分区构建swap:
fdisk /dev/sda
partprobe
mkswap /dev/sda6
free
swapon /dev/sda6
free
swapon -s
使用文件构建swap:
dd if=/dev/zero of=/tmp/swap bs=1M count=128
ll -h /tmp/swap
mkswap /tmp/swap
free
swapon /tmp/swap
free
swapon -s
swapoff /tmp/swap
swapoff /dev/sda6
free
查看文件内容占用空间:
du -sb /etc
查看文件实际占用空间:
du -sm /etc
如果有大于2TB以上的磁盘,就用parted命令进行分区
在Linux环境中,压缩文件的扩展名大多是
*.Z compress程序压缩的文件
*.gz gzip程序压缩的文件
*.bz2 bzip2程序压缩的文件
*.tar tar程序打包的数据,并没有压缩过
*.tar.gz tar程序打包的文件,其中经过gzip的压缩
*.tar.bz2 tar程序打包的文件,其中经过bzip2的压缩
压缩命令:
压缩:ncompress [-rcv] 文件名或目录
解压缩:uncompress *.Z
压缩:gzip [-cdtv#] 文件名(如果是目录,则指的是将目录内的所有文件“分别”进行压缩)
解压缩:gzip -d 文件
zcat可以读取纯文本被compress与gzip压缩后的压缩文件。
使用gzip压缩的文件在Windows系统中,可以被WinRAR解压缩
压缩:bzip2 [-cdtv#] 文件名(如果是目录,则指的是将目录内的所有文件“分别”进行压缩)
解压缩:bzip2 -d 文件 / bunzip2 文件,可以解压的压缩文件后缀为:.bz .bz2 tbz tbz2
bzcat可以读取被bzip2压缩后的压缩文件
打包命令:
由于tar的使用太广泛,目前Windows的WinRAR也支持.tar.gz的解压缩
tar:
打包:
tar -zpcv -f /root/etc.tar.gz /etc
tar -jpcv -f /root/etc.tar.bz2 /etc (推荐,压缩比更高)
查看:
tar -jtv -f /root/etc.tar.bz2
解打包:
tar -jxv -f /root/etc.tar.bz2 -C /tmp
解开打包文件内的其中一个文件:
tar -jtv -f /root/etc.tar.bz2 | grep 'shadow'
(grep为选取关键字)
tar -jxv -f 打包文件.tar.bz2 待解开文件名
tar -jxv -f /root/etc.tar.bz2 etc/shadow
打包某目录,但不含该目录下的某些文件的做法:
tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc* --exclude=/root/system.tar.bz2 /etc /root
仅备份比某个时刻还要新的文件:
find /etc -newer /etc/passwd
ll /etc/passwd
tar -jcv -f /root/etc.newer.than.passwd/tar.bz2 --newer-mtime="2008/08/05" /etc/*
tarfile:仅是打包
tarball:打包又压缩
备份到磁带机:
tar -cv -f /dev/st0 /home /root /etc
将 /etc 整个目录一边打包一边在 /tmp 中解开
cd /tmp
tar -cvf - /etc | tar -xcf -
用dump备份完整的文件系统:
df -h
先测试一下如果需要备份此文件系统需要多少容量:
dump -S /dev/sda1
将完整备份的文件名记录成为/root/boot.dump,同时更新记录文件:
dump -0u -f /root/boot.dump /boot
ll /root/boot.dump /etc/dumpdates
cat /etc/dumpdates
新建 level1 的备份:
看一下有没有任何文件系统被 dump 过的数据
dump -W
dd if=/dev/zero of=/boot/testing.img bs=1M count=10
使用 level1 备份:
dump -1u -f /root/boot.dump.1 /boot
ll /root/boot*
dump -W
用dump备份非文件系统,即单一目录的方法:
dump -0j -f /root/etc.dump.bz2 /etc
用restore查看dump后的备份数据内容:
restore -t -f /root/boot.dump
restore -t -f /root/etc.dump
比较差异并且还原整个文件系统:
cd /boot
mv config-2.6.18-128.el5 config-2.6.18-128.el5-back
restore -C -f /root/boot.dump
mv config-2.6.18-128.el5-back config-2.6.18-128.el5
cd /root
fdisk /dev/hdc
n
p
w
partprobe
mkfs -t ext3 /dev/hdc8
mount /dev/hdc8 /mnt
cd /mnt
restore -r -f /root/boot.dump
仅还原部分文件的restore互动模式
cd /mnt
restore -i -f /root/etc.dump
help
ls
cd etc
pwd
1s passwd shadow group
add passwd shadow group
delete group
ls passwd shadow group (又要被解压缩的,文件名之前会出现*)
extract
quit
ll -d etc
ll etc
光盘写入工具:
新建镜像文件: mkisofs
不使用-graft-point:
mkisofs -r -v -o /tmp/system.img /root /home /etc
ll -h /tmp/system.img
mount -o loop /tmp/system.img /mnt
df -h
ls /mnt
umount /mnt
使用-graft-point:
mkisofs -r -v 'linux_file' -o /tmp/system.img -m /home/lost+found -graft-point /root=/root /home=/home /etc=/etc
ll -h /tmp/system.img
mount -o loop /tmp/system.img mnt
ll /mnt
umount /mnt
刻录光盘:cdrecord
检测刻录机所在位置:
cdrecord -scanbus dev=ATA
进行CD的刻录操作:
先抹除光盘的原始内容:(非可重复读写则可略过此步骤)
cdrecord -v DEV=ATA:1,1,0 blank=fast
开始刻录:
cdrecord -v dev=ATA:1,1,0 fs=8m -dumy -data /tmp/system.img
刻录完毕后,测试挂载:
mount -t iso9660 /dev/cdrom /mnt
df -h /mnt
ll /mnt
umount /mnt
进行DVD-RW的刻录操作:
先抹除原本内容:
cdrecord -v dev=ATA:1,1,0 blank=fast
开始写入DVD,请注意,有些参数与CD不同:
cdrecord -v dev=ATA:1,1,0 fs=8m -data -sao driveropts=burnfree /tmp/system.img
挂载测试:
mount /dev/cdrom /mnt
df -h /mnt
umount /mnt
其他常用的压缩与备份工具:
dd:
将/etc/passwd 备份到 /tmp/passwd.back当中:
dd if=/etc/passwd of=/tmp/passwd.back
ll /etc/passwd /tmp/passwd.back
将磁盘第一个扇区备份下来:
dd if=/dev/hdc if=/tmp/mbr.back bs=512 count=1
找出最小的分区,并备份:
df -h
dd if=/dev/hdcl of=/tmp/boot.whole.disk
ll -h /tmp/boot.whole.disk
cpio:
将/boot下的文件备份到/tmp/boot.cpio:
find /boot -print
find /boot | cpio -ocvB > /tmp/boot.cpio
ll -h /tmp/boot.cpio
将刚才的文件在/root/目录下解开:
cd /root
cpio -idvc < /tmp/boot.cpio
ll -h /root/boot.cpio
电脑软件相关教程