Linux
vim vi 编辑器
sudo apt-get install vim 安装vim
编辑模式 vi文件 先进入命令模式 然后进入i o a s 进入编辑模式
按键 | 作用 |
---|---|
i | 在光标所在位置插入元素 |
o | 在光标的下一行输入 |
esc | 回到命令模式 |
a | 在光标的下一位置输入内容 |
s | 先删除光标位置所在字符 |
S | 删除光标所在行 然后输入 |
I | 在光标所在行的行首输入 |
A | 在光标所在行的行尾输入 |
命令模式
按键 | 说明 |
---|---|
h | 向左移动一个字符 |
j | 向下 |
k | 上 |
l | 右 |
yy | 复制一行 |
p | 粘贴 |
np | 粘贴n行 |
nyy | 复制n行 (如果不足n行 有多少复制多少行) |
dd | 删除一行 |
ndd | 删除n行 |
gg 或( | 回到第一行 |
GG或 ) | 回到最后一行 |
u | 撤销上一次的操作 |
. | 重复上一次的操作 |
编辑模式完成之后 先回到命令模式 然后进入底部命令模式
底部命令模式
命令 | 说明 |
---|---|
:w | 保存不退出 |
:q | 不保存 退出 |
:wq | 保存退出 |
:wq! | 强制保存退出 |
:x | 保存退出 |
:set nu | 设置行号 |
:行号 | 定位到所在的行 |
/内容 回车 | 查找文章中的目标内容 n 下一个 从上向下 |
?内容 回车 | 查找文章中的目标内容 n 下一个 从下向上 |
:s/要查找的字符串/要替换的内容 | 将指定的内容替换成新的内容 但是 只是替换光标所在的行 多个制定的内容只是替换一个 |
:s/要查找的字符串/要替换的内容/g | 将指定的内容替换成新的内容 但是 只是替换光标所在的行 多个制定的内容全部替换y |
:%s/要查找的字符串/要替换的内容 | 将指定的内容替换成新的内容 替换所有的行 多行制定的内容只是替换第一个 |
:%s/要查找的字符串/要替换的内容/g | 将指定的内容替换成新的内容 替换所有的行 多行制定的内容全部替换 |
特殊符号需要转义(: / 等) | :%s/http\:\/\/www.baidu.com\/1.html/https\:\/\/www.so.com\/1.py |
网络管理
ifconfig
ens33 Link encap:Ethernet(以太网) HWaddr(硬件地址) 00:0c:29:34:b8:5d
inet addr(ipv4 IP地址):10.8.152.115 Bcast(广播):10.8.152.255 Mask(掩码):255.255.255.0
inet6 addr(ipv6 IP地址): fe80::babd:b6e0:ed56:b141/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric(跃点数):1
RX packets(接收数据包):192056 errors:0 dropped(丢弃):0 overruns(过载):0 frame(帧数):0
TX packets(发送数据包):8105 errors:0 dropped:0 overruns:0 carrier:0
collisions(碰撞):0 txqueuelen(发送队列长度):1000
RX bytes(接收字节):56360578 (56.3 MB) TX bytes(发送字节):673758 (673.7 KB)
lo Link encap:Local Loopback(本地回环)
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:254 errors:0 dropped:0 overruns:0 frame:0
TX packets:254 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:21090 (21.0 KB) TX bytes:21090 (21.0 KB)
enp0s33 虚拟机的网卡名称
inet ipv4 ip地址
网关
子网掩码
接收数据包:358 错误:0 表示网络正常通信
接收数据包:0 错误:358 网络连接失败
ifconfig enp0s33 查看指定网卡的信息
ifconfig enp0s33 up 启动网卡
ifconfig enp0s33 down 关闭网卡
重启网络服务:
cai@hello-world:/etc$ service networking
Usage: /etc/init.d/networking {start|stop|reload|restart|force-reload}
service networking restart|start|stop
/etc/init.d/networking restart|start|stop
ping
ping -c 20 www.baidu.com 指定ping20次
ping -b www.baidu.com 测试网关 到百度的连通情况
netstat查看网络连接状况
-a 显示所有
-t tcp协议 记录通过tcp协议连接过来的
cai@hello-world:/etc$ netstat -t
tcp 0 0 10.8.152.115:ssh 10.8.152.10:62657 ESTABLISHED
-u udp协议 记录通过udp协议链接过来的
-n 显示端口号
-p 显示进程
/home# sudo netstat -nt 显示所有的tcp链接
/home$ sudo netstat -nt | grep 22
cai@hello-world:~$ sudo netstat -nt | grep 22
tcp 0 0 10.8.152.115:22 10.8.152.10:62657 ESTABLISH
进程管理 类似于 widow的任务管理器
ps process status简称 查看当前系统进程状态
参数:
-a 显示所有的进程
-u 用户的进程
-x 跟a配合使用 显示详细的信息
cai@hello-world:~$ ps -aux(显示所有用户进程的详细信息)
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.5 119616 5708 ? Ss 18:18 0:02 /sbin/init
cai 1602 0.0 0.3 94892 3508 ? R 18:18 0:00 sshd: cai@p
ps -u root | more -10 显示root用户的进程 每一页显示10条
ps -aux | grep ssh #显示正在内存中的程序 匹配ssh
USER PID %CPU %MEM
用户 进程号 该进程占用了多少cpu 该cpu占用了多少内存
tty 近程的控制终端
? 表示 不是通过终端进来的
pts 远程过来的
先用 ps -aux | grep 查看对应的 pid
杀死进程 : kill -9 pid 进程号
所有相关的进程 全部干掉 (结束虚拟机所有进程,xshell会与虚拟机断开链接)
killall -TERM sshd 不用关心具体的进程号是多少 进程相关的全部干掉
(结束所有的进程 ssh也会断开连接 需要在虚拟机重新启用服务 然后xshell才能与虚拟机连接)
cai@hello-world:~$ sudo service ssh start (开启ssh协议)
top任务管理器中的性能
top 显示虚拟机所有运行情况
主要查看 cpu 内存利用率 以及负载等
top - 21:18:59(当前时间) up 1:48(系统运行了时间), 2 users(使用者), load average: 0.00, 0.01, 0.02 (系统的负载 每一分钟 每五分钟 每十五分钟
单核 这个值不能超过1 压力越大 这个值越接近于1
双核 不能超过2 )
Tasks: 222 total, 1 running, 221 sleeping, 0 stopped(没有停止的进程 ), 0 zombie
%Cpu(s): 3.7 us, 1.3 sy, 0.0 ni, 95.0 id, 0.0 wa, 0.0 hi, 0.0 si,
KiB Mem : 985848 total, 107772 free, 635756 used, 242320 buff/ca
KiB Swap: 1046524 total, 1008892 free, 37632 used. 156620 avail M
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+
2050 cai 20 0 1258120 150260 39088 S 3.0 15.2 4:23.37
1021 root 20 0 543368 112452 17348 S 0.7 11.4 1:00.90
3102 cai 20 0 94892 3416 2480 S 0.3 0.3 0:00.15
3119 cai 20 0 48868 3684 3028 R 0.3 0.4 0:00.39
1 root 20 0 185368 4728 3212 S 0.0 0.5 0:02.80
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01
htop
动态显示系统进程
首先要安装软件:sudo apt-get install htop
htop 可以直接手动选择 然后f9 kill掉
登陆状态
uname -r 内核版本号
cai@hello-world:~$ uname -r
4.13.0-45-generic
-v 系统的版本号
cai@hello-world:~$ uname -v
#50~16.04.1-Ubuntu SMP Wed May 30 11:18:27 UTC 2018
-a 显示系统的所有信息
cai@hello-world:~$ uname -a
Linux hello-world 4.13.0-45-generic #50~16.04.1-Ubuntu SMP Wed May 30 11:18:27 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
hostname 获得主机名
sudo hostname 新名字 (设置主机名)
永久的设置主机名:
sudo vim /etc/hostname
whoami :查看当前登陆的用户
who :查看终端 及远程 用户谁登陆 什么方式
cai tty7(控制终端) 2018-07-23 19:46 (:0)
cai pts/4(远程) 2018-07-23 19:50 (10.8.152.10)
w :查看用户登陆信息 及负载
cai@hello-world:~$ w
20:02:05 up 1:43, 2 users, load average: 0.03, 0.04, 0.06
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
cai tty7 :0 19:46 2:27m 24.29s 0.17s /sbin/upstart
cai pts/4 10.8.152.10 19:50 1.00s 0.06s 0.00s w
last 查看最近登陆用户的信息
last -10 查看最近的10个登陆的用户信息
Linux的启动级别
电源---》 加电自检 ---》读取mbr引导分区---》加载Linux内核---》加载Linux进程---》系统初始化----》看到画面
-
cai@hello-world:/etc/init$ cat rc-sysinit.conf (rc-sysinit.conf 在init文件中)
-
vim /etc/rc-sysinit.conf 设置启动级别
-
env DEFAULT_RUNLEVEL=2 (更改默认值 改变虚拟机的开机启动级别)
Ubuntu(默认启动级别2) | Redhat(默认启动级别3) | |
---|---|---|
0 | 关机 | 关机 |
1 | 单用户模式 以root的身份开启一个虚拟控制台 主要用来 管理系统用 | 单用户模式 |
2 | 带显示管理的GUI 完整多用户模式 | 多用户模式 但是没网络 |
3 | 带显示管理的GUI 完整多用户模式 | 完整多用户模式 |
4 | 带显示管理的GUI 完整多用户模式 | 留给用户自定义 |
5 | 带显示管理的GUI 完整多用户模式 | 图形界面模式 从命令行切换到 图形界面 |
6 | 重启 | 重启 |
切换root根目录
/etc/init/$ sudo passwd root (设置root密码)
enter new unix password
然后切换 su root
Linux定时任务 人工不干预
js中的定时任务
超时 间歇调用
注意 注意 注意
首先要看自己的定时服务打开了没有:
ps -aux | grep cron
要是没有打开要先打开:
service cron start|stop|restart (开启 停止 重新打开)
第一种:修改配置文件
vim /etc/crontab
分 时 日 月 周 用户 命令
(m h dom mon dow user command)
例:cai@hello-world:/$ sudo vim /etc/crontab
23 22 23 7 1 cai echo '你好吗啊啊啊啊' >> /1.txt(在根目录文件夹1.txt中追加内容 你好吗啊啊啊啊 )
注意::::目录文件必须是绝对路径
第二种:crontab 命令 (脚本编辑)
crontab -l 列出所有的定时任务 看不到配置文件中的定时任务
crontab -e 新增计划任务 跟上面的区别在于 没有用户名
分 时 日 周 命令
root@hello-world:/# crontab -e(打开)
# m h dom mon dow command
分 时 日 月 周 命令
35 22 23 7 1 echo 'ninininihao好' >> /1.txt
root@hello-world:/# cat 1.txt (查看详情)
123456
i love YOu
好气啊》》》》
你好吗啊啊啊啊
ninininihao好
crontab -r 清空计划任务
压缩 解压缩
windows 常见的压缩包 rar zip 7zip iso
Linux 压缩包 zip gz bz2 tar
gz的压缩与解压缩
gizp 文件名
gizp
bz2的压缩于解压缩
tar 打包
tar
-c 打包
-v 可视化
-f 指定的文件名
-t 查看包里的内容
-x 解包
-z 以gzip压缩 解压缩
-j 以bzip2压缩 解压缩
tar -cvf kang.tar 1.txt 2.txt (把1,2文件打包)
tar -cvf kang.tar 1.txt 2.txt (把1,2文件解包)
gz:
tar -zcvf kang.tar.gz 1.txt 2.txt (打包 并压缩)
tar -zxvf kang.tar.gz (解包 并解压缩)
bz2
tar -jcvf kang.tar.bz2 1.txt 2.txt (打包并压缩)
tar -jxvf kang.tar.bz2 (解包 并解压缩)
xz
tar -Jcvf kang.tar.xz 1.txt 2.txt 打包并压缩
tar -Jxvf kang.tar.xz (解包 并解压缩)
zip unzip
软件安装
-
apt-get
-
解决dpkg 的顺序关系 依赖关系
sudo apt-catch showsrc 包名 sudo apt-get resource 包名
-
-
dpkg 安装 debian
dpkg -l | grep zip 查看已经安装的保护那zip的安装包 depk -i 安装包 安装 -r 卸载 -p 卸载软件的同时 将配置信息一起删除