Day02-阿铭Linux-文件目录管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day02-阿铭Linux-文件目录管理相关的知识,希望对你有一定的参考价值。
Day02-阿铭Linux-文件、目录管理
2.1 系统目录结构上
[[email protected] ~]# ls /
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
yum install -y tree
[[email protected] ~]# tree -L 1 /
/
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
常用命令存放目录
/usr/bin
/usr/sbin
/bin
/sbin
/boot 系统启动相关文件
grub
grub2
[[email protected] ~]# ls /boot
config-3.10.0-693.el7.x86_64
efi
grub
grub2
initramfs-0-rescue-8c52e199b0324c32b27d6a9e03982bde.img
initramfs-3.10.0-693.el7.x86_64.img
initramfs-3.10.0-693.el7.x86_64kdump.img
initrd-plymouth.img
symvers-3.10.0-693.el7.x86_64.gz
System.map-3.10.0-693.el7.x86_64
vmlinuz-0-rescue-8c52e199b0324c32b27d6a9e03982bde
vmlinuz-3.10.0-693.el7.x86_64
/dev 设备文件存放目录
/etc 系统配置文件存放目录
/home 用户家目录文件
系统库文件
/lib
/lib64
ldd /bin/ls 查看ls命令的依赖库文件
[[email protected] ~]# ls /home
[[email protected] ~]# useradd user1
[[email protected] ~]# ls /home
user1
2.2 系统目录结构下
/media 临时挂载目录,默认空的
/mnt 临时挂载目录,默认空的
/opt 默认空的
/proc 系统进程,不占用磁盘空间,运行在内存中,默认空的
/run 进程产生的临时文件,关机后会消失
/srv 存一些服务产生的文件
/sys 系统内核一些相关文件
/tmp 系统临时文件目录
/usr 系统用户会用到的一些命令
/var /var/log 系统日志
常用目录
/usr/bin /usr/sbin /bin /sbin /etc /var/ /usr/local
2.3 ls 命令
ls lh -h人性化显示
ls -i -i显示inode信息
ls -la -a显示全部文件,.开头的文件是隐藏文件
ls -lta -t以时间排序
ls -ld /root/ -d只显示root下的目录
[[email protected] ~]# ls -lih
总用量 8.0K
33580930 -rw-------. 2 root root 1.4K 2月 24 22:22 anaconda-ks.cfg
33580930 -rw-------. 2 root root 1.4K 2月 24 22:22 anaconda-ks.cfg.bak
inode 文件类型 权限 selinux开启 有硬链接 所有者 所属组 占用空间 日期 文件名称
[[email protected] ~]# which ls
alias ls=‘ls --color=auto‘
/usr/bin/ls
[[email protected] ~]# which ll
alias ll=‘ls -l --color=auto‘
/usr/bin/ls
2.4 文件类型
d 目录
- 普通文件 可以使用cat查看
c 字符串设备
l 软连接文件 ,相当于Windows快捷方式
b 块设备
s soket文件,通信功能
2.5 alias 命令别名
[[email protected] ~]# alias
alias cp=‘cp -i‘
alias egrep=‘egrep --color=auto‘
alias fgrep=‘fgrep --color=auto‘
alias grep=‘grep --color=auto‘
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‘
[[email protected] ~]# alias aming=‘ls -lha‘
[[email protected] ~]# aming
总用量 32K
dr-xr-x---. 3 root root 202 2月 25 09:27 .
dr-xr-xr-x. 17 root root 245 2月 24 22:55 ..
-rw-------. 2 root root 1.4K 2月 24 22:22 anaconda-ks.cfg
-rw-------. 2 root root 1.4K 2月 24 22:22 anaconda-ks.cfg.bak
lrwxrwxrwx. 1 root root 15 2月 25 09:27 anaconda-ks.cfg.rbak -> anaconda-ks.cfg
-rw-------. 1 root root 2.5K 2月 25 09:50 .bash_history
-rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 12月 29 2013 .bashrc
-rw-r--r--. 1 root root 100 12月 29 2013 .cshrc
drwx------. 2 root root 80 2月 25 00:40 .ssh
-rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc
[[email protected] ~]# unalias aming
[[email protected] ~]# aming
-bash: aming: 未找到命令
2.6 绝对和相对路径
绝对路径:从根开始的
ls /etc/sysconfig/network-scripts/ifcfg-ens33
ls /root/.ssh/
相对路径:相对于当前路径开始的路径
ls .ssh/authorized_keys
ls network-scripts/ifcfg-ens33
pwd 查看当前路径
2.7 cd 命令
- 返回上一次打开的目录
~ 返回家目录 或 直接cd 功能一样
. 当前目录
.. 返回上级目录
2.8 创建和删除目录 mkdir rmdir
mkdir
-p 递归创建目录
-v 显示过程
mkdir -p /tmp/aming/123
rmdir 删除非空目录
2.9 rm 命令,谨慎使用
-r 连续多级文件夹删除
-f 强制,直接删除不提示
-v 显示过程
rm -rf /tmp/aming/123
[[email protected] ~]# which rm
alias rm=‘rm -i‘
/usr/bin/rm
2.10 环境变量 PATH
[[email protected] ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
添加环境变量
[[email protected] ~]# PATH=$PATH:/tmp/
[[email protected] ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/
改回默认环境变量
[[email protected] ~]# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[[email protected] ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
2.11 cp 拷贝
-r 递归复制目录
复制目录过程中,目标路径存在相同名称的目录,直接覆盖,不存在则自动创建这个名称的目录
[[email protected] ~]# cp /etc/passwd /tmp/1.txt
[[email protected] ~]# cp -r /etc/passwd/ /tmp/aming/
[[email protected] ~]# ls /tmp
1.txt
aming
!$ 上一条命令的,最后一个参数
[[email protected] ~]# tree !$
tree /tmp
/tmp
├── 1.txt
├── aming
[[email protected] ~]# which cp
alias cp=‘cp -i‘
/usr/bin/cp
2.12 mv 移动
移动并改名
mv 目标文件 新文件名称
mv 目标目录 新目录名称
移动到目标文件到目标目录
mv 目标文件 目标目录
2.13 文档查看 cat more less head tail
cat 目标文件
-A 行尾显示结束符
-n 显示行号
tac 目标文件,倒序查看
more 多屏显示
less 查看文件时,可以上下滚动浏览
head 查看文件的头十行
head -n 20
tail 查看文件的后十行
tail -n 5
tail -f /var/log/messages 动态显示日志
2.14 chmod 修改文件或目录权限
-R 递归更改文件夹内所有目录和文件的权限
rwx
r=4 w=2 x=1
chmod 700 2.txt
chmod u=rwx,g=r,o=r 2.txt
chmod a+x 2.txt
chmod ugo-x 2.txt
2.15 chown 更改所有者和所属组
chown -R username:group filename
-R 递归更改文件夹内所有目录和文件的所属
[[email protected] tmp]# chown aming /tmp/yum.log
[[email protected] tmp]# ll /tmp/yum.log
-rw-------. 1 aming root 0 2月 24 22:17 /tmp/yum.log
[[email protected] tmp]# chgrp user1 /tmp/yum.log
[[email protected] tmp]# ll /tmp/yum.log
-rw-------. 1 aming user1 0 2月 24 22:17 /tmp/yum.log
[[email protected] tmp]# chown user1:aming /tmp/yum.log
[[email protected] tmp]# ll /tmp/yum.log
-rw-------. 1 user1 aming 0 2月 24 22:17 /tmp/yum.log
2.16 umask
创建文件默认权限 644
创建目录默认权限 755
[[email protected] tmp]# umask
0022
022 644 755
002 664 775
目录 777 - 022 = 755
文件 666 - 022 = 644 遇到奇数+1
2.17 lsattr chattr 隐藏权限
chattr 设置隐藏权限
+i 不允许对文件进行任何操作,可以更改目录内文件的内容
+a 可以对文件进行追加内容和修改时间,不能更改名字、删除、更改原有内容
可以对目录和目录里的文件进行修改内容和修改时间,不能更改目录名字、删除,可更改目录里内容
[[email protected] tmp]# chattr +i 1.txt
[[email protected] tmp]# lsattr 1.txt
----i----------- 1.txt
[[email protected] tmp]# mv 1.txt 3.txt
mv: 无法将"1.txt" 移动至"3.txt": 不允许的操作
[[email protected] tmp]# chattr -i 1.txt
[[email protected] tmp]# mv 1.txt 3.txt
2.18 特殊权限 set uid
普通用户在执行带S权限的这个命令时,临时获得root的权限执行命令
[[email protected] tmp]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
[[email protected] ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
[[email protected] tmp]# chmod u+s /usr/bin/ls
[[email protected] tmp]# ls -l /usr/bin/ls
-rwsr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
[[email protected] ~]$ ls /root/
anaconda-ks.cfg anaconda-ks.cfg.bak anaconda-ks.cfg.rbak
[[email protected] tmp]# chmod u=rws /usr/bin/ls
[[email protected] tmp]# ls -l /usr/bin/ls
-rwSr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
[[email protected] tmp]# chmod u+x /usr/bin/ls
[[email protected] tmp]# ls -l /usr/bin/ls
-rwsr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
2.19 set gid
普通用户临时拥有所属组的权限,目录的所属组设置了S权限后,在这个目录下创建的子文件或子目录所属组和该目录的所属组相同
[[email protected] tmp]# chmod g+s /usr/bin/ls
[[email protected] tmp]# ls -l /usr/bin/ls
-rwxr-sr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
[[email protected] tmp]# mkdir 234
[[email protected] tmp]# chmod g+s 234
[[email protected] tmp]# ls -ld 234
drwxr-sr-x. 2 root root 6 2月 25 20:42 234
[[email protected] tmp]# chown :user1 234
[[email protected] tmp]# ls -ld 234
drwxr-sr-x. 2 root user1 6 2月 25 20:42 234
[[email protected] tmp]# touch 234/aminglinux
[[email protected] tmp]# mkdir 234/am
[[email protected] tmp]# ls -l 234/
总用量 0
drwxr-sr-x. 2 root user1 6 2月 25 20:44 am
-rw-r--r--. 1 root user1 0 2月 25 20:44 aminglinux
2.20 特殊权限 stick_bit
chmod o+t /tmp/aming
带t特殊权限的目录,防止别人删除该目录里的文件
[[email protected] tmp]# ls -ld /tmp/
drwxrwxrwt. 13 root root 4096 2月 25 20:42 /tmp/
2.21 软连接文件
ln -s 源filename 目标filename
ln -s 源dir 目标dir
[[email protected] tmp]# ls -l /bin
lrwxrwxrwx. 1 root root 7 2月 24 22:18 /bin -> usr/bin
软连接:节省空间,尽量使用绝对路径,源文件改名或者路径改名,会找不到,通过软链接,可以把文件占用空间转移到其他分区,inode不同
[[email protected] tmp]# ln -s /tmp/yum.log /root/yum.txt
[[email protected] tmp]# ls -l /root/
总用量 8
lrwxrwxrwx. 1 root root 12 2月 25 21:06 yum.txt -> /tmp/yum.log
2.22 硬链接
ln 源filename 目标filename
inode相同,目录不能硬链接,不能跨分区创建硬链接,删除源文件后文件本身还存在
[[email protected] tmp]# ln 2.txt 5.txt
[[email protected] tmp]# ls -lih
总用量 12K
16784510 -rw-------. 2 root root 0 2月 25 19:25 2.txt
17377740 -rw-r--r--. 1 root root 887 2月 25 18:21 3.txt
16784510 -rw-------. 2 root root 0 2月 25 19:25 5.txt
2.23-24-25 find
which 在环境变量里搜索
whereis 搜索一个库,不全
locate yum install mlocate , updatedb 更新库
-name
-type f\d\l\b\s\c
-atime 最近访问时间 Access
-mtime 最近更改时间 Modify 更改了文件内容,mtime和ctime一定会边
-ctime 最近改动时间 Change 更改了文件权限ctime改变,mtime不变
-o 或者,很少用
-mmin -60 分钟
-size +size
[[email protected] tmp]# find /dev -type b
/dev/sr0
/dev/sda3
/dev/sda2
/dev/sda1
/dev/sda
[[email protected] tmp]# find /etc/ -type f -mtime -1 1天以内
[[email protected] tmp]# find /etc/ -type f -mtime +1 1天以前
[[email protected] tmp]# find /etc/ -type f -o -mtime -1
[[email protected] tmp]# find /root/ -type f -mmin -120 -exec ls -l {} \;
[[email protected] tmp]# find /root/ -type f -mmin -150 -exec mv {} {}.bak \;
[[email protected] tmp]# find /root/ -type f -mmin -150
/root/.lesshst.bak
[[email protected] tmp]# find /root/ -type f -size -50k -exec ls -lh {} \;
-rw-r--r--. 1 root root 18 12月 29 2013 /root/.bash_logout
-rw-r--r--. 1 root root 176 12月 29 2013 /root/.bash_profile
-rw-r--r--. 1 root root 176 12月 29 2013 /root/.bashrc
-rw-r--r--. 1 root root 100 12月 29 2013 /root/.cshrc
-rw-r--r--. 1 root root 129 12月 29 2013 /root/.tcshrc
[[email protected] tmp]# find /root/ -type f -size +1k -exec ls -lh {} \;
-rw-------. 2 root root 1.4K 2月 24 22:22 /root/anaconda-ks.cfg
-rw-------. 1 root root 2.5K 2月 25 09:50 /root/.bash_history
-rw-r--r--. 1 root root 1.3K 2月 25 00:17 /root/.ssh/authorized_keys
-rw-------. 1 root root 1.7K 2月 25 00:34 /root/.ssh/id_rsa
-rw-------. 2 root root 1.4K 2月 24 22:22 /root/anaconda-ks.cfg.bak
2.26 文件名后缀
2.27 Linux和Windows互传文件
[[email protected] tmp]# yum install -y lrzsz
sz filename linux文件传输到Windows
rz 选择文件 Windows文件传输到linux
以上是关于Day02-阿铭Linux-文件目录管理的主要内容,如果未能解决你的问题,请参考以下文章