鸟哥的Linux私房菜基础篇笔记--7
来源:互联网 发布:姚明赛季数据 编辑:程序博客网 时间:2024/06/05 11:29
1.查看文件所占用的block数量。ll -s
(1)ll -s 文件名
ls -ls 文件名
在显示的第一行会显示出 total 字样。
total 这一列显示的就是这个文件所占的block的大小(默认单位是k)。
用户组后面的数字是这个文件实际的大小(默认单位是bytes)
total 后面的是/root下所有文件所占的block大小。
但是实际的数据大小是用户组后面的数字相加。
243.查看目录所消耗的block大小和实际数据的大小。du -sb、du -sm。
(1)du -sb 目录 ,会以bytes为单位显示目录实际的大小。
(2)du -sm 目录 , 会以bytes为单位显示目录所占block的大小。
252.gzip 压缩。
(1)gzip压缩的文件在windows系统中,竟然可以被WinRAR这个软件解压。
(2)压缩后源文件后消失,解压后压缩文件会消失。
(2.1)gzip man.config, 压缩的命令。
(3)gzip -v man.config , -v 将压缩的进度显示到屏幕上。
(4)gzip -d man.config.gz,会解压到当前目录。
(5)查看压缩文件的内容。
zcat man.config.gz
(5)用最佳的压缩比压缩文件,并保留源文件。
gzip -9 -c man.config > man.config.gz
-9 :为最大的压缩比。-1最快,-9的压缩比最大。
-c :将压缩的数据输出到屏幕上,可通过数据流重定向来处理。
253.bzip2 压缩命令。
(1)压缩之后源文件会丢失,解压之后压缩文件会丢失。
(2)bzip2 -z man.config , 压缩文件的命令。
(3)bzip2 -d man.config.bz2 , 解压的命令,默认会解压到当前目录。
(4)zcat man.config.bz2 , 查看压缩文件的内容。
(5)用最佳的压缩比压缩文件,并保留源文件。
bzip2 -9 -c > man.config.bz2
(6)此外,当你要解开一个压缩文件的时候,这个文件的名称为 .bz bz2 tbz tbz2等,那么可以尝试用bzip2来解压缩。当然,你也可以使用bunzip2这个命令来替代bzip2 -b。
254.tar 的用法。
(1)因为tar 命令的应用非常广泛,目前windows的WinRAR软件也支持.tar.gz文件的解压缩。
(2)tar -jcf etc.tar.bz2 /etc/
当使用-j , 来制作打包压缩文件的时候,也就是使用bzip2的方式来压缩的时候,能够获得更好的压缩比。
(3)tar -tvf etc.tar.bz2 。
当使用-v ,来查看压缩包的时候,会显示出详细的文件权限/属性都会被列出来。
(4)tar 打包压缩的时候会将文件的 /删除,有时候tar的时候会出现一些提示,就是提示的 /被删除。
(5)tar 的例子。
tar -jcf zhige.tar.bz2 /home/zhige/*
tar -jxf zhige.tar.bz2 -C /data/
在/data/ 下生成的文件路径为,/data/home/zhige/...
(6)仅仅解开单一文件的方法。
tar -jtvf /root/etc.tar.bz2 | grep ‘shadow’
找到在etc.tar.bz2 的文件中 /etc/shadow 的文件名为etc/shadow
tar -jxf /root/etc.tar.bz2 etc/shadow
(7)打包某目录,但是不包含该目录下的某些文件的方法。
tar -jcvf /root/system.tar.bz2 --exclude=/root/etc* --exclude=/root/system.tar.bz2 /etc /root
(8)仅备份比某个时间还要新的文件。
tar -jcvf /root/etc.newer.then.passwd.tar.bz2 --newer-mtime=”2008/09/29” /etc/*
258.用磁带机进行备份。
(1)磁带机由于是一次性读取/写入的设备,因此我们不能够使用cp 等命令来复制,那如果想要将/home /root /etc/ 备份到磁带机中,就可以使用
tar -cvf /dev/st0 /home /etc/ /root
这个是很常用的东西。
258.用tar一边打包一边解包。
(1)cd /tmp
tar -cvf - /etc | tar -xvf -
260.dump备份命令。
1.当备份的数据为单一文件系统的时候。
如果是单一的文件系统,那么该文件系统可以使用完成的备份dump功能,包括利用0~9的数个level来备份,同时备份的时候,可以使用挂载点或者是设备文件名(例如/dev/sda4之类的设备文件名)来进行备份。
(1)dump -S /dev/hdc1 :先测试一下如果备份此文件系统需要多少容量。
输出的数据的单位是bytes
(2)dump -0u -f /root/boot.dump /boot : 进行一次完成备份。
-0 代表是完整备份
-u 将这次备份的时间记录到/etc/dumpdateS文件中,下次备份的时候作为参考依据。
-f 后面接产生的文件,也可以接设备名。
(3)dump -1u -f /root/boot.dump.1 /boot : 进行一次差异备份
(4)dump -W 列出在/etc/fstab里面的具有dump设置的分区是否有备份过。
262.restore ,dump的备份恢复命令。
(1)restore -t -f /root/boot.dump : 查阅dump备份文件的内容。
-t 是查看dump文件的参数,-f后面接的就是dump的备份文件。
(2)restore -C -f /root/boot.dump : 查看被备份目录与备份文件之间的差别。
只有被备份目录的文件名或者文件的内容有变动的时候会有显示差别,新增文件不会有显示。
(3)因为dump是记录的整个文件系统,因此还原的时候你也应该要给予一个全新的文件系统才行
(4)restore -r -f /root/boot.dump : 将备份文件还原到当前目录下。
在还原之前一定要cd 进入新挂载的那个目录下面。
(5)restore -r -f /root/boot.dump.q : 将leve1的备份文件也还原。
(6)仅还原部分文件。
resotre -i -f /root/etc.dump
这个命令会将使用者带入互动模式,在里面你可以使用 ls cd pwd命令,
add passwd group shadow 将文件加入到压缩列表中。
delete group 将在压缩列表中的文件删除。
extract 开始压缩的命令。
在当前目录下会生成一个 etc 的文件夹,里面会有被释放的文件。
265.录制光盘文件。
(1)光盘的格式一般为ISO9660,这种格式一般仅支持旧版的DOS文件名,即文件名只能以8.3(文件名8个字符,扩展名3个字符)的方式存在,如果加上-r 的参数之后,那么文件信息能够被记录的比较完整,可包括UID/GID与权限等。
(2)所有要被加到镜像文件中的文件都会被放置到镜像文件的根目录中。
(3)镜像文件中的目录所在=实际Linux文件系统的目录所在。
(4)将 /root /home /etc 的数据做成img 镜像文件。
mkisofS -r -v -o /tmp/system.img /root /home /etc
-r : 可以记录较多的信息,例如UID/GID与权限等。
-v : 显示构建ISO文件的过程。
-o : 后面接你想产生的那个镜像文件名。
由于三个目录的都被放到镜像文件的最顶层目录中,导致数据的分散,很乱。
用下面的命令避免这样的情况的发生。
(5)mkisofS -r -o /tmp/system.img -m /home/lost+found -graft-point /root=/root /home=/home /etc=/etc
-m 为不要那个文件的意思。
-graft-point 将文件名称指定。
269.dd 命令的使用方法。
(1) dd 也可以用于备份的使用。
1.将一个文件备份到一个目录中。
dd if=/etc/passwd of=/tmp/passwd.back
(2)
2.将磁盘中的东西备份到一个目录中。
dd if=/dev/hdc1 of=/tmp/hdc.back
(3)
3.将磁盘中的东西完全备份另一个新磁盘内。当要备份/dev/hdc1的时候,也想要备份它的启动扇区的区块,这个用cp或者是tar命令是不可以的。dd可以读取磁盘的扇区的表面数据。
dd if=/dev/hdc1 of=/dev/hdc9
/dev/hdc9不需要被格式化,因为dd可以将原本旧的分区中扇区表面的数据整个复制
过来,当然连同superblock,boot sector , meta data等全部也会复制过来。未来你
想要构建两块一模一样的磁盘时,只要执行“dd if=/dev/sda of=/dev/sdb”,就能
够让两块磁盘一模一样,甚至/dev/sdb不需要分区与格式化,因为该命令可以将
/dev/sda内的所有数据,包括MBR与分区表也复制到/dev/sdb中。
注:文件不可以直接备份到磁盘分区内,要先将分区挂载,然后再将文件备份到挂载
点。
276.vi 和 vim的使用。
(1)vi 三种模式: 命令行模式、一般模式、编辑模式
vim 三种模式: 末行模式、命令模式、输入模式
上下模式对应的关系,意思差不多。
(2)如果你是root,你的文件的权限是r--r--r--,你可以用vi改变这个文件的内容吗。
可以,可以在最后一行输入 wq! , 这个时候文件的内容就会被保存。
因为你是这个文件的所有者,可以改变这个文件的权限。
(3) 数字+下方向键 光标可以向下移动数字个行数。
(4) 数字+有方向键 光标可以向右移动数字个字符。
(5):1,$s/word1/word2/g 从第一行到最后一行查找word1替换成 word2。
(6):1,$s/word1/word2/gc 没修改一次都会要求确认一次。
(7)在vi 一般模式下,u代表的是撤销上一次的操作,
Ctrl + r 代表的是还原上次撤销的操作。
283.vim编辑一个文件的时候,出现报错。
(1)可能的原因一:可能有其他人或程序同时在编辑这个文件。
(2)可能的原因二:在vim环境中,遇到断电等情况。
(3)这两种情况都会产生 .swp 文件。
(4)如果你认为.swp文件有用,就在打开这个文件的时候,按R,然后它会输入.swp文件的内容,让你自己 决定是否要保存这个文件。
保存完了,记得删除.swp文件,不然,下次打开这个文件的时候,还是会有提醒的。
285.vim 块选择。
(1)Ctrl + v 块选择
y 将快选择的数据复制起来。
d 将块选择的数据删除。
286.同时编辑多个文件。
(1)vim file1 file2
(2):n 编辑下一个文件
(3):N 编辑上一个文件
(4):files 列出目前这个vim的打开的文件有哪些。
287.同时开多个窗口。
(1):sp filename 在一个文件的vim环境中。
(2)Ctrl + w 下方向 ,光标移动到下面的窗口。
按键的方法是:先按Ctrl 不放,在按下w后放开所有的按键,然后再按下向下箭头键。
288.vim 默认的参数设置。
(1)~/.vimrc下设置。
290. Linux文件和windows文件的替换。
(1)linux文件和windows DOS文件的最大的不同是,断行符的不同,所以在windows上写的执行文件是不可以在linux上执行的,这个时候就要用到命令了。
(2)dos2UNIX -k man.config
-k 保留该文件原本的mtime时间格式,
(3)dos2UNIX -k -n man.config man.config.linux
-n 将源文件保留下来,-n old new
291.语系编码转换。iconv
(1)iconv -f big5 -t utf8 vi.bigs -o vi.utf8
iconv -f 旧编码 -t 新编码 旧文件 -o 新文件
(2)将繁体中文的utf8 转成简体中文的utf8编码。
iconv -f utf8 -t big 5 vi.utf8 | iconv -f big 5 -t gb2312 | iconv -f gb2313 -t utf8 -o vi.gb.utf8
(3)简体中文的编码为 gb2312
查看文件的编码格式
(1)在Linux中查看文件编码可以通过以下几种方式:
1.在Vim中可以直接查看文件编码
:set fileencoding
即可显示文件编码格式。
(2)enca filename :查看文件的编码
290.分辨一个文件是windows支持的dos文件,还是linux文件。
(1)cat -A 文件名:
如果文件中每行的结尾都是 M$ 那么这个文件就是windows支持的文件。
如果文件中每行的结尾都是 $ 那么这个文件就是linux支持的文件。
file 命令。
(1)file 文件名 : 能查看出文件的编码形式,就是像ACSII,ISO-8859这样的,并不是utf8,big5这样的。
298.type命令的用法。
(1)type ls 列出ls最长使用的情况。
(2)type -t ls 仅列出ls执行时的使用类型。
包括:file :外部命令。
alias :别名
builtin :内部命令
305.env查看环境变量和常见变量说明。
(1)env
305.set查看所有变量,包括环境变量和自定义变量。
(1)set
306.PS1 变量。
(1) PS1变量不是环境变量,它会影响bash的接口环境。
(2)PS1变量控制着命令提示符的显示内容。
可以在命令行中临时改变,也可以在/root/.bash_profile 中设置。
#PS1=’[\u@\h \w \A #\#]\$’
文件中
PS1=’[\u@\h \w \A #\#]\$’ 注意单引号一定要加。
308.如果想要使父进程的变量能够在子进程中被使用。
(1)export 变量名称 :在父进程中执行。
308.查看我们的Linux支持多少语系。
(1)locale -a 列出所有Linux支持的语系。
(2)locale 会列出所有相关语系的语系文件(理解成变量)。我们在修改的时候修改第一个变量就可以,
vim /etc/sysconfig/i18
310.read的用法。
(1)read name : name是一个变量名,会进入交互模式以输入变量的内容。
(2)read -p “please input you name” -t 30 name :
please inout your name
-p 会在下面显示提示符
-t 如果在30秒内没有输入信息,就会退出
310.declare 的用法。
(1)declare -x sum :将sum变成环境变量
declare +x sum :将sum从环境变量变成自定义变量。
(2)declare -r sum 将sum设置成readonly的类型,该变量不可以更改内容,也不可以被重设。如果想取消这个设定,那么只有重新启动了,因为不可以被改变了。
(3)declare -p sum : 列出sum的类型,有x类型(代表是环境变量)或者其他的类型(r x)
(4)#sum=100+300+1
#echo $sum
100+300+1
#declare -i sum=100+300+1 :将sum变量的类型变成数字类型
#echo $sum
401
由于在默认情况下,bash下变量类型默认是“字符串”。
312.关于用户的一些限制。ulimit
(1)ulimit -a 列出当前用户的所有限制值。
(2)ulimit -f 10240 限制用户仅能创建10M的文件。
默认单位是k
315.变量的测试与内容替换。
(1)echo $name 如果结果是空的话,那么就有两种情况,一种是$name没有被定义,另一种是$name=”” 。
(2)#name=${name-root} 如果name没有被定义,就将root赋值给name,如果name已经被定义,那么name的值不会被改变。如果name=””,经过这个命令后,name的值还是为空。
(3)#name=${name:-root}
如果name没有被定义,或者name的值为空,都会将root这个值赋给name。如果name本省有值,那么那个值不会改变。
316.当一个变量不存在的时候输出特定的语句。
(1)变量的取消定义。
unset str : 将str变量取消定义。
(2)当一个变量不存在的时候输出语句。
var=${str?无此变量}
318.将目前的history 写入到文件中。
(1)history -w : 立刻将目前历史命令的数据写入到/root/.bash_history中
323.修改完bash配置文件后立即生效。
(1)source 文件名 。
(2)source 读入环境配置文件。
326.隐藏命令行的文字。
(1)Ctrl + s 隐藏命令行文字。
(2)Ctrl + q 显示命令行文字。
326.关于set 的设置使用。
(1)set -u : 若使用未定义的变量的时候,显示错误信息。
set +u : 将上面的设置去除。
331.创建新文件,并在交互模式下输入文件内容。
(1)cat > catfile
输入内容 ,按下Ctrl + d来停止输入
(2)cat > catfile << “eof”
在输入eof 的时候,停止输入
331.用stdin替代键盘的输入以创建新文件的简单流程。
(1)cat > catfile < ~/.bashrc
这种方式貌似不能追加,只能覆盖
(2)cat ~/.bashrc > carfile
333.无论一个目录存在否,都会在这个目录下创建文件。
(1)ls /tmp/abc || mkdir /tmp/abc && touch /tmp/abc/hehe
如果/tmp/abc存在,$?=0 mkdir /tmp/abc不会被执行 ,会继续向后面判断。
335.cut 命令的使用。(管道命令)
(1)cut -d ‘分隔符’ -f 数字。
(2)cut -c 字符范围。
(3)echo $PATH | cut -d‘:’ -f 3,5
将PATH变量输出的值以:为分割,并打印出第3行和第5行
(4)last | cut -c 12-
将登录的信息输出,并且列出第12个字符之后的数据。
last | cut -c 12-20
336.sort 排序命令。(管道命令)
(1)cat /etc/passwd | sort
sort 默认是以第一个数据来排列的。
(2)cat /etc/passwd | sort -t ‘:’ -k 3
将输出的信息以:为分割并将分割的第三个数据进行排列
(3)cat /etc/passwd | sort -t ‘:’ -k 3 -n
因为默认情况下,sort 是用文字类型来进行排序的,-n 是指定用数字的形式进行排列
337.将排列出来的数据的重复行删除。(管道命令)
(1)last | cut -d ‘ ’ -f 1 | sort | uniq
将登录信息的以空格为分割的第一列打印出来,排序之后,删除重复行。
由于这个命令的目的是在将重复的东西减少,所以当然需要配合排序过的文件来处理。
(2)last | cut -d ‘ ’ -f 1 | sort| uniq -c
将统计出来的数据进行计数。
337.wc 命令。(管道命令)
(1)wc 文件
显示文件中的行数、多少字数(英文单字)、多少字符
(2)wc -l 文件
显示文件有多少行。
(3)wc -w 文件
仅列多少字
(4)wc -m 文件
仅列出多少字符
- 鸟哥的Linux私房菜基础篇笔记--7
- 鸟哥的Linux私房菜基础篇笔记---1
- 鸟哥的Linux私房菜基础篇笔记--2
- 鸟哥的Linux私房菜基础篇笔记--3
- 鸟哥的Linux私房菜基础篇笔记--4
- 鸟哥的Linux私房菜基础篇笔记--5
- 鸟哥的Linux私房菜基础篇笔记--6
- 鸟哥的Linux私房菜基础篇笔记--8
- 鸟哥的Linux私房菜基础篇笔记--9
- 鸟哥的Linux私房菜基础篇-学习笔记
- 《鸟哥的linux私房菜 基础篇》第三章学习笔记
- 《鸟哥的Linux私房菜基础篇》阅读笔记——第6、14章
- “鸟哥的linux私房菜基础篇(第三版)”--学习笔记
- 鸟哥的Linux私房菜 基础篇 第三版 学习笔记 序
- 鸟哥的Linux私房菜(基础学习篇)笔记
- 鸟哥的linux私房菜 ---- 笔记
- 鸟哥的linux私房菜笔记
- 鸟哥的Linux私房菜笔记
- CDH中Hive使用函数报错
- thinkphp3.1 DB.class.php 关于切换数据库bug问题
- iPerf 3 user documentation
- vue-loader
- PHP+Hadoop数据统计分析
- 鸟哥的Linux私房菜基础篇笔记--7
- ubuntu16.04下 配置cuda 装opencv 3.2 一些小tip
- 创建型设计模式-简单工厂模式
- android studio 5.0 之 toobar,让人爱,让人恨
- Main函数参数argc,argv用法
- 第六届蓝桥杯软件类省赛真题-C-B-7_牌型种数
- Introduction to Ambisonics
- 关于iOS中的图片格式,一个合格的开发者必须知道的5个知识点
- bzoj1011 [HNOI2008]遥远的行星