20180727 第二章预习2.1-2.16

2.1/2.2 系统目录结构
2.3 ls命令
2.4 文件类型
2.5 alias命令
2.6 相对和绝对路径
2.7 cd命令
2.8 创建和删除目录mkdir/rmdir
2.9 rm命令
2.10 环境变量PATH
2.11 cp命令
2.12 mv命令
2.13 文档查看cat/more/less/head/tail
2.14 文件和目录权限chmod
2.15 更改所有者和所属组chown
2.16 umask

2.1/2.2 系统目录结构

[root@zhang-01 ~]# ls / ls其实是list缩写

bin dev home lib64 mnt proc run srv tmp var

boot etc lib media opt root sbin sys usr

[root@zhang-01 ~]# ls /root/   root用户的家目录,每个用户都有一个家目录,widows也有在C盘有个家目录,存它的配置文件,

anaconda-ks.cfg

像这个[root@zhang-01 ~]# ls /root/.ssh/authorized_keys

/root/.ssh/authorized_keys

如果想在普通用户设置登录的密钥文件,我们也需要在普通用户的家目录下创建一个/.ssh/authorized_keys的文件

[root@zhang-01 ~]# useradd zhang  新增用户

[root@zhang-01 ~]# ls /home/zhang/ 加目录在这里

[root@zhang-01 ~]# useradd user1

[root@zhang-01 ~]# ls /home/user1/

如果我们创建用户必须在这个下创建/.ssh/authorized_keys的文件并且路径和文件名都是固定的 这样创建密钥文件。是谁规定的必须这个名字和目录呢 ?是sshd的配置文件规定的。

tree工具看目录下的文件,先安装

[root@zhang-01 ~]# yum install -y tree

[root@zhang-01 ~]# tree / 太多了我们必须中断了

[root@zhang-01 ~]# tree --hep

[root@zhang-01 ~]# tree --help都是看常用的一些选项

[root@zhang-01 ~]# man tree

tree的文档。

比如说想指定最大深度为2的文档[root@zhang-01 ~]# tree -L 2 /

/usr/bin/ /usr/sbin/ /bin/ /sbin/ 这几个都是存的我们的命令文件像 ls tree man vi mkdir 等之前用的所有的命令都在这几个文件里面。

/bin/和/sbin/区别是 / sbin/ 下面的命令都是root用户的命令,普通用户不能用

/bin/是普通用户的命令当然root也可以用

[root@zhang-01 ~]# ls /

bin dev home lib64 mnt proc run srv tmp var

boot etc lib media opt root sbin sys usr

boot是系统启动相关的文件 像我们用的grub

[root@zhang-01 ~]# ls /boot/

config-3.10.0-514.el7.x86_64

grub

grub2

initramfs-0-rescue-3a80cadf85474b3e9e4967cbe84a1e31.img

initramfs-3.10.0-514.el7.x86_64.img

initramfs-3.10.0-514.el7.x86_64kdump.img

initrd-plymouth.img

symvers-3.10.0-514.el7.x86_64.gz

System.map-3.10.0-514.el7.x86_64

vmlinuz-0-rescue-3a80cadf85474b3e9e4967cbe84a1e31

vmlinuz-3.10.0-514.el7.x86_64

/dev/存的是我们的设备文件像光盘也好 鼠标也好

[root@zhang-01 ~]# ls /dev/

agpgart port tty24 tty6

autofs ppp tty25 tty60

block ptmx tty26 tty61

bsg pts tty27 tty62

btrfs-control random tty28 tty63

bus raw tty29 tty7

cdrom rtc tty3 tty8

char rtc0 tty30 tty9

console sda tty31 ttyS0

core sda1 tty32 ttyS1

cpu sda2 tty33 ttyS2

cpu_dma_latency sda3 tty34 ttyS3

crash sg0 tty35 uhid

disk sg1 tty36 uinput

dmmidi shm tty37 urandom

dri snapshot tty38 usbmon0

/etc/系统的一些配置文件所在的路径

[root@zhang-01 ~]# ls /etc/sysconfig/network-scripts/ifcfg-ens33就是

[root@zhang-01 ~]# ls /etc/ssh/sshd_config也是在他下面

/home/用户的家目录文件

[root@zhang-01 ~]# ls /home/

user1 zhang

/lib/和/lib64/是存系统的库文件的,很多命令依赖于库文件像ls . 库文件类似于widows下的.dll

怎么看这些命令依赖于哪些库呢

[root@zhang-01 ~]# ldd /bin/ls

linux-vdso.so.1 => (0x00007fffbb7f3000)

libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f4165428000)

libcap.so.2 => /lib64/libcap.so.2 (0x00007f4165223000)

libacl.so.1 => /lib64/libacl.so.1 (0x00007f4165019000)

libc.so.6 => /lib64/libc.so.6 (0x00007f4164c58000)

libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f41649f7000)

libdl.so.2 => /lib64/libdl.so.2 (0x00007f41647f2000)

/lib64/ld-linux-x86-64.so.2 (0x00007f4165657000)

libattr.so.1 => /lib64/libattr.so.1 (0x00007f41645ed000)

libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f41643d1000)

下面绿色的都是库文件,蓝色的大部分是软连接,

 

 

2.2

centos7开始就不再区分32位64位,全部都是64位不存在32位了

最大的 区别是识别的内存不同,早起的32位的只识别3个多G的内存,即使有8G的内存也是识别3个多G,

[root@zhang-01 ~]# ls /

bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

/media/媒介目录,默认的都是空的, mnt也是临时挂载的目录,默认也是空的。我们可以把光驱,新增加的硬盘挂载到mnt目录下,

opt也是空目录。proc 系统启动的进程 会生成一个pID 每个进程下面几乎都有这样的目录

[root@zhang-01 ~]# ls /proc/1/

attr cmdline environ io mem ns pagemap schedstat stat timers

autogroup comm exe limits mountinfo numa_maps personality sessionid statm uid_map

auxv coredump_filter fd loginuid mounts oom_adj projid_map setgroups status wchan

cgroup cpuset fdinfo map_files mountstats oom_score root smaps syscall

clear_refs cwd gid_map maps net oom_score_adj sched stack task

[root@zhang0-01 ~]# ls -l /proc/19/

ls: 无法读取符号链接/proc/19/exe: 没有那个文件或目录

总用量 0

dr-xr-xr-x. 2 root root 0 5月 28 03:00 attr

-rw-r--r--. 1 root root 0 5月 28 03:00 autogroup

-r--------. 1 root root 0 5月 28 03:00 auxv

-r--r--r--. 1 root root 0 5月 28 03:00 cgroup

--w-------. 1 root root 0 5月 28 03:00 clear_refs

-r--r--r--. 1 root root 0 5月 28 01:21 cmdline

-rw-r--r--. 1 root root 0 5月 28 03:00 comm

-rw-r--r--. 1 root root 0 5月 28 03:00 coredump_filter

-r--r--r--. 1 root root 0 5月 28 03:00 cpuset

lrwxrwxrwx. 1 root root 0 5月 28 03:00 cwd -> / 进程在哪儿运行的

-r--------. 1 root root 0 5月 28 03:00 environ

dr-xr-xr-x. 5 root root 0 5月 28 03:00 net

dr-x--x--x. 2 root root 0 5月 28 03:00 ns

-r--r--r--. 1 root root 0 5月 28 03:00 numa_maps

-rw-r--r--. 1 root root 0 5月 28 03:00 oom_adj

-r--r--r--. 1 root root 0 5月 28 03:00 oom_score

-rw-r--r--. 1 root root 0 5月 28 03:00 oom_score_adj

-r--r--r--. 1 root root 0 5月 28 03:00 pagemap

-r--r--r--. 1 root root 0 5月 28 03:00 personality

-rw-r--r--. 1 root root 0 5月 28 03:00 projid_map

lrwxrwxrwx. 1 root root 0 5月 28 03:00 root -> /

root 是root目录的家目录

/run/是一些进程产生的一些临时文件,是一重启或关机就会消失的一些文件。

/srv/其实是sevice的缩写,默认的是空的,会存服务产生的文件

/sys/内核产生的文件,平时我们不会去动的。

/tmp/系统的临时目录,权限比较大,任何用户都可以在tmp下写改文件,有个特殊权限,像普通用户user1 和user2自己的文件自己有权限,别的用户搞不了

/usr/用户的一些文件会放在这,很重要的目录

/var/.我们经常用/var/log 会存一些日志 像系统的总日志/var/log/messages.

ls /var/run/一些进程的pid经常在这个文件下

root home 虽然很重要我们比较少去碰他,

2.3 ls命令

[root@zhang-01 ~]# ls -l

总用量 4

-rw-------. 1 root root 1265 5月 27 20:19 anaconda-ks.cfg

第一个权限 ,第二个有多少个文件使用了相同的inod,第三个是所有者,第四个是所属组, 1265是文件的大小单位是B字节。创建时间,名字

[root@zhang-01 ~]# ls -lh

总用量 4.0K

-rw-------. 1 root root 1.3K 5月 27 20:19 anaconda-ks.cfg

更形象的大小

[root@zhang-01 ~]# ls -i

33574979 anaconda-ks.cfg

这就是这文件的iNode存的文件的属性 大小时间权限等存在磁盘的哪个块上哪个区上。如果两个文件iNode一样那这两个文件存在磁盘位置一样。

[root@zhang-01 ~]# ls -la 隐藏的文件包括了

总用量 28

dr-xr-x---. 3 root root 147 5月 27 23:21 .

dr-xr-xr-x. 17 root root 224 5月 28 01:07 ..可以变相的认为这个下面有几个子目录这个目录就是几,像这有17个

-rw-------. 1 root root 1265 5月 27 20:19 anaconda-ks.cfg

-rw-------. 1 root root 1803 5月 28 03:57 .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 48 5月 28 01:35 .ssh

-rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc

[root@zhang-01 ~]# ls -ld /root/ 有三个iNode号是一样的和这个目录

dr-xr-x---. 3 root root 147 5月 27 23:21 /root/

[root@zhang-01 ~]# ls -i /root/

33574979 anaconda-ks.cfg

[root@zhang-01 ~]# ls -i .

33574979 anaconda-ks.cfg

[root@zhang-01 ~]# ls -i .ssh/.. 实际就是root目录

33574979 anaconda-ks.cfg

[root@zhang-01 ~]# ls -lta 以时间顺序排序,时间越早的越

总用量 28

-rw-------. 1 root root 1803 5月 28 03:57 .bash_history

drwx------. 2 root root 48 5月 28 01:35 .ssh

dr-xr-xr-x. 17 root root 224 5月 28 01:07 ..

dr-xr-x---. 3 root root 147 5月 27 23:21 .

-rw-------. 1 root root 1265 5月 27 20:19 anaconda-ks.cfg

-rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout

-rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile

[root@zhang-01 ~]# ls -ld /root/ 只列目录本身。

dr-xr-x---. 3 root root 147 5月 27 23:21 /root/

更多用法可以用[root@zhang-01 ~]# man ls

-l详细信息,-i是iNode -a全部包括隐藏的 -t按时间顺序排序 -h 和l一起可以自动变换单位 -d列目录本身

ll=ls -l

[root@zhang-01 ~]# which ll 别名

alias ll='ls -l --color=auto'

/usr/bin/ls

[root@zhang-01 ~]# which ls

alias ls='ls --color=auto'

/usr/bin/ls

2.4 文件类型

[root@zhang-01 ~]# ls -la

总用量 28

dr-xr-x---. 3 root root 147 5月 27 23:21 .

dr-xr-xr-x. 17 root root 224 5月 28 01:07 ..

-rw-------. 1 root root 1265 5月 27 20:19 anaconda-ks.cfg

-rw-------. 1 root root 1803 5月 28 03:57 .bash_history

第一位像d是文件的类型目录,-普通的文件

cat anaconda-ks.cfg /bin/ls

虽然都是-号的文件,普通的文件可以查看,命令文件是个二进制文件不能查看。

[root@zhang-01 ~]# ls -l /dev/

总用量 0

crw-rw----. 1 root video 10, 175 5月 28 01:21 agpgart

crw-------. 1 root root 10, 235 5月 28 01:21 autofs

drwxr-xr-x. 2 root root 140 5月 28 01:21 block

c是字符串设备类型。像键盘鼠标

lrwxrwxrwx. 1 root root 15 7月 5 16:08 stderr -> /proc/self/fd/2

lrwxrwxrwx. 1 root root 15 7月 5 16:08 stdin -> /proc/self/fd/0

lrwxrwxrwx. 1 root root 15 7月 5 16:08 stdout -> /proc/self/fd/1

 

l软连接文件。

 

brw-rw----. 1 root disk 8, 0 7月 5 16:08 sda

brw-rw----. 1 root disk 8, 1 7月 5 16:08 sda1

brw-rw----. 1 root disk 8, 2 7月 5 16:08 sda2

brw-rw----. 1 root disk 8, 3 7月 5 16:08 sda3

 

b块设备,像光盘磁盘

找文件类型s 就是 SOCKET

[root@zhang-01 ~]# find / -type s

/dev/log

/run/dbus/system_bus_socket

/run/udev/control

/run/systemd/shutdownd

/run/systemd/private

/run/systemd/journal/socket

/run/systemd/journal/stdout

/run/systemd/cgroups-agent

/run/systemd/notify

/var/spool/postfix/private/tlsmgr

[root@zhang-01 ~]# ls -l /var/spool/postfix/public/showq

srw-rw-rw-. 1 postfix postfix 0 5月 28 01:22 /var/spool/postfix/public/showq

socket文件,同一个机器两个进程之前通信用这种文件

两台机器之间一种是tcIP协议,想IP+端口的形式。

总结 d 目录-普通文件包括文本文档和二进制 ,C字符串设备鼠标键盘,b块设备,s socket 文件,l软连接文件

2.5 alias命令

[root@zhang-01 ~]# which ls

alias ls='ls --color=auto'

/usr/bin/ls

[root@zhang0-01 ~]# which ll

alias ll='ls -l --color=auto'

/usr/bin/ls

[root@zhang0-01 ~]# which man

/usr/bin/man

[root@zhang0-01 ~]# which yum

/usr/bin/yum

系统的alias

[root@zhang-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'

[root@zhang0-01 ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@zhang-01 ~]# alias zhang='ls -lha'

[root@zhang-01 ~]# zhang

总用量 28K

dr-xr-x---. 3 root root 147 5月 27 23:21 .

dr-xr-xr-x. 17 root root 224 5月 28 01:07 ..

-rw-------. 1 root root 1.3K 5月 27 20:19 anaconda-ks.cfg

-rw-------. 1 root root 1.8K 5月 28 03:57 .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 48 5月 28 01:35 .ssh

-rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc

[root@zhang-01 ~]# which zhang

alias zhang='ls -lha'

/usr/bin/ls

[root@zhang-01 ~]# unalias zhang

[root@zhang-01 ~]# zhang

-bash: zhang: 未找到命令

 

 

 

2.6 相对和绝对路径

[root@zhang0-01 ~]# ls /etc/sysconfig/network-scripts/ifcfg-ens33

/etc/sysconfig/network-scripts/ifcfg-ens33

[root@zhang0-01 ~]# ls /root/anaconda-ks.cfg

/root/anaconda-ks.cfg

[root@zhang0-01 ~]# ls /etc/hostname

/etc/hostname

从跟开始这些都是绝对路径

相对是所在位置的一个路径,下面就是相对路径

[root@zhang0-01 ~]# pwd

/root

[root@zhang0-01 ~]# ls .ssh/authorized_keys

.ssh/authorized_keys

[root@zhang0-01 ~]# cd /etc/sysconfig/

[root@zhang0-01 sysconfig]# ls network-scripts/ifcfg-ens33

network-scripts/ifcfg-ens33

[root@zhang0-01 sysconfig]# pwd

/etc/sysconfig

cd=change directory

 

 


2.7 cd命令

[root@zhang0-01 ~]# cd -

/etc/sysconfig

[root@zhang0-01 sysconfig]# pwd

/etc/sysconfig

[root@zhang0-01 sysconfig]# cd -

/root

[root@zhang0-01 ~]# pwd

/root

所以cd -表示上次所在的目录在哪里。

[root@zhang0-01 ~]# cd

[root@zhang0-01 ~]# pwd

/root

cd当前用户的家目录

[root@zhang0-01 ~]# cd ~

[root@zhang0-01 ~]# pwd

/root

cd ~用户家目录

[root@zhang0-01 ~]# cd ..

[root@zhang0-01 /]# pwd

/

cd ..上一级目录

[root@zhang0-01 /]# man cd可以看到全面选项 看不懂的用有道字典翻译。


2.8 创建和删除目录mkdir/rmdir

 

mkdir= make directory

[root@zhang0-01 /]# mkdir /tmp/zhang0

[root@zhang0-01 /]# ls -ld /tmp/zhang0

drwxr-xr-x. 2 root root 6 5月 28 14:46 /tmp/zhang0

[root@zhang0-01 /]# mkdir /tmp/zhang0/1/2

mkdir: 无法创建目录"/tmp/zhang0/1/2": 没有那个文件或目录

[root@zhang0-01 /]# mkdir -p /tmp/zhang0/1/2 -p可以创建一串目录

[root@zhang0-01 /]# mkdir -pv /tmp/zhang0/2/3

mkdir: 已创建目录 "/tmp/zhang0/2"

mkdir: 已创建目录 "/tmp/zhang0/2/3"

-v可以看到创建目录的过程

rmdir == remove directory

[root@zhang0-01 /]# rmdir /tmp/zhang0/2

rmdir: 删除 "/tmp/zhang0/2" 失败: 目录非空

因为2下面有个三目录所以不能删掉

[root@zhang0-01 /]# rmdir /tmp/zhang0/1/2 是可以的

有目录的时候不能删除,有文件的时候可以删除吗?也不能删除下面证明。

[root@zhang0-01 /]# touch /tmp/zhang0/2/3/1.txt

[root@zhang0-01 /]# tree /tmp/zhang0/

/tmp/zhang0/

├── 1

└── 2

└── 3

└── 1.txt

 

3 directories, 1 file

[root@zhang0-01 /]# rmdir /tmp/zhang0/2/3

rmdir: 删除 "/tmp/zhang0/2/3" 失败: 目录非空

如果就像删除这个文件

[root@zhang0-01 /]# rmdir /tmp/zhang0/2/3/1.txt

rmdir: 删除 "/tmp/zhang0/2/3/1.txt" 失败: 不是目录

后面会用到rm 命令

[root@zhang0-01 /]# mkdir -p /tmp/zhang0/4/5

[root@zhang0-01 /]# rmdir -p /tmp/zhang0/4/5

-p可以删除一串的目录,前提是空把4 5 删掉了,这个我们一般不用比较危险。

所以rmdir只能删除目录并且是空的。

 


2.9 rm命令

 

rm可以删除文件 ,可以删除非空的目录

[root@zhang0-01 /]# tree /tmp/zhang0/

/tmp/zhang0/

├── 1

└── 2

└── 3

└── 1.txt

 

3 directories, 1 file

[root@zhang0-01 /]# rm /tmp/zhang0/2/3/1.txt

rm:是否删除普通空文件 "/tmp/zhang0/2/3/1.txt"?y

[root@zhang0-01 /]# tree /tmp/zhang0/

/tmp/zhang0/

├── 1

└── 2

└── 3

可不可以不让他问直接删掉

[root@zhang0-01 /]# touch /tmp/zhang0/2/3/1.txt

[root@zhang0-01 /]# touch /tmp/zhang0/2/3/2.txt

[root@zhang0-01 /]# rm /tmp/zhang0/2/3/*

rm:是否删除普通空文件 "/tmp/zhang0/2/3/1.txt"?n

rm:是否删除普通空文件 "/tmp/zhang0/2/3/2.txt"?n

都会问会很麻烦,如果不想让问加-f

[root@zhang0-01 /]# rm -f /tmp/zhang0/2/3/*

[root@zhang0-01 /]# tree /tmp/zhang0/

/tmp/zhang0/

├── 1

└── 2

└── 3

下面是命令历史最后使用过的tree命令

[root@zhang0-01 /]# !tree

tree /tmp/zhang0/

/tmp/zhang0/

├── 1

└── 2

└── 3

[root@zhang0-01 /]# history

1 mkdir /root/.ssh

2 chmod 700 /root/.ssh

3 vi /root/.ssh/authorizde_keys

4 setenforce 0

5 ifconfig

6 ls /root/.ssh/

7 chmod 700 /root/.ssh

8 vi /root/.ssh/authorized_keys

9 setenforce 0

10 ls /root/.ssh/

11 cd /root/.ssh/

12 rm -rf authorizde_keys

13 vi /root/.ssh/authorized_keys

[root@zhang0-01 /]# rm /tmp/zhang0/2/3

rm: 无法删除"/tmp/zhang0/2/3": 是一个目录

[root@zhang0-01 /]# rm -r /tmp/zhang0/2/3

rm:是否删除目录 "/tmp/zhang0/2/3"?y

创建一些文件目录

[root@zhang0-01 /]# tree /tmp/zhang0/

/tmp/zhang0/

├── 1

└── 2

[root@zhang0-01 /]# tree /tmp/zhang0/

/tmp/zhang0/

└── 2

└── 3

├── 1.txt

└── 2.txt

 

2 directories, 2 files

[root@zhang0-01 /]# rm -rfv /tmp/zhang0/2/3/

已删除"/tmp/zhang0/2/3/1.txt"

已删除"/tmp/zhang0/2/3/2.txt"

已删除目录:"/tmp/zhang0/2/3/"

加上-f删除没有的目录也不会提示信息。


2.10 环境变量PATH

 

[root@zhang0-01 /]# which rm

alias rm='rm -i'

/usr/bin/rm

[root@zhang0-01 /]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

find是从目录里都找了一遍,而which很快找到是因为他就在这几个目录里找。

命令其实也是一个命令文件。

[root@zhang0-01 /]# which ls

alias ls='ls --color=auto'

/usr/bin/ls

[root@zhang0-01 /]# cp /usr/bin/ls /tmp/ls2

[root@zhang0-01 /]# /tmp/ls2

bin dev home lib64 mnt proc run srv tmp var

boot etc lib media opt root sbin sys usr

[root@zhang0-01 /]# ls

bin dev home lib64 mnt proc run srv tmp var

boot etc lib media opt root sbin sys usr

[root@zhang0-01 /]# ls2

-bash: ls2: 未找到命令

[root@zhang0-01 /]# PATH=$PATH:/tmp/

[root@zhang0-01 /]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/

[root@zhang0-01 /]# ls2

bin dev home lib64 mnt proc run srv tmp var

boot etc lib media opt root sbin sys usr

[root@zhang0-01 /]# which ls2

/tmp/ls2

另外打开一个终端再敲ls2不生效了,

[root@zhang0-01 ~]# ls2

-bash: ls2: 未找到命令

想每次都生效,需要把环境变量改成永久的

[root@zhang0-01 /]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/

root@zhang0-01 /]# vi /etc/profile 最后加一行

PATH=$PATH:/tmp/

然后再重新打开一个终端

[root@zhang0-01 ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/tmp/:/root/bin

[root@zhang0-01 ~]# ls2

anaconda-ks.cfg

生效了,

如果不想让他生效了

[root@zhang0-01 /]# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@zhang0-01 /]# ls2

-bash: ls2: 未找到命令

如果从开终端也不生效那就

[root@zhang0-01 /]# vi /etc/profile删掉刚才添加的


2.11 cp命令

[root@zhang0-01 /]# cp /etc/passwd /tmp/1.txt复制文件

[root@zhang0-01 /]# cp -r /tmp/zhang0/ /tmp/zhang复制目录需要加-r

[root@zhang0-01 /]# tree /tmp/zhang0

/tmp/zhang0

├── 2

└── zhang0

└── 2

3 directories, 0 files

[root@zhang0-01 /]# tree /tmp/zhang

/tmp/zhang

├── 2

└── zhang0

└── 2

cp时候建议所有的目录都加/即使目录不存在,因为后面会有加不加不同的情况

[root@zhang0-01 /]# cp -r /tmp/zhang0/ /tmp/zhang1/

[root@zhang0-01 /]# tree !$

tree /tmp/zhang1/

/tmp/zhang1/

├── 2

└── zhang0

└── 2

3 directories, 0 files

[root@zhang0-01 /]# tree /tmp/zhang0/

/tmp/zhang0/

├── 2

└── zhang0

└── 2

[root@zhang0-01 /]# which cp

alias cp='cp -i'

/usr/bin/cp

-i是表示会问,提高安全

[root@zhang0-01 /]# cp /etc/passwd /tmp/1.txt

cp:是否覆盖"/tmp/1.txt"? ^C

[root@zhang0-01 /]# /usr/bin/cp /etc/passwd /tmp/1.txt

cp 源文件 目标文件

cp -r 源目录 目标目录

 

 


2.12 mv命令

 

同一个目录下move文件相当于改名字, 不同目录下是改一下地方

[root@zhang0-01 tmp]# mv 1.txt /root/2.txt更改位置并且改名字

[root@zhang0-01 tmp]# mv ls2 zhang/

[root@zhang0-01 tmp]# ls zhang/

2 ls2 zhang0

和其他几个也一样有个-i提示

[root@zhang0-01 tmp]# touch ls2

[root@zhang0-01 tmp]# mv ls2 zhang/

mv:是否覆盖"zhang/ls2"? n

[root@zhang0-01 tmp]# which mv

alias mv='mv -i'

/usr/bin/mv

[root@zhang0-01 tmp]# /usr/bin/mv ls2 zhang/


2.13 文档查看cat/more/less/head/tail

[root@zhang0-01 tmp]# cat /etc/passwd

[root@zhang0-01 tmp]# tac /etc/passwd顺序倒过来

[root@zhang0-01 tmp]# cat -A /etc/passwd

[root@zhang0-01 tmp]# cat -n /etc/passwd 会显示行号

[root@zhang0-01 tmp]# more /etc/passwd

没显示全,按空格键继续显示

[root@zhang0-01 tmp]# wc -l yum.log

0 yum.log

可以看一个文件的行数

anaconda-ks.cfg这个文件是系统自带的装系统的文件。如果平时用不到可以随便修改

[root@zhang0-01 ~]# cat /etc/passwd >>2.txt

前面的增加到后面文件的内容

[root@zhang0-01 tmp]# wc -l 2.txtm

可以按空格一行行的显示 more 2.txt

空格向后 ctrl+b向前看

less ctrl+b向上看 ,空格向下看,支持一行业的方向键,Ctrl+f向后看

看到最后并不会向more那样自动退出需要按一个q键

搜索/root 按n下一个,shift +n上一个

搜索?root n从后往前看

g定位到行首 shift+g也就是G是在行尾

head 头十行

tail 后十行

[root@zhang0-01 ~]# head -n 2 2.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

[root@zhang0-01 ~]# tail -n 2 2.txt

zhang0:x:1000:1000::/home/zhang0:/bin/bash

user1:x:1001:1001::/home/user1:/bin/bash

[root@zhang0-01 ~]# tail -f 2.txt时刻更新文件看

[root@zhang0-01 ~]# head -n 2 /etc/passwd >>2.txt

 

 


2.14 文件和目录权限chmod

[root@zhang0-01 ~]# ls -l

总用量 16

-rw-r--r--. 1 root root 9497 5月 28 16:33 2.txt

-rw-------. 1 root root 1265 5月 27 20:19 anaconda-ks.cfg

第一段rw-是所有者,是否可写 可读可执行

第二个是所属组

第三个是其他用户

r=4 w=2 x=1

chmod==change mode

[root@zhang0-01 ~]# chmod 700 2.txt

[root@zhang0-01 ~]# ls -l

总用量 16

-rwx------. 1 root root 9497 5月 28 16:33 2.txt

-rw-------. 1 root root 1265 5月 27 20:19 anaconda-ks.cfg

前十位后面都有1个点是什么意思呢,都使至于selinux.

[root@zhang0-01 ~]# getenforce

Enforcing 开启

[root@zhang0-01 ~]# setenforce 0

[root@zhang0-01 ~]# getenforce

Permissive 开启不会彻底关闭

真正关闭在[root@zhang0-01 ~]# vi /etc/selinux/config配置文件里

[root@zhang0-01 tmp]# ls -l zhang2

总用量 0

drwxr-xr-x. 2 root root 6 5月 28 15:32 2

-rw-r--r--. 1 root root 0 5月 28 15:58 ls2

drwxr-xr-x. 3 root root 15 5月 28 15:32 zhang0

[root@zhang0-01 tmp]# chmod -R 770 zhang2

[root@zhang0-01 tmp]# ls -l zhang2

总用量 0

drwxrwx---. 2 root root 6 5月 28 15:32 2

-rwxrwx---. 1 root root 0 5月 28 15:58 ls2

drwxrwx---. 3 root root 15 5月 28 15:32 zhang0

批量改权限

[root@zhang0-01 tmp]# chmod u=rwx,g=r,o=r zhang2

[root@zhang0-01 tmp]# chmod a+x zhang2

[root@zhang0-01 tmp]# chmod a-x zhang2

 

 

 


2.15 更改所有者和所属组chown

chown ==change owner

[root@zhang0-01 tmp]# 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-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin

systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

polkitd:x:998:996:User for polkitd:/:/sbin/nologin

tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

zhang0:x:1000:1000::/home/zhang0:/bin/bash

user1:x:1001:1001::/home/user1:/bin/bash

两个自己创建的普通用户可以使用

改所属主

[root@zhang0-01 ~]# ls -l /tmp/yum.log

-rw-------. 1 root root 0 5月 27 20:15 /tmp/yum.log

[root@zhang0-01 ~]# chown zhang0 /tmp/yum.log

[root@zhang0-01 ~]# !ls

ls -l /tmp/yum.log

-rw-------. 1 zhang0 root 0 5月 27 20:15 /tmp/yum.log

chgrp== change group

改组、

[root@zhang0-01 ~]# chgrp usr1 /tmp/yum.log

[root@zhang0-01 ~]# chgrp zhang0 /tmp/yum.log

[root@zhang0-01 ~]# !ls

ls -l /tmp/yum.log

-rw-------. 1 zhang0 zhang0 0 5月 27 20:15 /tmp/yum.log

其实chown既可以改主也可以改组

[root@zhang0-01 ~]# chown zhang0:root /tmp/yum.log

[root@zhang0-01 ~]# ls -l /tmp/yum.log

-rw-------. 1 zhang0 root 0 5月 27 20:15 /tmp/yum.log

chown 也可以只改他的所属组

[root@zhang0-01 ~]# chown :zhang /tmp/yum.log

[root@zhang0-01 ~]# ls -l /tmp/yum.log

-rw-------. 1 zhang0 zhang0 0 5月 27 20:15 /tmp/yum.log

-R也是同样用于

[root@zhang0-01 ~]# chown -R zhang:zhang /tmp/zhang2/

[root@zhang-01 ~]# ls !$

ls /tmp/zhang2/

2 ls2 zhang0

[root@zhang0-01 ~]# ls -l /tmp/zhang2/ls2

-rwxrwx---. 1 zhang zhang 0 5月 28 15:58 /tmp/zhang2/ls2

 

 

 


2.16 umask

[root@zhang-01 ~]# touch 11.txt

[root@zhang-01 ~]# mkdir 123

[root@zhang-01 ~]# ls -l

总用量 16

-rw-r--r--. 1 root root 0 5月 28 17:11 11.txt

drwxr-xr-x. 2 root root 6 5月 28 17:11 123

为什么创建一个目录的权限是755 创建一个文件的权限是644

[root@zhang-01 ~]# umask

0022

这是系统root用户的umask

我们把这umask的值改掉,创建一个文件的权限是664 目录的权限是775

[root@zhang-01 ~]# umask

0022

[root@zhang-01 ~]# umask 002

[root@zhang-01 ~]# umask

0002

[root@zhang-01 ~]# touch 1.txt

[root@zhang-01 ~]# mkdir 456

[root@zhang-01 ~]# ls -l

总用量 16

-rw-r--r--. 1 root root 0 5月 28 17:11 11.txt

drwxr-xr-x. 2 root root 6 5月 28 17:11 123

-rw-rw-r--. 1 root root 0 5月 28 17:14 1.txt

-rwx------. 1 root root 9497 5月 28 16:33 2.txt

drwxrwxr-x. 2 root root 6 5月 28 17:14 456

总结下umask 022 目录755 文件644

umask 002目录775 文件664

目录等于777-022=755

文件666-022=644

如果umask变成002

那目录等777-002=775

666-002=664

貌似是这样的规律其实不一定对,如果我们umask 变成003

[root@zhang-01 ~]# umask 003

[root@zhang-01 ~]# umask

0003

[root@zhang-01 ~]# touch 1.txt

[root@zhang-01 ~]# mkdir 2

[root@zhang-01 ~]# ls -l

总用量 4

-rw-rw-r--. 1 root root 0 5月 28 17:24 1.txt

drwxrwxr--. 2 root root 6 5月 28 17:24 2

-rw-------. 1 root root 1265 5月 27 20:19 anaconda-ks.cfg

文件变成664 目录变成774 应该777-003=774

666-003=663

其实我们应该这样算

666=(rw-rw-rw-)-(-------wx)=rw-rw-r--=664

777=(rwxrwxrwx)-(-------wx)=rwxrwxr--=774

所以umask是用来决定默认的文件和目录权限的。 

 

posted @ 2018-07-28 10:08  Linux操作系统爱好者  阅读(61)  评论(0)    收藏  举报