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

2024-06-15 23:58

本文主要是介绍学习笔记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/rootroot用户的家目录
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/srvservice产生的文件
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基本命令(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1064947

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]