0316课的预习任务:
第一课预习内容
2.1/2.2 系统目录结构
系统用户家目录 /root
如果想远程登录普通用户的,那么需要在普通用户的家目录下创建 .ssh/authorized_keys并编辑秘钥
[root@arslinux-01 ~]# useradd arslinux [root@arslinux-01 ~]# ls /home/arslinux/ [root@arslinux-01 ~]# useradd user1 [root@arslinux-01 ~]# ls /home/user1/
·authorized_keys必须放在/家目录/.ssh下,这是由ssh配置文件 /etc/ssh/sshd_config 规定的
tree 显示树形目录子目录和文件 没有tree命令,手动安装 yum install -y tree
tree --help 显示常用选项
man 显示文件的帮助文档
man tree 查看tree命令的用法
tree -L 指定最大目录深度
tree -L 2 最大显示2层
·常用目录
/bin /sbin /usr/bin /usr/sbin 常用命令全在这些目录下 根据$PATH定义
/sbin下一般都是root用户使用的,/bin下普通用户、root用户都可以用
/boot 启动相关文件
/dev 系统设备文件(光盘、硬盘等)
/etc 系统配置文件
/home 用户的家目录
/lib /lib64 系统库文件
·如何查看一条命令所依赖哪些库? ldd + 命令的绝对路径
[root@arslinux-01 ~]# ldd /bin/ls linux-vdso.so.1 => (0x00007ffef26a4000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f99b4916000) libcap.so.2 => /lib64/libcap.so.2 (0x00007f99b4711000) libacl.so.1 => /lib64/libacl.so.1 (0x00007f99b4508000) libc.so.6 => /lib64/libc.so.6 (0x00007f99b413b000) libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f99b3ed9000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f99b3cd5000) /lib64/ld-linux-x86-64.so.2 (0x00007f99b4b3d000) libattr.so.1 => /lib64/libattr.so.1 (0x00007f99b3ad0000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f99b38b4000)
·从CentOS7开始,系统不再区分32位,64位,全部都是64位
/media 媒介目录,默认为空
/mnt 临时挂载目录,默认为空
/opt 主机额外安装软件所摆放的目录,默认为空
/proc 存放系统进程目录等(是一个虚拟文件系统)
/run 进程产生的临时文件,关机就会消失
/srv 服务产生的文件,默认为空
/sys 系统内核相关文件(平时不用关注)
/tmp 系统临时目录(执行权限高)
/usr 用户相关文件
/var 所有服务的产生的临时文件
/var/log 存一些日志文件
/var/log/messages 系统日志
/var/run 进程的pid
·最常用目录:
/usr/bin /usr/sbin 实际就是/bin /sbin 只是做了软连接
/etc /var /usr/local /root /home
2.3 ls命令
ls -l 列出文件的详细信息 相当于ll
[root@arslinux-01 ~]# ls -l 总用量 4 -rw-------. 1 root root 1418 3月 14 05:58 anaconda-ks.cfg [root@arslinux-01 ~]# ll 总用量 4 -rw-------. 1 root root 1418 3月 14 05:58 anaconda-ks.cfg
ls -i 查看inode号(inode存储权限、大小、时间、所有者、所属组等信息)
inode记录文件存在于磁盘的哪个区域上,如果两个文件使用相同的inode,那么这两个文件在磁盘存放的数据块是一样的,实际就是硬链接。
[root@arslinux-01 ~]# ls -i anaconda-ks.cfg 33583074 anaconda-ks.cfg
ls -lh 用更人性化方式显示,h表示human
[root@arslinux-01 ~]# ls -l 总用量 4 -rw-------. 1 root root 1418 3月 14 05:58 anaconda-ks.cfg [root@arslinux-01 ~]# ls -lh 总用量 4.0K -rw-------. 1 root root 1.4K 3月 14 05:58 anaconda-ks.cfg
ls -la 查看所有文件,包括隐藏文件和目录
[root@arslinux-01 ~]# ls -la 总用量 32 dr-xr-x---. 3 root root 163 3月 16 12:37 . dr-xr-xr-x. 17 root root 224 3月 14 05:57 .. -rw-------. 1 root root 1418 3月 14 05:58 anaconda-ks.cfg -rw-------. 1 root root 1099 3月 16 12:15 .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 29 3月 16 12:13 .ssh -rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc -rw-------. 1 root root 2110 3月 16 12:37 .viminfo
. 是当前目录
.. 是上一级目录
dr-xr-x---. 3 root root 163 3月 16 12:37 中,3表示3个文件inode号一样
[root@arslinux-01 ~]# ls -i /root/ 33583074 anaconda-ks.cfg [root@arslinux-01 ~]# ls -i . 33583074 anaconda-ks.cfg [root@arslinux-01 ~]# ls -i .ssh/.. 33583074 anaconda-ks.cfg
其实3就是表示该目录下有几个子目录
ls -lta 按时间顺序排序,时间越晚,就越前
[root@arslinux-01 ~]# ls -lta 总用量 32 dr-xr-x---. 3 root root 163 3月 16 12:37 . -rw-------. 1 root root 2110 3月 16 12:37 .viminfo -rw-------. 1 root root 1099 3月 16 12:15 .bash_history drwx------. 2 root root 29 3月 16 12:13 .ssh -rw-------. 1 root root 1418 3月 14 05:58 anaconda-ks.cfg dr-xr-xr-x. 17 root root 224 3月 14 05:57 .. -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 -rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc
ls -d 只列出目录本身
[root@arslinux-01 ~]# ls -d /root /root
ls -ld 列出目录内详细信息和目录
[root@arslinux-01 ~]# ls -ld /root/ dr-xr-x---. 3 root root 163 3月 16 12:37 /root/
ll = ls -l ll 是 ls -l 的别名
[root@arslinux-01 ~]# which ll alias ll='ls -l --color=auto' /usr/bin/ls
--color增加了颜色,如果没有--color,那就不显示彩色
2.4 文件类型
[root@arslinux-01 ~]# ll -a 总用量 32 dr-xr-x---. 3 root root 163 3月 16 12:37 . dr-xr-xr-x. 17 root root 224 3月 14 05:57 .. -rw-------. 1 root root 1418 3月 14 05:58 anaconda-ks.cfg -rw-------. 1 root root 1099 3月 16 12:15 .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 29 3月 16 12:13 .ssh -rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc -rw-------. 1 root root 2110 3月 16 12:37 .viminfo
如:dr-xr-x---第一位代表文件类型
-是普通文件,(文本文档、二进制文件)
-rw-------. 1 root root 1546 12月 13 06:40 anaconda-ks.cfg
d是目录
drwx------. 2 root root 80 12月 14 22:44 .ssh
c是字符串设备,(鼠标、键盘、tty等)
crw-rw-rw-. 1 root tty 5, 0 12月 15 20:15 tty
l是软连接文件
lrwxrwxrwx. 1 root root 15 12月 15 20:15 stderr -> /proc/self/fd/2
b是块设备,(光驱、光盘、磁盘)
brw-rw----. 1 root disk 8, 0 12月 15 20:15 sda
s是socket文件,(用作进程和进程之间通信的)
srw-rw-rw-. 1 root root 0 12月 15 20:15 log
anaconda-ls.cfg 这一类文本文档可以cat查看
/bin/ls 这一类是二进制文件,被编译过的,无法cat
2.5 alias命令
which 查看别名,显示命令的绝对路径*
[root@arslinux-01 ~]# which ll alias ll='ls -l --color=auto' /usr/bin/ls [root@arslinux-01 ~]# which man /usr/bin/man [root@arslinux-01 ~]# which yum /usr/bin/yum
如果不想使用命令的别名,那么可以使用命令的绝对路径 例如:ls 可以使用 /usr/bin/ls
alias 查看系统内所有别名
[root@arslinux-01 ~]# 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'
PATH 环境变量,命令在PATH的下的路径中,可以直接用命令就可以生效,如果不在PATH下的路径,就不会生效
which查看命令就是从PATH定义的目录中查看
alias 自定义别名方法
alias 别名='命令的绝对路径'
[root@arslinux-01 ~]# alias arslinux='ls -lha' [root@arslinux-01 ~]# arslinux 总用量 32K dr-xr-x---. 3 root root 163 3月 16 12:37 . dr-xr-xr-x. 17 root root 224 3月 14 05:57 .. -rw-------. 1 root root 1.4K 3月 14 05:58 anaconda-ks.cfg -rw-------. 1 root root 1.2K 3月 16 22:10 .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 29 3月 16 12:13 .ssh -rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc -rw-------. 1 root root 2.1K 3月 16 12:37 .viminfo [root@arslinux-01 ~]# which arslinux alias arslinux='ls -lha' /usr/bin/ls
unalias 取消别名:unalias 别名
[root@arslinux-01 ~]# unalias arslinux [root@arslinux-01 ~]# which arslinux /usr/bin/which: no arslinux in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
2.6 相对和绝对路径
·绝对路径:从 / 开始的路径,无论在哪一个路径下,都可以通过绝对路径找到文件
·相对路径:相对当前目录所在位置的路径,查看当前目录位置 pwd
[root@arslinux-01 ~]# cd /etc/sysconfig/ [root@arslinux-01 sysconfig]# pwd /etc/sysconfig [root@arslinux-01 sysconfig]# ls network-scripts/ifcfg-ens33 network-scripts/ifcfg-ens33
pwd 查看当前目录
2.7 cd命令
cd 移动到目录 change directory
[root@arslinux-01 ~]# pwd /root [root@arslinux-01 ~]# cd /etc/sysconfig/network-scripts/ [root@arslinux-01 network-scripts]# pwd /etc/sysconfig/network-scripts [root@arslinux-01 network-scripts]# cd [root@arslinux-01 ~]# pwd /root
在目录下cd命令可以直接回到 /root 目录
cd - 回到上一次所在的位置
[root@arslinux-01 ~]# cd /etc/sysconfig/network-scripts/ [root@arslinux-01 network-scripts]# cd /var/ [root@arslinux-01 var]# pwd /var [root@arslinux-01 var]# cd - /etc/sysconfig/network-scripts [root@arslinux-01 network-scripts]# pwd /etc/sysconfig/network-scripts [root@arslinux-01 network-scripts]#
cd ~ 回到用户的家目录
[root@arslinux-01 ~]# cd /etc/sysconfig/network-scripts/ [root@arslinux-01 network-scripts]# cd ~ [root@arslinux-01 ~]#
cd .. 回到上一级目录,最多到 / 目录
[root@arslinux-01 ~]# cd /etc/sysconfig/network-scripts/ [root@arslinux-01 network-scripts]# cd .. [root@arslinux-01 sysconfig]# pwd /etc/sysconfig
2.8 创建和删除目录mkdir/rmdir
mkdir 创建目录 make directory
mkdir 目录绝对路径
[root@arslinux-01 ~]# mkdir /tmp/arslinux [root@arslinux-01 ~]# ls -ld /tmp/arslinux/ drwxr-xr-x. 2 root root 6 3月 16 23:27 /tmp/arslinux/
mkdir -p 创建级联目录
mkdir 只能创建单一层级的目录,无法创建二层以上的目录
[root@arslinux-01 ~]# mkdir /tmp/arslinux/1/2/ mkdir: 无法创建目录"/tmp/arslinux/1/2/": 没有那个文件或目录 [root@arslinux-01 ~]# mkdir -p /tmp/arslinux/1/2/ [root@arslinux-01 ~]# ls -ld /tmp/arslinux/1/2/ drwxr-xr-x. 2 root root 6 3月 16 23:30 /tmp/arslinux/1/2/
mkdir -pv 创建级联目录,同时显示过程
加 -v 显示创建过程,可视化
[root@arslinux-01 ~]# mkdir -pv /tmp/arslinux/2/3/4 mkdir: 已创建目录 "/tmp/arslinux/2" mkdir: 已创建目录 "/tmp/arslinux/2/3" mkdir: 已创建目录 "/tmp/arslinux/2/3/4"
rmdir 删除目录 remove directory
无法删除非空目录,只能删除空白目录
[root@arslinux-01 ~]# rmdir /tmp/arslinux/1/2/ rmdir: 删除 "/tmp/arslinux/1/2/" 失败: 目录非空 [root@arslinux-01 ~]# rmdir /tmp/arslinux/1/2/3/4 [root@arslinux-01 ~]# tree /tmp/arslinux/ /tmp/arslinux/ └── 1 └── 2 └── 3 3 directories, 0 files
·只能删除目录,无法删除文件
[root@arslinux-01 ~]# touch /tmp/arslinux/2/3/1.txt [root@arslinux-01 ~]# rmdir /tmp/arslinux/2/3/1.txt rmdir: 删除 "/tmp/arslinux/2/3/1.txt" 失败: 不是目录
rmdir -p 级联删除
[root@arslinux-01 ~]# rmdir -p /tmp/aminglinux/1/2 rmdir: 删除目录 "/tmp/aminglinux" 失败: 目录非空 [root@arslinux-01 ~]# tree /tmp/aminglinux/ /tmp/aminglinux/ └── 2 └── 3 └── 1.txt 2 directories, 1 file
实际上已经删除了arslinux下的 /1/2/ 目录了
2.9 rm命令
可以删除文件,也可以删除非空目录
rm 删除文件或目录
[root@arslinux-01 ~]# rm /tmp/arslinux/2/3/1.txt rm:是否删除普通空文件 "/tmp/arslinux/2/3/1.txt"?y [root@arslinux-01 ~]# tree /tmp/arslinux/ /tmp/arslinux/ └── 2 └── 3 2 directories, 0 files
rm -f 强制删除,不询问
[root@arslinux-01 ~]# touch /tmp/arslinux/2/3/1.txt [root@arslinux-01 ~]# touch /tmp/arslinux/2/3/2.txt [root@arslinux-01 ~]# rm /tmp/arslinux/2/3/1.txt rm:是否删除普通空文件 "/tmp/arslinux/2/3/1.txt"?n [root@arslinux-01 ~]# rm /tmp/arslinux/2/3/2.txt rm:是否删除普通空文件 "/tmp/arslinux/2/3/2.txt"?n [root@arslinux-01 ~]# tree /tmp/arslinux/ /tmp/arslinux/ └── 2 └── 3 ├── 1.txt └── 2.txt 2 directories, 2 files [root@arslinux-01 ~]# rm -f /tmp/arslinux/2/3/* [root@arslinux-01 ~]# !tree tree /tmp/arslinux/ /tmp/arslinux/ └── 2 └── 3 2 directories, 0 files
! 使用命令历史里上一次最近的该命令
!tree 命令历史中,最近一次使用的 tree 命令
history 查看历史命令
[root@arslinux-01 ~]# history
1 dhclient
2 ip addr
3 ls /etc/sysconfig/network-scripts/ifcfg-ens33
4 vim /etc/sysconfig/network-scripts/ifcfg-ens33
5 yum install -y vim
6 vim /etc/sysconfig/network-scripts/ifcfg-ens33
7 systemctl restart network.service
8 ip add
9 ifconfig
10 yum install -y ifconfig
11 yum install -y net-tool
12 yum install -y net-tools
...
140 tree /tmp/arslinux/
141 rmdir -p /tmp/arslinux/1/2/3/
142* rmdir /tmp/arslinux/1/2/
143 tree /tmp/arslinux/
144 rm /tmp/arslinux/2/3/1.txt
145 tree /tmp/arslinux/
146 touch /tmp/arslinux/2/3/1.txt
147 touch /tmp/arslinux/2/3/2.txt
148 rm /tmp/arslinux/2/3/1.txt
149 rm /tmp/arslinux/2/3/2.txt
150 tree /tmp/arslinux/
151 rm -f /tmp/arslinux/2/3/*
152 tree /tmp/arslinux/
153 history
!tree 也就是 tree /tmp/arslinux
rm -r 递归删除
[root@arslinux-01 ~]# rm -r /tmp/arslinux/2/3/ rm:是否进入目录"/tmp/arslinux/2/3/"? y rm:是否删除普通空文件 "/tmp/arslinux/2/3/2.txt"?y rm:是否删除目录 "/tmp/arslinux/2/3/"?y
rm -rf 强制递归删除,不询问 force
[root@arslinux-01 ~]# rm -rfv /tmp/arslinux/2/3/ 已删除"/tmp/arslinux/2/3/1.txt" 已删除目录:"/tmp/arslinux/2/3/"
·使用rm命令删除目录和文件,先删除目录下的文件,然后才删除目录本身
·如果强制删除不存在的文件或目录,不会提示,去掉f就会提示
[root@arslinux-01 ~]# rm -rv /tmp/arslinux/2/3/ rm: 无法删除"/tmp/arslinux/2/3/": 没有那个文件或目录
2.10 环境变量PATH
which 命令查找别名 实际上是从以下几个目录中找的
[root@arslinux-01 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
·如果需要执行的命令在以上几个目录中,那么在执行命令时就不要输入绝对路径
·如果想要让命令无需输入绝对命令就能执行,那么需要在环境变量里增加命令所在目录
PATH=$PATH:/tmp/ 添加环境变量(重启就没有了)
[root@arslinux-01 ~]# cp /usr/bin/ls /tmp/ls2 [root@arslinux-01 ~]# /tmp/ls2 anaconda-ks.cfg [root@arslinux-01 ~]# PATH=$PATH:/tmp/ [root@arslinux-01 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/ [root@arslinux-01 ~]# ls2 anaconda-ks.cfg
·取消添加的环境变量,重新赋值为原先默认路径即可
[root@arslinux-01 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@arslinux-01 ~]# ls2 -bash: ls2: 未找到命令
·环境变量永久生效
以上环境变量赋值只是临时生效,重启或重新登录终端就会消失
如果想要环境变量永久生效,就需要增加到 /etc/profile 中
在最后一行增加一段 PATH=$PATH:/tmp/ 即可
2.11 cp命令
cp 拷贝源文件到目标文件
cp -r 拷贝目录
[root@arslinux-01 ~]# cp /etc/passwd /tmp/1.txt [root@arslinux-01 ~]# cp -r /tmp/arslinux/ /tmp/ars/ [root@arslinux-01 ~]# tree /tmp/arslinux/ /tmp/arslinux/ └── 2 └── 2.txt 1 directory, 1 file [root@arslinux-01 ~]# tree /tmp/ars/ /tmp/ars/ └── 2 └── 2.txt 1 directory, 1 file
!$ 表示上一条命令的最后一个参数
[root@arslinux-01 ~]# cp -r /tmp/arslinux/ /tmp/ars1/ [root@arslinux-01 ~]# tree !$ tree /tmp/ars1/ /tmp/ars1/ └── 2 └── 2.txt 1 directory, 1 file
·cp命令其实是cp -i,它是安全选项,遇到覆盖时会询问(如果不想被问,那么直接执行/usr/bin/cp)。rm 也有
[root@arslinux-01 ~]# which cp alias cp='cp -i' /usr/bin/cp
·如果目标目录已存在,会把源目录直接放在目标目录下
[root@arslinux-01 ~]# tree /tmp/ars1 /tmp/ars1 └── 2 └── 2.txt 1 directory, 1 file [root@arslinux-01 ~]# cp -r /tmp/arslinux/ /tmp/ars1/ [root@arslinux-01 ~]# !tree tree /tmp/ars1 /tmp/ars1 ├── 2 │ └── 2.txt └── arslinux └── 2 └── 2.txt 3 directories, 2 files [root@arslinux-01 ~]# cp -r /tmp/arslinux/ /tmp/ars1/ cp:是否覆盖"/tmp/ars1/arslinux/2/2.txt"? n
·如果目标目录不存在,会把目标目录拷贝过来并改名
[root@arslinux-01 ~]# cp -r /tmp/arslinux/ /tmp/ars/ [root@arslinux-01 ~]# tree /tmp/ars/ /tmp/ars/ ├── 2 │ └── 2.txt └── arslinux └── 2 └── 2.txt 3 directories, 2 files
2.12 mv命令
mv 有两个功能:1,改名字;2,挪地方
mv 源文件 目标目录 (如果是同一目录内移动,那么其实就是改名)
[root@arslinux-01 ~]# touch 1.txt [root@arslinux-01 ~]# ls 1.txt anaconda-ks.cfg [root@arslinux-01 ~]# mv 1.txt 123.txt [root@arslinux-01 ~]# ls 123.txt anaconda-ks.cfg
·如果目标为目录下的具体文件,那么就是移动到目录下并且改名 (最后有文件名,则移动并更改文件名,不加文件名则只移动文件)
[root@arslinux-01 ~]# ls 123.txt anaconda-ks.cfg [root@arslinux-01 ~]# mv /tmp/arslinux/2/2.txt 11111.txt [root@arslinux-01 ~]# ls 11111.txt 123.txt anaconda-ks.cfg [root@arslinux-01 ~]# ls /tmp/arslinux/2/
mv 就是 mv -i 的别名,即询问,如果不想询问,直接使用绝对路径 /usr/bin/mv
[root@arslinux-01 ~]# which mv alias mv='mv -i' /usr/bin/mv [root@arslinux-01 ~]# cp /tmp/ls2 /tmp/arslinux/ [root@arslinux-01 ~]# ls /tmp/arslinux/ 2 ls2 [root@arslinux-01 ~]# cp /tmp/ls2 /tmp/arslinux/ cp:是否覆盖"/tmp/arslinux/ls2"? n [root@arslinux-01 ~]# /usr/bin/mv /tmp/ls2 /tmp/arslinux/ [root@arslinux-01 ~]# ls /tmp/ls2 ls: 无法访问/tmp/ls2: 没有那个文件或目录
·移动目录到目标目录时,如果目标目录存在,就是移动到目标目录下;
如果不存在,那么就是移动并改名
[root@arslinux-01 ~]# mv /tmp/ars/ /tmp/arslinux/ [root@arslinux-01 ~]# ls /tmp/arslinux/ 2 ars ls2 [root@arslinux-01 ~]# mv /tmp/arslinux/ars/ /tmp/ [root@arslinux-01 ~]# ls /tmp/ars2/ ls: 无法访问/tmp/ars2/: 没有那个文件或目录 [root@arslinux-01 ~]# mv /tmp/ars/ /tmp/ars2/ [root@arslinux-01 ~]# ls /tmp/ars2/ 2 arslinux
·如果同一目录下,那么会改名;
·如果目标文件存在,就会询问是否覆盖;
·目标为目录,且不存在,就会更改目录名;
·目标目录存在,源也是目录,那么会把源目录放到目标目录下
2.13 文档查看cat/more/less/head/tail
cat 查看文件内容
tac 倒顺序查看文件内容
[root@arslinux-01 ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:999:998:User for polkitd:/:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin chrony:x:998:996::/var/lib/chrony:/sbin/nologin arslinux:x:1000:1000::/home/arslinux:/bin/bash user1:x:1001:1001::/home/user1:/bin/bash [root@arslinux-01 ~]# tac /etc/passwd user1:x:1001:1001::/home/user1:/bin/bash arslinux:x:1000:1000::/home/arslinux:/bin/bash chrony:x:998:996::/var/lib/chrony:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin polkitd:x:999:998:User for polkitd:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin halt:x:7:0:halt:/sbin:/sbin/halt shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown sync:x:5:0:sync:/sbin:/bin/sync lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin root:x:0:0:root:/root:/bin/bash
cat -A 显示所有字符
[root@arslinux-01 ~]# cat -A /etc/passwd root:x:0:0:root:/root:/bin/bash$ bin:x:1:1:bin:/bin:/sbin/nologin$ daemon:x:2:2:daemon:/sbin:/sbin/nologin$ adm:x:3:4:adm:/var/adm:/sbin/nologin$ lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin$ sync:x:5:0:sync:/sbin:/bin/sync$ shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown$ halt:x:7:0:halt:/sbin:/sbin/halt$ mail:x:8:12:mail:/var/spool/mail:/sbin/nologin$ operator:x:11:0:operator:/root:/sbin/nologin$ games:x:12:100:games:/usr/games:/sbin/nologin$ ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin$ nobody:x:99:99:Nobody:/:/sbin/nologin$ systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin$ dbus:x:81:81:System message bus:/:/sbin/nologin$ polkitd:x:999:998:User for polkitd:/:/sbin/nologin$ sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin$ postfix:x:89:89::/var/spool/postfix:/sbin/nologin$ chrony:x:998:996::/var/lib/chrony:/sbin/nologin$ arslinux:x:1000:1000::/home/arslinux:/bin/bash$ user1:x:1001:1001::/home/user1:/bin/bash$
cat -n 显示行号
[root@arslinux-01 ~]# cat -n !$ cat -n /etc/passwd 1root:x:0:0:root:/root:/bin/bash 2bin:x:1:1:bin:/bin:/sbin/nologin 3daemon:x:2:2:daemon:/sbin:/sbin/nologin 4adm:x:3:4:adm:/var/adm:/sbin/nologin 5lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 6sync:x:5:0:sync:/sbin:/bin/sync 7shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 8halt:x:7:0:halt:/sbin:/sbin/halt 9mail:x:8:12:mail:/var/spool/mail:/sbin/nologin 10operator:x:11:0:operator:/root:/sbin/nologin 11games:x:12:100:games:/usr/games:/sbin/nologin 12ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 13nobody:x:99:99:Nobody:/:/sbin/nologin 14systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin 15dbus:x:81:81:System message bus:/:/sbin/nologin 16polkitd:x:999:998:User for polkitd:/:/sbin/nologin 17sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin 18postfix:x:89:89::/var/spool/postfix:/sbin/nologin 19chrony:x:998:996::/var/lib/chrony:/sbin/nologin 20arslinux:x:1000:1000::/home/arslinux:/bin/bash 21user1:x:1001:1001::/home/user1:/bin/bash
more 查看文件内容(翻屏显示)不会全部显示,会一屏一屏的显示,看到最后会自动退出
cat 文件 >> 文件 追加文件内容到另一个文件中
wc -l 查看文件行数
[root@arslinux-01 ~]# cat /etc/passwd >> 1.txt [root@arslinux-01 ~]# cat /etc/passwd >> 1.txt [root@arslinux-01 ~]# cat /etc/passwd >> 1.txt [root@arslinux-01 ~]# cat /etc/passwd >> 1.txt [root@arslinux-01 ~]# cat /etc/passwd >> 1.txt [root@arslinux-01 ~]# wc -l 1.txt 105 1.txt [root@arslinux-01 ~]# more 1.txt root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:999:998:User for polkitd:/:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin chrony:x:998:996::/var/lib/chrony:/sbin/nologin arslinux:x:1000:1000::/home/arslinux:/bin/bash user1:x:1001:1001::/home/user1:/bin/bash root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin --More--(30%)
·按空格往后翻页,按Ctrl + B往回翻页
less 翻页查看,类似于more,但可以方向键逐行往下翻动,而且看到最后不会自动退出,按Q退出
按空格、F、Ctrl+F都可以往下翻页,按B、Ctrl+B都可以往回翻页
less查看时,按 / 搜索内容,会高亮显示,按 n 往后查找,按 shift+n 或 N 往前查找
按 ? 功能和 / 一样,但方向刚好和按 / 相反,按 n 往前查找,按 shift+n 或 N 往后查找
按 shift+G 或 g 到首行
按 shift+g 或 G 到末行
·less比more更好用,一般用less就行
head 查看文件头几行 一般加数字使用,head -n 数字,也可以直接 head -数字
[root@arslinux-01 ~]# head -n 2 1.txt root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin [root@arslinux-01 ~]# head -2 1.txt root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin
tail 查看文件尾几行 一般加数字使用,tail -n 数字,也可以直接 tail -数字
[root@arslinux-01 ~]# tail -n 2 1.txt arslinux:x:1000:1000::/home/arslinux:/bin/bash user1:x:1001:1001::/home/user1:/bin/bash [root@arslinux-01 ~]# tail -2 1.txt arslinux:x:1000:1000::/home/arslinux:/bin/bash user1:x:1001:1001::/home/user1:/bin/bash
tail -f 动态显示文件内容,常用于查看日志
2.14 文件和目录权限chmod
·权限位
权限有三个权限位,在每个权限位中,可读是 r ,可写是 w ,可执行是 x,-是不可读写不可执行
rw-r--r--
·第一段是指所有者权限,第二段是指所属组权限,第三段是指除了所有者和所属组之外所有用户权限
r=4,w=2,x=1
rwx=7,rw-=6,--x=1
rw-r--r-- =644
rw-r-xr-x=655
chmod 更改权限
[root@arslinux-01 ~]# ll 总用量 12 -rw-r--r--. 1 root root 0 3月 17 09:22 11111.txt -rw-r--r--. 1 root root 0 3月 17 12:04 123.txt -rw-r--r--. 1 root root 4670 3月 17 12:39 1.txt -rw-------. 1 root root 1418 3月 14 05:58 anaconda-ks.cfg [root@arslinux-01 ~]# chmod 700 11111.txt [root@arslinux-01 ~]# ll 总用量 12 -rwx------. 1 root root 0 3月 17 09:22 11111.txt -rw-r--r--. 1 root root 0 3月 17 12:04 123.txt -rw-r--r--. 1 root root 4670 3月 17 12:39 1.txt -rw-------. 1 root root 1418 3月 14 05:58 anaconda-ks.cfg
-rw-r--r--. 最后有点,受制于 selinux ,关闭 selinux 后再创建文件,就没有最后的点了
(彻底关闭selinux在配置文件 /etc/selinux/config 中)
chmod只对目录本身生效,对目录下的目录、文件不生效
[root@arslinux-01 ~]# ll /tmp/ars1/ 总用量 0 drwxr-xr-x. 2 root root 19 3月 17 11:51 2 drwxr-xr-x. 3 root root 15 3月 17 11:59 arslinux [root@arslinux-01 ~]# chmod 777 /tmp/ars1/ [root@arslinux-01 ~]# ll -d !$ ll -d /tmp/ars1/ drwxrwxrwx. 4 root root 31 3月 17 11:59 /tmp/ars1/ [root@arslinux-01 ~]# ll /tmp/ars1/ 总用量 0 drwxr-xr-x. 2 root root 19 3月 17 11:51 2 drwxr-xr-x. 3 root root 15 3月 17 11:59 arslinux
chmod -R 对目录里文件和子目录全部批量更改
[root@arslinux-01 ~]# ll -d /tmp/ars2/ drwxr-xr-x. 4 root root 31 3月 17 12:01 /tmp/ars2/ [root@arslinux-01 ~]# ll /tmp/ars2/ 总用量 0 drwxr-xr-x. 2 root root 19 3月 17 11:44 2 drwxr-xr-x. 3 root root 15 3月 17 12:01 arslinux [root@arslinux-01 ~]# chmod -R 777 /tmp/ars2/ [root@arslinux-01 ~]# ll /tmp/ars2/ 总用量 0 drwxrwxrwx. 2 root root 19 3月 17 11:44 2 drwxrwxrwx. 3 root root 15 3月 17 12:01 arslinux
另一种方法:chmod u=rwx,g=r,o=r,(不可以写成u=rw-,g=r--,o=r--),不过这种不如数字方便
[root@arslinux-01 ~]# ll -d /tmp/ars2/ drwxrwxrwx. 4 root root 31 3月 17 12:01 /tmp/ars2/ [root@arslinux-01 ~]# chmod u=rwx,g=r,o=r /tmp/ars2/ [root@arslinux-01 ~]# !ll ll -d /tmp/ars2/ drwxr--r--. 4 root root 31 3月 17 12:01 /tmp/ars2/
chmod a+x 全部加上x权限
chmod a-x 全部去掉x权限
chmod g+x 所属组加上x权限
chmod g-x 所属组去掉x权限
以此类推,u,g,o 都一样
2.15 更改所有者和所属组chown
chown 更改所有者
chgrp 更改所属组
[root@arslinux-01 ~]# ll /tmp/yum.log -rw-------. 1 root root 0 3月 14 05:50 /tmp/yum.log [root@arslinux-01 ~]# chown arslinux /tmp/yum.log [root@arslinux-01 ~]# ll /tmp/yum.log -rw-------. 1 arslinux root 0 3月 14 05:50 /tmp/yum.lo [root@arslinux-01 ~]# chgrp user1 /tmp/yum.log [root@arslinux-01 ~]# ll /tmp/yum.log -rw-------. 1 arslinux user1 0 3月 14 05:50 /tmp/yum.log
chown 所有者:所属组 文件,同时更改所有者和所属组
[root@arslinux-01 ~]# ll /tmp/yum.log -rw-------. 1 arslinux user1 0 3月 14 05:50 /tmp/yum.log [root@arslinux-01 ~]# chown user1:arslinux /tmp/yum.log [root@arslinux-01 ~]# ll !$ ll /tmp/yum.log -rw-------. 1 user1 arslinux 0 3月 14 05:50 /tmp/yum.log
chown :所属组 文件,只更改所属组
[root@arslinux-01 ~]# ll /tmp/yum.log -rw-------. 1 user1 arslinux 0 3月 14 05:50 /tmp/yum.log [root@arslinux-01 ~]# chown :user1 !$ chown :user1 /tmp/yum.log [root@arslinux-01 ~]# ll !$ ll /tmp/yum.log -rw-------. 1 user1 user1 0 3月 14 05:50 /tmp/yum.log
chown -R 所有者:所属组 文件,更改目录下所有文件所有者和所属组
[root@arslinux-01 ~]# ll /tmp/ars1/ 总用量 0 drwxr-xr-x. 2 root root 19 3月 17 11:51 2 drwxr-xr-x. 3 root root 15 3月 17 11:59 arslinux [root@arslinux-01 ~]# ll -d /tmp/ars1/ drwxrwxrwx. 4 root root 31 3月 17 11:59 /tmp/ars1/ [root@arslinux-01 ~]# chown -R user1:arslinux /tmp/ars1/ [root@arslinux-01 ~]# ll /tmp/ars1/ 总用量 0 drwxr-xr-x. 2 user1 arslinux 19 3月 17 11:51 2 drwxr-xr-x. 3 user1 arslinux 15 3月 17 11:59 arslinux
2.16 umask
0316直播笔记
目录结构:http://www.apelearn.com/study_v2/linux_dir_tree.jpg
难懂的知识点:
alias 别名 复杂命令简单化
PATH 环境变量。目录的集合,运行命令时,会先从目录里去找
umask 0022
最容易绕晕的知识点
cp
mv
如果右边是一个目录,一点要加一个 / 结尾
rsync
shell python go
zsh