文件管理

========= shell对文件进行管理==========
. 复制、创建、删除、移动、编辑、压缩、权限、查看、查找
一、Linux的目录结构
Windows: 以多根的方式组织文件  C:\   D:\   E:\
Linux:   以单根的方式组织文件  /
/目录结构:======
bin     普通用户使用的命令 /bin/ls
dev    设备文件 /dev/sda,/dev/tty1,dev/tty2,/dev/pts/1
home    普通用户家目录小区
lost+found   孤儿文件
proc    内核虚拟目录,反映出来的是内核,进程信息或实时状态  虚拟的文件系统
sbin     管理员使用的命令
usr  系统文件,相当于C:\Windows
boot    *** 和启动相关的文件,例如kernel,grub
etc    *** 配置文件
lib     库文件
media        移动设备默认的挂载点
mnt     手工挂载设备的挂载点
root    root用户的HOME
tmp     临时文件   
var  *** 存放的是一些变化文件,比如数据库,日志,邮件....
路径:==========
cd
. 链接到当前目录
.. 链接到上一级目录
绝对路径:从/开头的路径 cd /home     cd ~alice
相对路径:相对于当前目录开始 cd ..
~ 当前用户的家目录
cd ~ 进入当前用户的家目录
# cd /usr/share/doc/
=======================================================
cd专用:
cd - 返回上次目录
cd 直接回家目录
=======================================================

文件管理之:创建/复制/移动/删除
==创建
文件  touch 文件            无则创建,有则修改时间
# touch file1.txt
# touch -t 1501010001 2018.rmvb
修改文件时间 语法:
-t STAMP
              use [[CC]YY]MMDDhhmm[.ss] instead of current time
====================================================================
目录
# mkdir /home/dir2 /home/dir3
# mkdir /home/{dir4,dir5}
[root@station230 ~]# mkdir -v /home/ {dir6,dir7}
mkdir: 已创建目录 “/home/dir6”
mkdir: 已创建目录 “/home/dir7”
# mkdir -p /home/dir8/111/222     包括其父母的创建
==复制
cp 源 目标
# cp install.log /home/dir1
# cp -r uplayer/ /home/dir1
[root@station230 ~]# cp install.log /home/dir2
[root@station230 ~]# cp my.jpg !$
cp my.jpg /home/dir2
[root@station230 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 \     
> /etc/passwd /etc/grub.conf /etc/hosts . # 这里“\”是换行用的,而且cp命令后面的一个或者多个都是源,只有最后一个是目标(这里是  .  )
# cp -rf /etc/hosts {,.aa}
“/etc/hosts” -> “/etc/hosts.aa”
查看/etc会发现多出一个hosts.aa
[root@vm8 ~]# ll /etc/hosts*
-rw-r--r-- 1 root root 207 May 14 08:10 /etc/hosts
-rw-r--r-- 1 root root 207 Nov 10 01:33 /etc/hosts.aa
========================================================
小知识:root用户使用cp (默认有一个别名 alias cp='cp -i')也就是说有交互,总是询问,下面是几种方法跳过询问
1. /bin/cp -rf my.jpg /home/dir2
2. # unalias cp               
   # cp -rf my.jpg /home/dir2  
   ###shell都是临时的,只对当前shell生效,重新打开,这个别名还是存在的,除非彻底修改配置文件
3. # \cp -rf install.log /home/dir2
========================================================
==移动
mv 源 目标
# mv file2 /home/dir3  将file2移动到/home/dir3里
# mv file4 file5        将file4重命名为file5,当前位置里的移动就是重命名
==删除 /home/dir1         
cd /home
rm -rf dir1        这种方法能够避免误删重要的目录,所以先到目录下,在去删除文件
-r 递归
-f force强制
-v 详细过程

==查看文件内容
文本文件
/etc/hosts
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/passwd
/etc/shadow
/etc/group
/etc/grub.conf
/etc/resolv.conf
/var/log/messages //系统的主日志文件
cat     
-n  显示行号
-A  包括控制字符(换行符)linux $ Windows ^M$
dos2unix  windows下的转换为linux的可读文件
unix2dos  linux下的转换为windows的可读文件
例如
unix2dos --help
dos2unix -n window.txt 123
less    这个更好用些(n N 翻) q退出  less /etc/passwd
more
head -1  默认是10行,加“-1”是看第一行 , 加-23就看前23行      例如  head /etc/passwd   
tail -1  同上
# tail -f /var/log/messages  动态看这个文件
# logger yangsheng
grep 针对文件内容进行过滤
grep 'root' /etc/passwd
grep --color 'root' /etc/passwd
grep --color '^root' /etc/passwd
grep --color '/bin/bash$' /etc/passwd

==二进制文件
# strings /bin/ls

===修改文件内容===
# cp -rf /boot/grub/grub.conf .
# cp -rf /etc/sysconfig/network-scripts/ifcfg-eth0 .

vi vim
命令模式:
    a. 光标定位 hjkl  gg G  /string(n N 可以循环的)  
         快速定位到某一行  
                  1.    末行模式下 :14    进入第14行         
                  2.   命令模式下   3G  进入第三行
           
   b. 复制y  粘贴p   yy 3yy   ygg  yG
      删除d   p
                          dd 3dd  dgg  dG    (以行为单位)
          x  删除后面的一个字符
                D  删除后面的一行
                u  撤销
                ^r  redo 再作一次
         r   可以用来修改一个字符
    c. 进入其它模式   
                 进入插入模式
                            i进入后在光标前面开始输入      //**
                            o另起一行,光标到这行的开头  //**
                            A进入后到本行的末端                  //**
                            a 进入后在光标后面开始输入
               :       进入末行模式
插入模式:
末行模式:
a. 保存退出     :w  写入保存   :q  退出    :wq  保存并退出      :w! 强制保存      :q! 不保存并退出       :wq!强制保存退出
b. 查找替换    :1,5 s/Note/yyy/  从1-5行的Note 替换为yyy   :5,$ s/Note/yyy/ $表示最后一行
                        :% s/to/uplooking/      :% s/to/uplooking/g       %表示所有行  g 表示每行的相应词都替换
                        :4,9 s/^#//  4-9行的以#开头的替换为空
c. 设置环境      :set nu 设置行号      :set ic  不区分大小写               :set ai  自动缩进
           :set nonu  取消设置行号     :set noic
d. 读入文件/写文件: :w/aaa.txt  当在原来的保存不了时, 另存为aaa.txt  
                   :r/etc/hosts
永久的环境:
用户HOME(家目录): .vimrc      可以vim .vimrc,在这里打上下面俩个命令,就可以让命令模式下都显示行号和不区分大小写
                       set ic
                       set nu
# vim -O /etc/hosts /etc/grub.conf
# vimdiff grub.conf /etc/grub.conf  ///将两个文件作对比      
# vimdiff  -O  grub.conf /etc/grub.conf   ^w 暗两次切换

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值