linux 删除分区 设备忙,Linux学习(续)

环境变量与文件查找

通常我们会涉及到的变量类型有三种:

当前 Shell 进程私有用户自定义变量,只在当前 Shell 中有效。

Shell 本身内建的变量。

从自定义变量导出的环境变量。

文件打包与解压缩

zip:

打包 :zip something.zip something (目录请加 -r 参数)

解包:unzip something.zip

指定路径:-d 参数

tar:

打包:tar -cf something.tar something

解包:tar -xf something.tar

指定路径:-C 参数

命 令

说 明

set

显示当前 Shell 所有变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。

env

显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。

export

显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。

两个重要文件 /etc/bashrc(有的 Linux 没有这个文件) 和 /etc/profile ,它们分别存放的是 shell 变量和环境变量。还有要注意区别的是每个用户目录下的一个隐藏文件:.profile

这个 .profile 只对当前用户永久生效。而写在 /etc/profile 里面的是对所有用户永久生效,所以如果想要添加一个永久生效的环境变量,只需要打开 /etc/profile,在最后加上你想添加的环境变量就好啦。

如何让环境变量立即生效?

可以使用source命令来让其立即生效,也可以用.来代替source

搜索文件

whereis 简单快速

locate 快而全

which 小而精

find 精而细

注意 find 命令的路径是作为第一个参数的, 基本命令格式为 find [path] [option] [action] 。

查看磁盘和目录的容量

使用 df 命令查看磁盘的容量

702e2b39d5ff

使用 du 命令查看目录的容量

# 只查看1级目录的信息

$ du -h -d 0 ~

# 查看2级

$ du -h -d 1 ~

du -h #同--human-readable 以K,M,G为单位,提高信息的可读性。

du -a #同--all 显示目录中所有文件的大小。

du -s #同--summarize 仅显示总计,只列出最后加总的值。

702e2b39d5ff

创建虚拟磁盘

使用dd命令创建虚拟镜像文件

dd if=/dev/zero of=virtual.img bs=1M count=256

702e2b39d5ff

使用 mkfs 命令格式化磁盘(我们这里是自己创建的虚拟磁盘镜像)

sudo mkfs.ext4 virtual.img

702e2b39d5ff

使用 mount 命令挂载磁盘到目录树

使用mount来查看下主机已经挂载的文件系统:

sudo mount

702e2b39d5ff

mount [options] [source] [directory]

mount -o loop -t ext4 virtual.img /mnt

# 也可以省略挂载类型,很多时候 mount 会自动识别

# 以只读方式挂载

mount -o loop --ro virtual.img /mnt

# 或者mount -o loop,ro virtual.img /mnt

702e2b39d5ff

使用 umount 命令卸载已挂载磁盘

# 命令格式 sudo umount 已挂载设备名或者挂载点,如:

$ sudo umount /mnt

702e2b39d5ff

使用 fdisk 为磁盘分区

# 查看硬盘分区表信息

$ sudo fdisk -l

702e2b39d5ff

使用 losetup 命令建立镜像与回环设备的关联

$ sudo losetup /dev/loop0 virtual.img

# 如果提示设备忙你也可以使用其它的回环设备,"ls /dev/loop*"参看所有回环设备

# 解除设备关联

$ sudo losetup -d /dev/loop0

内建命令与外部命令

一个是天生自带的天赋技能,一个是后天得来的附加技能。

702e2b39d5ff

#得到这样的结果说明是内建命令,正如上文所说内建命令都是在 bash 源码中的 builtins 的.def中

xxx is a shell builtin

#得到这样的结果说明是外部命令,正如上文所说,外部命令在/usr/bin or /usr/sbin等等中

xxx is /usr/bin/xxx

#若是得到alias的结果,说明该指令为命令别名所设定的名称;

xxx is an alias for xx --xxx

help 命令

ls --help不管是内建还是外部命令都可以

702e2b39d5ff

man 命令

man ls

702e2b39d5ff

man没有内建与外部命令的区分,因为 man 工具是显示系统手册页中的内容,也就是一本电子版的字典,这些内容大多数都是对命令的解释信息,还有一些相关的描述。通过查看系统文档中的 man 也可以得到程序的更多相关信息和 Linux 的更多特性。

在这里,“ LS ”表示手册名称,而“(1)”表示该手册位于第一章节。这个章节又是什么?在 man 手册中一共有这么几个章节

章节数 说明 1 Standard commands (标准命令) 2 System calls (系统调用) 3 Library functions (库函数) 4 Special devices (设备说明) 5 File formats (文件格式) 6 Games and toys (游戏和娱乐) 7 Miscellaneous (杂项) 8 Administrative Commands (管理员命令) 9 其他(Linux特定的), 用来存放内核例行程序的文档。

info 命令

info ls

702e2b39d5ff

Linux任务计划crontab

crontab 的使用

#启动它

sudo cron -f &

#添加一个计划任务

crontab -e

#确定我们的 cron 是否成功的在后台启动

ps aux | grep cron

#查看到执行任务命令之后在日志中的信息反馈

sudo tail -f /var/log/syslog

#去删除任务

crontab -r

#查看我们添加了哪些任务

crontab -l

挑战:备份日志

小明是一个服务器管理员,他需要每天备份论坛数据(这里我们用 alternatives.log 日志替代),备份当天的日志并删除之前的日志。而且备份之后文件名是 年-月-日 的格式。alternatives.log 在 /var/log/ 下面。

目标

为 shiyanlou 用户添加计划任务

每天凌晨 3 点的时候定时备份 alternatives.log 到 /home/shiyanlou/tmp/ 目录

命名格式为 年-月-日,比如今天是2017年4月1日,那么文件名为 2017-04-01

方法

sudo cron -f &

crontab -e

#添加内容

0 3 * * * sudo rm /home/shiyanlou/tmp/*

0 3 * * * sudo cp /var/log/alternatives.log /home/shiyanlou/tmp/$(date +\%Y-\%m-\%d)

702e2b39d5ff

顺序执行多条命令

sudo apt-get update;sudo apt-get install some-tool;some-tool

有选择的执行命令

which cowsay>/dev/null && echo "exist" || echo "not exist"

702e2b39d5ff

cut 命令,打印每一行的某一字段

grep 命令,在文本中或 stdin 中查找匹配字符串

wc 命令,简单小巧的计数工具

sort 排序命令

uniq 去重命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值