vim新建和编辑文件
输出重定向:> >>
nl 显示行号 输出文件的内容 并且编号
number lines of files 等于cat -n
一个简单脚本 涉及到重定向和eof输入
先察看一下
然后再执行
top 动态的显示cpu和内存、进程的信息,查看系统负载 按q退出
cat是一股脑把所有内容都展示给你
linux内存详解
内核进程空间可以随意访问用户空间
用户空间不能访问内核空间
free -m 以兆的形式显示
cat命令 不消耗cpu 消耗内存
缓存:临时存放数据的地方
文件从磁盘里面读取出来,然后放入缓存空间,从cahce空间拿出,然后输出到屏幕上
buff/cache 临时用来存放数据
一般来说,都是参考free是否还有空间
清除缓存
清楚缓存后,资源释放
cat读大文件(这个文件的大小比内存还大)的危害:
消耗的cpu不是特别多,
内存的消耗确实是慢慢增多,时间久了会导致比较多的内存
大量的文本内容需要读取到内存里
free没有了,就默认没有空间了
面试题:如何优化内存?
需要显示行号怎么办 加入管道符号
| 管道符号 将前面一个命令的输出送给后面的一个命令作为输入
将两个功能进行合并
管道符号:本质是实现了进程与进程之间的通信
读取并进行编号
head tail
想查看这个文件前十行和后10行
wc统计文件有多少行 ,单词,字节
-l – lines 行数
head默认取前十行
head取前
取尾10行
取尾10行并查看行数
head取前5行
tail取最后三行
取文件的第5行到第十行
取文件只取第八行
tail - f 动态监控某个文件
一直盯着这个文件的末尾查看,一旦有内容往文件里写入,马上就可以看到
对于空文件 末尾没有东西 就只有空的光标
想往文件末尾追加点东西 右键点击虚拟机 然后复制会话
把一个文件追加到另外一个文件
另外开一个终端,使用重定想追加内容到
追加3次
按ctrl+c强行终止
tail-f 未来我们会监控一些日志文件 看日志文件的变化
日志:电脑里的程序记录当时发生的事情到一个文件里
日志文件:记录日志的文件,会记录时间、程序、发生的事情
tail -n+2 文件从第二行读到末尾
不写+号
只读最后两行
df查看磁盘的使用情况
df -Th 查看磁盘分区的挂载使用
挂载:相当于windows里的移动硬盘连接到系统里,系统给它分配一个盘符,这个我们就可以去使用移动硬盘里的数据了
windows里喜欢叫盘 linux里喜欢叫分区
sed history
查看一共有多少行
展示前5行
如果不接的话 是前10行
末尾10行 和末尾3行
w 命令是一个在linux系统中用来显示
当前登录用户及这些用户正在做什么的命令。
新浪面试题: 查看10-20行 取连续的行 使用head和tail
sed可以显示不连续的行
awk也可以显示不连续的行
不连续用分号
p 是print的意思
连续的用逗号
sed是linux文本替换和处理的命令
-n 不显示不符合条件的行数
history 查看历史命令 你累计使用了多少命令
!620 去执行第620条历史命令
history -c 清除历史命令
clear 清除命令
!+数字 再现命令的原因:命令较长,有出错风险,偷懒用的,确保程序的运行的安全性、提升效率
!+命令
这个地方有三条 !+命令,执行最近的一条命令,也就是最后一条
service sshd restart
服务器重启
重现命令 写出命令一部分就可以了 他会去找以ser开头的命令
上下方向键一样作用 调出历史命令
在linux里面执行的命令都是放在内存里面的
linux里面最多可以保存多少条命令——保留最近的1000条
查看环境变量
HISTSIZE=1000 >指明历史命令最多可以保留1000条
1 1—1000
2 1001
51 1050
history | more 分页显示 历史数据
HISTSIZE的值可以改变,但是临时有效,如果想要长久有效,必须修改成文件
保存的命令越多 占用内存越多
1kb=1024字节
linux里面的计算器 bc
20个字符串 一个英文字符占1个字节 2000条数据
2012000/1024 =39k
yum Install bc -y bc是linux里面的计算器
按bc进入计算器 按quit退出 按q显示0 按ctrl+c 也可以退出
数组 容器
如果修改数量的文件 能够永久保存
按字母键 i
按esc 退出并保存
然后去执行这个命令 发现配置没有立马执行
grep是文本过滤的命令
上文的意思是 有his的 全部过滤显示出来 没有his的不过滤显示
sed也可以过滤
linux文本处理三剑客
1.grep 文本过滤
2.sed 文本替换
3.awk 文本截取
按i开始输入
整行输出
用sed去改文本文件里的内容 曾琪雷改成胡琪雷
截取里面的字段 例如:截取第2个字段
从第二行显示到末尾
截取第二个字段
w
linux’中的w是什么意思
该命令将列出所有当前登录的用户一级他们相关联的信息
w命令是一个在linux系统中用来显示当前登录用户及这些用户正在做什么的命令。它同时也能显示系统运行时长,当前系统时间和系统平均负载情况。
w命令选项介绍
逐步过滤
更改完配置后,不会立刻生效,需要重启or刷新服务
比如 重新登陆 su - root 用户重新登陆 会加载新的变量的值
reboot 重启服务系统 不过不推荐 没有人会把正在使用的系统重启 会耽误其他进程
source/etc/profile 推荐使用
source在当前进程执行
bash在子进程里执行
历史命令
.bash_history 文件介绍
为什么清楚了,历史命令就没了,但是重新登陆后,历史命令又会重现
文件是保存在用户的加目录下的,里面保存的是这个用户上次登录linux系统的时候,使用过的命令
用强哥用户去登陆系统
pwd print working directory打印工作目录的缩写
功能是显示用户所处的当前目录的绝对路径
ls常用参数
-a:显示隐藏文件
-l:列表方式显示信息
-h:显示文件大小
alh没有顺序要求,可以lah,alh,hal任意搭配
ls 显示不被隐藏的所有文件与文件夹
ls -a 显示当前目录下的所有文件及文件夹,其中包括所有被隐藏的文件和文件夹
ls -l 显示不被隐藏的所有文件与文件夹的详细信息,并成列表显示
ls -al 显示的所有文件与文件夹的详细信息,包括所有被隐藏的文件和文件夹,并成列表显示
你使用一个用户登陆期间,所写的命令都是该用户的,
退出用户登录之后,用户的命令都写进了一个。bash_history文件
用户登录之后,都读取出来
history-c 清除 内存
类似文件追加 并没有实现空白上覆盖
删除文件可以实现
进入日志文件
你想去删除某些东西不太可能,你只是个普通用户
但是如果只是删除bash。history,这个是可以的 删除保存历史命令的文件
which
查找类的命令
可执行文件 mkdir vim touch
指明cp在哪个文件夹
指明mkdir放在哪个文件夹
进入文件夹 查看信息
进入这种文件夹
只要是显示绿色的 就是可执行文件
浅蓝色 链接文件
bin binary 二进制 0 1
一般的linux命令都是二进制文件,而且都是可以运行的
自定义文件 不会出现在这个路径里面
path变量
which命令去linux系统里查找命令的时候,会固定到某些文件夹里去寻找
会从path变量定义的路径里,
从左边第一个文件夹可以查找,如果找不到,
就往下走,如果没有找到,往第二个文件夹里查找,以此类推
env:环境变量 适用于查看或设置当前用户环境变量信息的一个工具
可以列出系统中所有环境变量及其赋值
查看env
*
例子:自己写一个c语言程序,然后放进path里面去
按回车进入 按i进行书写 这里不是shell编程 是c语言编程
先写一段c语言的代码
输入
:wq
这样退出
安装编译器gcc
yum Install gcc -y
必须在root用户下才有安装权限 需要切换到root’用户下
普通用户没有安装的权限
怎么切换到root用户
su root
普通用户登录是$ root用户是#
编译器:将c语言的代码翻译成机器可以认识的语言(二进制)
gcc -o hello hello.c 将hello.c这个文件,编译成hello这个二进制文件
绿色文件代表可执行文件
为什么二进制文件执行后,在目录里面仍然找不到
因为根据前文提示,你的文件在sc这个文件夹
现在将文件复制到user/bin这个文件夹
linux找文件,是去对应的固定的path文件夹去找的
我们自己编写的程序,要想让linux系统知道,该怎么处理
答案:将你的程序复制到path变量指定的文件夹下就可以了
根目录文件的显示,跟在哪个路径下没有关系,都是一样可以查找到文件的存在
注意看,此处ls下面并没有bin目录,我们此处的mv 实际上是新创建文件夹
在mv命令中,存在的话,就改名字,不存在的话,就去新建
新建文件已经有了怎么办 给它改名字
我们在找linux文件的时候,一般默认的是在path目录里面去找,
但是我们书写的文件,不是放在path目录的,
所以我们需要把文件改变路径
当path变量没有相关路径的时候,我们就去改变path变量
在shell变成里面,等号左右是不能有空格的
目前展示的sc,都是一次性的,path一直都是它默认的形式,会发生一次性改变
为什么echo可以找到
shell内部命令和外部命令
内部命令
**
如果想要永久有效,需要修改配置文件
在文件第一行配置信息,使得永久有效 ,对任何用户都生效,都知道你的程序安装路径
作业练习: