鸟哥的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 -sbdu  -sm

(1)du  -sb  目录 ,会以bytes为单位显示目录实际的大小。

(2)du  -sm  目录 , 会以bytes为单位显示目录所占block的大小。

 

252.gzip 压缩。

1gzip压缩的文件在windows系统中,竟然可以被WinRAR这个软件解压。

2)压缩后源文件后消失,解压后压缩文件会消失。

2.1gzip  man.config, 压缩的命令。

3gzip  -v   man.config  ,  -v  将压缩的进度显示到屏幕上。

4gzip  -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 命令的应用非常广泛,目前windowsWinRAR软件也支持.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一边打包一边解包。

1cd   /tmp

tar  -cvf  -  /etc |  tar  -xvf  -  

 

260.dump备份命令。

1.当备份的数据为单一文件系统的时候。

如果是单一的文件系统,那么该文件系统可以使用完成的备份dump功能,包括利用0~9的数个level来备份,同时备份的时候,可以使用挂载点或者是设备文件名(例如/dev/sda4之类的设备文件名)来进行备份。

1dump -S /dev/hdc1  :先测试一下如果备份此文件系统需要多少容量。

         输出的数据的单位是bytes

2dump  -0u  -f  /root/boot.dump  /boot  : 进行一次完成备份。

     -0 代表是完整备份

     -u 将这次备份的时间记录到/etc/dumpdateS文件中,下次备份的时候作为参考依据。

     -f  后面接产生的文件,也可以接设备名。

(3)dump  -1u  -f  /root/boot.dump.1  /boot :   进行一次差异备份

4dump -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可以将原本旧的分区中扇区表面的数据整个复制

      过来,当然连同superblockboot 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 命令。

1file  文件名 : 能查看出文件的编码形式,就是像ACSIIISO-8859这样的,并不是utf8big5这样的。

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  数字。

2cut  -c  字符范围。

3echo  $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  文件

     仅列出多少字符

0 0
原创粉丝点击