前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习笔记0316----linux基本命令(一)

学习笔记0316----linux基本命令(一)

作者头像
嘻哈记
发布2022-01-11 10:30:52
1.5K0
发布2022-01-11 10:30:52
举报
文章被收录于专栏:运维学习交流运维学习交流

linux基本命令

预习内容

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系统目录解析

代码语言:javascript
复制
[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 列出文件的详细信息

代码语言:javascript
复制
[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号

代码语言:javascript
复制
[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)更人性化显示文件信息

代码语言:javascript
复制
[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) 显示隐藏文件

代码语言:javascript
复制
##  点开头得文件为隐藏文件或者目录##
[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
代码语言:javascript
复制
##  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 按修改时间排序,最新时间在上,最早时间在下

代码语言:javascript
复制
[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)列出目录本身,而不是目录的内容

代码语言:javascript
复制
[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(先进先出)的缩写。

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
[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

代码语言:javascript
复制
## 查看系统中所有的别名
[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'
代码语言:javascript
复制
## 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	
代码语言:javascript
复制
## echo输入系统环境变量
[root@linux-01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
代码语言:javascript
复制
## 自定义一个别名
[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命令

绝对路径是指从‘/’目录下开始的; 相对路径不是从"/"目录下开始的。

代码语言:javascript
复制
## 绝对路径
[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)

代码语言:javascript
复制
## 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"
代码语言:javascript
复制
## 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

代码语言:javascript
复制
## 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 可以不需要询问,递归删除
代码语言:javascript
复制
## tree  文件路径 可以显示此路径下面的文件,树形显示出来
[root@linux-01 2]# tree /tmp/test/
/tmp/test/
├── 1
│   └── 2
└── 2
    └── 3
        └── 4

5 directories, 0 files


## !tree  !代表最近一次使用命令tree的结果 
[root@linux-01 2]# !tree
tree /tmp/test/
/tmp/test/
├── 1
│   └── 2
└── 2
    └── 3
        └── 4

5 directories, 0 files
[root@linux-01 2]# 

7.环境变量PATH

代码语言:javascript
复制
## 查看系统变量得位置 ##
[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

代码语言:javascript
复制
## 查看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/
└── 1

1 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/
└── 1

1 directory, 0 files
[root@linux-01 ~]# cp -r /tmp/test/  /tmp/test1/  #如果复制到得目录已经存在,则复制得目录放于此目录下面
[root@linux-01 ~]# tree  /tmp/test1
/tmp/test1
├── 1
└── test
    └── 1

3 directories, 0 files

9.移动命令mv

代码语言:javascript
复制
## 查看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
    └── xihaji

3 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.txt

2 directories, 2 files

10.文档查看命令cat(tac倒叙查看)、more、less、head、tail

代码语言:javascript
复制
## cat 查看文件,把文件所有内容都显示出来 ##
[root@linux-01 ~]# cat 1.txt 
1
2
3
代码语言:javascript
复制
## tac 倒叙查看文件 ##
[root@linux-01 ~]# tac 1.txt 
3
2
1·
代码语言:javascript
复制
## more 查看文件,把文件内容一屏一屏显示出来,空格键翻屏 ##
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
## less 查看文件  ##
/字符串:向下搜索“字符串”的功能

?字符串:向上搜索“字符串”的功能

n:重复前一个搜索(与 / 或 ? 有关)

N:反向重复前一个搜索(与 / 或 ? 有关)

b  向后翻一页

d  向后翻半页

h  显示帮助界面

Q  退出less 命令

u  向前滚动半页

y  向前滚动一行

空格键 滚动一行

回车键 滚动一页

[pagedown]: 向下翻动一页

[pageup]:   向上翻动一页
代码语言:javascript
复制
## head 查看文件开头的的信息,-n选项添加数字 ##
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
## tail  -f  动态显示文件信息,多用于查看日志,可以查看下图 ##
在这里插入图片描述
在这里插入图片描述

11.文件和目录权限 chmod

代码语言:javascript
复制
[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开启得时候,创建文件会生成这个.

代码语言:javascript
复制
[root@linux-01 ~]# r=4  w=2  x=1   rwx=7  rw-=6   r-x=5  --r=1
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
## 几种修改文件权限得放法 ##
[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
代码语言:javascript
复制
## 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

代码语言:javascript
复制
[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或

代码语言:javascript
复制
## 系统默认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/
代码语言:javascript
复制
## 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

代码语言:javascript
复制
Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远 程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快
Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试
此外,它在windows平台下也有相应的版本,如cwRsync和Sync2NAS等工具

2.2 PATH

课堂上我问了阿铭老师这样一个问题:用户目录下的.bashrc是环境变量么? 老师说不是,这个文件是一个配置文件。

代码语言:javascript
复制
##  PATH是系统的环境变量

问题一:如何修改系统环境变量?
解答:修改 /etc/profile

问题二:PATH是一个目录集合?
解答:PATH是命令的目录集合。

2.3 运维关键词

代码语言:javascript
复制
## 多数的运维工作都设计到一个关键词。 是shell编程。

什么是shell编程?
个人认为shell编程是一群命令的集合。

其他的编程语言:python  go ,未来需要学会的必备技能。

2.4 GET到的新词

jumpserver 堡垒机,这个属于自动化运维的工具了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 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到的新词
                            相关产品与服务
                            堡垒机
                            腾讯云堡垒机(Bastion Host,BH)可为您的 IT 资产提供代理访问以及智能操作审计服务,为客户构建一套完善的事前预防、事中监控、事后审计安全管理体系,助力企业顺利通过等保测评。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档