1. 权限

1.1 查看权限

通过ls -l命令可以看到文件的详细信息

下面以一条信息解释各个位置字符的作用

-rwxr--r--. 1 root root   32 6月  18 10:15 choose.sh

(1) 0-9位说明:

  • 第0位确定文件类型(-:普通文件,d:目录,l:软链接,c:字符设备,如键盘、鼠标,b:块文件,硬盘)
  • 第1-3位确定所有者(该文件的所有者)拥有该文件的权限    --User
  • 第4-6位确定所属组(同用户组的)拥有该文件的权限     -Group
  • 第7-9位确定其他用户拥有该文件的权限     --Other

(2) 1

如果是文件,表示硬链接的数;如果是目录,表示该目录子目录的个数

(3)  root root

文件所有者,文件所属组    User Group

(4) 32

文件大小,如果是目录则是4096

(5) 6月 18 10:15

上一次的修改时间

(6) choose.sh

文件或目录名称

1.2 rwx权限

1.2.1 rwx权限详解

1.2.2.1 rwx作用到文件

  • [ r ]代表可读(read): 可以读取,查看。
  • [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件。
  • [ x ]代表可执行(execute):可以被执行。

1.2.1.2 rwx作用到目录

  • [ r ]代表可读(read): 可以读取,ls 查看目录内容。
  • [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录。
  • [ x ]代表可执行(execute):可以进入该目录。

1.2.2 修改权限 —— chmod

1.2.2.1 通过+,-,=变更权限

给 abc 文件 的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限

[root@centoszang myDir]# chmod u=rwx,g=rx,o=rx abc
[root@centoszang myDir]# ls -l
总用量 4
-rwxr-xr-x. 1 root root 8 6月 24 15:44 abc

给 abc 文件的所有者除去执行的权限,增加组写的权限

[root@centoszang myDir]# chmod u-x,g+w abc
[root@centoszang myDir]# ls -l
总用量 4
-rw-rwxr-x. 1 root root 8 6月 24 15:44 abc

给 abc 文件的所有用户添加读的权限

[root@centoszang myDir]# chmod a+r abc
[root@centoszang myDir]# ls -l
总用量 4
-rw-rwxr-x. 1 root root 8 6月 24 15:44 abc

1.2.2 通过数字变更权限

规则:r=4 w=2 x=1

给 abc 文件 的所有者读写执行(r+w+x=4+2+1=7)权限,给所在组读执行(r+w=4+1=5)权限,给其它组读执行(r+w=4+1=5)权限

[root@centoszang myDir]# chmod 755 abc
[root@centoszang myDir]# ls -l
总用量 4
-rwxr-xr-x. 1 root root 8 6月 24 15:44 abc

1.3 修改文件所有者—— chown

修改文件abc所有者为zang

[root@centoszang myDir]# chown zang abc
[root@centoszang myDir]# ls -l
总用量 4
-rwxr-xr-x. 1 zang root 8 6月 24 15:44 abc

将 /home/testShell目录下所有的文件和目录的所有者都修改成 zang

[root@centoszang home]# chown -R zang testShell/
[root@centoszang home]# cd testShell/
[root@centoszang testShell]# ls -l
总用量 16
-rwxr--r--. 1 zang root 32 6月 18 10:15 choose.sh
-rw-r--r--. 1 zang root 299 6月 18 10:20 menuChoose
drwxr-xr-x. 2 zang root 4096 6月 24 15:44 myDir
-rwxr--r--. 1 zang root 37 6月 18 15:42 myShell.sh
-rw-r--r--. 1 zang root 0 6月 19 23:15 test.sh

1.4 修改用户所在组 —— chgrp

修改文件abc所在用户组为zang

[root@centoszang myDir]# chgrp zang /home/testShell/myDir/abc
[root@centoszang myDir]# ls -l
总用量 4
-rwxr-xr-x. 1 zang zang 8 6月 24 15:44 abc

将 /home/testShell目录下所有的文件和目录的所有所在组都修改成 zang

[root@centoszang home]# chgrp -R zang testShell/
[root@centoszang home]# cd testShell/
[root@centoszang testShell]# ls -l
总用量 16
-rwxr--r--. 1 zang zang 32 6月 18 10:15 choose.sh
-rw-r--r--. 1 zang zang 299 6月 18 10:20 menuChoose
drwxr-xr-x. 2 zang zang 4096 6月 24 15:44 myDir

2. 任务调度

任务调度:是指系统在某个时间执行的特定的命令或程序。

任务调度分类:

  • 系统工作:有些重要的工作周而复始的执行。如病毒扫描等
  • 个别用户工作:个别用户可能希望执行某些程序,如对mysql数据库的备份

通过crontab 来进行定时任务的设置,简单任务可以直接在crontab中添加,复杂任务则需要写脚本,通过crontab来定时调用脚本。

2.1 任务调度命令 —— crontab [选项]

2.1.1 crontab 常用选项

crontab 常用选项如下:

  • -e:编辑crontab定时任务
  • -l:查询crontab任务
  • -r:删除当前用户所有的crontab任务

2.1.2 任务调度设置步骤

1)编辑任务调度任务

[root@centoszang taskDir]# crontab -e

回车会跳出编辑vi界面,可在其中编辑简单调度任务

*/1 * * * * ls -l /etc >> /home/taskDir/lslog.txt

2)保存退出即自动执行调度

[root@centoszang taskDir]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@centoszang taskDir]# date
2018年 06月 24日 星期日 18:32:50 CST
[root@centoszang taskDir]# ls
lslog.txt
[root@centoszang taskDir]# cat lslog.txt
total 2480
drwxr-xr-x. 3 root root 4096 May 14 2017 abrt
drwxr-xr-x. 4 root root 4096 May 14 2017 acpi
···

另外两个选项的使用

[root@centoszang taskDir]# crontab -l
*/1 * * * * ls -l /etc >> /home/taskDir/lslog.txt
[root@centoszang taskDir]# crontab -r
[root@centoszang taskDir]# crontab -l
no crontab for root

2.2 任务定义的参数

*/1 * * * * ls -l /etc >> /home/taskDir/lslog.txt

五个占位符的说明

占位符参数的说明

特定时间执行任务案例

2.3 任务调度调用脚本

2.3.1 每隔 1 分钟, 将当前日期和日历都追加到 /home/taskDir/datelog.txt 文件中

[root@centoszang taskDir]# ls
[root@centoszang taskDir]# pwd
/home/taskDir
[root@centoszang taskDir]# vim dateTask.sh
[root@centoszang taskDir]# cat dateTask.sh
date >> /home/taskDir/datelog.txt
cal >> /home/taskDir/datelog.txt
[root@centoszang taskDir]# chmod 744 dateTask.sh
[root@centoszang taskDir]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@centoszang taskDir]# crontab -l
*/1 * * * * /home/taskDir/dateTask.sh
[root@centoszang taskDir]# date
2018年 06月 24日 星期日 19:04:37 CST
[root@centoszang taskDir]# ls -l
总用量 8
-rw-r--r--. 1 root root 177 6月 24 19:04 datelog.txt
-rwxr--r--. 1 root root 67 6月 24 19:03 dateTask.sh
[root@centoszang taskDir]# cat datelog.txt
Sun Jun 24 19:04:01 CST 2018
June 2018
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23

2.3.2 每天凌晨2:00将mysql数据库testdb,备份到文件mydb.bak

[root@centoszang taskDir]# vim backup_mysql.sh
[root@centoszang taskDir]# cat backup_mysql.sh
/usr/local/mysql/bin/mysqldump -uroot -p123 testdb > /tmp/mydb.bak
[root@centoszang taskDir]# chmod 744 backup_mysql.sh
[root@centoszang taskDir]# crontab -e
crontab: installing new crontab
[root@centoszang taskDir]# crontab -l
*/1 * * * * /home/taskDir/dateTask.sh
0 2 * * * /home/taskDir/backup_mysql.sh

3. 磁盘分区

3.1 分区类型

MBR(Master Boot Record)和GPT(GUID Partition Table)是在磁盘上存储分区信息的两种不同方式。这些分区信息包含了分区从哪里开始的信息,这样操作系统才知道哪个扇区是属于哪个分区的,以及哪个分区是可以启动的。在磁盘上创建分区时,你必须在MBR和GPT之间做出选择。

两种分区方式区别

MBR分区:

  • 最多支持四个主分区
  • 系统只能安装在主分区
  • 扩展分区要占一个主分区
  • MBR 最大只支持 2TB,但拥有最好的兼容性

GPT分区:

  • 支持无限多个主分区(但操作系统可能限制,比如 windows 下最多 128 个分区)
  • 最大支持 18EB 的大容量(1EB=1024 PB,1PB=1024 TB )
  • windows7 64 位以后支持 GTP

GPT分区方式凭借更强的健壮性与更大的兼容性,正逐步取代MBR分区方式。

3.2 硬盘说明

Linux 硬盘分为 IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘。

  • 对于 IDE 硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指 IDE 硬盘了。“x”为盘号(a 为基本盘,b 为基本从属盘,c 为辅助主盘,d 为辅助从属盘),“~”代表分区,前四个分区用数字 1 到 4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区。例,hda3 表示为第一个 IDE 硬盘上的第三个主分区或扩展分区,hdb2 表示为第二个 IDE 硬盘上的第二个主分区或扩展分区。
  • 对于 SCSI 硬盘则标识为“sdx~”,SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则和 IDE 硬盘的表示方法一样。

3.3 Linux分区原理

Linux 来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux 中每个分区都是用来组成整个文件系统的一部分。

Linux 采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。

3.4 常用分区命令   ——lsblk

查看系统分区情况  —— lsblk

3.5 挂载     ——mount

实际工作中,当硬盘容量不够时,可通过挂载来实现增加硬盘,从而增加系统容量。下面以本机增加一块2GB的磁盘空间来演示。

操作步骤:

(1)在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,至到完成。

添加之后需要重启才能识别到。

此时该磁盘未分区,也未格式化。

(2)分区

fdisk /dev/sdb

(3)格式化

mkfs -t ext4 /dev/sdb1

格式化后产生表示分区的UUID

(4)挂载

mount /dev/sdb /opt

注意:挂载后/opt目录下的文件会被临时删除,所以尽量选择创建一个新文件夹来挂载

(5)上面的方式只是临时挂载,下次开机时不会自动挂载,要想永久挂载可对 /etc/fstab 文件进行编辑

vim /etc/fstab

增加如下一行

/dev/sdb1   /opt/newdisk    ext4    defaults        0 0

即时生效

mount -a    #将 /etc/fstab 中定义的所有档案系统挂上

重启之后可看到磁盘一直挂载

3.6 卸载      ——umount

卸载分区挂载

umount /opt/newdisk    #卸载分区,卸载之后,其实还可以挂载,而且数据还会在的

删除分区  fdisk /dev/sdb  ,按提示操作

fdisk /dev/sdb
m
d

3.7 磁盘情况查询     ——df   &  du

3.7.1 系统整体磁盘使用情况     df -h

3.7.2 查询指定目录的磁盘的占用情况   du -h

语法:

du [选项][文件]

仅列出较常用的选项:

  • -a:显示目录中个别文件的大小。
  • -c:除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
  • -h:以K,M,G为单位,提高信息的可读性。
  • -s:仅显示总计。
  • --max-depth=<目录层数>: 超过指定层数的目录后,予以忽略。

如:查询 /opt 目录的磁盘占用情况,深度为1

3.7.3 工作中查询磁盘情况的常用指令

(1)统计/home 文件夹下文件的个数

ls -l /home | grep "^-" | wc -l

(2)统计/home 文件夹下目录的个数

ls -l /home | grep "^d" | wc -l

(3)统计/home文件夹下文件的个数,包括子文件夹里的

ls -lR /home | grep "^-" | wc -l

(4)统计文件夹下目录的个数,包括子文件夹里的

ls -lR /home | grep "^d" | wc -l

(5)以树状显示目录结构

yum install tree   #如果提示tree未安装,执行该命令安装
tree #以树状显示目录结构

注:博客中注重实操,篇幅原因,未对命令进行深挖,如果对命令的理解有疑惑,可到 Linux命令大全 查询。

(一)Linux实操之——权限、任务调度、磁盘分区的更多相关文章

  1. linux实操_定时任务调度

    crond任务调度 语法:crontab [选项] -e 编辑crontab定时任务 -i 查询crontab任务 -r 删除当前用户所有的crontab任务 service crond restar ...

  2. linux实操_权限管理

    rwx权限详解 作用到文件: [r]代表可读(read):可以读取,查看 [w]代表可写(write):可以修改,但是不代表可以删除文件,删除一个文件的前提条件时对该文件所在的目录有写权限,才能删除该 ...

  3. (二)Linux实操之——网络配置、进程管理、服务管理、组管理、YUM

    接上段   (一)Linux实操之——权限.任务调度.磁盘分区 4.网络配置 4.1 NAT模式的网络配置 目前我们采用的网络配置是NAT模式. windows下cmd通过 ipconfig 命令可以 ...

  4. ASP.NET Core托管和部署Linux实操演练手册

    一.课程介绍 ASP.NET Core 是一种全新的跨平台开源 .NET 框架,能够在 IIS.Nginx.Apache.Docker 上进行托管或在自己的进程中进行自托管. 作为一个.NET Web ...

  5. Linux学习笔记(5)磁盘分区(parted)

    Linux学习笔记(5)磁盘分区(parted) .演示: ()parted /dev/sdb :进入parted 分区命令(可以使用help来查看命令详细描述)(2)p :列出当前磁盘分区信息,可以 ...

  6. Linux学习笔记(4)磁盘分区(fdisk)、挂载与文件系统命令

    Linux学习笔记(4)磁盘分区(fdisk).挂载与文件系统命令 1.磁盘分区是怎么表示的? 1.1 对于IDE接口,第一主盘为hda,第1从盘为hdb,第1从盘的第1个分区为hdb1 1.2 对于 ...

  7. Linux系统添加硬盘设备(磁盘分区-格式化-挂载-使用)

    当全新安装了一块新的硬盘设备后,为了更充分.更安全的利用硬盘空间首先要进行磁盘的分区, 然后格式化,最后挂载使用. 实例:对新添加的硬盘设备进行分区.格式化并挂载到/newFS目录. 第一步:在vmw ...

  8. 《鸟哥的Linux私房菜》笔记——03. 磁盘分区

    Everything is a file. 常见硬件对应于 Linux 下的文件(/dev目录下) 装置 装置在Linux内的档名 SCSI/SATA/U盘硬盘机 /dev/sd[a-p] U盘 /d ...

  9. 【学习笔记】Linux基础(一):磁盘分区与Linux的安装(以CentOS为例)

    一.磁盘分区与Linux的安装(以CentOS为例) 0.说在安装之前 在Linux中,"一切设备皆文件",设备在/dev这个目录下 /dev/sd[a-p] 表示SCSI/SAT ...

随机推荐

  1. linux统计文件夹内文件数

    for dir in `find ./ -type d ` ;do echo -n "$dir "  ;find $dir  -type f | wc -l ;echo " ...

  2. Oracle中表列由VARCHAR2类型改成CLOB

    情景 原来表中的列定义成VARCHAR2类型,众所周知,VARCHAR2类型最大支持长度为4000.假设因为业务须要.想把此列转换为CLOB类型,在Oracle中直接通过ALTER语句转换是行不通的. ...

  3. cocos2d js ScrollView的使用方法

    游戏中非常多须要用到ScrollView的情况,也就是须要滚动一片区域. 这里有两种实现方法,一种是使用cocos studio的方式,另外一种是手写代码.先看第一种 第一种记得在设置滚动区域时选取裁 ...

  4. oracle和mysql功能相同的函数

    wm_concat ---->mysql 的group_concat decode (两条件的)----->mysql 的 if decode (3个及以上条件的)---------> ...

  5. Android中XML解析-PULL解析

    前面写了两篇XML解析的Dom和SAX方式,Dom比较符合思维方式,SAX事件驱动注重效率,除了这两种方式以外也可以使用Android内置的Pull解析器解析XML文件. Pull解析器的运行方式与 ...

  6. 超级简单的jquery操作表格(添加/删除行、添加/删除列)

    利用jquery给指定的table添加一行.删除一行 <script language="javascript" src="./jquery.js"> ...

  7. 从javascript读取cookies说开去:谈谈网页的本地化存储

    学习要点:1.cookies 2.cookies 局限性 3.其他存储 随着 Web 越来越复杂,开发者急切的需要能够本地化存储的脚本功能.这个时候,第一个出现的方案:cookie 诞生了.cooki ...

  8. 手写一个自己的LocalCache - 基于LinkedHashMap实现LRU

    功能目标      实现一个全局范围的LocalCache,各个业务点使用自己的Namespace对LocalCache进行逻辑分区.所以在LocalCache中进行读写採用的key为(namespa ...

  9. 网络结构设计——负载均衡之LVS学习笔记(三)

    LVS按个人理解的说就是将一台Linux服务器当作路由器等功能的技术.LVS---Linux虚拟服务器. LVS实现了三种IP负载均衡技术VS/NAT.VS/TUN.VS/DR. 今天简单分享一下我在 ...

  10. 如何在Linux中用命令行工具管理KVM虚拟环境

    第一步: 配置存储池 Virsh命令行工具是一款管理virsh客户域的用户界面,它能在命令行中运行所给的命令以及它的参数,我们要用它给我们的KVM环境创建存储池,想知道关于这个工具的更多信息,用以下这 ...