liniux课程第一周总结

第一天课程内容

MBR
分区类型:
主分区:1-4,一块硬盘最多4个主分区,不可以分小区,可以用来启动操作系统(系统分区),直接建文件系统,存放数据
扩展分区:一块硬盘最多一个扩展分区,可以没有,加主分区最多4个,不能创建文件系统,可以再划分更小的分区(即逻辑分区)
逻辑驱动器(分区):可以创建文件系统,存放数据

系统分区:启动操作系统的分区
启动分区:安装操作系统的分区

活动分区:一个硬盘有多个主分区,只有一个是活动

系统分区一定是主分区,但启动分区不一定是主分区

uname -r 查看内核版本
cat /etc/centos-release 查看centos版本号
cat /proc/meminfo   查看内存
ls /dev/sda*
fdisk -l  磁盘分区情况
lsblk  块设备的情况
ifconfig 查看IP
poweroff 关机
halt  关机
rpm -qa |wc -l  查看系统安装文件数量
rpm -qa 查看系统安装的所有文件
free 查看内存大小
strace查看系统调用(system call)
ltrace 查看库调用(libr    ary)
xshell切换用户名:
如果是root账户,切换到普通账户是su – 普通账户名
如果是普通用户,切换到root用户,输入su或su -或exit

第二天
xshell5设置alt键方法:文件-属性-键盘-将左alt键用作Meta键
让网卡开机默认启用:nano /etc/sysconfig/network-scripts/ifcfg-ens33
将其中   ONBOOT=NO 改成 yes
自动登陆root账户,图形界面下使用gedit
gedit /etc/gdm/custom.conf
AutomaticLoginEnable=true
AutomaticLogin=root
自动登陆root账户,字符界面下使用nano
nano /etc/gdm/custom.conf
AutomaticLoginEnable=true
AutomaticLogin=root
cat 看文本文件,如:cat /etc/gdm/custom.conf

 

系统判断是管理员还是普通用户使用id -u ,id -u liu  uid的值是0就是管理员,不是0就是普通用户

用户登录信息查看命令:
whoami: 显示当前登录有效用户名
who am i 显示当前登陆名字,终端及登录时间
who: 系统当前所有的登录会话,pts是远程登陆,tty是本机登陆
w: 系统当前所有的登录会话及所做的操作  Xorg代表图形的意思

init 3 关闭图形界面,init命令只有root可以操作,普通用户不可以操作
init 5 打开图形界面
init 0 关机
init 6  重启
startx 只是打开图形界面,但不是模式切换,相当于开个小软件,CTRL+c关闭图形,普通用户就可以操作
runlevel  查看模式
如果快捷键失效可以使用chavt+数字  切断到第几个终端

>  创建文件,可以覆盖原有的文件
touch 创建文件,不可以覆盖原有的文件,如果原来有的文件不能再touch了
ll  查看文件大小
hostname 主机名
cd 切换文件夹
如果想存得住,必须存到文件中

执行命令
输入命令后回车,提请shell程序找到输入命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来
在shell中可执行的命令有两类
内部命令:由shell自带的,而且通过某命令形式提供
help 内部命令列表
enable 列出所有的内部命令
enable –n cmd 禁用内部命令
enable cmd 启用内部命令
enable –n 查看所有禁用的内部命令
外部命令:在文件系统路径下有对应的可执行程序文件
查看外部命令路径:
which  显示外部命令路径,只显示path路径靠前的
which -a 显示全部外部命令路径
which –skip-alias  不显示别名的路径,仅显示外部命令的路径
whereis  显示路径及该命令的man帮助文档的路径

type COMMAND  查看指定的命令是内部或外部命令

执行外部命令
Hash缓存表
系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命
令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解
释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找。
利用hash缓存表可大大提高命令的调用速率
hash常见用法
hash 显示hash缓存
hash –l 显示hash缓存,可作为输入使用
hash –p path name 将命令全路径path起别名为name,如:hash –p /usr/bin/yes no  将/usr/bin/yes命名为no,执行no就相当于执行yes
hash –t name 打印缓存中name的路径
hash –d name 清除name缓存
hash –r 清除缓存

时间不对的处理方法:在centos系统上新建一块网卡,设置-添加-网络适配器-下一步-桥接模式-完成
输入ntpdate +IP(此IP为服务器的IP,非本机IP)

echo $PATH   显示PATH变量路径
运行命令的顺序:先别名,再内部命令,再hash缓存,最后外部命令,外部命令从path变量的路径按顺序寻找
cp /usr/bin/yes /usr/local/bin/  将/usr/bin/yes复制到/usr/local/bin并命名为yes
rm -f 路径 删除文件

命令别名
显示当前shell进程所有可用的命令别名:alias
定义别名NAME,其相当于执行命令VALUE:alias NAME=’VALUE’
取消别名:unalias NAME
取消所有别名:unalias -a
在命令行中定义的别名,仅对当前shell进程有效
如果想永久有效,要定义在配置文件中
仅对当前用户:~/.bashrc      nano .bashrc
对所有用户有效:/etc/bashrc  nano /etc/bashrc
编辑配置给出的新配置不会立即生效,想立刻生效用source或.+路径,如source /path/to/config_file
如果别名和原始命令名字一样,想用原始命令,则使用\或”
有的内部命令禁用后还会使用,原因是该命令即是内部命令也是外部命令,究其根本是因为不同的shell内部命令不一样。

命令格式
COMMAND [OPTIONS…] [ARGUMENTS…]
选项:用于启用或关闭命令的某个或某些功能
短选项:-c 例如:-l, -h
长选项:–word 例如:–all, –human-readable
参数:命令的作用对象,比如文件名,用户名等
注意:
多个选项以及多参数和命令之间使用空白字符分隔
取消和结束命令执行:Ctrl+c(强制),Ctrl+d(正常)
多个命令可以用;符号分开
一个命令可以用\分成多行

systemctl restart netwok 重启网络服务(如果网络处于连接状态,但是没有IP地址的时候)

日期和时间
Linux的两种时钟
系统时钟:由Linux内核通过CPU的工作频率进行的
硬件时钟:主板
相关命令
date 显示和设置系统时间
date +%s  计算距离1970.1.1有多少秒
date -d @1509536033  将描述换算成具体哪一天
date -d “-1 day”  显示昨天日期
hwclock,clock: 显示硬件时钟
-s, –hctosys 以硬件时钟为准,校正系统时钟
-w, –systohc 以系统时钟为准,校正硬件时钟
显示日历:cal –y
时区:/etc/localtime

例:shutdown -r 5 “system will chongqi”   系统将在五分钟后重启
wall “nihao”  发广播,只要登陆在本机及虚拟机上都能看到

安装screen包
df或lsblk 查看光盘对应的挂载点
cd 挂载点
ls
cd /Packages/
ls
rpm -ivh screen+tab键
或rpm -ivh /挂载点/Package/screen+tab键

bc 进入计算器
ibase=2  输入的是二进制,输出的是十进制
obase=2  输入的是十进制,输出的是二进制

echo ”单引号里面全部做字符处理
echo “” 仅能识别部分命令
echo “  反向单引号里当成命令处理,“等价于$(),命令调命令的输出信息
touch 创建文件

echo file{a,b,c}.{log,tet}  显示的结果是filea.log filea.tet fileb.log fileb.tet filec.log filec.tet
echo file{1,3,5}   显示结果是file1 file3 file5
rm -f file{1,3,5}
echo {1..10}
echo {a..z}
echo {000..20..2}

tab键
命令补全
内部命令:
外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻
以给定命令名命名的文件,第一次找到的命令即为要执行的命令
用户给定的字符串只有一条惟一对应的命令,直接补全,否则,再次Tab会给出列表路径补全
把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名,如果惟一则直接补全,否则再次Tab给出列表

 

命令行历史
保存你输入的命令历史。可以用它来重复执行命令
登录shell时,会读取命令历史文件中记录下的命令~/.bash_history
登录进shell后新执行的命令只会记录在缓存中;这些命令会用户正常退出时“追加”至命令历史文件中

history命令
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg…]
-c: 清空内存中的命令历史,而非磁盘文件上的
-d offset: 删除历史中指定的第offset个命令
n: 显示最近的n条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-n: 读历史文件中未读过的行到历史列表
-p: 展开历史参数成多行,但不存在历史列表中(即执行命令但不在历史列表中留有历史)例:history -p `id` `hostname`  命令已执行,但是在命令历史列表中没有记录
-s: 展开历史参数成一行,附加在历史列表后(即伪造历史,这个命令未执行但是能在命令历史列表中看到)例:history -s “rm -f /etc/profile.d”

先rm -f .bash_history  后history -c,则干坏事不留痕迹

makewhatis centos6创建whatis数据库
mandb centos7创建whatis数据库

获得帮助
内部命令:help COMMAND 或man bash
外部命令:
(1) COMMAND –help或COMMAND -h
(2) 使用手册(manual)
man COMMAND
(3) 信息页
info COMMAND
(4) 程序自身的帮助文档
README
INSTALL
ChangeLog
(5) 程序官方文档
官方站点:Documentation
(6) 发行版的官方文档
(7) Google

–help和-h选项
显示用法总结和参数列表
使用的大多数,但并非所有的
示例:date –help
Usage: date [OPTION]… [+FORMAT] or: date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]
[] 表示可选项
CAPS或 <> 表示变化的数据
… 表示一个列表
x |y| z 的意思是“ x 或 y 或 z “
-abc的 意思是-a -b –c
{ } 表示分组
练习题,借助help帮助
1、显示当前时间,格式:2016-06-18 10:20:30 答: date “+%F %H:%M:%S”或date +”%F %T”或date “+%F %S”
2、显示前天是星期几   date -d “-2 day” +%A
3、设置当前日期为2019-08-07 06:05:10  date 080706052018.10

man命令
提供命令帮助的文件
手册页存放在/usr/share/man
几乎每个命令都有man的“页面”
man页面分组为不同的“章节”,查询章节号使用whatis COMMAND或man -f COMMAND
man命令的配置文件:/etc/man.config | man_db.conf
MANPATH /PATH/TO/SOMEWHERE:  指明man文件搜索位置
man – M /PATH/TO/SOMEWHERE COMMAND : 到指定位置下搜索
COMMAND 命令的手册页并显示

man帮助段落说明:
NAME 名称及简要说明
SYNOPSIS 用法格式说明
[] 可选内容
<>  必选内容
a|b 二选一
{ } 分组
… 同一内容可出现多次
DESCRIPTION 详细说明
OPTIONS 选项说明
EXAMPLES 示例
FILES 相关文件
AUTHOR 作者
COPYRIGHT 版本信息
REPORTING BUGS bug信息
SEE ALSO 其它帮助参考

查看man手册页:man [章节] keyword
列出所有帮助:man –a keyword
搜索man手册:man -k keyword 列出所有匹配的页面,是使用 whatis 数据库
相当于whatis:man –f keyword
打印man帮助文件的路径:man –w [章节] keyword

man命令的操作方法:使用less命令实现
space, ^v, ^f, ^F: 向文件尾翻屏
b, ^b: 向文件首部翻屏
d, ^d: 向文件尾部翻半屏
u, ^u: 向文件首部翻半屏
RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行 y or ^Y or ^P or k or ^K:向文件首部翻一行
q: 退出
#:跳转至第#行
1G: 回到文件首部
G:翻至文件尾部

man搜索
/KEYWORD:以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写;
n: 下一个
N:上一个
?KEYWORD:以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区分字符大小写;
n: 跟搜索命令同方向,上一个
N:跟搜索命令反方向,下一个

passwd 修改口令
passwd liu  修改liu用户的密码,前提你是管理员

练习
1、在本机字符终端登录时,除显示原有信息外,再显示当前登录终端号,主机名和当前时间
man issue
2、今天18:30自动关机,并提示用户
shutdown 18:30 “systerm will poweroff”

info
man常用于命令参考 ,GNU工具info适合通用文档参考
没有参数,列出所有的页面
info 页面的结构就像一个网站
每一页分为“节点”
链接节点之前 *
info [ 命令 ]

导航info页
方向键,PgUp,PgDn 导航
Tab键 移动到下一个链接
d显示主题目录
Home 显示主题首部
Enter进入 选定链接
n/p/u/l 进入下/前/上一层/最后一个链接
s 文字 文本搜索
q 退出 info

 

第三章文件管理

/misc 实现光盘的自动挂载位置,如果是登陆图形界面,则自动挂在/media,如果不登录图形界面,则没有挂,作为普通用户方法:cd /misc/cd就挂上了,此方法在centos7上不好用,如果想用,则执行systemctl start autofs.

ldd+路径  查看命令引用的库  例:ldd /bin/ls
du -sh /* 显示/目录下大小

文件系统
文件和目录被组织成一个单根倒置树结构
文件系统从根目录下开始,用“/”表示
根文件系统(rootfs):root filesystem
文件名称区分大小写
以.开头的文件为隐藏文件
路径分隔的 /
文件有两类数据:
元数据:metadata  即文件属性信息,如修改时间,大小,是谁的等
数据:data        即文件里面存放的具体内容

文件名规则
文件名最长255个字节
包括路径在内文件名称最长4095个字节
蓝色–>目录 绿色–>可执行文件 红色–>压缩文件 浅蓝色–>链接文件(相当于快捷方式) 粉色–>socket文件(与网络通讯相关) 浅黄色–>管道文件 白色–>普通文件 灰色–>其他文件
除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,
有些字符需要用引号来引用它们。
标准Linux文件系统(如ext4),文件名称大小写敏感。例如:MAIL, Mail, mail, mAiL

touch /root/-a创建一个名字为-a的文件   rm -f /root/-a 删除一个名字为-a的文件

文件系统结构

Linux下的文件类型
-:普通文件
d: 目录文件
b: 块设备
c: 字符设备
l: 符号链接文件
p: 管道文件pipe
s: 套接字文件socket

创建1个G的文件:dd if=/dev/zero of=/date/bigfile bs=1M count=1024  if就是放文件的意思inputfile  of的意思是输出文件outputfile   bs是blockszie
/dev/zero 存放的是字符设备   字符设备是按照顺序访问
/dev/sda  存放的是块设备     块设备是随机访问
hexdump -c /data/bigfile  看文件里面的内容,显示的是十六进制

显示当前工作目录
每个shell和系统进程都有一个当前的工作目录
CWD:current work directory
显示当前shell CWD的绝对路径
pwd: printing working directory
-P 显示真实物理路径
-L 显示链接路径(默认)

绝对和相对路径
绝对路径:
以正斜杠开始
完整的文件的位置路径
可用于任何想指定一个文件名的时候
相对路径:
不以斜线开始
指定相对于当前工作目录或某目录的位置
可以作为一个简短的形式指定一个文件名
基名:basename
目录名:dirname
..表示上级目录  ls ../
.表示当前目录   ls ./  默认不写

第三天
vim /etc/DIR_COLORS   修改系统文件颜色
当打开vim /etc/DIR_COLORS时,非正常关闭后,需要删除vim /etc/DIR_COLORS.swp文件
注意!!!:相对路径一般是指相对于当前路径,特殊情况下相对的就不是当前目录

更改目录
cd 改变目录
使用绝对或相对路径:
cd /home/wang/
cd home/wang
切换至父目录: cd ..
切换至当前用户主目录: cd或cd ~
切换到liu用户的家目录:cd ~liu
切换至以前的工作目录: cd –
选项:-P
相关的环境变量:
PWD:当前目录路径
OLDPWD:上一次目录路径   OLDPWD=/etc/sysconfig

列出目录内容
列出当前目录的内容或指定目录
用法:ls [options] [ files_or_dirs ]
示例:
ls -a 包含隐藏文件
ls -l 显示额外的信息
ls -R 目录递归通过
ls -d 仅显示目录 ,显示符号链接文件本身,而不显示其所指向的目录列表,如:ls -d /etc/   显示的是/etc/   ls -d /etc   显示的是/etc
ls -ld 目录和符号链接信息
ls -1 文件分行显示(是数字一)
ls –S 按从大到小排序
ls -r 反向排序
ls –t 按mtime排序
ls –u 配合-lt选项,显示并按atime从新到旧排序
ls  -c 配合-lt选项,显示并按ctime从新到旧排序
ls –U 按目录存放顺序显示(即创建时间)
ls –X 按文件后缀排序
ls -d */  显示当前目录下的所有文件夹  ls -d /etc/*/意思是显示etc下的所有文件夹
在centos7上ll /bin/显示的是bin下的所有文件列表,ll /bin 显示的是bin的详细信息,因为/bin是个软连接,如果是普通文件夹结果都一样,都显示文件夹内的所有文件及目录的详细信息

查看文件状态
stat   例stat a  查看a文件的三个时间戳
文件:metadata, data
三个时间戳:
access time:访问时间,atime,读取文件内容         ls -l –time=atime /data/a    查看a文件的访问时间
modify time: 修改时间, mtime,改变文件内容(数据)
change time: 改变时间, ctime,元数据发生改变

更改文件的所有者chowm liu /data/file6    将data下的file6文件的所有者改成liu拥有
ls -l –time=ctime /data/file6   查看data目录下file6的元数据改变时间

文件通配符(glob),匹配的是文件名,不是文件内容
* 匹配零个或多个字符
? 匹配任何单个字符
~ 当前用户家目录
~mage 用户mage家目录
~+ 当前工作目录
~- 前一个工作目录  例:cd /etc/ cd /data/ 如果想列出etc下的hosts文件及目录,则ls ~-/hosts
[0-9] 匹配数字范围  即0-9当中的任何一个,0或1或2或3..或9
例:ls file[137]  显示的是file1 file3 file7
例:ls f[1-7] 显示的是f1 f2 f3 f4 f5 f6 f7
例:ls f[1-789] 意思是1-7以及8和9,显示的是f1 f2 f3 f4 f5 f6 f7 f8 f9
例:ls f[1..789] 意思是1以及7和8和9,显示的是f1 f7 f8 f9
[a-z]:字母
例: touch f{a-d}  显示的是fa fA fb fB fc fC fd
原因是字母显示按照“小大小大”的顺序进行的
[A-Z]:字母
[wang] 匹配列表中的任何的一个字符
例如:ls f[liu]   显示的是fl fi fu
[^wang] 匹配列表中的所有字符以外的字符(即排除包含这四个字母的),也会显示“f我”

预定义的字符类:man 7 glob
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:upper:]: 任意大写字母
[:alpha:]: 任意大小写字母   为什么能显示数字?
[:alnum:]:任意数字或字母,数字范围是0-9
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符

ls -d .*或l.显示所有的隐藏文件及目录
如果想显示目录内的隐藏文件及隐藏目录内的隐藏文件:ls -R .[^.]*
如果不想进到子目录内,则输入ls -d .[^.]*
还可以ls -ad .[^.]*
练习
1、显示/data目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录
ls /data/i*[[:digit:]]*[[lower]]或ls /data/i[0-9]*[[:lower:]]
2、显示/data目录下以任意一位数字开头,且以非数字结尾的文件或目录
ls /data/[0-9]*[^[:digit:]]
3、显示/data/目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录
ls /data/[^[:alpha:]][[:alpha:]]*或ls /data/[^[a-zA-Z]][[:alpha:]]*
4、显示/data/目录下所有以rc开头,并后面是0-6之间的数字,其它为任意字符的文件或目录
ls -d /data/rc[0-6]*
5、显示/data目录下,所有以.d结尾的文件或目录
ls -d /data/*.d
6、显示/data目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
ls -d /data/[mnrp]*.conf
7、只显示/root下的隐藏文件和目录
ls -d /root/.*
8、只显示/etc下的非隐藏目录
ls -d /etc/[^.]*/

创建空文件和刷新时间
touch命令:
touch命令创建名字为a的空文件,如果之前有a,则不能覆盖,但会刷新a文件的三个时间戳
touch [OPTION]… FILE…
-a 仅改变 atime和ctime   touch -a f2
-m 仅改变 mtime和ctime   touch -m f2
-t [[CC]YY]MMDDhhmm[.ss]指定atime和mtime的时间戳   例:touch -t 201910200830.50 /etc.hosts
-c 如果文件不存在,则不予创建,如果文件存在刷新三个时间戳

touch `date -d “-1 day” +%F`.log    创建一个名字为前一天的log日志

复制文件和目录cp
cp [OPTION]… [-T] SOURCE(源) DEST(目标)    意思是把单个源复制到某个目标内
cp [OPTION]… SOURCE… DIRECTORY(文件夹)    意思是把多个源复制到某个文件夹内
cp [OPTION]… -t DIRECTORY SOURCE…
cp SRC DEST
cp常用选项
-i:覆盖前提示  –n:不覆盖,注意两者顺序
-r, -R: 递归复制目录及内部的所有内容
-a: 存档,相当于-dR –preserv=all     把所有的信息都复制,用作存档备份。
-d:–no-dereference –preserv=links 不复制原文件,只复制链接名
-f  强制覆盖   例如权限不够,可以强制覆盖,本质是先删除再创建,如果是单纯的覆盖会保留原来的属性
-p:–preserv[=ATTR_LIST]   仅保留权限,所有者及时间戳
-p: 等同–preserv=mode,ownership,timestamp
-v: –verbose   显示复制的过程
-u:–update 只复制源比目标更新的文件或目标不存在的文件
–backup=numbered 目标存在,覆盖前先备份加数字后缀
例:cp –backup=numbered f1 /data/f1   将f1覆盖data下的f1,同时将原data下的f1备份
建议加入别名alias cp=cp -i –backup=numbered

练习
1、定义别名命令baketc,每天将/etc/目录下所有文件,备份到
/data独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd,
备份过程可见
alias backetc=”cp -av /etc /data/backup`date +%F`”
alias backetc=”cp -av /etc/* /data/backup`date +%F`”这个不行,因为etc下的隐藏文件不复制
2、创建/data/rootdir目录,并复制/root下所有文件到该目录内,
要求保留原有权限
cp -a /root /data/rootdir
特殊文件(块设备、字符设备)的复制方法:
正确复制方法cp -a /dev/sda /data
错误复制方法cp /dev/sda /data

例:touch file{1..100}.conf  ,将所有文件改名,后面加.bak后缀
批量改名使用:rename “conf” “conf.bak” file*
删除.bak   rename “.bak” ” ” file*

移动和重命名文件及文件夹
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用选项:
-i: 交互式
-f: 强制

如果不在同一个目录下,属于移动
如果再同一个目录下,mv a b 意思是将a改名为b

删除:rm [OPTION]… FILE…
常用选项:
-i  交互式
-f  强制删除
-r  递归
–no-preserve-root 删除/
rm -rf / -no-preserve-root或rm -rf /* 删除/及/下的所有文件
示例:
rm -rf /data   data里面的所有文件及文件夹全部删除,本身删不了,原因是data是个挂载点

生产中可以将rm改成别名mv,将删除的文件移到data下,alias rm=”mv -t /data”

删除大文件,释放磁盘空间的方法
生产环境中,如果/boot下的空间即将满了,有一个大文件如果有程序正在访问,我即便使用rm命令删了这个大文件空间也无法立刻释放出来,如何解决?
使用lsof |grep deleted 命令是查看系统当中哪些文件已经被删除但未释放空间的
使用killall vim  意思是强行关闭vim程序
或> bigfile  创建一个同名的文件将其覆盖即可,再使用rm -f bigfile命令,生产中常用此方法

目录操作
tree 显示目录树
-d: 只显示目录
-L level:指定显示的层级数目  如:tree -L 1 /boot  只显示boot目录下的一级目录
-P pattern: 只显示由指定pattern匹配到的路径
mkdir 创建目录
-p: 存在于不报错,且可自动创建所需的各目录
mkdir -p /data/dir1/dir2/dir3/dir4    dir1,dir2,dir3均不存在
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限
rmdir 删除空目录,只能删空文件夹
-p: 递归删除父空目录
例:rmdir -p /data/dir1/dir2/dir3/dir4  意思是删除dir4后,看dir3,如果dir3是空的,删除dir3,依此类推
rmdir /data/dir1/dir2/dir3/dir4 意思是只删除dir4
-v: 显示详细信息
rm -r 递归删除目录树

练习
(1) 如何创建/testdir/dir1/x, /testdir/dir1/y, /testdir/dir1/x/a,
/testdir/dir1/x/b, /testdir/dir1/y/a, /testdir/dir1/y/b
答:mkdir -p ./testdir/dir1/{x,y}/{a,b}
(2) 如何创建/testdir/dir2/x, /testdir/dir2/y, /testdir/dir2/x/a,
/testdir/dir2/x/b
答:mkdir -p ./testdir/dir2/{x/{a,b},y}
(3) 如何创建/testdir/dir3, /testdir/dir4, /testdir/dir5, /testdir/dir5/dir6,
/testdir/dir5/dir7
答:mkdir -p ./testdir/dir{3,4,5/dir{6,7}}

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/94299

(0)
上一篇 2018-04-01 17:31
下一篇 2018-04-01 17:32

相关推荐