目录
1、pwd(print work directory):显示当前路径
2、cd 目标位置 (change directory):切换目录
6、du(disk usage):查看当前所在文件夹的总磁盘占用量
7、mkdir(make directories):创建目录
一、Linux的哲学思想
1、一切都是一个文件。(包括硬件,文本,二进制,源代码)
2、系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职作)
3、当遇到复杂任务,通过不同功能用途的程序组合起来完成。轻量级,一台服务 dhcpip 数据库服务。
4、避免令人困惑的用户界面就是没有复杂的图形界面。
5、连配置文件都存储在文本中,方便增删改查
6、不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型
基础知识:
root #表示用户
localhost #主机名
~ #家目录
# #管理员用户
$ #普通用户
root #root的家目录
opt #opt目录
二、Shell
1、Shell的定义
shell是Linux系统中后台运行的一种特殊程序,也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口。
2、Shell的作用
Shell的作用:将人类使用的高级语言翻译成二进制。(在用户和内核之间充当“翻译官”)
- 用户使用应用程序发布指令比如 (使用浏览器访问网页)
- Shell去通知操作系统需要进行什么样的操作(相当于解释层)
- 内核相当于操作系统去指挥硬件
- 硬件才能工作,否则无法交互。
在Centos7中默认的Shell是bin/bash。
三、Shell与内、外部命令
Shell 分为 内部命令 和 外部命令 ;
一般先执行 内部命令,hash表 再执行外部命令(别名最大)。
1、Linux命令执行的过程
当你执行命令时,首先去判断你是不是 别名 ,如果是 直接执行,
不是 判断是否是内部命令 ,如果是 直接执行,
不是 去看hash表, 如果hash表有 直接执行,有 但是找不到 报错,
没有 去外部命令 规定的文件夹找命令,如果没有 报错。别名>内部命令>hash表>外部命令
2、内部命令和外部命令的区别(type区分)
内部命令 | 外部命令 |
集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in) 指令 | Linux系统中能够完成特定功能的脚本文件或二进制程序 |
属于shell的一部分 | 属于shell解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
自动载入内存,可以直接使用 | 必须知道其对应的文件位置,由Shell加载后才能执行 |
type+命令 #可以查看该命令是内部命令或外部命令
四、Linux命令行
1、Linux通用命令行格式
命令字 [选项] [参数]
注意点:
- 注意空格不要遗漏
- 英文字符区分大小写
- 命令字 是整条命令中最关键且唯一确定的部分
- [选项] 短格式用-引导,通常 一个字母 ;长格式用--引导,通常完整的单词
- [参数] 命令字的处理对象,可以是文件名、目录(路径)名或用户名等内容 ,个数可以是零到多个
2、编辑Linux命令行的常用辅助操作
快捷键 | 功能 |
Tab键 | 如果结果唯一,按一次,自动补全 如果结果不唯一,按两次,显示所有结果 |
上下箭头 | 回看之前执行的命令 |
Ctrl+C | 停止命令,取消本次命令编辑 |
Ctrl+l | 清屏 |
Ctrl+u | 清空至行首不包括当前光标处的 字符 |
Ctrl+k | 清空至行尾包括当前光标处的字符 |
Ctrl+a | 光标移到最前 |
Ctrl+e 或 end 键 | 光标移到最后 |
反斜杠“\” | 强制换行 或 转义 |
五、获得命令帮助
1、最便捷方法:百度
百度是最快解决方式不拘泥形式
2、help
-
内部命令
help 内部命令
如:
[root@localhost ~]# help echo
#内部命令查看帮助
-
外部命令
外部命令 --help
如:
[root@localhost ~]# ls --help
[root@localhost dev]# useradd --help
3、man手册(manual)
man分九个章节默认打开第一章节;
第一章节:命令的解释,默认打开
[root@localhost ~]# man passwd
第五章节:文件的格式
[root@localhost ~]# man 5 passwd
六、绝对路径和相对路径
1、绝对路径:以 根(/) 开头的路径
/ 写在路径开头,代表根文件夹
/ 不在路径开头,代表分隔符
2、相对路径:不是以 根(/) 开头的路径
以 . 开头,代表以当前工作目录为起点
以 .. 开头,代表以上一级目录为起点
七、Linux基本命令
-
查看切换显示统计目录
1、pwd(print work directory):显示当前路径
#显示当前路径
[root@localhost ~]# pwd
#显示当前路径
[root@localhost bin]# pwd -P
/usr/bin
#-P 显示真实路径
2、cd 目标位置 (change directory):切换目录
#切换目录
命令 | 效果 |
cd cd ~ | 若不指定目标位置,切换到当前用户的宿主目录(家目录) |
cd - | 若不指定目标位置,切换到当前用户的宿主目录(家目录) |
一个点号“.”开头(自己) | 表示以当前的工作目录作为起点(已点开头的是) |
两个点号“..”开头(上一级) | 表示以当前目录的上一级目录(父目录)作为起点 |
cd /etc/ | 进入/etc/文件夹 |
例子:
[root@localhost ~]# cd /etc/
[root@localhost etc]#
[root@localhost ~]# cd
[root@localhost ~]#
[root@localhost ~]# cd ~
[root@localhost ~]#
3、ls(list):列出指定目录下的所有文件
#显示文件和目录列表
格式:
ls [选项] [文件或目录… ]
-
-l
#以长格式显示文件和目录列表 ll=ls -l
-
-a
#显示全部包括隐藏文件
- -A
#显示全部文件或隐藏文件,但不包括 . 和..
-
-d
#仅列出目录本身,而不是列出目录内的文件数据
-
-h (human)
#友好显示文件大小,人性化
-
-R
#递归显示该目录及该目录的子目录下的所有内容
-
-t
#时间显示
-
-S
#以文件容量大小排序
-
-r
#倒序
ls -lrt /etc
#将/etc 下的文件和目录 按照建立时间顺序排列倒序显示
-
-i (inode)
#身份证号,inode号
详细解释ls -l 即ll(内含七大文件类型)
例如:
第1字段:普通文件
七大文件类型 | |
- | 普通文件 |
d | 文件夹 |
l | 链接文件,快捷方式 |
p | 管道文件 |
s | 套接字 |
b | 块设备 |
c | 字符文件 |
第2字段:权限,读写执行
第3字段:硬链接数
第4字段:所有者
第5字段:所属组
第6字段:文件大小
第7字段 :最后一次修改时间
第8字段:文件名
4、通配符
符号 | 效果 |
? | 匹配一个字符 |
* | 匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件 |
{1..10} | 1到10 |
{A..Z} | A B C .....Z |
{a..z} | a b c ...z |
[123] [此处括号里值代表一个字符] | 取其中之一有就显示; 没有也无所谓 |
\ | 转义符,表示原来的意思 |
[0-9]单个数字 | 匹配数字范围(0123456789) |
[[:lower:]] | 小写字母表示 a-z |
[[:upper:]] | 大写字母表示 A-Z |
例子:
[root@localhost data]# ls -a *
1
#不显示隐藏文件
[root@localhost data]# ls -a
. .. 1
#显示隐藏文件
[root@localhost data]# ls *
# *不包括.开头的
[root@localhost data]# ls .*
#包括了 .. 上层目录中的文件
[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:]]*
#显示大写字母
5、alias:临时修改别名
#临时修改别名
- alias 命令别名 = ’命令‘
[root@localhost dev]# alias myls="ls -alh"
- unalias 别名命令 删除别名
[root@localhost dev]# unalias myvim
[root@localhost dev]# myvim
bash: myvim: 未找到命令...
- \加别名命令 (显示原始命令)
- 永久修改 在/etc/.bashrc 会影响全部
- 永久修改 在 /root/.bashrc只影响当前用户
6、du(disk usage):查看当前所在文件夹的总磁盘占用量
#查看当前所在文件夹的总磁盘占用量
格式:
du [选项] [文件或目录… ]
- -a
#统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
- -s (Summarize )
#只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小
- -h
#人性化 显示
- -d 几(--max depth)
#只看第几层
du -d 1 /var
#只显示/var目录下的第一层子目录的空间占用情况
注意点:
- 注意-a -s无法同时使用
- du和ll看到的文件大小是有区别的
- du:所占磁盘大小(不足4k,按4k算)
- ll:文件真实大小
-
创建、复制、修改
7、mkdir(make directories):创建目录
#创建多个文件夹
格式:
mkdir [选项] 目录位置及名称…
- -p
#递归创建文件夹,没有文件夹,会自动递归创建
[root@localhost data]# mkdir -p aaa/bbb/cccc
# 递归创建文件夹 不需要aaa已存在 直接全部新建
- -v
#显示过程
8、touch:创建文件
- 文件名不存在,直接新建空文件
- 文件已存在,不会破坏已有文件,刷新时间
[root@localhost data]# touch 1 2 3
#创建新文件,或空的新文件
[root@localhost data]# ls
1 2 3
每个文件有三个时间戳:
-
access time 访问时间,atime,读取文件内容
-
modify time 修改时间,mtime,改变文件内容(数据)
-
change time 改变时间,ctime,元数据发生改变(元数据 文件大小 权限 )
9、硬链接文件ln(link)
同一个文件取不同的名或者叫多个名字(比如 苏轼 字子瞻 号东坡居士 苏二 谥号文忠 )不支持文件夹,创建一个链接数加一,多路径访问。
[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
#建立硬连接
#不能跨分区建立连接 无法对文件夹创建
10、软链接文件ln(link)
类似于windows里快捷方式,软链接,符号链接,会指向原来的文件(快捷方式)。
格式:
ln [-s] 源文件或目录… 链接文件或目标位置
加s是软连接 符号连接
ln -s /etc/passwd /mnt
#建立/etc/passwd 的软链接到 /mnt 目录
11、cp(copy):复制
#复制备份
格式:
cp [选项]… 源文件 目标
#相当改名复制 文件夹 文件相当于 改名字另存为
cp [选项]... 源文件... 文件夹
#多个源文件只能复制到文件夹
- -f
#强制复制
- -i
#有同名文件提醒覆盖
- -p
#保留权限递归复制
- -a
#更强大的保留权限
- -r
#保留权限递归复制 文件夹一定要加
[root@localhost data]#cp -r /etc/ ./etc.bak
#将 etc 复制 并改名为 etc.bak
[root@localhost data]#cp -r /etc/ ./etc.bak
#将 /etc 变成 etc.bak 的 子文件夹
cp -a /etc /opt/
#保留所有权限 包括软链接文件将/etc/ 文件夹 复制到 /opt/ 目录下
12、mv:移动
#移动
-
-f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;
-
-i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项);
-
-n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户;
-
-v:显示文件或目录的移动过程;
13、rm:删除
#删除
格式:
rm [选项] 要删除的文件或目录
-
-f、强制
-
-i、交互
-
-r 递归(删除目录需要)
14、shred:完全删除并添0
- -z 最后一次覆盖添加0,以隐藏覆盖操作
- -v 能够显示操作进度
- -u 覆盖后截断并删除文件
- -n 指定覆盖文件内容的次数(默认值是3次)
查找文件
15、find:查找文件
#查找文件
命令的特点:精确查找、实时查找、支持查找条件巨多
格式:
find 范围 查找的条件 处理动作
查找路径:指定具体目标路径;不指定为默认为当前目录
-f 普通
-d 目录
查找条件:可以对文件名、大小、类型、权限等标准进行查找;默认为找出指定路径下的所有文件
处理动作:对符合条件的文件做操作,默认输出至屏幕(print)
-print 打印
-delete 删除
-exec 连接符
-ls 长格式显示
find /boot/ -size +1M -name “vm*”
#找到/boot文件夹下大于1M 且名字已vm开头的文件
find -inum 123456 -delete
#找到 indoe号 为123456 的文件并且删除
16、which:查找命令
#查找 命令 的具体位置
which ls
#查找ls命令的具体位置
17、locate:快速查找陈年旧文件
- locate 查询系统上预建的文件索引数据库/ar/lib/mlocate/mlocate.db
- 索引的构建是在系统较为空闲时自动进行(周期性任务),执行updatedb可以更新数据库
- 索引构建过程需要遍历整个根文件系统,很消耗资源
- locate和updatedb命令来自于mlocate包