目录

一.虚拟机的三种网卡模式

二.基础知识

2.1  shell的内外部命令

2.2可以使用type命令来区分内外部命令

2.3命令行头解释

2.4文件具体信息含义

2.5命令行格式

三.基础命令

3.1 help

3.2 man

3.3 pwd 

3.4 cd

3.5 ls

3.6 通配符

​3.7 alias

3.8 du(disk usage)

3.9 mkdir

3.10 软连接与硬链接

3.11 复制

3.12 移动 改名   批量改名?写脚本

3.13 删除文件

3.14 which

3.15 find


一.虚拟机的三种网卡模式

桥接模式:虚拟机和本机使用同一个物理网卡,共享主机IP地址

nat模式:内外网地址转换,生成一个VMware8网卡,此网卡必须与虚拟机在同一个网段,虚拟机                   才可上网。

仅主机模式:主机和虚拟机在独立的网络,不能上外网

  二.基础知识

luinx,一切都是一个文件(硬件,文本,二进制,源代码), 系统中拥有小型单一用途的程序,            遇到复杂任务,通过通过不同功能用途的程序组合起来完成,没有复杂用户界面,配置文件            都存储在文本。

2.1  shell的内外部命令

shell是Linux系统中后台运行的一种特殊程序也可以理解成一种特殊的软件,提供了用户与内核进            行交互操作的一种接口。

bash是linux里面默认的shell程序,路径位于/bin/bash,分为内外部命令

内部命令 外部命令
集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 Linux系统中能够完成特定功能的脚本文件或二进制程序
属于Shell的一部分 属于Shell解释器程序之外的命令
没有单独对应的系统文件 每个外部命令对应了系统中的一个文件
自动载入内存,可以直接使用 必须知道其对应的文件位置,由Shell加载后才能执行

2.2可以使用type命令来区分内外部命令

比如

内部命令

[root@localhost /]# type cd         
cd 是 shell 内嵌                       //内嵌代表内部命令
[root@test1 /]# type -a ls
ls 是 `ls --color=auto' 的别名        //别名代表外部命令        
ls 是 /usr/bin/ls                    //外部命令会有程序路径
      
[root@localhost /]# whereis ls       //whereis 可以查找命令具体的位置所在

[root@localhost ~]# type -a echo 
echo 是 shell 内嵌
echo 是 /usr/bin/echo

help    内部命令

外部命令

外部命令存放于 echo $PATH  一个一个找,找到为止,找不到就报无命令

外部命令使用过后会被记录在内存(缓存,但是会占用内存,临时性的)加快读取速度

[root@localhost ~]# type useradd
useradd 是 /usr/sbin/useradd
[root@localhost ~]# useradd wu
[root@localhost ~]# type useradd 
useradd 已被哈希 (/usr/sbin/useradd)
[root@localhost ~]# hash                  //或者使用hash
hash 缓存
使用过一次  外部命令   我就会将这个外部命令  缓存在hash
外部命令需要取找他的路径才能执行,  直接在缓存 调用 加快了速度

--help   外部命令
内部 外部   hash 的优先级 为                      内部  hash  外部

先判断是不是别名,如果是,就执行。如果不是就看是不是内部命令,如果是,就执行,如果不是就看hash表,如果缓存里有,就执行,如果没有就看外部命令,如果有就执行,没有就报错

2.3命令行头解释

[root@localhost ~]#   例如root用户登录的行头

①第一个root代表是登录的用户是root。

②第二个localhost是主机名称位localhost。

③第三个 ~ 代表当前用户的家目录,存放用户个性化设置

除此之外,

cd       change directory,   文件位置

#         超级管理员

/          根目录

$         普通用户

ls         显示当前文件夹

cd~      回到家目录,

end      到最后

../         上层打开的目录

cd-       切换到上次执行cd命令之前所在的目录

..开头   表示当前目录上一级目录

.开头    表示隐藏文件

~ky18   以指定用户的宿主目录作为起点

这些只是简单的少量基础命令,还有很多。

2.4文件具体信息含义

-  rwxr-xr-x       1        root     root       368         11月  1 10:13        ky26.sh

第一字段  文件类型

第二字段  权限    读写执行

第三字段  硬连接数

第四字段  所有者

第五字段  所属组

第六字段  文件大小

第七字段  最后一次修改时间

第八字段  文件名

2.5命令行格式

命令字     空格     [选项]    空格    [参数]

1.命令字   是整条命令中最关键的一部分                                                                                                             唯一确定

2.选项      短格式选项:使用“-”符号引导 通常 一个字母

长格式选项:使用“--”符号引导 通常完整的单词

3.参数      命令字的处理对象 可以是文件名、目录(路径)名或用户名等内容 个数可以是零到多个

;可以隔开命令,执行多个命令

编辑Linux命令行的辅助操作

快捷键 功能
Tab 键 自动补齐(两次可以显示所有选项)
反斜杠“\” 强制换行或转义
Ctrl+a 光标移到最前
Ctrl+e 或 end 键 光标移到最后
Ctrl+U 清空至行首不包括当前光标处的 字符
Ctrl+K 清空至行尾包括当前光标处的字符
Ctrl+w 从当前光标删除到开头
ALT+d 从当前光标删除末尾
Ctrl+l 清屏
Ctrl+c 取消本次命令编辑
Ctrl+s/Ctrl+q 锁屏/解锁
向上下箭头 回看执行过的命令

三.基础命令

3.1 help

格式说明

  • []表示可选项

  • CAPS或<>表示可变化的数据

  • ...表示一个列表可加多个一个或多个

  • x|y|z 表示或的意思

  • -abc 是-a -b -c (有些命令选项有先后顺序) 多个 -abc 一般而言是没有顺序先后 (绝大多数是没有的,只有少数分先后

只能查看内部命令的 使用方法   tar  -zxvf    tar zxfv    -区分前后

--help            查看外部命令帮助

[root@localhost ~]# ls --help
[root@localhost dev]# useradd --help

3.2 man

#whatis 1 passwd  用户指令man第一章节

#man 5 passwd     文件格式man第五章节

3.3 pwd 

#pwd      //显示当前路径

#ped -p   文件的真实路径

#ln -s /opt/ky18/   /mnt/k18    #设置软连接

#cd /mnt/k18/            #切换到软连接

3.4 cd

cd  目标位置change directory

命令 效果
cd cd ~ 若不指定目标位置,切换到当前用户的宿主目录(家目录)
cd - 到前一次目录
一个点号“.”开头(自己) 表示以当前的工作目录作为起点(已点开头的是)
两个点号“..”开头(上一级) 表示以当前目录的上一级目录(父目录)作为起点
“~用户名”形式开头 表示以指定用户的宿主目录(家目录)作为起点
"."开头文件 表示隐藏文件
~ky18 (有个用户叫ky18 家目录为起点) 表示以指定用户的宿主目录作为起点

相对路径  cd ../../切换到上两层目录   没有将路径写完整

绝对路径 /          根目录开始的路径

bin   普通用户命令

boot 开机启动文件

dev  设备文件保存位置

etc    配置文件存放位置

var/log 登陆文件保存日志

3.5 ls

生产环境中慎重直接使用,文件量过大会直接死机

ls [选项] [文件或目录… ]

  • -l 已长格式显示文件和目录列表 ll=ls -l

  • -a 显示全部包括隐藏文件

  • -A 显示全部文件或隐藏文件,但不包括 . 和..

  • -d 仅列出目录本身,而不是列出目录内的文件数据

  • -h 友好显示文件大小(human,人性化)

  • -R 递归显示该目录及该目录的子目录下的所有内容

  • --color 显示颜色

  • -S 以文件容量大小排序

# vim /etc/DIR_COLORS     颜色在这里显示

文件类型

  1. - 普通文件

  2. d 目录文件directory

  3. l 符号链接文件link

  4. b 块设备block 比如直接读1块 /dev 4k (512*8(扇区)=4096字节=4k)

  5. c 字符设备character 一个字符一个字符读取 /dev/zero (/dev/null)

  6. p 管道文件pipe 两个软件联系 A-管道文件-B A 写 B 读 单向的

  7. s 套接字文件socket 可以双向的

第一个字符 文件类型
- 普通文件,包括纯文本文件、二进制文件、各种压缩文件等。
d 目录,类似 Windows 系统中的文件夹。
b 块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
c 字符设备文件
s 套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。
p 管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。
l 链接文件,类似 Windows 系统中的快捷方式。

补充:

file命令可以识别文件类型,文件后缀无法判断文件类型,文件后缀无所谓

[root@localhost data]# ls /run/
autofs.fifo-misc
#管道
gssproxy.sock
#套接字

touch file{A..Z}.txt ls file[zhou].txt

3.6 通配符

去匹配文件名(包括文件夹)ls

符号 效果
匹配一个字符 f?.txt
* 匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件
{1..10} 1到10
{a..z} a b c ...z
{A..Z} A B C .....Z
[123]([此处括号里值代表一个字符]) 取其中之一有就显示没有也无所谓
[a-z]单个小写字母 范围需要注意
[0-9]单个数字 匹配数字范围(0123456789)
\ 转义符,表示原来的意思
[[:lower:]] 小写字母表示 a-z
[[:upper:]] 大写字母表示 A-Z
[^zhou] 匹配列表中的所有字符以外的字符
[[:digit:]] 任意数字,相当于0-9
[root@localhost data]# ls -a *
1
#不显示隐藏文件
[root@localhost data]# ls -a
.  ..  1
#显示隐藏文件
[root@localhost data]# ls *
# *不包括.开头的
ls: 无法访问*: 没有那个文件或目录
​
[root@localhost data]# ls .*
#包括了 .. 上层目录中的文件
.:
​
..:
aaa  boot  dev  home  lib64  misc  net  proc  run   sdb1  sys  usr
bin  data  etc  lib   media  mnt   opt  root  sbin  srv   tmp  var
​
[root@test1 opt]# touch f{a..z}.log
[root@test1 opt]# touch f{A..Z}.log
[root@test1 opt]# ls
123456.txt  fa.log      fe.log  fj.log  fo.log  ft.log  fy.log
123.txt     f{A.Z}.log  ff.log  fk.log  fp.log  fu.log  fz.log
1.txt       fb.log      fg.log  fl.log  fq.log  fv.log  rh
2.txt       fc.log      fh.log  fm.log  fr.log  fw.log  test.txt
abc.txt     fd.log      fi.log  fn.log  fs.log  fx.log
[root@test1 opt]# ls f[zhou].log
#####四个其中的之一有就全显示
fh.log  fo.log  fu.log  fz.log
[root@test1 opt]# ls f[x-z].log
####显示的xXyYz 不包括Z
fx.log  fX.log  fy.log  fY.log  fz.log
[root@test1 opt]# ls f[a-c].log
#####显示的A b B c C 不包括a
fa.log  fA.log  fb.log  fB.log  fc.log
[root@test1 opt]# ls f{a..c}.log
#显示所有小写
-rw-r--r-- 1 root root 0 Nov  7 09:46 fa
-rw-r--r-- 1 root root 0 Nov  7 09:46 fb
-rw-r--r-- 1 root root 0 Nov  7 09:46 fc
[root@localhost ~]# ls 1[[:lower:]]*
#########显示小写字母
1a1.txt  1e1.txt  1i1.txt  1m1.txt  1q1.txt  1u1.txt  1y1.txt
1b1.txt  1f1.txt  1j1.txt  1n1.txt  1r1.txt  1v1.txt  1z1.txt
​
[root@localhost ~]# ls 1[[:upper:]]*
########################显示大写字母
[root@localhost ~]# ls 1[[:upper:]]*
1A1.txt  1E1.txt  1I1.txt  1M1.txt  1Q1.txt  1U1.txt  1Y1.txt
​
######[0-9]只能匹配10 以下的
[root@localhost data]# touch f{1..10}.txt
[root@localhost data]# touch f{10..20}.txt
[root@localhost data]# ll f[0-9].txt
-rw-r--r--. 1 root root 0 8月  29 01:50 f1.txt
-rw-r--r--. 1 root root 0 8月  29 01:50 f2.txt
-rw-r--r--. 1 root root 0 8月  29 01:50 f8.txt
-rw-r--r--. 1 root root 0 8月  29 01:50 f9.txt
[root@localhost data]# ll f[0-9][0-9].txt
#两个 [0-9]可以匹配双数字
[root@localhost data]# ll f{1..20}.txt
#{10..20}可以匹配双数字
​
[root@localhost data]# ll f??.txt
#两个?号可以匹配
[root@localhost data]# ll f*.txt
#  *也可以
-rw-r--r--. 1 root root 0 8月  29 01:51 f10.txt
-rw-r--r--. 1 root root 0 8月  29 01:51 f11.txt
-rw-r--r--. 1 root root 0 8月  29 01:51 f12.txt
​
[root@localhost data]# ls /etc/.*
#显示隐藏文件也包括.. 的上层目录
#如果不想看上层目录 就要加-d 只显示当前目录
[root@localhost data]# ls /etc/.* -d
#只显示当前目录
/etc/.  /etc/..  /etc/.java  /etc/.pwd.lock  /etc/.updated
​
​3.7 alias

临时修改

  • alias 命令别名 = ’命令‘

  • unalias 别名命令 删除别名

  • \加别名命令 (显示原始命令)

du --max-depth=1 /etc/ |sort -nr
du -d 2 /etc/ |sort -nr
a s h
[root@localhost dev]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost dev]# alias myvim='vim /etc/sysconfig/network-scripts/ifcfg-ens33'
​
#如果不加引号无法识别
[root@localhost dev]# alias myls=ls -alh
-bash: alias: -alh: 未找到
​
#就想使用原来的命令
[root@localhost dev]# ls
[root@localhost dev]# \ls
​
#删除别名
[root@localhost dev]# unalias myvim
[root@localhost dev]# myvim
bash: myvim: 未找到命令...​永久修改
- 在/etc/.bashrc 会影响全部
- /root/.bashrc只影响当前用户

补充:绝对路径>别名>内部>hash>外部命令(先查找别名在查找内部命令,缓存最后外部)

3.8 du(disk usage)

查看当前所在文件夹的总磁盘占用量了。

du [选项] [文件或目录… ]

选项 说明
-a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-h 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
-s(--summarize) 只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小
--max-depth=n (-d 1) 最大显示到第n层
--exclude 不计入统计

注意a s无法同时使用

文件夹是可以嵌套的,有的时候,我们只想展示第一级或第二级子文件夹的信息,而不希望 du 统计的层次太深,那么我们可以用 --max-depth(-d) 选项来进行控制。

[root@localhost opt]#ls -lh
总用量 4.0K
-rw-r--r--. 1 root root 2.6K 8月  26 11:55 passwd
[root@localhost opt]#du -ch passwd 
4.0K    passwd
4.0K    总用量

[root@localhost etc]#du -d1
#只显示etc目录下的第一层
[root@localhost opt]#ls
f1111.txt  ky18  passwd
[root@localhost opt]#du --exclude=*.txt
#排除已txt结尾的
0    ./ky18
4    .

3.9 mkdir

mkdir -p 递归创建 没有文件夹 会自动递归创建

mkdir [选项] 目录位置及名称…

[root@localhost data]# mkdir a b c d
#创建多个文件夹
[root@localhost data]# ls
a  b  c  d
[root@localhost data]# mkdir -p aaa/bbb/cccc
# 递归创建文件夹
[root@localhost data]# ls
a  aaa  b  c  d
​
[root@localhost data]# tree
.
├── a
├── aaa
│   └── bbb
│       └── cccc
├── b
├── c
└── d
touch​
touch 新文件…(可为空)
touch 不会破坏已有文件 刷新时间
每个文件有三个时间戳:
1.access time 访问时间,atime,读取文件内容
2.modify time 修改时间,mtime,改变文件内容(数据)
3.change time 改变时间,ctime,元数据发生改变(元数据 文件大小 权限 )

[root@localhost data]# touch  1 2 3
#创建新文件,或空的新文件
[root@localhost data]# ls
1  2  3
[root@localhost data]# echo "" > 4
#创建4的空文件
[root@localhost data]# ls
1  2  3  4

[root@localhost bin]# stat /etc/passwd
##############查看三种时间

3.10 软连接与硬链接

硬连接   同一个文件取不同的名或者叫多个名字(比如 苏轼   字子瞻  号东坡居士  苏二   谥号文忠 )不支持文件夹,创建一个连接数加一,多路径访问。

软连接    类似于windows里快捷方式,软连接,符号连接,会指向原来的文件

ln  [-s] 源文件或目录… 链接文件或目标位置

加s是软连接 符号连接

对比项 硬链接 软链接
本质 本质是同一个文件 本质不是同一个文件
inode(身份证号) 相同 不同
连接数 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 删除,新建都不会改变
文件夹 不支持 支持
删除源文件 只是链接数减一,但链接文件的访问不受影响 无法访问连接文件
文件类型 和源文件相同 链接文件,和源文件无关
文件大小 和源文件相同(指向硬盘上的同一个文件) 源文件的路径的长度

例子

[root@localhost data]# cp /etc/passwd /data/f1.txt
[root@localhost data]# ls
f1.txt
[root@localhost data]# ln /data/f1.txt /data/f11.txt
#建立硬连接
#不能跨分区建立连接 无法对文件夹创建
[root@localhost data]# ln /data/f1.txt  /boot/f111.txt
ln: 无法创建硬链接"/boot/f111.txt" => "/data/f1.txt": 无效的跨设备连接
#删除硬链接可以继续访问硬链接。
当前目录  opt  . 自己   ..  /根目录
​
opt下有个目录 aa
cd aa
. ..    .aa   ../opt     

软连接例子

删除源文件无法访问,再新建同名文件后依然可以访问
可以跨设备
可以支持文件夹
相对路径与绝对路径 建议绝对路径
[root@localhost data]# ln -s f1.txt /opt/f1111.txt
[root@localhost data]# ll /opt/

软件版本升级迭代 
开发出 app1.0   做软连接 app
如果有 app2.0   就把 软连接app删除 新建app2.0的软连接app

$PATH    以后自行安装软件  系统不会自行 识别    httpd mysql ls         
1将程序文件 放入$PATH 路径 usr/bin  
2做软连接   $PATH
3修改$PATH 路径

硬链接删除一定要全删除,软连接一定要做绝对路径

软连接#ln -s /etc/ ./test

硬链接#ln/etc/./hard                    "/etc/":不允许将硬链接指向目录

软连接删除#rm-rf soft/^c                              soft     不加/

软连接文件夹不加/会把文件夹下文件全删除

3.11 复制

cp(copy)备份

1. cp [选项]… 源文件     目标   相当改名复制   文件夹    文件相当于 改名字另存为
2. cp [选项]... 源文件... 文件夹    多个源文件只能复制到文件夹

选项 说明
-f 覆盖目标同名文件或目录时不进行提醒,直接强制复制
-i 覆盖目标同名文件或目录时提醒用户确认
-p 复制时保持源文件的权限、属主及时间标记等属性不变
-r 复制目录时必须使用此选项,表示递归复制所有文件及子目录
-a 完整保留所有的信息
-v 可视化
-u 相当于增备,差异备份(只对文件夹起作用)

[root@localhost data]# cp -r /etc/ /opt/
#复制文件夹要加 -r 不加不让复制
[root@localhost data]# cp -r /etc/ /opt/etc.bak
#改名字
[root@localhost data]# cp -r /etc/ /opt/etc.bak
#变成 etc.bak 的子目录
[root@localhost data]# cp -r /etc/ /opt/etc.bak
#会问你要不要覆盖,cp是别名 加\cp 直接覆盖

[root@localhost data]# cp /etc/passwd /etc/shadow /opt
[root@localhost data]# cp /etc/passwd /etc/shadow /opt/f111.txt 
#复制多个文件必须要是目录,不能是文件,且目录要存在。
cp: 目标"/opt/f111.txt" 不是目录

3.12 移动 改名   批量改名?写脚本

mv  [选项] …  源文件或目录…  目标文件或目录 单个文件

移动    或者改名

- -f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;
- -i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项);
- -n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户;
- -v:显示文件或目录的移动过程;

批量

rename log log.bak*    //所有 log文件改成 log.bak

rename 旧字符 新字符 目标文件

[root@test1 opt]# rename txt txt.bak *
#将txt改成txt.bak
[root@test1 opt]# ls

rename 旧字符 新字符 目标文件

bash
[root@test1 opt]# rename txt txt.bak *.txt
#把 txt 改成 txt.bak

3.13 删除文件

rm [选项] 要删除的文件或目录

  • -f、强制

  • -i、交互

  • -r 递归(删除目录需要)

[root@localhost ~]# rm -rf /    #不让执行
[root@localhost ~]# echo *      #删根后查看
[root@localhost ~]# rm -rf /data/*
[root@localhost ~]# rm -rf /data /*    ##之间的区别误操作,等于删根
​

如何删除特殊的文件

[root@localhost ~]# touch ./-f
# -开头的文件
[root@localhost ~]# ls
[root@localhost ~]# rm -f -f
#删除不掉
[root@localhost ~]# rm -f ./-f
#需要加路径
[root@localhost ~]# touch ./-f
[root@localhost ~]# rm -- -f
rm:是否删除普通空文件 "-f"?y
​

删除文件后空间不释放

[root@localhost ~]# cp /dev/zero /boot/bigfile.img
cp: 写入"/boot/bigfile.img" 出错: 设备上没有空间
cp: 扩展"/boot/bigfile.img" 失败: 设备上没有空间
[root@localhost ~]# df
文件系统                   1K-块     已用   可用 已用% 挂载点
/dev/mapper/centos-root 10475520 10293876 181644   99% /
devtmpfs                  917600        0 917600    0% /dev
tmpfs                     933524        0 933524    0% /dev/shm
tmpfs                     933524     9216 924308    1% /run
tmpfs                     933524        0 933524    0% /sys/fs/cgroup
/dev/sda1                5232640  5232620     20  100% /boot
tmpfs                     186708       12 186696    1% /run/user/42
tmpfs                     186708        0 186708    0% /run/user/0
#磁盘使用满了以后会造成服务的停止业务受影响,是一个重大的事故
[root@localhost ~]# ll -S /boot             ##文件大小排序
总用量 5191344
-rw-r--r--. 1 root root 5171437568 8月  26 01:00 bigfile.img
-rw-------. 1 root root   69266920 8月   6 21:02 initramfs-0-rescue-869dbd607e5e4f758fa152ef2229f2b6.img
-rw-------. 1 root root   30802796 8月   6 21:03 initramfs-3.10.0-693.el7.x86_64.img
-rw-------. 1 root root   18808968 8月   6 21:06 initramfs-3.10.0-693.el7.x86_64kdump.img
-rw-r--r--. 1 root root   10182684 8月   6 21:02 initrd-plymouth.img
-rwxr-xr-x. 1 root root    5877760 8月   6 21:02 vmlinuz-0-rescue-869dbd607e5e4f758fa152ef2229f2b6
-rwxr-xr-x. 1 root root    5877760 8月  23 2017 vmlinuz-3.10.0-693.el7.x86_64
-rw-------. 1 root root    3228420 8月  23 2017 System.map-3.10.0-693.el7.x86_64
-rw-r--r--. 1 root root     293027 8月  23 2017 symvers-3.10.0-693.el7.x86_64.gz
-rw-r--r--. 1 root root     140894 8月  23 2017 config-3.10.0-693.el7.x86_64
drwx------. 5 root root         97 8月   6 21:03 grub2
drwxr-xr-x. 2 root root         27 8月   6 20:58 grub
drwxr-xr-x. 3 root root         17 8月   6 20:57 efi
#使用另一个xshell打开  bigfile文件 也是可以删除的,但是空间不会释放
#文件正在使用可以删除,
[root@localhost ~]# rm -rf /boot/bigfile.img 
[root@localhost ~]# df
文件系统                   1K-块     已用   可用 已用% 挂载点
/dev/mapper/centos-root 10475520 10293964 181556   99% /
devtmpfs                  917600        0 917600    0% /dev
tmpfs                     933524        0 933524    0% /dev/shm
tmpfs                     933524     9216 924308    1% /run
tmpfs                     933524        0 933524    0% /sys/fs/cgroup
/dev/sda1                5232640  5232620     20  100% /boot
tmpfs                     186708       12 186696    1% /run/user/42
tmpfs                     186708        0 186708    0% /run/user/0
[root@localhost ~]# lsof |grep delete 
#过滤出被删除的文件list open  file
pulseaudi 1671                 gdm    6u      REG                0,4   67108864      23475 /memfd:pulseaudio (deleted)
alsa-sink 1671 1674            gdm    6u      REG                0,4   67108864      23475 /memfd:pulseaudio (deleted)
alsa-sour 1671 1677            gdm    6u      REG                0,4   67108864      23475 /memfd:pulseaudio (deleted)
vim       7532                root    3r      REG                8,1 5171437568         80 /boot/bigfile.img (deleted)
[root@localhost ~]# w
#查看谁在使用什么进程
 01:09:59 up  8:49,  2 users,  load average: 0.98, 0.57, 0.27
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.91.1     00:54    7.00s  0.12s  0.01s w
root     pts/1    192.168.91.1     01:05    4:07   4:07   4:06  vim /boot/bigfile.img
#另一终端退出使用空间被释放
[root@localhost ~]# df 
文件系统                   1K-块     已用    可用 已用% 挂载点
/dev/mapper/centos-root 10475520 10293868  181652   99% /
devtmpfs                  917600        0  917600    0% /dev
tmpfs                     933524        0  933524    0% /dev/shm
tmpfs                     933524     9216  924308    1% /run
tmpfs                     933524        0  933524    0% /sys/fs/cgroup
/dev/sda1                5232640   182388 5050252    4% /boot
tmpfs                     186708       12  186696    1% /run/user/42
tmpfs                     186708        0  186708    0% /run/user/0
[root@localhost ~]# echo"" > /boot/bigfile.img 
#写入空文件,依赖shell
[root@localhost ~]# df
文件系统                   1K-块     已用    可用 已用% 挂载点
/dev/mapper/centos-root 10475520 10293892  181628   99% /
devtmpfs                  917600        0  917600    0% /dev
tmpfs                     933524        0  933524    0% /dev/shm
tmpfs                     933524     9216  924308    1% /run
tmpfs                     933524        0  933524    0% /sys/fs/cgroup
/dev/sda1                5232640   182388 5050252    4% /boot
tmpfs                     186708       12  186696    1% /run/user/42
tmpfs                     186708        0  186708    0% /run/user/0
[root@localhost ~]# rm -rf /boot/bigfile.img
#清空文件

后者保留etc

rm -rf / 删除不了

在本目录下可以 不管你在不在使用

3.14 which

/user/bin/cp   绝对路径

which ls

which cd

which cp

#crontab -e    类似于定期执行 (周一干什么,周二干什么,周三干什么。。。)

3.15 find

locate 查询系统上预建立的文件索引数据库,跟find功能类似。系统生成文件,有个索引数据库,             在数据库寻找快,但新建的文件需要一段时间才能存进数据库。常用于系统不忙时,寻找               老文件,占用系统效率

#locate -n1 yj

find命令的特点:

全系统搜索,

- 精确查找
- 实时查找
- 支持查找条件巨多

格式:

find [OPTION]... [查找路径] [查找条件] [处理动作]

查找路径:指定具体目标路径;不指定为默认为当前目录

查找条件:可以对文件名、大小、类型、权限等标准进行查找;默认为找出指定路径下的所有文件

处理动作:对符合条件的文件做操作,默认输出至屏幕(print)

常用可选项

查找类型 关键字 说明
按名称查找 -name 根据目标文件的名称进行查找,允许使用“*”及“?”通配符
按文件大小查找 -size 根据目标文件的大小进行查找一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括 kB(注意 k 是小写)、MB、GB
按文件属主查找 -user 根据文件是否属于目标用户进行查找
按文件类型查找 -type 根据文件的类型进行查找文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等
按inode号 -inum 根据文件inode号查找
按权限查找 -perm 按文件权限查找
最大搜索目录深度 -maxdepth level 将你的文件已分级的形式查找
最小搜索目录深度 -mindepth level 同上

-size [+|-]#UNIT #常用单位:k, M, G,c(byte),注意大小写敏感 +大于  -小于

-type TYPE
TYPE可以是以下形式:
f: 普通文件
d: 目录文件
l: 符号链接文件
s:套接字文件
b: 块设备文件
c: 字符设备文件
p: 管道文件

-user USERNAME #查找属主为指定用户(UID)的文件
-group GRPNAME #查找属组为指定组(GID)的文件
-uid UserID #查找属主为指定的UID号的文件
-gid GroupID #查找属组为指定的GID号的文件
-nouser #查找没有属主的文件
-nogroup #查找没有属组的文件

例如

-name "文件名称" #支持使用glob,如:*, ?, [], [^],通配符要加双引号引起来
-inum n #按inode号查找
-links n   #链接数为n的文件

[root@test1 opt]# find /etc/ -name passwd
#查找名字叫 passwd的文件
/etc/pam.d/passwd
/etc/passwd
[root@test1 opt]# find /etc/ -name *.conf
#查找所有.conf 结尾的 ,不要在当前路径下找自己路径下的文件
/etc/resolv.conf
/etc/fonts/conf.d/57-dejavu-serif.conf
/etc/fonts/conf.d/65-1-vlgothic-gothic.conf
/etc/fonts/conf.d/31-cantarell.conf
/etc/fonts/conf.d/65-0-lohit-nepali.conf
/etc/fonts/conf.d/59-liberation-mono.conf
/etc/fonts/conf.d/65-0-lohit-bengali.conf
/etc/[root@test1 opt]# find /mnt -user root
#查找 用户为root的用户
/mnt
/mnt/abc
/mnt/ad
/mnt/ad/ad2
/mnt/ad/ad2/bbbbb.txt
/mnt/zhangsanlianjie

[root@test1 opt]# find -size 1k    
# 0.1字节 到 1k
./rh
./rh/aaa
[root@localhost boot]# find ./ -name "vm*"  
#查找vm开头的
[root@localhost boot]# find /boot/ -size -10M -a -name "*img"
#小于10M 的img文件

[root@localhost etc]# find /etc/ -maxdepth 2 -mindepth 2
#只看第二级目录

[root@localhost opt]# find /boot -d
#先显示 文件在显示目录
#找/home 下属于zhangsan的文件并列出属性
[root@localhost opt]# find /home -user zhangsan -ls
#找/home 下属于zhangsan的文件并列出属性

[root@localhost opt]# useradd hehe
[root@localhost opt]# userdel hehe
[root@localhost opt]# ls /home/
hehe  mysql  zhangsan
[root@localhost opt]# ll /home/
总用量 0
drwx------. 3     1002     1002 78 8月  26 09:27 hehe
drwx------. 3 mysql    mysql    78 8月  25 11:45 mysql
drwx------. 3 zhangsan zhangsan 78 8月   6 20:57 zhangsan
[root@localhost opt]# find /home/ -nouser
#找home下的无主文件夹
/home/hehe
/home/hehe/.mozilla
/home/hehe/.mozilla/extensions
/home/hehe/.mozilla/plugins
/home/hehe/.bash_logout
/home/hehe/.bash_profile
/home/hehe/.bashrc

#或与且的优先级
[root@localhost opt]# find /etc/ -type d -o -type l |wc -l
1008
[root@localhost opt]# find /etc/ -type d -o -type l -ls |wc -l
1008
[root@localhost opt]# find /etc/ -type d -o -type l -a -ls |wc -l
274
[root@localhost opt]# find /etc/ \( -type d -o -type l \) -a -ls |wc -l
1008

[root@localhost opt]# find -size 1G
#查找1G的文件会把所有都显示出来
.
./100.img
./99.img

#按大小查找新建两个文件
[root@localhost opt]# dd if=/dev/zero of=99.img bs=99M count=1
[root@localhost opt]# dd if=/dev/zero of=100.img bs=100M count=1
[root@localhost opt]# ls
100.img  99.img
[root@localhost opt]# find -size 100M
./100.img
[root@localhost opt]# find /opt/ -size 100M
/opt/100.img
[root@localhost opt]# ll 99.img 
-rw-r--r--. 1 root root 103809024 8月  26 10:02 99.img
[root@localhost opt]# echo >>99.img 
[root@localhost opt]# ll 99.img 
-rw-r--r--. 1 root root 103809025 8月  26 10:03 99.img
[root@localhost opt]# find /opt/ -size 100M
/opt/100.img
/opt/99.img
#这是应为linux中的100M不是正好100M 是99开始不包括99到100(99-100]

#思考 1024M 和 1G 一样么?
1024M 代表 1023M - 1024M 不包括1023
1G    表示 0G      -1G   不包括0G
-size  10k      表示9k  到10k   且不包括9k  
-size -10k      表示9k  以内    包括9k
-size +10k      表示10k 以上    不包括 10k

#权限查找 -perm
[root@localhost opt]# find -perm 644
./100.img
./99.img
./a.txt
[root@localhost opt]# find -name "*.img" -delete
#找到并删除(找到name为什么并且删除)要加引号

############处理动作#############################
-print:默认的处理动作,显示至屏幕
-ls:类似于对查找到的文件执行"ls -dils"命令格式输出
-fls file:查找到的所有文件的长格式信息保存至指定文件中,相当于 -ls > file
-delete:删除查找到的文件,慎用!
-ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认
-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令{}: 用于引用查找到的文件名称自身

[root@localhost opt]# find -name "*.txt"  -ok mv {} /mnt \;
[root@localhost opt]# find -name "*.txt"  -exec mv {} /mnt \;

#以“天”为单位
-atime [+|-]# 
# #表示[#,#+1)
+# #表示[#+1,∞]
-# #表示[0,#)

-mtime
-ctime
#以“分钟”为单位
-amin
-mmin
-cmin

find -mtime 10  
#10天到11天
find -mtime +10
#代表11天以上
find -mtime -10
#10天以内

找到大于 7天,大于1G普通文件,并删除

find /-mtime +7 -typef -size +1G -delete

find -nouser  -delete   无主文件

-empty    空文件或目录

#find /app -type d -empty              app代表空文件

与:-a      可以省略

或:-o

非:-not  !

例子

#find            -name "*.txt"        -ok              mv             {}                          /mnt \;

找到   名后有.txt的文件          连接符      移动到     找到的所有文件     mnt目录

找到后一个个放入mnt并一个个询问

\;代表结束,一定不能忘

-ok可以换成exec,没有确认,直接移动

find -name “*.tst”  -exec mv  {}.sl \;

find -name “*.tst” -fls abc             导入abc

Linux基础第一章:基础知识与基础命令相关推荐

  1. 计算机网络应用基础第一章试题,计算机网络应用基础第一章测试题

    计算机网络应用基础第一章测试题 计算机网络应用基础(第一章)测试题 一.填空题(每题3分,共15分) 1.计算机网络是和相结合的产物. 2.计算机网络分为和两个部分. 3.OSI基本构造技术是:. 4 ...

  2. 计算机硬件系统结构金字塔图,[计算机硬件及网络]1第一章 环境知识基础.ppt

    [计算机硬件及网络]1第一章 环境知识基础 第一章 环境知识基础 第一节 环境的概念与分类 一.环境的概念 二.环境的分类 三.环境的特性 第二节 生态系统 一.生态系统的概念 二.生态系统的组成 三 ...

  3. 16第一章 ASP.Net编程基础知识

    第一章        ASP.Net编程基础知识 第一章        ASP.Net编程基础知识 本章首先介绍用ASP.Net技术编制服务器端动态网页所需的网络和HTML标记语言方面的有关知识.然后 ...

  4. 第一章c语言基础知识答案,第一章 C语言的基础知识练习题

    第一章 C语言的基础知识练习题 第一章 C语言的基础知识 第一节 对C语言的初步认识 习题 1. 下列叙述中错误的是 B A)任何一个C程序都必须有且仅有一个main函数,C语言总是从main函数开始 ...

  5. 计算机文化基础第一章知识点题,计算机文化基础第一章习题与答案

    <计算机文化基础第一章习题与答案>由会员分享,可在线阅读,更多相关<计算机文化基础第一章习题与答案(8页珍藏版)>请在人人文库网上搜索. 1.计算机文化基础第一章习题与答案1 ...

  6. Python基础教程(第3版)中文版 第一章 快速上手:基础知识(笔记)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,分享给大家: https://www.captainai.net/lf 如果你学完了Python不知道干什么,不妨去了解一下. 第一章 快速 ...

  7. 计算机文化基础知识,1计算机文化基础-第一章计算机基础知识

    1计算机文化基础-第一章计算机基础知识 (160页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 39.9 积分 可要认真听讲啊!!第 一 章 ? ? ?? ...

  8. c井语言和SQL第一章上机1,第一章 SQL Server 数据库基础复习内容(上机)

    上机课程总目标 在本学期中,将模拟开发一套学员信息管理系统,用来管理学员的个人基本资料,老师资料,学生成绩,课程信息等教学相关内容,以实现学校的信息自动化,提高工作效率. 该系统包括学生档案管理.学生 ...

  9. 我国第一台晶体管计算机缺点,计算机基础第一章ppt课件.ppt

    计算机基础第一章ppt课件 入门篇 前言 如何学会学习.喜欢学习? 重点: 计算机系统的组成及工作原理 计算机中数据的表示及运算 难点: 1.计算机中硬件的组成及各组成部分的功能 2.计算机软件系统的 ...

  10. 全国计算机二级第一套ppt,全国计算机二级共基础第一章.ppt

    全国计算机二级共基础第一章 全国计算机等级考试 二级公共基础知识辅导 复习 计算机的工作原理是什么? 存储程序和原始数据,然后逐条执行. 什么是计算机程序? 很多指令的有机组合. 计算机程序 计算机算 ...

最新文章

  1. 读书笔记-PowerShell实战指南(第三版)
  2. 使用windbg查看PE结构
  3. linux——使用fidsk对linux硬盘进行操作【转】
  4. java集合——集合与数组间的转换+算法
  5. vue-cli3.0修改浏览器中的小图标
  6. 芜湖市计算机应用能力考试,安徽省芜湖市2021年3月计算机等级考试时间
  7. Python 一键转 Java?“Google 翻译”你别闹
  8. linux netstat java,Linux netstat介绍
  9. jquery操作元素
  10. 多线程编程(16) - 多线程同步之 WaitableTimer (等待定时器对象)[续二]
  11. Ant十五大最佳实践
  12. #洛谷oj:P1197星球大战
  13. 微信表情包批量导出-2022年8月4日
  14. Vue自学之路8-vue模版语法(事件绑定)
  15. 基于前程无忧平台数据分析师岗位的薪资水平分析(一)
  16. pthread_detach
  17. Android 8.0系统透明主题适配解决办法
  18. 内网渗透学习04——域内横向移动
  19. 如何搭建SPA-单页面应用
  20. 基于JAVA的企业信息员工管理系统的设计与实现(附:源码 论文 sql文件)

热门文章

  1. 怎么关闭自动启动的屏幕键盘
  2. The server time zone value ‘� й ��� ׼ʱ ��‘ is unrecognized or represents more than one time zone.
  3. 老宇哥带你玩转 ESP32:04 串口玩起来是真方便
  4. 为什么阿里巴巴最爱招Java开发程序员?
  5. xp电脑自动锁定计算机,WinXP系统如何设置电脑自动关机?
  6. 如何挑选属于自己的电脑
  7. 北京理工大学-嵩天python语言程序设计-9-Python计算生态概览
  8. React-Redux 中文文档
  9. Arduino 中String 与char *,char[]之间赋值
  10. 梦想起航商务工作PPT模板-优页文档