Linux命令行有命令提示符,提示你能够输入指令node
在linux之中用到最多的是两种用户linux
#:root 超级管理员shell
$:普通用户数据库
命令格式:缓存
指令 选项(修改命令的执行特性) 参数bash
脚本的名字 短选项 不组合必须有空格 若是组合了不能有空格 指定命令的做用对象网络
多个选项能够组合 -a -b = -ab 前面的指令选对谁长选项 一般不能组合 使用数据结构
Su 用户名 半切换app
Su –l 用户名 彻底切换less
命令类型
1.内部命令:(shell内置)内部
2.外部命令;在文件系统的某一个路径下有一个命令名称相应的可执行文件
一个可执行程序文件,必须有一个执行入口,二进制开头有一个特殊字符或几个字节很是独特标识,这个叫作程序的模数,模数能够标识这个二进制程序的执行格式,windos和linux执行模数是不同的,他们理解的二进制模数不太同样,即便二者库同样,程序也未必能相互运行
程序启动时 执行程序提交给内核 内核怎么区分脚本和程序呢 就是从模数区分,内核就去找程序的模数,因此一个程序的执行入口就是标识着模数和执行格式
目录:目录也是文件,是路径映射文件
路径:从指定起始点到目的地所通过的位置
文件系统 file system:层次化文件管理机制,一个一个分类分层 便于管理
ls –l 显示长格式信息 ls -long
(1)- |
(2)-rw------ |
(3)2 |
(4)root |
(5)root |
(6)1368 |
(7)11 |
(8)20 |
(9)22:01 |
(10)anacond-ks-cfg |
(1)- 文件类型
-:普通文件
d:文件目录
b:块设备文件(bolck)
c:字符设备文件
l:符号连接文件(软链接文件)
p;命令管道(pipe)
s:套接字文件(socket)
(2)-rw------
文件权限9位 每3位一组,每一组:rwx(读,写,执行)没有权限就用-表示
(3) 2 文件硬连接次数:原文件被调用次
(4)root文件的全部者(owner)
(5)root文件的所属组(group)
(6)1368 文件的大小(size)文件大小用byte来表示
时间戳(文件的被修改的时间)每一个文件都有三个时间戳
1访问access:被查看
2修改modify:改变了文件的内容
3改变change:改了文件的元数据,改变了文件名就是修改了元数据,改变了
元数据:就是用来定义数据的数据。好比,有一条学生信息记录,其中包括字段姓名(name)、年龄(age)、性别(male)、班级(class)等,那么name、age、male、class就是元数据。经过它们的描述,一条关于学生信息的数据记录就产生;
这里显示的是最近一次被修改的时间
(7)月份
(8)日期
(9)时间
(10)文件名
注:文件大小都用byte看着十分累人那么
-h 作单位转换
-a:显示以 . 开头的隐藏文件 linux系统隐藏文件以 . 开头
.:当前目录的隐藏文件
..:上级目录的隐藏文件
-A 显示隐藏文件 不包换.和.. 做为了解就好了
-d:显示目录自身属性 若是我在root文件夹里我要看这个文件夹的属性那么就用上d
每一个文件都有个节点号,这是计算机认识的语言 一个节点号就跟,名字同样表明一个文件
Ls –li:显示文件的索引节点号
-i:index node:索引节点
1615223204就是文件的索引节点,配合查找命令能够快速的查找到该文件,之后常常用
-R递归((recursive))显示文件:就是层层显示文件夹的全部东西
cd ~用户名: 进入指定用户的家目录
cd - :在当前目录和前一次所在的目录之间来回切换
mkdri –p:递归建立文件夹
-i:交互式提示
-f:不提示直接删除
-r:递归删除,删除目录的同时把目录中的文件都删除
格式: cp 原文件 目标地点
复制只能一个文件到一个文件
多个文件到一个目录
Cp –r|:递归复制
Cp –i:交互式询问是否删除或者覆盖
Cp –p:保留文件的属主属组和时间戳 很是有用
Cp –a:归档复制经常使用于备份 a把pr等选项所有包含在内了很是全面
格式: mv 原文件 目标地点
Mv /mnt/123 /mtp/223
意思就是把mnt目录下的123 移动到mtp目录下 并更名为223
mv:tmp/123 223
在同一个文件里了 把123更名为223
Linux内置环境变量,这样能够简化命令使用,要否则外置命令所有都以全路径操做会很是麻烦
(1)变量:变量其实就是内存,命名的内存空间。我在内存划出一部分空间而后命名,我就能够向起名的内存空间放数据,放数据的过程就变量赋值
Name=jay 在内存中找一部分空间起名叫name而空间中放的数据叫jay =就叫赋值,至关于一个抽屉 抽屉名字叫name 抽屉里的书叫jay
(2)变量生成的过程就是申请内存使用的过程
元数据就是用来定义数据的数据。好比,有一条学生信息记录,其中包括字段姓名(name)、年龄(age)、性别(male)、班级(class)等,那么name、age、male、class就是元数据。经过它们的描述,一条关于学生信息的数据记录就产生
堆栈是两种数据结构。堆栈都是一种数据项按序排列的数据结构 ,是分开说的
堆:申请内存访问的数据放在堆里
栈:本地变量和静态变量放在栈里
当中会有个PATH环境变量 这个使用:分开的路径当咱们执行命令的时候 PATH会按次序一个一个去找可执行命令,直到找到为止
第一次会去环境变量下的PATH路径里去找,下次在使用命令 直接去缓存中找,而不用环境变量中一个一个找路径,
指令一种是去路径中找,一种从缓存中找。
缓存是实现系统加速的 从缓存中找数据必定会比直接找路径或者文件系统中速度快吗
缓存中保存的是hash列表 也叫哈希,哈希是个键值数据库 ,在键值库中查找的速度基本能够达到o(1)的速度
o(1):衡量一个程序执行速度的标准,从一个列表中查找一个数据的速度随着列表长度变化而发生变化的比例。不管列表有多长花费的时间是同样的 从10个数据中找 仍是从10万的数据中找 花费的时间是同样的。Hash速度是o(1)的不管数据再多瞬间就能够找到,缓存中存放的有hash列表 因此缓存中找的速度比路径或者文件系统中找快的不止一倍。
rtc:硬件时间Real-Time Clock 每次开机操做系统都会读取硬件时间设置为当前时间
ntp:网络时间协议 Network Time Protocol
linux开机会经过rtc读取当前时间 一但读取成功就不会再次使用,内核会经过软件的方式模拟振荡器在系统内部维持一个时钟,因此操做系统有2个时间 一个系统时钟 一个硬件时钟 内核在cup的做用下会自动计时
date +%Y%m%d :以YYYYmmdd格式显示时间
date +%F :显示日期
%H:小时
%M:分钟
%S:秒钟
date +%F-%H-%M-%S:显示当前的 年,月,日,小时,分钟,秒钟
-w:将系统时间写到硬件中 以系统为准
-s:将硬件时间写到系统中 以硬件为准
echo –e “文字。。。\n文字” :把输入的文字以两行多看 \n为分割文字段落点
切记:必定要加双引号
Linux文本一行结束后头是$符,而windos一行结束后是$加空格
-n:显示行号
-e:显示行与行的段符
Enter 向下n行,须要定义。默认为1行
F 键: 向下滚动一屏
B 键: 返回上一屏
q:退出
head –n :后面加须要显示多少行
tail –n :后面加须要显示多少行
tail –f :查看文件尾部不退出随时更新文件新添加的内容,用于查看日志等随时更新的文件
-d:指定字段分隔符,默认空格
-f:指定要显示的字段
案例:root:x:0:0:root:/root:/bin/passwd
Cut -d : 默认分隔符: 从有:的地方切开显示 –f 1 切开后只显示第一段
因此 cut –d : -f 1 显示出来的只有root
-n:数值排序,按照数值的大小排序
-r:降序排序
-t:指定字段分隔符
-k:以哪一个字段为关键字进行排序 分隔符隔开不少字段 哪一个字段进行排序后面跟数字
-u:除去文件的中出现的重复行
-c:显示文件中行重复的次数
-d:只显示重复行
Tr “本来的文字” “想要替换的文字” < /须要替换的文本
例:tr “a-b” “A-B” < /etc/passwd
Tr转换 把passwd文本里的 小写ab转换成大写AB,
-表示到: A到B “A-Z“ A到Z全部的,
例:Tr –d:“a-c”< /etc/passwd
删除passwd文件中a到c字符集的全部字符 删除内容a b c
:输入重定向
Wc /etc/passwd
21 27 928/etc/passwd
三个数字分别为:21行 27个单词 928个字节 只适用于文本
Wc –l:只显示行数 也能够跟管道符一块儿用 显示文件夹下有多少文件 例如
ll /etc|wc –l :ll显示etc下全部文件夹 用wc统计出来
Wc –w:只显示单词数
光标跳转:
Ctrl+a :跳转到行首
Ctrl+e :跳转到行位
Ctrl+d:删除光标所在文字
Ctrl+u:删除光标至命令行首内容
Ctrl+k:删除光标至命令行尾内容
Ctrl+箭头:快速移动一个单词
Ctrl+l:清除屏幕全部文件
history -d(数字):后面跟数字 指定删除某一条历史命令
history -c:清空全部历史命令
!!:执行上一条命令
例如:touch /mnt/$(date +%F).log
建立一个文件夹 在mnt下 date+%F是一个命令 显示结果为当前日期时间2018-01-24 使用命令替换 $(命令)后 直接替换成命令的执行结果 因此生成的文件就是 /mnt/2018-01-24.log
一、``(反引号):命令替换
二、’’(单引号):强引用不完成变量替换
三、””(双引号):弱引用,能够实现变量替换
*:匹配任意长度的任意字符
?:任意单个字符
[]:匹配指定范围内的单个字符
[a-z] [0-9]
> : 覆盖输出 直接覆盖掉原文件内的全部内容
>>:追加输出 保留文件原内容 在向文件里新增新内容
Set –C:进制对已存在文件使用覆盖重定向
Set +C:关闭上述功能
2>:重定向错误输出
2>>:追加输出
&> 重定向标准和错误输出至同一个文件
<:输入重定向
<<:输出追加
例:cat/etc/passwd |grep 123 grep是查找指令
查看cat/etc/passwd 里面的内容 把结果交给 第二个指令grep 由第二个指令去查找文件里面含有123的内容 输出到屏幕
-a或--append :附加到既有文件的后面,而非覆盖它
后续会在更新