system1之:文件和目录管理


修改文件将系统英文改为中文环境

[root@teacher vnc]# gedit  /etc/sysconfig/i18n
LANG="en_US.UTF-8" 更改为LANG="zh_CN.UTF-8"
重新启动机器生效

首提示符:

[root@teacher ~]# 中
[]       表示分隔符号
root   表示是当前登录用户     (root用户是linux系统里的超级管理员,windwos里的是administrator)
@      分隔符号
teacher  代表是主机名
~  代表你当前所在的路径是用户家目录(假如是root用户,~代表的路径为/root)

# 代表的是超级用户的提示符号
$ 代表的是普通用户的提示符号
区别两者:
su  -  kankan             切换用户到kankan(登录用户)
[kankan@teacher ~]$
cd ~tan  进入普通用户tan的家目录,去掉~不能访问
[root@teacher ~]# cd ~tan 
[root@teacher tan]#pwd
/home/tan

家目录、根目录

家目录 (~):家目录是用户登录系统的时候,默认会进入的目录
root用户的家目录:/root
普通用户的家目录(useradd新建的用户都是普通用户):/home下,默认情况下和用户名同名
useadd tan           在根目录的home下:/home/tan
根目录: /     所有的文件和文件都存放在根目录下。最高统治者是根目录

根目录和root用户的家目录,有什么区别?
它们不是同一目录,/root目录在根目录下。根目录包含/root目录
[root@teacher vnc]# useradd  xiangyang
[root@teacher vnc]# cd ~xiangyang
[root@teacher xiangyang]# pwd
/home/xiangyang
[root@teacher xiangyang]#


相对路径和绝对路径:

相对路径:参照你当前的位置。到达目标文件需要经过的文件系统目录树的所有分支
绝对路径:不考虑你当前的位置,从“/”到达目标文件需要经过的文件系统目录树的所有分支
不接/都是相对路径
[root@teacher ~]# mkdir /china/{hunan/{zhuzhou,changshan},hubei,shandong,chongqin} -p
[root@teacher ~]# tree /china
/china
├── chongqin
├── hubei
├── hunan
│   ├── changshan
│   └── zhuzhou
└── shandong

6 directories, 0 files
[root@teacher ~]#
[root@teacher yiyang]# cd /china/shandong/yantai/
[root@teacher yantai]# cd -
/china/hunan/yiyang
[root@teacher yiyang]# cd ../../shandong/yantai
[root@teacher yantai]# mkdir ../../hubei/{wuhan,shiyan}        记得大括号里要带逗号分开,不然就是创建../../hubei/{wuhan和shiyan} 
[root@teacher china]# rm -rf hunan/yueyang/
[root@teacher china]# mkdir hunan/yueyang hunan/shaoyang hunan/hengyang
||  等效
[root@teacher china]# mkdir hunan/{yueyang,shaoyang,hengyang}
当文件和文件夹存在的时候,再次新建的时候,会报错
[root@teacher china]# mkdir hunan/{yueyang,shaoyang,hengyang}
mkdir: cannot create directory `hunan/yueyang': File exists
mkdir: cannot create directory `hunan/shaoyang': File exists
mkdir: cannot create directory `hunan/hengyang': File exists


命令的一般格式(很重要):

命令字  [选项]  [参数1][参数2]......
选项是可供选择的项目,可以使用,也可以不使用。

命令使用的时候,是否一定要接选项?

答:选项,是可供选择的项目,可以选择使用也可以不使用。使用的时候效果比较好

[root@teacher feng_software]# du -sh Yozo_Office_6.1.0305.131ZH.tar.gz  查看大小
55M Yozo_Office_6.1.0305.131ZH.tar.gz
[root@teacher feng_software]# ls -lh Yozo_Office_6.1.0305.131ZH.tar.gz   查看大小
-rw-r--r-- 1 root root 55M Mar 14 10:26 Yozo_Office_6.1.0305.131ZH.tar.gz
[root@teacher feng_software]#


文件显示的颜色:

察颜观色
蓝色代表文件夹(目录)
黑色代表是普通文件
红色代表是压缩文件
绿色代表可执行文件(脚本文件,里面是linux命令,可以双击运行的)
紫色代表是图片或者视频文件
天蓝色代表是链接文件(windows快捷方式)

隐藏文件的表示:.  ..

[root@tan hunan]# ls -a
.  ..
[root@tan hunan]# 
.  代表当前目录(文件夹)
..  代表上级目录
[root@teacher zhuzhou]# ls -a
.  ..  dq  gj  jt  .meinv   .开头的文件是隐藏文件


/etc/passwd  存放用户名 
/etc/shadow 存放密码的
/boot是用来存放引导文件
这3个目录不能被删除

rm  -rf   /   切忌不能使用(相当于自杀),所有的资料都会被删除

没有说在哪里就是在当前路径
取绝对路径跟你在哪里没有关系,可以直接使用

$ 接变量是引用变量值


ls的用法

ls  (list) 显示隐藏文件(所有的文件)
ls - list  directory  contents
-a, --all  所有
-d, --directory  目录本身
-h, --human-readable  人类能够读懂(K,M,G等)
-l     use a long listing format  长格式显示(详细信息)
ls   /home查看普通用户名
ls  -l  /home                      查看/home目录里的内容,显示详细信息

ll = ls -l

分析:

[root@teacher tanqiuyun]# ls -l
total 4
d            rwxr-xr-x  2   root      root   4096   Mar   28 20:47       xiangxi
文件类型  权限              链接数  用户    组      大小      创建时间       名字

[root@teacher vnc]# ls -l /home    查看/home目录里的内容,-l 显示详细信息
total 24
drwx------  5 dongfang dongfang 4096 Mar 17 15:30 dongfang
drwx------  4 kankan   kankan   4096 Mar 28 19:48 kankan
drwx------  6 liuyan   liuyan   4096 Mar 24 11:21 liuyan
drwx------  4 mysql    mysql    4096 Mar 12 15:42 mysql
drwx------. 4      500      500 4096 Mar  9 01:19 tom
drwx------  4 upload   upload   4096 Mar 17 14:32 upload
[1]+  Done                    ./vncwindows-tools
[root@teacher vnc]# ls /home
dongfang  kankan  liuyan  mysql  tom  upload
[root@teacher vnc]# 
ls 是命令   -l 选项(可供选择的项目)    /home是参数(参加操作的数)   中间用空格隔开

实例:
[root@teacher china]# ls -l hunan/       查看当前目录下hunan目录里的内容,显示详细信息
total 8
drwxr-xr-x 2 root root 4096 Mar 29 19:56 changsha
drwxr-xr-x 3 root root 4096 Mar 29 20:07 zhuzhou

[root@teacher china]# ls -h -l hunan  以人类能够看的懂的格式显示详细信息
total 8.0K
drwxr-xr-x 2 root root 4.0K Mar 29 19:56 changsha
drwxr-xr-x 3 root root 4.0K Mar 29 20:07 zhuzhou

[root@teacher china]# ls -l -h hunan   选项的顺序没有很大的关系
total 8.0K
drwxr-xr-x 2 root root 4.0K Mar 29 19:56 changsha
drwxr-xr-x 3 root root 4.0K Mar 29 20:07 zhuzhou

[root@teacher china]# ls -lh hunan   选项可以连在一起使用
total 8.0K
drwxr-xr-x 2 root root 4.0K Mar 29 19:56 changsha
drwxr-xr-x 3 root root 4.0K Mar 29 20:07 zhuzhou

[root@teacher china]# ls -lha hunan  查看hunan目录下所有的文件显示
total 16K
drwxr-xr-x 4 root root 4.0K Mar 29 20:07 .
drwxr-xr-x 6 root root 4.0K Mar 29 20:02 ..
drwxr-xr-x 2 root root 4.0K Mar 29 19:56 changsha
drwxr-xr-x 3 root root 4.0K Mar 29 20:07 zhuzhou

[root@teacher china]# ls -lha  查看 当前 目录下所有文件的详细信息
total 24K
drwxr-xr-x 6 root root 4.0K Mar 29 20:02 .
drwxr-xr-x 3 root root 4.0K Mar 29 19:54 ..
drwxr-xr-x 3 root root 4.0K Mar 29 19:56 fj
drwxr-xr-x 3 root root 4.0K Mar 29 19:56 gd
drwxr-xr-x 4 root root 4.0K Mar 29 20:07 hunan
drwxr-xr-x 3 root root 4.0K Mar 29 20:02 jilin

[root@teacher china]# ls -l -d hunan   查看hunan目录本身的详细信息
drwxr-xr-x 4 root root 4096 Mar 29 20:07 hunan

[root@teacher china]# ls -ld hunan  查看hunan目录本身的详细信息
drwxr-xr-x 4 root root 4096 Mar 29 20:07 hunan


pwd

显示当前所在的路径

[root@teacher ~]# pwd  
/root   
[root@teacher ~]#
/ 根目录
root用户的家目录/root

[root@teacher ~]# pwd
/root                                     root用户的家目录
[root@teacher Desktop]# cd ~
[root@teacher ~]# pwd
/root
[root@teacher ~]# su - kankan  切换到普通用户
[kankan@zhaowei ~]$ pwd  查看kankan用户当前所在路径
/home/kankan                         kankan普通用户的家目录
[kankan@zhaowei ~]$ exit
logout

root用户和普通用户的家目录是不一样的,在不同的路径


切换用户: cd

cd  切换目录(从文件夹到另外一个文件夹)
cd: Change  the  current directory to dir.的缩写
cd   .       进入当前目录,即不动
cd   ..     返回到上一级目录
cd         进入当前用户的家目录
cd  ~    进入当前用户的家目录
cd  ~xiangyang   进入xiangyang用户的家目录
cd /      进入根目录
cd -      回到上次所在目录并显示返回后所在路径(很有用,节省输入

~       是家目录
/         是根目录
[root@teacher /]# cd  /  进入根目录。所有的文件都存放在根目录下
/根目录和家目录~是不一样的

/root   根目录下的root文件夹

cd ./tan=cd tan  即进入当前目录下的tan文件夹

cd ~tan  进入普通用户tan,去掉~不能访问(对比 su - tan)
cd ~tan是进入/home/tan目录下,而su - tan是切换到tan用户,路径也是/home/tan

cd ../yi    进入上一级目录下的yi文件(即同一级别的文件间跳转
cd ../../yi  进入上一级目录又上一级目录下的yi文件
[root@teacher zhuzhou]# cd jt/   后面多一个/,原因是按TAB键补齐的效果,接和不接/ 作用一样

举例:
[root@oratest tan]# cd
[root@oratest ~]# cd .
[root@oratest ~]# cd ..
[root@oratest /]# cd -
/root
[root@oratest ~]#


rpm 用法:

安装模式:rpm   –i
 
查询模式:rpm   –q
 
验证模式:rpm  –V或 –verify
 
删除模式:rpm    –e
 
1.安装一个包
 
# rpm -ivh
 
2.升级一个包
 
# rpm -Uvh
 
3.移走一个包
 
# rpm -e
 
4.安装参数
 
--force 即使覆盖属于其它包的文件也强迫安装
 
--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
 
5.查询一个包是否被安装
 
# rpm -q < rpm package name>
 
6.得到被安装的包的信息
 
# rpm -qi < rpm package name>
 
7.列出该包中有哪些文件
 
# rpm -ql < rpm package name>
 
8.列出服务器上的一个文件属于哪一个RPM包
 
#rpm -qf
 
9.可综合好几个参数一起用
 
# rpm -qil < rpm package name>
 
10.列出所有被安装的rpm package
 
# rpm -qa
 
11.列出一个未被安装进系统的RPM包文件中包含有哪些文件?
 
# rpm -qilp < rpm package name>


[root@teacher ~]# rpm -qa|wc -l  统计系统里安装了多少个软件
974
[root@teacher ~]# rpm -qf `which bash`  查看bash这个命令是通过那个软件安装过来的
bash-4.1.2-9.el6_2.i686
[root@teacher ~]# rpm -qf `which pwd` 查看pwd这个命令是通过那个软件安装过来的
coreutils-8.4-19.el6.i686
[root@teacher ~]# rpm -qf `which mkdir` 查看mkdir这个命令是通过那个软件安装过来的
coreutils-8.4-19.el6.i686
[root@station6 tan]# rpm -qf /bin/pwd  查看pwd是通过哪个软件安装过来的
coreutils-8.4-19.el6.i686


mkdir,touch

新建文件夹和文件

mkdir 

参数:
-m 用于对新建目录设置存取权限(也可用chmod命令进行设置) 
-p  需要时创建上层文件夹(或目录),如果文件夹已经存在则不视为错误,但也不做修改信息。

[root@tan ~]# mkdir hh    在root下建立hh文件夹
[root@tan ~]# cd              
[root@tan ~]# cd hh/       进入文件夹hh,有“/”与没有有什么区别?/是按tab键补齐的,指文件夹,没有也没关系。
[root@tan hh]# cd        进入家目录,如下
[root@tan ~]# 

[root@teacher Desktop]# mkdir   zhuzhou  新建一个文件夹zhuzhou
[root@teacher Desktop]# ls                        查看当前文件夹的内容
123                     Screenshot.png
1.png                   yangwei
fengdeyong              yozo-calc.desktop
gnome-terminal.desktop  yozo-impress.desktop
jack                    yozo-writer.desktop
linux1.txt              zhuzhou
rose
[root@teacher Desktop]# cd zhuzhou  进入zhuzhou文件夹(目录)
[root@teacher zhuzhou]#mkdir  .meinv     新建隐藏文件

[root@teacher china]# mkdir  hunan  gd   fj  一次建立3个文件夹
[root@teacher china]# ls 
fj  gd  hunan
[root@teacher china]# mkdir hunan/changsha  在hunan目录下新建一个changsha的文件夹
[root@teacher china]# mkdir gd/gz  在gd目录下新建gz目录
[root@teacher china]# mkdir fj/fz   在fj目录下新建fz目录
[root@teacher china]# tree   查看目录的结构
.
├── fj
│   └── fz
├── gd
│   └── gz
└── hunan
    └── changsha

6 directories, 0 files
[root@teacher china]# yum  install tree  -y    如果没有tree命令则安装


touch  

新建空文件 /存在则更改文件的时间

修改时间的几个参数验证下计入笔记

当文件存在的时候,就是更改文件的时间为系统当前时间,不存在就是去新建一个空文件

date 查看当前系统的时间
ls -l 可以显示文件的时间记录

[root@teacher hunan]# touch changsha/yuelvshan 在changsha目录下新建yuelvshan空文件
[root@teacher hunan]# ls changsha/
yuelvshan
[root@teacher hunan]# ls -l changsha/yuelvshan 
-rw-r--r-- 1 root root 0 Mar 29 21:13 changsha/yuelvshan

[root@teacher china]# file yangdiguangchang  路径不对  ( file查看文件或文件夹类型
yangdiguangchang: cannot open `yangdiguangchang' (No such file or directory)

rm

删除文件或文件夹

请注意,如果使用rm 来删除文件,通常仍可以将该文件恢复原状。如果想保证
该文件的内容无法还原,请考虑使用shred。

rm   (remove)删除文件和文件夹的命令
rm - remove files or directories
-f, --force  强制删除
              ignore nonexistent files, never prompt
-r, -R, --recursive   递归删除子文件夹和文件
[root@teacher hunan]# mkdir aa/bb/cc/dd/ee -p  新建测试目录
[root@teacher hunan]# ls
aa        meinv.png  qq.ext       yandiguangchang  zhuzhou.tar.gz
changsha  qq.exe     shuaige.png  zhuzhou
[root@teacher hunan]# rm -rf aa 删除aa目录,没有任何提醒
注意:此命令是高危命令,一定要三思而行,删除后不会放到回收站里。
rm -rf /  不要使用此命令,后果很严重。系统全部没有了


[root@success jinyong]# rm -r xiaoaojianghu   删除文件夹下所有子文件
rm:是否进入目录"xiaoaojianghu"? y
rm:是否删除目录 "xiaoaojianghu/linghuchong"?y
rm:是否删除目录 "xiaoaojianghu/zhaomin"?y
rm:是否删除目录 "xiaoaojianghu/yilin"?y
rm:是否删除目录 "xiaoaojianghu"?y


rm结合通配符号的使用
* 通配任意个字符
? 通配一个字符
[root@teacher wuhan]# mkdir afg aui aix
[root@teacher wuhan]# ls
a   aabbcc  abcd  aix  b   bbccdd
aa  abc     afg   aui  bb  bcd

[root@teacher wuhan]# rm -rf a??      删除以a开头,名字是3位字符的文件夹(当前)
[root@teacher wuhan]# ls
a  aa  aabbcc  abcd  b  bb  bbccdd  bcd

[root@teacher wuhan]# rm -rf a*         删除以a开头的文件和文件夹(当前)

 rm -rf wuhan/*                                      删除wuhan文件夹下的所有文件和文件夹,如果在wuhan目录下则不能用这个删除
[root@success hejiong]# rm -rf hejiong/*
[root@success hejiong]# ls
linzhixuan  qiqin                                    内容还在
[root@success hejiong]# 

rm -rf *                                                  删除当前目录下所有的文件和文件夹,
[root@success hejiong]# rm -rf *
[root@success hejiong]# ls 

[root@teacher hubei]# rm -rf wuhan/   删除wuhan文件夹(如果在wuhan目录下则不能用这个删除)
[root@teacher hubei]# ls
abc  ajfkdjfc  apc  ayc  ayy  shiyan  wuhan

[root@teacher hubei]# rm -rf a*c         删除以a开头以c结尾的文件和文件夹(当前)
[root@teacher hubei]# ls
ayy  shiyan  wuhan
[root@teacher hubei]#

du
查看文件或文件夹的大小

查看文件或者文件夹的大小
 du - estimate file space usage   disk  usage

k、M、G、T、P、E
1k=1024byte
1M=1024K
1G=1024M(兆)

 -h, --human-readable 人类能够读懂的格式显示
              print sizes in human readable  format  (e.g.,  1K
              234M 2G)
-s, --summarize  汇总所有文件的大小

最常用的du -sh  【filename】

du -sh hunan 查看hunan目录总的大小,以人类能够看懂的格式显示
[root@teacher china]# du -sh hunan
20K hunan
[root@teacher china]# du -sh  /boot  查看/boot目录的大小
45M /boot
[root@teacher china]# du -sh  /  查看根目录的大小
29G  /

file
 查看文件类型

[root@teacher china]# file hunan/yandiguangchang  查看hunan下面的yandiguangchang的属性
hunan/yandiguangchang: empty                                 空文件
[root@teacher china]#
[root@teacher china]# file hunan  查看hunan文件的类型
hunan: directory  目录
[root@teacher hunan]# file meinv.png 
meinv.png: PNG image data, 1024 x 768, 8-bit/color RGB, non-interlaced 图片文件
[root@teacher hunan]# file zhuzhou.tar.gz 
zhuzhou.tar.gz: POSIX tar archive (GNU)  压缩文件

file  查看文件的类型举例
        .exe   .xls   .jpg   .zip   .mp3   .rmvb   .jpeg
.gif   .html    .gip  .wav   .doc .docx  .xml .rar .txt
cp

命令的使用,结合通配符号的使用

cp - copy files and directories
-i, --interactive  交互式提醒功能
              prompt  before  overwrite (overrides a
              previous -n option)
-R, -r, --recursive
              copy directories recursively 将文件夹下的子文件夹一起拷贝
-f --force 强制复制
-a  作用等价于dpr选项的组合
-p  除复制源文件外,还将把其修改时间和访问权限也复制到文件中
-d  拷贝时保留链接
-l   不做拷贝,只是链接

复制文件的时候不需要接-r
复制目录的时候,需要接-r,因为目录下有子文件夹
[root@teacher hubei]# cp -r kangkang  wuhan

使用/bin/cp复制singer文件夹到xienana,不给予覆盖提醒

[root@success haiquan]# cp singer xienana -r     不使用/bin会给予提醒
cp:是否覆盖"xienana/singer/qiqin"? y
cp:是否覆盖"xienana/singer/linzhixuan"? y
cp:是否覆盖"xienana/singer/yangzongwei"? y
[root@success haiquan]# /bin/cp singer xienana -r  使用不予提醒
[root@success haiquan]#

如果是文件夹复制到文件夹,而前面那个文件夹又没有”文件“则不会提覆盖提醒
 

将/etc/hosts文件复制到jindafu目录下叫huojianhua的文件
复制——》粘贴——》重命名(文件--》文件则是重命名)
[root@teacher jindafu]# cp /etc/hosts /jindafu/huojianhua

将/home/目录下的所有文件和文件夹复制到/jindafu目录下
[root@teacher jindafu]# cp /home/* /jindafu -rf

1.复制文件的时候,如何后面接的目的地是文件夹,就是将文件复制后存放到后面目的地的目录下
如果后面是文件,则重命名
[root@localhost 211]# cp hosts a
[root@localhost 211]# ls
a  hosts  passwd  shadow

2.复制文件夹时候若后面的目的文件夹原来不存在,则也是重命名
[root@localhost jitong]# ls
211
[root@localhost jitong]# cp -r 211 bak
[root@localhost jitong]# ls
211  bak


[root@teacher vnc]# cp /etc/a{passwd,shadow}b ./
cp: cannot stat `/etc/apasswdb': No such file or directory
cp: cannot stat `/etc/ashadowb': No such file or directory

alias

[root@teacher jindafu]# which cp  查询cp命令存放在系统里位置
alias cp='cp -i'
    /bin/cp    cp命令存放的路径
[root@teacher jindafu]#
alias 别名功能
[root@teacher jindafu]# alias c=clear  定义c等于clear这个命令的别名,使用效果和clear一样,别名的名字可以自己定义,
clear是系统的命令,这种方式定义的别名,重新启动后失效

[root@teacher jindafu]# alias   查看系统里定义的别名
alias c='clear'
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@teacher jindafu]#
[root@teacher jindafu]# alias mm='ls -l' 定义别名mm的效果是ls -l
[root@teacher jindafu]# mm
total 12
dr-xr-xr-x 5 root root 4096 Mar 30 10:59 boot
-rw-r--r-- 1 root root  199 Mar 30 11:02 hosts
drwxr-xr-x 3 root root 4096 Mar 30 11:00 liufu
[root@teacher jindafu]#
[root@teacher jindafu]# unalias mm  取消mm的别名功能

************************************************************************************************

mv的使用方法:
  mv - move (rename) files
    
当后面接的目的地文件存在的时候就是移动,不存在的时候就是改名(重命名快捷键 F2,同windows)
    
[root@teacher jindafu]# ls 查看内容
xiaochen  xiaohou  xiaoli
[root@teacher jindafu]# mv xiaoli  xiaohou 将xiaoli移动到xiaohou目录
[root@teacher jindafu]# ls
xiaochen  xiaohou
[root@teacher jindafu]# ls xiaohou 查看效果
xiaoli
[root@teacher jindafu]#
[root@teacher jindafu]# ls
xiaochen  xiaohou
[root@teacher jindafu]# mv xiaochen dachen  将xiaochen改名为dachen
[root@teacher jindafu]# ls
dachen  xiaohou
[root@teacher jindafu]#
[root@teacher jindafu]# ls
alibaba  dachen  xiaohou
[root@teacher jindafu]# mv alibaba alimama 将alibaba改名为alimama
[root@teacher jindafu]# ls
alimama  dachen  xiaohou
[root@teacher jindafu]#

************************************************************************************************
cat head tail less more  tac

cat 不能分页显示,可以显示行号
more、less 分页显示
head、tail可以显示行首和行尾的内容


======
cat 命令

cat主要有三大功能:
#cat filename  显示整个文件
#cat  > filename  从键盘创建一个文件到当前文件夹下,只能创建不能编辑(touch 也是创建文件)
#cat  file1  file2  >file合并两个文件
#cat -n file1 >file2 把file1加上行号后输入file2这个文件里,原来file1文件里内容还在,但是file2的被覆盖
#cat -n file1 file2 >file3 把file1 file2都加上行号再并入file3中

>符号是重定向,经常用来重建文件(覆盖)
>>追加输出重定向,跟>用法一样,但是不覆盖里面原有的内容
重定向后面接的文件如果不存在会自动建立

cat 查看文件里的内容(按行显示)
[root@teacher lianxi]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.253   teacher.sxkeji.com  teacher
[root@teacher lianxi]#

[root@teacher lianxi]# cp /var/log/messages ./
[root@teacher lianxi]#
[root@teacher lianxi]# cat  -n  messages 查看文件的时候,显示行号(可以帮助知道有多少行)  

-n, --number     显示行号(两个一样的)number all output lines



[root@host sxjy]# cat >qiwufeiyang <
> fhsd
> nfdsj
> ff
> gg
> eof
[root@host sxjy]# ls
huhu  qiwufeiyang  shadow1  ss  xx
[root@host sxjy]#
[root@host sxjy]# cat qiwufeiyang
fhsd
nfdsj
ff
gg
[root@host sxjy]#

======

cat的拓展:

[root@teacher lianxi]# cat -n hosts >1.txt  查看当前目录下hosts文件里的内容,然后重定向到当前目录下的1.txt文件里

> 输出重定向,把本来应该在屏幕上输出的内容转移到后面接的文件里(乾坤大挪移),会覆盖原来文件里的内容
>> 追加输出重定向,不会覆盖原来文件里的内容
重定向后面接的文件如果不存在会自动建立

[root@teacher lianxi]# cat aa
aaaaaaaaaaaaaaaaaaaa
[root@teacher lianxi]# cat aa >1.txt
[root@teacher lianxi]# cat 1.txt
aaaaaaaaaaaaaaaaaaaa
[root@teacher lianxi]# cat -n hosts >>1.txt      不覆盖
[root@teacher lianxi]# cat 1.txt
aaaaaaaaaaaaaaaaaaaa
     1    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
     2    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
     3    10.0.0.253   teacher.sxkeji.com  teacher
[root@teacher lianxi]#


===
document   here
[root@teacher lianxi]# cat >qiwufeiyang <
> jazz
> du pi wu
> qia qia wu
> pi li wu
> zombi wu
> eof
> EOF
[root@teacher lianxi]#
[root@teacher lianxi]# cat >hunantv <
> happy base
> day day up
> have a date
> i am a singer
> qiwufeiyang
> EOF
[root@teacher lianxi]# cat hunantv
happy base
day day up
have a date
i am a singer
qiwufeiyang
[root@teacher lianxi]#


[root@teacher lianxi]# cat hunantv.sh  查看脚本的内容
cat  >hunantv.zhuchi <
hejiong
wanghan
xiena
wudan
lixiang
EOF
[root@teacher lianxi]#
[root@teacher lianxi]# bash hunantv.sh 执行脚本
[root@teacher lianxi]# ls
1.txt  chongqin  hunantv         messages     uu.txt
aa     hosts     hunantv.sh      qiwufeiyang  zhaoshiguer.txt
china  hubei     hunantv.zhuchi  shangdong
[root@teacher lianxi]# cat hunantv.zhuchi  产生的文件和内容(脚本里指定的)
hejiong
wanghan
xiena
wudan
lixiang
======

动态的监控

动态的监控文件的变化,一旦有变化在屏幕上输出
       -f, --follow[={name|descriptor}]
              output  appended  data  as  the  file  grows;
tail  -f  文件名
查看secure这个日志文件,该文件和系统的安全有关,凡是远程登录系统,新建用户和设置密码都会记录到此文件

[root@teacher lianxi]# tail -f  /var/log/secure
按ctrl+c 退出
配合下面命令的使用,看效果
[root@teacher lianxi]# useradd   chenzhou 新建用户chenzhou
[root@teacher lianxi]# passwd chenzhou 给chenzhou设置密码
[root@teacher lianxi]# ssh 10.0.0.253 远程连接10.0.0.253机器
[root@teacher lianxi]#

======

more  显示文件里的内容  (分页显示
more命令
用途:全屏方式分页显示文件内容
[root@host zhaoshi]# more +2 tan1      从第二行开始显示
     2    fsdkghjkfd
     3    sggfdh
     4    root:x:0:0:root:/root:/bin/bash
     5    bin:x:1:1:bin:/bin:/sbin/nologin
     6    daemon:x:2:2:daemon:/sbin:/sbin/nologin
     7    adm:x:3:4:adm:/var/adm:/sbin/nologin

[root@host zhaoshi]# more -2 tan1     显示2行,若回车可以继续向下显示
     1    hhhhhh
     2    fsdkghjkfd


交互操作方法:
 按Enter键向下逐行滚动
 按空格键向下翻一屏、按b键向上翻一屏
 按q键退出

[root@teacher lianxi]# cat messages |more  -n   more一般这样用,n可以取值,也可不加-n
| 管道符号  作用:将前面一个命令的输出送给后面一个命令作为输入的内容
(借花献佛)

======

less命令

用途:与more命令相同,但扩展功能更多,more是以百分比的方式分页显示,提示给用户已经显示了多少页,less没有百分比提示
交互操作方法:
 与more命令基本类似,但个别操作会有些出入
【page down】【page up】上翻下翻页


head命令
用途:查看文件开头的一部分内容(默认为10行)
格式:head -n 文件名

[root@teacher lianxi]# vim    hosts   vim编辑器的使用
    1.  3yy复制3行,可以使用上下方向键移动到末尾,按p粘贴
    2.按esc键,输入shift+;  最后输入wq 退出保存
[root@teacher lianxi]# gedit hosts &   开启gedit图像文件编辑工具(记事本)再后台运行(&)  
[3] 4011
[root@teacher lianxi]#
[root@teacher lianxi]# head -3 hosts 显示前3行的内容(默认显示前10行)
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.253   teacher.sxkeji.com  teacher
[root@teacher lianxi]# head -n 3 hosts 显示前3行的内容
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.253   teacher.sxkeji.com  teacher
[root@teacher lianxi]#
[root@teacher lianxi]# cat -n  hosts  查看文件里的内容显示行号,同时也知道文件有多少行
     1    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
     2    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
     3    10.0.0.253   teacher.sxkeji.com  teacher
     4    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
     5    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
     6    10.0.0.253   teacher.sxkeji.com  teacher
     7    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
     8    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
     9    10.0.0.253   teacher.sxkeji.com  teacher
    10    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    11    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    12    10.0.0.253   teacher.sxkeji.com  teacher


tail命令

用途:查看文件结尾的少部分内容(默认为10行)
[root@teacher lianxi]# tail -5 hosts
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.253   teacher.sxkeji.com  teacher
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.253   teacher.sxkeji.com  teacher
[root@teacher lianxi]# tail -2 hosts
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.253   teacher.sxkeji.com  teacher
[root@teacher lianxi]#
[root@teacher lianxi]# head -3 hosts |tail -1  显示第3行的内容
10.0.0.253   teacher.sxkeji.com  teacher
[root@teacher lianxi]#

tail 的高级问题:

题目图片。。。。。。。。。。。


以上题目的操作:
[root@host ~]# mkdir sxjy/ss
mkdir: 无法创建目录"sxjy/ss": 没有那个文件或目录
[root@host ~]# mkdir sxjy/ss -p
[root@host ~]# mkdir sxjy/xx
[root@host ~]# cp /etc/passwd /sxjy/ss
cp: 无法创建普通文件"/sxjy/ss": 没有那个文件或目录

[root@host sxjy]# cp /etc/passwd  /ss  
[root@host sxjy]# cd ss
[root@host ss]# ls                                没有copy过去但是不会出错

[root@host ~]# cp /etc/passwd ./sxjy/ss     相对路径
[root@host ~]# cd sxjy
[root@host sxjy]# cd ss
[root@host ss]# ls
passwd
[root@host ss]# cp  /etc/passwd   /root/sxjy/ss    绝对路径
cp:是否覆盖"/root/sxjy/ss/passwd"? y
[root@host ss]#

[root@host xx]# cp /etc/shadow ./
[root@host xx]# ls
shadow
[root@host xx]#

mv命令来改名:

[root@host sxjy]# tree
.
├── haha
├── ss
│   └── shadow
└── xx
    └── shadow
[root@host sxjy]# mv haha huhu
[root@host sxjy]# ls
huhu  ss  xx
[root@host sxjy]# mv shadow shadow1
mv: 无法获取"shadow" 的文件状态(stat): 没有那个文件或目录
[root@host sxjy]# mv shadow shadow1 -rf
mv:无效选项 -- r
请尝试执行"mv --help"来获取更多信息。
[root@host sxjy]# mv ./xx/shadow shadow1
[root@host sxjy]# tree
.
├── huhu
├── shadow1          连文件夹xx一起删除了,只剩下文件shadow1
├── ss
│   └── shadow
└── xx


tail和head命令高级用法
格式:tail  -n 数字 文件名
数字:数字前有 +(加号),从文件开头指定的单元      数开始输出;数字前有 -(减号),从文件末尾指定的单元 数开始输出;没有 +或 -,从文件末尾指定的单元 数开始输出。
例如:
tail -n +3 /etc/passwd 从第三行开始显示    *
tail -n -3  /etc/passwd 显示最后三行
head -n -3 /etc/passwd 不显示最后三行      *
head -n +3 /etc/passwd 显示前三行
[root@teacher lianxi]# tail -n +5 zhaoshiguer.txt |head -n -3
显示从第5行开始到去掉末尾3行之间的内容
zhao suo
tu an gu
tu an wu jiang
xiang ling
cao  er
hou chao
wu juan
zhao wei
[root@teacher lianxi]#


tac命令

用途:从最后一行倒着显示出文件的全部内容

[root@teacher lianxi]# tac   zhaoshiguer.txt

huang hui liang
liu yang
zhao wei
wu juan
hou chao
cao  er
xiang ling
tu an wu jiang
tu an gu
zhao suo
zhao wu
cheng ying
liudehua
[root@teacher lianxi]#


ln建立链接

语法:ln 【选项】目标 【链接名】

链接有两种,一种被称为硬链接(hard link),另一种被称为符号链接(Symblic link)。

建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接,而对于符号链接则不存在这个问题。

给ln命令加上-s选项,则建立符号链接,也叫软链接


这里link1是软链接,link2是硬链接
软链接删除目标后,链接不生效,硬链接只要inode不变则一直在
windows中的桌面快捷方式就是软链接


ln 创建符号链接文件(快捷方式)也叫软链接,创建符号链接文件(目录和文件都可以)
ln - make links between files
 -s, --symbolic
[root@teacher Desktop]# ln -s   /usr/bin/notecase  /root/Desktop/notecase
将/usr/bin/notecase创建链接文件到/root/Desktop/notecase

好处就是可以在桌面双击打开notecase

[root@teacher Desktop]# ll        
-rw-r--r-- 1 root root   1538 Apr 15 09:48 lixueyuan.txt
lrwxrwxrwx 1 root root     17 Apr 20 15:24 notecase -> /usr/bin/notecase

在桌面创建一个连接文件叫var 链接到/var目录
ln -s  /var   /root/Desktop/var
      源文件    目的文件


=====================================
which、whereis、locate、find

which命令

用途:查找可执行文件(命令)并显示所在的位置

[root@teacher lianxi]# which  mkdir
/bin/mkdir
[root@teacher lianxi]# which touch
/bin/touch
[root@teacher lianxi]# which ifconfig
/sbin/ifconfig
[root@teacher lianxi]#
[root@teacher lianxi]# which pwd
/bin/pwd
[root@teacher lianxi]# which tree
/usr/bin/tree
[root@teacher lianxi]#



[root@teacher lianxi]# shuaige=liuxiangyang    定义变量
[root@teacher lianxi]# echo $shuaige ni hao     引用变量(前面加$)
liuxiangyang ni hao
[root@teacher lianxi]#

[root@teacher lianxi]# echo  $PATH        输出当前用户的查找命令的路径变量(环境变量中的一个变量)
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin

各个路径使用冒号隔开,查看命令的时候就到上面的路径(目录)下查找


[root@teacher lianxi]# which tree
/usr/bin/tree

[root@teacher lianxi]# mv /usr/bin/tree  /  将tree命令移走

[root@teacher lianxi]# which tree 找不了,因为PATH变量的路径里没有了
/usr/bin/which: no tree in (/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin)
[root@teacher lianxi]# tree
bash: /usr/bin/tree: No such file or directory
[root@teacher lianxi]# /tree  使用绝对路径可以使用

[root@teacher lianxi]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin
[root@teacher lianxi]# PATH=$PATH:/china  修改PATH变量的值
[root@teacher lianxi]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/china
[root@teacher lianxi]#
[root@teacher lianxi]# ifconfig eth0 查看ip地址
eth0      Link encap:Ethernet  HWaddr 00:30:67:F2:10:CF  
          inet addr:10.0.0.253  Bcast:10.0.255.255  Mask:255.255.0.0
          inet6 addr: fe80::230:67ff:fef2:10cf/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5462933 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8529612 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:392231592 (374.0 MiB)  TX bytes:4083812614 (3.8 GiB)
          Interrupt:29 Base address:0x4000

[root@teacher lianxi]#



[root@teacher ~]# touch ipconfig  新建一个空文件
[root@teacher ~]# chmod +x ipconfig 授予可执行权限
[root@teacher ~]# cp ipconfig /sbin  复制到/sbin目录下
[root@teacher ~]# ipc   按tab键补齐,可以查找到,因为ipconfig在PATH变量目录下
ipcalc    ipcmk     ipconfig  ipcrm     ipcs      
[root@teacher ~]# ipconfig
[root@teacher ~]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/china
[root@teacher ~]#

whereis命令
用途:查找文件的路径、该文件的帮助文件路径,原理和which类似
查找命令的时候还是会查看PATH变量的值
[root@teacher ~]# whereis mkdir
mkdir: /bin/mkdir /usr/share/man/man1p/mkdir.1p.gz /usr/share/man/man3p/mkdir.3p.gz /usr/share/man/man2/mkdir.2.gz /usr/share/man/man1/mkdir.1.gz
[root@teacher ~]#
====
[root@teacher ~]# touch  alading
[root@teacher ~]# which alading
/usr/bin/which: no alading in (/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/china)
[root@teacher ~]# whereis alading
alading:
[root@teacher ~]# cp alading  /bin
[root@teacher ~]# which alading
/usr/bin/which: no alading in (/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/china)
[root@teacher ~]# whereis alading  没有可执行权限也可以找到
alading: /bin/alading
[root@teacher ~]#
[root@teacher ~]# chmod  +x /bin/alading
[root@teacher ~]# which alading
/bin/alading
[root@teacher ~]#
====
which和whereis的异同:
    都是在PATH变量的路径下查找命令
    但是whereis可以查看命令的man手册文件的路径,同时不要求命令具有可执行权限
====
[root@teacher ~]# locate alading
[root@teacher ~]# locate mkdir   在根目录下查找出所有的mkdir文件
/bin/mkdir
/image/bin/mkdir
/image123/bin/mkdir
/test/bin/mkdir
/usr/bin/gnomevfs-mkdir
/usr/bin/gvfs-mkdir
/usr/lib/perl5/auto/POSIX/mkdir.al
/usr/share/aclocal-1.11/mkdirp.m4
/usr/share/man/man1/mkdir.1.gz
/usr/share/man/man1p/mkdir.1p.gz
/usr/share/man/man2/mkdir.2.gz
/usr/share/man/man2/mkdirat.2.gz
/usr/share/man/man3p/mkdir.3p.gz
[root@teacher ~]# updatedb  新建的文件locate不一定能找到,需要更新数据库
[root@teacher ~]# locate alading
/bin/alading
/root/alading
[root@teacher ~]#
===
三者区别:
locate  :在整个根目录下查找,比较适合查找文件
which   :在PATH变量值路径下查找,比较适合查找命令,用于显示查找可执行文件的完全路径,有别名的也显示别名,无权限则会报错,没有时也会报错
whereis  :在PATH变量值路径下查找,比较适合查找命令,用于查找文件的路径,该文件的帮助文件(man)路径,该文件的相关原程序的路径,无执行权限也可查看,没有时不报错






mount挂载镜像命令:

[root@host /]# mount -o loop /Software/rhel6.3.iso  /mnt    挂载点/mnt

挂载镜像文件的步骤
 [root@teacher bak]# find / -name rhel*.iso                              查找iso镜像文件
/var/ftp/software/iso/rhel6.3.x86.iso  
 mount -o loop /var/ftp/software/iso/rhel6.3.x86.iso  /mnt          挂载镜像文件

[root@teacher bak]# df -Th                                                        查看磁盘分区的使用情况(查看c、d盘的使用情况)
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda3     ext4    321G   88G  218G  29% /
tmpfs        tmpfs    1.9G  320K  1.9G   1% /dev/shm
/dev/sda1     ext4     92G  233M   87G   1% /boot
/var/ftp/software/iso/rhel6.3.x86.iso
           iso9660    2.9G  2.9G     0 100% /mnt
[root@teacher bak]# cd /mnt                                    进入挂载点,可以查看目录里的内容
[root@teacher mnt]#
[root@host /]# df -TH
文件系统    类型      容量  已用  可用 已用%% 挂载点
/dev/sda2     ext4     259G    47G   199G  19% /
tmpfs        tmpfs     2.1G   635k   2.1G   1% /dev/shm
/dev/sda1     ext4     204M   146M    47M  76% /boot
/dev/sda3     ext4     104G   4.5G    94G   5% /usr
/dev/sda5     ext4      21G    17G   3.0G  85% /Software
/Software/rhel6.3.iso
           iso9660     3.2G   3.2G      0 100% /mnt

[root@host /]# df -Th
文件系统    类型      容量  已用  可用 已用%% 挂载点
/dev/sda2     ext4    241G   44G  186G  19% /
tmpfs        tmpfs    1.9G  620K  1.9G   1% /dev/shm
/dev/sda1     ext4    194M  139M   45M  76% /boot
/dev/sda3     ext4     97G  4.2G   88G   5% /usr
/dev/sda5     ext4     20G   16G  2.8G  85% /Software
/Software/rhel6.3.iso
           iso9660    2.9G  2.9G     0 100% /mnt
两者不同:
-H   likewise, but use powers of 1000 not 1024
-h     print sizes in human readable format (e.g., 1K 234M 2G)


find 命令

用途:用于查找文件或目录
格式:find  [查找范围]  [查找条件] [动作]
常用查找条件
-name:按文件名称查找
-group:根据文件所属组寻找文件
-size:   按文件大小查找
-user:  按文件属主查找
-type:  按文件类型查找    #普通文件的类型是 f,块的是 b,字符的为 c,链接的为 l,目录的为 d
-perm :按文件权限查找
-mtime :按文件更改时间查找      +n天前修改过的文件 -n n天之内 默认则刚好是那天
-atime:访问过的
-ctime:修改过状态的
-newer:按比某个文件更新的查找
-mmin: 根据分钟来查找
find .  -size +1M | xargs  ls -l     

各条件之间的连接,"与"的关系用 -and(即-a ) ,"或"的关系,则是-or (即
-o) ,"非"则是!



[root@teacher 3-linux]# find  /  -name  *.iso
在根目录下根据文件的名字来查找以.iso结尾的文件
find 是命令
/ 是查找的路径
-name是条件
*.iso 是文件名
===

查找/boot 目录下,大小大于 2M,但是小于 4M 的文件
[root@station6 ~]# find /boot -size +2M  -a ! -size +4M  -exec ls -l {} \;   //不能用-4M的方式,所以用!取反
-rw-r--r--. 1 root root 17155718 3月  31 13:03 /boot/initramfs-3.8.5.img
-rwxr-xr-x. 1 root root 3857376 6月  14 2012 /boot/vmlinuz-2.6.32-279.el6.i686
-rw-r--r--. 1 root root 4120384 3月  31 13:03 /boot/vmlinuz-3.8.5
-rw-r--r--. 1 root root 35698688 3月  31 15:50 /boot/img/initrd.img
-rw-r--r--. 1 root root 15029999 3月  31 15:48 /boot/img/initramfs-2.6.32-279.el6.i686.img
-rw-------. 1 root root 4065919 3月  31 14:00 /boot/initrd-3.8.5kdump.img
-rw-r--r--. 1 root root 15029999 3月  16 04:18 /boot/initramfs-2.6.32-279.el6.i686.img
-rw-------. 1 root root 3833167 3月  16 04:24 /boot/initrd-2.6.32-279.el6.i686kdump.img
[root@station6 ~]#


[root@host ~]# find / -name *.iso   在根目录下查找名字是以iso结尾的镜像文件,一般不知道文件在哪里可以用/,会搜所有文件
/usr/lib/vmware/isoimages/freebsd.iso
/usr/lib/vmware/isoimages/windows.iso
/usr/lib/vmware/isoimages/winPre2k.iso
/usr/lib/vmware/isoimages/solaris.iso
/usr/lib/vmware/isoimages/netware.iso
/usr/lib/vmware/isoimages/linux.iso
/Software/cn_windows_8_enterprise_x86.iso
/Software/ubuntu-12.10-desktop-i386.iso
/Software/WIN7_2011_V5.1_33LC.iso
/Software/rhel6.3.iso
[root@host ~]#

[root@host boot]# find /boot -name vm*         /boot下以vm开头的文件
find: 路径必须在表达式之前: vmlinuz-2.6.32-279.el6.i686
用法: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

[root@host ~]# find /boot -name "vm*"          有些情况下直接用vm*会报错,要加双引号或者 vm\*转意一下,”\"是转义字符
/boot/vmlinuz-2.6.32-279.el6.i686
/boot/vmlinuz-3.8.5
/boot/img/lib/modules/2.6.32-279.el6.i686/kernel/drivers/scsi/vmw_pvscsi.ko
/boot/vmlinuz
[root@host ~]#

[root@teacher ~]# find /boot -name vm\*
/boot/vmlinuz-2.6.38.8
/boot/vmlinuz
/boot/vmlinuz-2.6.32-279.el6.i686
[root@teacher ~]#

[root@host boot]# find / -size +100M -name *.iso        /下  >100M并且以iso结尾的
/Software/cn_windows_8_enterprise_x86.iso
/Software/ubuntu-12.10-desktop-i386.iso
/Software/WIN7_2011_V5.1_33LC.iso
/Software/rhel6.3.iso
[root@host boot]# find / -size +100M -a -name *.iso       -a(并)可以不接,默认为-a(-o或,不能省,-not非,不能省)
/Software/cn_windows_8_enterprise_x86.iso
/Software/ubuntu-12.10-desktop-i386.iso
/Software/WIN7_2011_V5.1_33LC.iso
/Software/rhel6.3.iso
[root@host boot]#

[root@teacher ~]# find /boot -name "vm*" -exec ls -l {} \;
-exec  后面接需要执行的命令 (execute)
ls -l   是具体要执行的命令
{}   是用来存放前面一个命令查找到的结果
\;   是一个结束标志

[root@host home]# find / -size +1G -exec ls -l {} \;
-rw-------. 1 root root 1762131968 4月   7 20:26 /root/vmware/Ubuntu/Ubuntu-s001.vmdk
-rw-------. 1 root root 1231814656 4月  18 22:08 /root/vmware/Red Hat Enterprise Linux 6 (2)/Red Hat Enterprise Linux 6 (2)-s005.vmdk

[root@localhost ~]# find / -name \*iso -o -size +100M    
  包含iso结尾或者大于100M

[xiaozhou@teacher ~]$ find /home -user  xiaozhou
-user是根据用户来查找

[xiaozhou@teacher ~]$ find /home ! -user  xiaozhou
不是用户xiaozhou的文件查找出来

[tan@host ~]$ find  /home ! -user tan    
/home
/home/xiang
find: “/home/xiang”: 权限不够
/home/tan/san
/home/tan/er
/home/tan/er/yi
/home/tan/yi
/home/tan/yi/kaixin
/home/dinghua
find: “/home/dinghua”: 权限不够
/home/rengwu
/home/chaochao
find: “/home/chaochao”: 权限不够
/home/uu
find: “/home/uu”: 权限不够
[tan@host ~]$ find  /home  -user tan
find: “/home/xiang”: 权限不够
/home/tan
/home/tan/.mozilla
/home/tan/.mozilla/plugins
/home/tan/.mozilla/extensions
/home/tan/.bash_history
/home/tan/.bash_profile
/home/tan/.bash_logout
/home/tan/.gnome2
/home/tan/.bashrc
find: “/home/dinghua”: 权限不够
find: “/home/chaochao”: 权限不够
find: “/home/uu”: 权限不够
[tan@host ~]$

====
find -mtime  -n  +n
-mtime  modify       修改时间
-atime    access    访问时间
-ctime    change    改变文件的属性的时候(大小、时间、用户、组、权限)
-mmin     根据分钟查找
-n n天之内
+n n天之前
默认则刚好是那天

[root@teacher bak]# stat zhousuo
  File: `zhousuo'
  Size: 31            Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 12189704    Links: 1
磁盘分区编号           文件的inode号        链接数
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2013-04-20 08:03:28.082667296 +0800  访问时间
Modify: 2013-04-20 08:03:28.082667296 +0800(时区) 修改时间
Change: 2013-04-20 08:03:28.132543403 +0800  改变属性的时间

访问时间  cat、vim查看
修改时间  vim编辑
ctime   chmod、chown可以修改文件的属性
==
需要确认
[root@teacher bak]# find . -type f -ok rm -rf {} \;
< rm ... ./bb > ? y
< rm ... ./dd > ? y
< rm ... ./cc > ? y
< rm ... ./aa > ? y
[root@teacher bak]# ls
a  b  c  d


=====================
现象---问题?
[root@localhost ~]# find / -name \*iso -a -size +100M
/rhel6.3.x86.iso
/iso/ubuntu-12.10-desktop-i386.iso
/iso/rhel6.3.x86.iso
/iso/WIN7_2011_V5.1_33LC.iso
/root/WIN7_2011_V5.1_33LC.iso
[root@localhost ~]# find / -name *iso -a -size +100M
/iso/WIN7_2011_V5.1_33LC.iso
/root/WIN7_2011_V5.1_33LC.iso
[root@localhost ~]#

history  命令


查看自己用了多少命令,历史命令(1000条)

[root@host ~]# history
 
  783  vncviewer 10.0.253:3 --shared --viewonly &
  784  df -Th
  785  du -sh
  786  du -sh /root
  787  du -sh /boot
  788  cd boot
  789  ls
  790  stat tan
  791  cd
  792  cd tan
  793  history
[root@host ~]# !787      执行第787条指令du -sh /boot
du -sh /boot
135M    /boot
[root@host ~]# !vnc       执行执行以vnc开头的历史命令 vncviewer 10.0.253:3 --shared --viewonly &
vncviewer 10.0.253:3 --shared --viewonly &
[2] 4134
[root@host ~]#

history -c  清除历史命令
[root@station6 skel]#history -c
[root@station6 skel]# echo history -c >>/root/.bash_logout  注销的时候就会执行


打包归档及压缩:

打压缩包的意义:备份、节约空间
[root@teacher mnt]# find ./ -size +10M -a -name kerne* -exec cp {} /home/ss/xx/  \;
[root@teacher mnt]# find ./ -size +3072k -a  -size -8192k -a -name "i*"  -exec cp {} /home/ss/xx/kk/  \;
[root@teacher kk]# mv i* jj/
[root@teacher ss]# cp xx /xx -r
zip ,unzip
语法:
zip     zip文件   源文件
unzip  【参数】 zip文件
参数:
-l  列出压缩文件所包含的内容
-v 显示详细的执行过程
不覆盖

[root@teacher ss]# zip lanqiu.zip hailong zhaowei 将zhaowei hailong压缩成lanqiu.zip文件
  adding: hailong (stored 0%)
  adding: zhaowei (stored 0%)
[root@teacher ss]# zip passwd.zip passwd  将passwd文件压缩成passwd.zip
  adding: passwd (deflated 61%)
[root@teacher ss]# ls
a  c  hailong     passwd      xx
b  d  lanqiu.zip  passwd.zip  zhaowei

[root@host wulin]# zip huashang.zip messages       只能压缩文件,不能压缩文件夹,且不取代原文件
  adding: messages (deflated 84%)
[root@host wulin]# ls
boot      huashan             messages         wudang.2013-04-20.tar.gz
etc       huashang.zip        messages.tar.gz
hengshan  linghuchong.zar.gz  wudang

unzip  解压缩
默认情况下解压到当前目录

[root@teacher ss]# unzip passwd.zip
Archive:  passwd.zip
  inflating: passwd                  
[root@teacher ss]# ls
a  b  c  d  lanqiu.zip  passwd  passwd.zip  test  xx
[root@teacher ss]# unzip lanqiu.zip
Archive:  lanqiu.zip
 extracting: hailong                 
 extracting: zhaowei                 
[root@teacher ss]# ls
a  c  hailong     passwd      test  zhaowei
b  d  lanqiu.zip  passwd.zip  xx
[root@teacher ss]#

指定解压目录为/zhaowei
[root@teacher bak]# unzip passwd-shadow.zip -d /zhaowei
Archive:  passwd-shadow.zip
  inflating: /zhaowei/passwd         
  inflating: /zhaowei/shadow         
[root@teacher bak]#

[root@host bak]# unzip passwd-shadow.zip -d ss   自定义解压路径(-d)到ss,默认是当前路径下
Archive:  passwd-shadow.zip
  inflating: ss/passwd               
  inflating: ss/shadow  

[root@host wulin]# unzip huashang.zip
Archive:  huashang.zip
replace messages? [y]es, [n]o, [A]ll, [N]one, [r]ename: y     原来有则询问是否覆盖
  inflating: messages        
[root@host wulin]#
gzip,zcat

gzip 对文件进行压缩,而且是直接在原来的文件上进行的,会取代原文件,解压也是。加了一个扩展名.gz ,不能对文件夹进行压缩
zcat 查看压文件里的内容
重要参数为:
-9(压缩最慢但是压缩比最好)
-d (解压缩)
-c   不取代原文件,将压缩数据输出为标准输出(bzip2一样)

压缩:
[root@host wulin]# ls
boot      huashan             messages         wudang
etc       huashang.zip        messages.tar.gz  wudang.2013-04-20.tar.gz
hengshan  linghuchong.zar.gz  nice.txt

[root@host wulin]# gzip -1 nice.txt >nice.txt.gz  
gzip: nice.txt.gz already exists; do you wish to overwrite (y or n)? y
[root@host wulin]# ls
boot      huashan             messages         wudang
etc       huashang.zip        messages.tar.gz  wudang.2013-04-20.tar.gz
hengshan  linghuchong.zar.gz  nice.txt.gz    解压后把源文件覆盖了

[root@station6 tan]# gzip -1 -c passwd >passwd.gz   
加-c就不覆盖
[root@station6 tan]# ls
etc  passwd  passwd.gz  passwd.zip
[root@station6 tan]#



[root@teacher lianxi]# gzip -9 xiaohui
[root@teacher lianxi]# ls
cctv  passwd  shadow  xiaohong  xiaohui.gz  xiaokang   没有xiaohui文件了

[root@teacher lianxi]# gzip -9 cctv                                   不能压缩目录
gzip: cctv is a directory -- ignored
[root@teacher lianxi]#

[root@teacher lianxi]# zcat passwd.gz      查看压缩文件里的内容
[root@host hunantv]# cat hejiong              查看一般文件内容
hejiongjiong

[root@teacher lianxi]# whereis mkdir  平时我们man某个命令的时候,查看的手册内容其实都是.gz文件里的内容
mkdir: /bin/mkdir /usr/share/man/man1p/mkdir.1p.gz /usr/share/man/man3p/mkdir.3p.gz /usr/share/man/man2/mkdir.2.gz /usr/share/man/man1/mkdir.1.gz
[root@teacher lianxi]#

解压:
[root@teacher lianxi]# gzip -d passwd.gz    解压,默认为当前文件夹 ,解压也取代原来文件
[root@teacher lianxi]# ls
cctv  passwd  shadow  xiaohong  xiaohui.gz  xiaokang
[root@teacher lianxi]#


bzip2 ,bzcat
[root@teacher lianxi]# bzip2 -9 passwd        压缩(扩展名以.bz2)
[root@teacher lianxi]# ls
cctv  passwd.bz2  shadow  xiaohong  xiaohui.gz  xiaokang
[root@teacher lianxi]# bzip2 -d passwd.bz2   解压
[root@teacher lianxi]# ls
cctv  passwd  shadow  xiaohong  xiaohui.gz  xiaokang
[root@teacher lianxi]#


注意:哪种类型压缩文件只能用哪种解压命令解压
zip--》.zip
gzip ---》.gz     
bzip2 --->.bz2



tar   五星级命令
用途:制作归档文件、释放归档文件
格式:tar  [选项]...  归档文件名  源文件或目录
           tar  [选项]...  归档文件名  [-C 目标目录]

tar  作用:创建压缩文件,用来备份,可以节约磁盘空间。

压缩
-czvf和czvf效果一样

解压
xf    xvf   都可以解压(.tar.gz或者.tar.bz2) ,可以不接v选项
解压文件后会覆盖原文件
(压缩文件不被覆盖)压缩的时候不会覆盖原文件


常用命令选项
-c:创建 .tar 格式的包文件
       -c, --create
              create a new archive
-x:解开.tar格式的包文件
       -x, --extract, --get
              extract files from an archive
-v:输出详细信息
       -v, --verbose
              verbosely list files processed
-f:表示使用归档文件
       -f, --file=ARCHIVE
              use archive file or device ARCHIVE
-t:列表查看包内的文件
       -t, --list
              list the contents of an archive
-p:保持原文件的原来属性(权限)
       -p, --preserve-permissions
              extract  information  about  file per-
              missions (default for superuser)
-P:保持原文件的绝对路径(慎用)
      -P, --absolute-names
              don’t strip  leading  ‘/’s  from  file
              names
-C:解包时指定的目标文件夹
-z:调用gzip程序进行压缩或解压
       -z, --gzip, --gunzip, --ungzip
              filter the archive through gzip
-j:调用bzip2程序进行压缩或解压
       -j, --bzip2
              filter the archive through bzip2
--exclude  filename  排除某个文件或者目录

[root@teacher lianxi]# tar czvf  hunantv.tar.gz  hunantv
将当前目录下的hunantv创建一个叫hunantv.tar.gz的文件,放到当前目录下

[root@teacher lianxi]# tar tvf hunantv.tar.gz    查看压缩包的内容(zcat,bzcat也是)
[root@teacher lianxi]# tar tvf hunantv.tar.bz2  查看压缩包的内容

drwxr-xr-x root/root         0 2013-04-20 10:15 hunantv/
-rw-r--r-- root/root         0 2013-04-20 10:15 hunantv/hejiong
-rw-r--r-- root/root         0 2013-04-20 10:15 hunantv/wanghan
-rw-r--r-- root/root         0 2013-04-20 10:15 hunantv/duhaitao
-rw-r--r-- root/root         0 2013-04-20 10:15 hunantv/ouyidi
-rw-r--r-- root/root         0 2013-04-20 10:15 hunantv/daqianfeng
-rw-r--r-- root/root         0 2013-04-20 10:15 hunantv/xiena
[root@host wulin]# tar xf  /root/liyang/pwd-host-boot.tar.bz2       解压的路径不接就默认为当前目录wulin

解压文件的时候接-C,指定路径
创建压缩文件的时候,建议使用绝对路径指定目录和文件名比较好
[root@station6 tan]# ls
1.gzip  1.txt  passwd  passwd1  passwd2  passwd.tar  shadow  wenjian
[root@station6 tan]# tar -xvf passwd.tar  -C /tan
passwd
[root@station6 tan]# cd /tan
[root@station6 tan]# ls
passwd
[root@station6 tan]# tail -3 passwd
jingshi:x:508:517::/home/jingshi:/bin/bash
yueyang:x:509:518::/home/yueyang:/bin/bash
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
[root@station6 tan]#

这里cf要加-不然会报错,因为前面--exclude(压缩过程中排除指定文件或目录)用的是长格式
[root@host liyang]# tar --exclude boot -cf wulin.tar.gz /root/tan/wulin/*
tar: 从成员名中删除开头的“/”
[root@host liyang]# ls
pwd-host-boot.tar.bz2  wulin.tar.gz

可以将文件(压缩文件也包括在内)或者文件夹一起打包并且压缩,加v显示压缩或解压过程
[root@teacher lianxi]# tar  cjvf   hunantv.tar.bz2   hunantv   passwd   shadow   xiaohong    xiaohui.gz
hunantv/
hunantv/hejiong
hunantv/wanghan
hunantv/duhaitao
hunantv/ouyidi
hunantv/daqianfeng
hunantv/xiena
passwd
shadow
xiaohong
xiaohui.gz







你可能感兴趣的:(linux学习笔记)