0316课的预习任务

0316课的预习任务:

第一课预习内容



2.1/2.2 系统目录结构

linux_dir_tree.jpg


系统用户家目录 /root


如果想远程登录普通用户的,那么需要在普通用户的家目录下创建 .ssh/authorized_keys并编辑秘钥


扫描二维码关注公众号,回复: 5560902 查看本文章
[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,那就不显示彩色

1.png




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.png




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+Gg 到首行

shift+gG 到末行

·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


猜你喜欢

转载自blog.51cto.com/11530642/2364255