本文主要是介绍学习笔记0316----linux基本命令(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
linux基本命令
- 预习内容
- 1.linux系统目录解析
- 2.ls命令(list)
- 2.1 命令 ls -l 列出文件的详细信息
- 2.2 命令ls -i (i是--inode)显示文件的inode号
- 2.3 命令ls -lh (h是--human-readable)更人性化显示文件信息
- 2.4 命令 ls -la (a是--all) 显示隐藏文件
- 2.5. ls -lta 按修改时间排序,最新时间在上,最早时间在下
- 2.7 ls -ld (d是--directory)列出目录本身,而不是目录的内容
- 2.8 ll = ls -l --color=auto
- 2.9.文件类型
- 3.别名命令alias
- 4.相对路径、绝对路径、cd和pwd命令
- 5.创建和删除目录(mkdir、rmdir)
- 6.删除命令rm和树形显示tree
- 7.环境变量PATH
- 8.复制命令cp
- 9.移动命令mv
- 10.文档查看命令cat(tac倒叙查看)、more、less、head、tail
- 11.文件和目录权限 chmod
- 12.文件所有者和所属组权限设置 chown
- 13. umask设置默认文件夹和文件得权限
- 课后总结
- 1.文件系统
- 2.一些小知识点
- 2.1 rsync
- 2.2 PATH
- 2.3 运维关键词
- 2.4 GET到的新词
预习内容
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
1.linux系统目录解析
[root@linux-01 ~]# ls /
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
序号 | 目录 | 说明 |
---|---|---|
1 | /root | root用户的家目录 |
2 | /home | 用户的家目录 |
3 | /boot | 系统启动相关的文件 |
4 | /etc | 配置文件所在路径 |
5 | /bin | “软连接”/usr/bin;存储用户的命令 |
6 | /sbin | “软连接”/usr/sbin:存储root用户的命令 |
7 | /lib | “软连接”/usr/lib:库文件 |
8 | /lib64 | “软连接”/usr/lib64:库文件 |
9 | /usr | 用户的文件:/usr/local/nginx |
10 | /dev | 设备目录:光盘、硬盘、鼠标、键盘 |
11 | /mnt | 临时挂载目录 |
12 | /proc | 系统进程目录 |
13 | /run | 一些进程产生的临时文件,重启就会消失 |
14 | /srv | service产生的文件 |
15 | /tmp | 系统临时目录, |
16 | /var | /var/log 存储系统日志 |
17 | /media | 媒介目录 |
18 | /opt | 用来安装附加软件包 |
19 | /sys | 系统内核相关的文件 |
2.ls命令(list)
2.1 命令 ls -l 列出文件的详细信息
[root@linux-01 ~]# ls -l
总用量 4
-rw-------. 1 root root 1420 3月 14 01:02 anaconda-ks.cf[root@linux-01 ~]# ll
总用量 4
-rw-------. 1 root root 1420 3月 14 01:02 anaconda-ks.cfg
* | ls -l | 命令详解 |
---|---|---|
* | -rw-------. | 第一列代表文件的权限:文件类型、文件所有者权限、文件所属组权限、其他权限 |
* | 1 | 第二列表示有几个文件使用了相同的inode |
* | root | 第三列的root代表文件所有者 |
* | root | 第四列的root代表文件所属组 |
* | 1420 | 第五列代表文件大小,单位是B |
* | 3月 | 第六列代表时间月份 |
* | 14 | 第七列代表时间日 |
* | 01:02 | 第八列代表时间小时和分 |
* | anaconda-ks.cfg | 第九列代表文件名 |
2.2 命令ls -i (i是–inode)显示文件的inode号
[root@linux-01 ~]# ls -i #查看文件的inode号
16797763 anaconda-ks.cfg## inode是什么?
理解inode,要从文件储存说起。
文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。
文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。
每一个文件都有对应的inode,里面包含了与该文件有关的一些信息## 查看inode信息,使用命令stat
[root@linux-01 ~]# stat anaconda-ks.cfg 文件:"anaconda-ks.cfg"大小:1420 块:8 IO 块:4096 普通文件
设备:803h/2051d Inode:16797763 硬链接:1
权限:(0600/-rw-------) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:admin_home_t:s0
最近访问:2019-03-14 01:02:30.554024559 +0800
最近更改:2019-03-14 01:02:30.557024559 +0800
最近改动:2019-03-14 01:02:30.557024559 +0800
创建时间:-
2.3 命令ls -lh (h是–human-readable)更人性化显示文件信息
[root@linux-01 ~]# ls -lh
总用量 4.0K
-rw-------. 1 root root 1.4K 3月 14 01:02 anaconda-ks.cfg
2.4 命令 ls -la (a是–all) 显示隐藏文件
## 点开头得文件为隐藏文件或者目录##
[root@linux-01 ~]# ls -la
总用量 28
dr-xr-x---. 3 root root 147 3月 14 02:40 . #表示当前目录,3表示root目录下有三个文价夹得inode号相同
dr-xr-xr-x. 17 root root 224 3月 14 01:01 ..
-rw-------. 1 root root 1420 3月 14 01:02 anaconda-ks.cfg
-rw-------. 1 root root 864 3月 15 01:41 .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 3月 15 01:41 .ssh
-rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc
## root文件夹第二列得3代表3个文件夹inode相同
[root@linux-01 ~]# ls -i /root
16797763 anaconda-ks.cfg
[root@linux-01 ~]# ls -i .
16797763 anaconda-ks.cfg
[root@linux-01 ~]# ls -i .ssh/..
16797763 anaconda-ks.cfg
2.5. ls -lta 按修改时间排序,最新时间在上,最早时间在下
[root@linux-01 ~]# ls -lta
总用量 28
-rw-------. 1 root root 864 3月 15 01:41 .bash_history
drwx------. 2 root root 80 3月 15 01:41 .ssh
dr-xr-x---. 3 root root 147 3月 14 02:40 .
-rw-------. 1 root root 1420 3月 14 01:02 anaconda-ks.cfg
dr-xr-xr-x. 17 root root 224 3月 14 01:01 ..
-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
2.7 ls -ld (d是–directory)列出目录本身,而不是目录的内容
[root@linux-01 ~]# ls -ld /
dr-xr-xr-x. 17 root root 224 3月 14 01:01 /[root@linux-01 ~]# ls -l /
总用量 16
lrwxrwxrwx. 1 root root 7 3月 14 00:57 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 3月 14 01:04 boot
drwxr-xr-x. 19 root root 3200 3月 14 22:22 dev
drwxr-xr-x. 74 root root 8192 3月 14 22:23 etc
drwxr-xr-x. 2 root root 6 4月 11 2018 home
lrwxrwxrwx. 1 root root 7 3月 14 00:57 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 3月 14 00:57 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 4月 11 2018 media
drwxr-xr-x. 2 root root 6 4月 11 2018 mnt
drwxr-xr-x. 2 root root 6 4月 11 2018 opt
dr-xr-xr-x. 108 root root 0 3月 14 22:22 proc
dr-xr-x---. 3 root root 147 3月 14 02:40 root
drwxr-xr-x. 23 root root 620 3月 14 22:22 run
lrwxrwxrwx. 1 root root 8 3月 14 00:57 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 4月 11 2018 srv
dr-xr-xr-x. 13 root root 0 3月 14 22:22 sys
drwxrwxrwt. 10 root root 236 3月 16 03:14 tmp
drwxr-xr-x. 13 root root 155 3月 14 00:57 usr
drwxr-xr-x. 19 root root 267 3月 14 01:03 var
2.8 ll = ls -l --color=auto
下面得图中我们看到了使用alias命令(别名得意思)
2.9.文件类型
文件属性 | 文件类型 | 说明 |
---|---|---|
第一个属性为 [-] | 普通文件类型 | Linux中最多的一种文件类型, 包括 纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件. |
第一个属性为 [l] | 链接文件 | 类似Windows下面的快捷方式。 |
第一个属性为 [d] | 目录文件 | 可以用cd命令进入 |
第一个属性为 [b] | 快设备文件 | 就是存储数据以供系统存取的接口设备,简单而言就是硬盘。例如一号硬盘的代码是 /dev/hda1等文件。 |
第一个属性为 [c] | 字符设备文件 | 即串行端口的接口设备,例如键盘、鼠标等等。 |
第一个属性为 [s] | 套接字文件 | 这类文件通常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。 |
第一个属性为 [p] | 管道文件 | FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO是first-in-first-out(先进先出)的缩写。 |
[root@linux-01 ~]# ll /root/anaconda-ks.cfg
-rw-------. 1 root root 1420 3月 14 01:02 /root/anaconda-ks.cfg[root@linux-01 ~]# ll -d /root/.ssh/
drwx------. 2 root root 80 3月 15 01:41 /root/.ssh/[root@linux-01 ~]# ll -d /bin
lrwxrwxrwx. 1 root root 7 3月 14 00:57 /bin -> usr/bin[root@linux-01 ~]# ll /dev/tty
crw-rw-rw-. 1 root tty 5, 0 3月 14 22:33 /dev/tty[root@linux-01 ~]# ll /dev/sda
brw-rw----. 1 root disk 8, 0 3月 14 22:22 /dev/sda[root@linux-01 ~]# ll -a /dev/log
srw-rw-rw-. 1 root root 0 3月 14 22:22 /dev/log
3.别名命令alias
## 查看系统中所有的别名
[root@linux-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'
## which 命令也是一个别名,which查找命令是否在PATH中查找
[root@linux-01 ~]# which which
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'/usr/bin/alias/usr/bin/which
## echo输入系统环境变量
[root@linux-01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
## 自定义一个别名
[root@linux-01 ~]# alias xihaji='ls -lah'
[root@linux-01 ~]# xihaji
总用量 28K
dr-xr-x---. 3 root root 147 3月 14 02:40 .
dr-xr-xr-x. 17 root root 224 3月 14 01:01 ..
-rw-------. 1 root root 1.4K 3月 14 01:02 anaconda-ks.cfg
-rw-------. 1 root root 864 3月 15 01:41 .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 3月 15 01:41 .ssh
-rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc[root@linux-01 ~]# which xihaji
alias xihaji='ls -lah'/usr/bin/ls ## 取消别名使用unalias
[root@linux-01 ~]# unalias xihaji
[root@linux-01 ~]# xihaji
-bash: xihaji: 未找到命令
4.相对路径、绝对路径、cd和pwd命令
绝对路径是指从‘/’目录下开始的;
相对路径不是从"/"目录下开始的。
## 绝对路径
[root@linux-01 ~]# ls /root/anaconda-ks.cfg
/root/anaconda-ks.cfg## 相对路径
[root@linux-01 ~]# ls anaconda-ks.cfg
anaconda-ks.cfg## cd (change directory)指进入某个目录
[root@linux-01 ~]# cd /etc/sysconfig/## pwd 显示当前所在目录
[root@linux-01 sysconfig]# pwd
/etc/sysconfig## cd - 进入上次所在目录
[root@linux-01 sysconfig]# cd -
/root
[root@linux-01 ~]# pwd
/root
[root@linux-01 ~]# cd -
/etc/sysconfig
[root@linux-01 sysconfig]# pwd
/etc/sysconfig
[root@linux-01 sysconfig]# cd -
/root
[root@linux-01 ~]# pwd
/root## cd 与cd ~ 表示进入当前用户的家目录
[root@linux-01 ~]# cd
[root@linux-01 ~]# pwd
/root
[root@linux-01 ~]# cd ~
[root@linux-01 ~]# pwd
/root## cd .. 进入上一级目录
[root@linux-01 ~]# cd
[root@linux-01 ~]# cd ..
[root@linux-01 /]# pwd
/
[root@linux-01 /]# cd ..
[root@linux-01 /]# pwd
/
5.创建和删除目录(mkdir、rmdir)
## mkdir (make directory)创建目录
[root@linux-01 /]# mkdir /tmp/test
[root@linux-01 /]# ls -d /tmp/test/
/tmp/test/## mkdir 创建多个逐级目录,如果创建的子目录的父目录没有,则会创建失败
[root@linux-01 /]# mkdir /tmp/test/1/2/3
mkdir: 无法创建目录"/tmp/test/1/2/3": 没有那个文件或目录## mkdir -p 可以连续创建多个目录
[root@linux-01 /]# mkdir -p /tmp/test/1/2/3## mkdir -pv v代表可视化,可以看到看到创建目录的过程
[root@linux-01 /]# mkdir -pv /tmp/test/2/3/4
mkdir: 已创建目录 "/tmp/test/2"
mkdir: 已创建目录 "/tmp/test/2/3"
mkdir: 已创建目录 "/tmp/test/2/3/4"
## rmdir (remove directory) 只能删除空目录
[root@linux-01 /]# ls -d tmp/test/1/2/3/
tmp/test/1/2/3/
[root@linux-01 /]# rmdir tmp/test/1/2/3/ #删除目录3
[root@linux-01 /]# ll tmp/test/1/2/ #可以查看到目录3已经被删除
总用量 0
[root@linux-01 /]# ## rmdir -p删除逐级目录,只要子目录存在,删除父目录会报错
[root@linux-01 /]# rmdir /tmp/test/1
rmdir: 删除 "/tmp/test/1" 失败: 目录非空
6.删除命令rm和树形显示tree
## rm 可以删除文件和目录
[root@linux-01 2]# rm /tmp/test/1/2/1.txt
rm:是否删除普通空文件 "/tmp/test/1/2/1.txt"?y #输入y才可以删除
[root@linux-01 2]# ll
总用量 0
[root@linux-01 2]# ## rm -f (f代表--force)忽略不存在的文件和参数,不要提示
[root@linux-01 2]# rm /tmp/test/1/2/
1.txt 2.txt
[root@linux-01 2]# rm -f /tmp/test/1/2/*
[root@linux-01 2]# ll
总用量 0## rm -r ()递归删除目录及其内容递归
[root@linux-01 ~]# rm -r /tmp/test/
rm:是否进入目录"/tmp/test/"? yy
rm:是否进入目录"/tmp/test/1"? y
rm:是否进入目录"/tmp/test/1/2"? y
rm:是否删除目录 "/tmp/test/1/2/3"?y
rm:是否删除目录 "/tmp/test/1/2"?y
rm:是否删除目录 "/tmp/test/1"?y
rm:是否进入目录"/tmp/test/2"? y
rm:是否进入目录"/tmp/test/2/3"? y
rm:是否进入目录"/tmp/test/2/3/4"? y
rm:是否删除普通空文件 "/tmp/test/2/3/4/1.txt"?y
rm:是否删除普通空文件 "/tmp/test/2/3/4/2.txt"?y
rm:是否删除目录 "/tmp/test/2/3/4"?y
rm:是否删除目录 "/tmp/test/2/3"?y
rm:是否删除目录 "/tmp/test/2"?y
rm:是否删除目录 "/tmp/test/"?y## rm -rf 可以不需要询问,递归删除
## tree 文件路径 可以显示此路径下面的文件,树形显示出来
[root@linux-01 2]# tree /tmp/test/
/tmp/test/
├── 1
│ └── 2
└── 2└── 3└── 45 directories, 0 files## !tree !代表最近一次使用命令tree的结果
[root@linux-01 2]# !tree
tree /tmp/test/
/tmp/test/
├── 1
│ └── 2
└── 2└── 3└── 45 directories, 0 files
[root@linux-01 2]#
7.环境变量PATH
## 查看系统变量得位置 ##
[root@linux-01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin[root@linux-01 ~]# cp /usr/bin/ls /tmp/ls2
[root@linux-01 ~]# ls2 #复制好的得命令未添加到系统环境变量,所以不可以使用
-bash: ls2: 未找到命令
[root@linux-01 ~]# /tmp/ls2
anaconda-ks.cfg[root@linux-01 ~]# PATH=$PATH:/tmp/ #可以把tmp目录添加到系统环境变量,临时生效
[root@linux-01 ~]# which ls2
/tmp/ls2
[root@linux-01 ~]# ls2
anaconda-ks.cfg[root@linux-01 ~]# vi /etc/profile #如果想要永久生效,可以修改这个文件
在文件行末添加:PATH=$PATH:/tmp/[root@linux-01 ~]# !echo
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/ls2:/tmp/
[root@linux-01 ~]###如果想要把添加得环境变量删除,可以做如下操作##
[root@linux-01 ~]# PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:
[root@linux-01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
8.复制命令cp
## 查看cp命令所在位置 ##
[root@linux-01 ~]# which cp
alias cp='cp -i'/usr/bin/cp
[root@linux-01 ~]# mkdir -p /tmp/1/2
[root@linux-01 ~]# mkdir -p /tmp/test/1/2
[root@linux-01 ~]# rm -rf !$ # !$ 代表上次命令得最后一个参数
rm -rf /tmp/test/1/2
[root@linux-01 ~]# tree /tmp/test/ # 可以查看到2目录已经被删除
/tmp/test/
└── 11 directory, 0 files
[root@linux-01 ~]# cp /tmp/test/ /tmp/test1/ # 复制目录需要添加-r参数
cp: 略过目录"/tmp/test/"
[root@linux-01 ~]# cp -r /tmp/test/ /tmp/test1/
[root@linux-01 ~]# tree /tmp/test1/
/tmp/test1/
└── 11 directory, 0 files
[root@linux-01 ~]# cp -r /tmp/test/ /tmp/test1/ #如果复制到得目录已经存在,则复制得目录放于此目录下面
[root@linux-01 ~]# tree /tmp/test1
/tmp/test1
├── 1
└── test└── 13 directories, 0 files
9.移动命令mv
## 查看mv所在位置 ##
[root@linux-01 ~]# which mv
alias mv='mv -i'/usr/bin/mv ## 如果源文件移动到此目录下面,是重命名得意思 ##
[root@linux-01 ~]# ll
总用量 4
-rw-------. 1 root root 1420 3月 14 01:02 anaconda-ks.cfg
[root@linux-01 ~]# mv anaconda-ks.cfg anaconda-ks.cfg.1
[root@linux-01 ~]# ll
总用量 4
-rw-------. 1 root root 1420 3月 14 01:02 anaconda-ks.cfg.1## 如果移动的目录在目标文件子目录下存在,则移动得文件覆盖目标文件得子目录 ##
[root@linux-01 ~]# tree /root/
/root/
├── anaconda-ks.cfg.1
├── xihaji
│ └── 1.txt
└── xihaji1└── xihaji3 directories, 2 file
[root@linux-01 ~]# mv xihaji/ xihaji1/
mv:是否覆盖"xihaji1/xihaji"? y
[root@linux-01 ~]# !tree
tree /root/
/root/
├── anaconda-ks.cfg.1
└── xihaji1└── xihaji└── 1.txt2 directories, 2 files
10.文档查看命令cat(tac倒叙查看)、more、less、head、tail
## cat 查看文件,把文件所有内容都显示出来 ##
[root@linux-01 ~]# cat 1.txt
1
2
3
## tac 倒叙查看文件 ##
[root@linux-01 ~]# tac 1.txt
3
2
1·
## more 查看文件,把文件内容一屏一屏显示出来,空格键翻屏 ##
## less 查看文件 ##
/字符串:向下搜索“字符串”的功能?字符串:向上搜索“字符串”的功能n:重复前一个搜索(与 / 或 ? 有关)N:反向重复前一个搜索(与 / 或 ? 有关)b 向后翻一页d 向后翻半页h 显示帮助界面Q 退出less 命令u 向前滚动半页y 向前滚动一行空格键 滚动一行回车键 滚动一页[pagedown]: 向下翻动一页[pageup]: 向上翻动一页
## head 查看文件开头的的信息,-n选项添加数字 ##
## tail -f 动态显示文件信息,多用于查看日志,可以查看下图 ##
11.文件和目录权限 chmod
[root@linux-01 ~]# ll
总用量 12
-rw-r--r--. 1 root root 6 3月 16 20:15 1.txt
-rw-r--r--. 1 root root 363 3月 16 23:49 2.txt
-rw-------. 1 root root 1420 3月 14 01:02 anaconda-ks.cfg.1
权限分解 | 含义 |
---|---|
-(第1位得权限) | 代表文件是普通文件(前面文件类型有提到) |
r w -(分别代表2,3,4权限位置) | 代表所有者得权限(读、写、执行) |
- - -(分别代表5,6,7权限位置) | 代表所属组得权限(读、写、执行) |
- - -(分别代表8,9,10权限位置) | 代表其他人得权限(读、写、执行) |
- | - 代表没权限 |
.(代表第11位得权限) | 代表selinux开启得时候,创建文件会生成这个. |
[root@linux-01 ~]# r=4 w=2 x=1 rwx=7 rw-=6 r-x=5 --r=1
## 几种修改文件权限得放法 ##
[root@linux-01 ~]# ll
总用量 12
-rw-r--r--. 1 root root 6 3月 16 20:15 1.txt
-rwx------. 1 root root 363 3月 16 23:49 2.txt
-rw-------. 1 root root 1420 3月 14 01:02 anaconda-ks.cfg.1
[root@linux-01 ~]# chmod 777 2.txt
[root@linux-01 ~]# ll 2.txt
-rwxrwxrwx. 1 root root 363 3月 16 23:49 2.txt[root@linux-01 ~]# chmod a-x 2.txt
[root@linux-01 ~]# !ll
ll 2.txt
-rw-rw-rw-. 1 root root 363 3月 16 23:49 2.txt[root@linux-01 ~]# chmod a+x 2.txt
[root@linux-01 ~]# !ll
ll 2.txt
-rwxrwxrwx. 1 root root 363 3月 16 23:49 2.txt[root@linux-01 ~]# chmod o-x 2.txt
[root@linux-01 ~]# !ll
ll 2.txt
-rwxrwxrw-. 1 root root 363 3月 16 23:49 2.txt[root@linux-01 ~]# chmod u=rwx,g=r,o=r 2.txt
[root@linux-01 ~]# !ll
ll 2.txt
-rwxr--r--. 1 root root 363 3月 16 23:49 2.txt
## chmod -R 755 文件 批量修改文件权限 ##
[root@linux-01 ~]# ll -d /root/xihaji/
drwxr-xr-x. 2 root root 19 3月 17 00:44 /root/xihaji/
[root@linux-01 ~]# ll !$
ll /root/xihaji/
总用量 4
-rw-r--r--. 1 root root 6 3月 16 20:15 1.txt## 不加 -R 只修改了文件夹得权限 ##
[root@linux-01 ~]# chmod 755 /root/xihaji/
[root@linux-01 ~]# ll -d /root/xihaji/
drwxr-xr-x. 2 root root 19 3月 17 00:44 /root/xihaji/
[root@linux-01 ~]# ll /root/xihaji/
总用量 4
-rw-r--r--. 1 root root 6 3月 16 20:15 1.txt## 文件权限和文件权限都已修改 ##
[root@linux-01 ~]# chmod -R 755 /root/xihaji/
[root@linux-01 ~]# ll -d /root/xihaji/
drwxr-xr-x. 2 root root 19 3月 17 00:44 /root/xihaji/
[root@linux-01 ~]# ll /root/xihaji/
总用量 4
-rwxr-xr-x. 1 root root 6 3月 16 20:15 1.txt
12.文件所有者和所属组权限设置 chown
[root@linux-01 ~]# ll 2.txt
-rwxr--r--. 1 root root 363 3月 16 23:49 2.txt
[root@linux-01 ~]# chown xihaji 2.txt #修改所有者为用户xihaji
[root@linux-01 ~]# !ll
ll 2.txt
-rwxr--r--. 1 xihaji root 363 3月 16 23:49 2.txt
[root@linux-01 ~]# chown :xihaji 2.txt #修改所属组为xihaji
[root@linux-01 ~]# ll 2.txt
-rwxr--r--. 1 xihaji xihaji 363 3月 16 23:49 2.txt
[root@linux-01 ~]# chown xihaji:root 2.txt #修改所有者为xihaji,所属组为root
[root@linux-01 ~]# !ll
ll 2.txt
-rwxr--r--. 1 xihaji root 363 3月 16 23:49 2.txt## 前面chmod权限设计到-R选项,chown也有-R选项,可以理解为递归 ##
[root@linux-01 ~]# chown -R USERNAME:GROUPNAME FILENAME
13. umask设置默认文件夹和文件得权限
umask是什么?
当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般可在/etc/profile、/etc/bashrc、$ [HOME]/.bash_profile、$ [HOME]/.profile或$[HOME]/.bashrc中设置umask值。
## 系统默认umask 是022,创建得文件夹是755权限,创建得文件权限是644权限 ##
[root@linux-01 ~]# umask
0022
[root@linux-01 ~]# mkdir 123
[root@linux-01 ~]# touch 111.txt[root@linux-01 ~]# ll 111.txt
-rw-r--r--. 1 root root 0 3月 17 01:32 111.txt
[root@linux-01 ~]# ll -d 123/
drwxr-xr-x. 2 root root 6 3月 17 01:32 123/
## umask如果是003,新建的文件夹和文件权限又是如何的呢? ##
[root@linux-01 ~]# umask 003[root@linux-01 ~]# mkdir 111
[root@linux-01 ~]# touch 123[root@linux-01 ~]# ll 123
-rw-rw-r--. 1 root root 0 3月 17 01:35 123
[root@linux-01 ~]# ll -d 111
drwxrwxr--. 2 root root 6 3月 17 01:35 111
########################################
原因是什么呢?umask 003,权限也就是(-wx)
文件夹的权限:(rwxrwxrwx)- (-------wx) = (rwxrwxr--) 也就是774文件的权限:(rw-rw-rw-)- (-------wx) =(rw-rw-r--) 也就是664(没有权限)减去(有这个权限)=(还是没有权限)
########################################
课后总结
1.文件系统
先来收藏一个目录结构图,阿铭老师分享的。linux系统目录图
根据我这小白对linux的了解,我认为不常用的目录有以下:
/boot/ 系统启动目录;
/sys/ 系统内核相关目录;
/proc/ 系统进程目录;
/run/ 系统产生临时文件目录;
/bin/ 用户命令目录
/sbin/ root用户命令目录
/lib/ 库目录
/lib64/ 库目录,配置文件目录
/media/ 媒体挂载目录
/mnt/ 临时挂载目录
有不常用的目录,那肯定就有常用的,罗列下:
/root/ root用户的家目录;
/home/ 用户的家目录;
/tmp/ 临时文件目录;
/var/ log目录存日志;
/opt/ 第三方软件目录;
/etc/ 服务配置目录
/usr/
2.一些小知识点
2.1 rsync
Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远 程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快
Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试
此外,它在windows平台下也有相应的版本,如cwRsync和Sync2NAS等工具
2.2 PATH
课堂上我问了阿铭老师这样一个问题:用户目录下的.bashrc是环境变量么?
老师说不是,这个文件是一个配置文件。
## PATH是系统的环境变量问题一:如何修改系统环境变量?
解答:修改 /etc/profile问题二:PATH是一个目录集合?
解答:PATH是命令的目录集合。
2.3 运维关键词
## 多数的运维工作都设计到一个关键词。 是shell编程。什么是shell编程?
个人认为shell编程是一群命令的集合。其他的编程语言:python go ,未来需要学会的必备技能。
2.4 GET到的新词
jumpserver 堡垒机,这个属于自动化运维的工具了。
这篇关于学习笔记0316----linux基本命令(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!