Linux
Vim
vim 文件路径 # 进入normal
vimtutor # 基础教程
normal模式
光标移动
hjkl # 左下上右
w # 下一个单词开头
b # 本单词或者上一个单词开头
e # 本单词或下一单词结尾
0 # 光标移动到所在行的行首
^ # 行首开始第一个非空字符
$ # 光标移动到所在行的行尾
gg # 第一行
G # 最后一行
f{char} # 跳到下一个 char 的位置
F{char} # 跳掉上一个的 char 的位置
t{char} # 跳到下一个 char 的前一个位置
T{char} # 跳掉上一个的 char 的前一个位置
; # 重复上一个查找操作,向后找
, # 重复上一个查找操作, 向前找
% # 光标在 各种括号 上时,可以进行跳转到匹配处
[num] G # 跳转到对应行
ctrl o # 跳转到老位置
ctrl i # 跳转到新的位置
Ctrl + f # 往下翻一页
Ctrl + b # 往上翻一页
ctrl e # 向下滚动一行
ctrl y # 向上滚动一行
操作符
d # 删除,带剪切
c # 修改,带剪切
y # 复制
v # 进入 visual 模式
s # 删除当前字符并进入 insert 模式
S + '{' # 可以给选中部分两边加符号
dd # 删除一行
d [num] motion
D # 等效于 d$
cc # 修改一行,会先删除并进入插入模式
c [num] motion
C # 等效于 c$, 删除光标处到行末,并进入插入模式
I # ^i
A # $a
yy # 复制一行
2dd # 删除2行
dfs # 删除到 s 的位置
dw
d$
d^
die / cie # 整个文件
zz # 视角变化到光标当前行到屏幕中央
. # 重复上次修改操作
动作
与操作符配合
iw / aw
i( / a(
i{ / a{
i" / a"
i' / a'
i< / a<
i[ / a[
it / at # html 里用
其他
p # 复制
u # 撤销
U # 撤销对整行的修改
ctrl r # 重做被撤销的命令,撤销撤销的命令
x # 删除一个字符
r{char} # 改变一个字符
. # 重复上次的修改操作
# 大小写切换, 也可以在选中模式下用 u / U
~ # 改变一个字符大小写
3~
g~~
gUU
guu
gUiw
guiw
gd # 跳转到函数定义
gh # holder
gt / gT # 切换标签页,
ctrl 0
ctrl 1
ctrl g # 查看文件状态
visual 模式
选中模式
viw # 选中一个单词
viwd # 删除选中的单词
insert 模式
进入插入模式:
退出插入模式:Esc
ctrl o # 插入-普通模式,可以在插入模式下输入一次普通模式的指令
: 模式
normal 模式下按 :
或 /
:wq # 保存文件并退出
:q # 不保存文件,并退出,如果文件做了修改,但有不想保存,需要用:q!
:q! # 不保存文件,强制退出
:w # 只保存文件,但是不退出vi,可以切换到输入模式下面继续编辑文件
:w {file_name} # 写入一个新的文件
:set nu # 显示行号
/{string} # 向后搜索字符串,n 向前,N 向后
?{string} # 向前搜索字符串
:set ic # 搜索后用此命令可以忽略大小写,ignore case
:set hls is # hls 高亮搜索, is 显示部分匹配, hl search, incsearch
:set noic # 关闭选项, nohls, nois
:s/old/new # 本行中第一个 old 替换为 new
:s/old/new/g # 在本行中所有 old 替换为 new
:#,#s/old/new/g # # 和 # 表示行号
:%s/old/new/g # 替换整个文件的 old
:%s/old/new/gc # 替换整个文件的 old,并且会每个进行询问
:!ls # :! 后输入外部命令
:r filename # 把文件中的内容写到光标处
:r !ls # 也可以把命令的输出写到光标处
:help
# 创建启动脚本
修改 apt 源服务器
- 以root账号登录,或者后续命令前面加
sudo
以root执行
- 执行命令
cd /etc/apt
进入到目录 /etc/apt
下
- 执行命令
cp sources.list sources.list.bak
先创建备份文件,这样万一改错,可以有备份文件恢复
- 执行
vi sources.list
打开文件, 准备把域名从从 cn.archive.ubuntu.com
替换为 mirrors.aliyun.com
- 按 冒号,进入底行模式,输入命令
1,$s/cn.archive.ubuntu.com/mirrors.aliyun.com/g
进行替换
- 确认一下域名修改正确后,输入
:wq
保存退出。
- 执行命令
apt update
, 让修改生效
连接远程主机
SSH
断开连接:Ctrl + D
SCP
把远程的文件复制到本地
把本地的文件复制到远程主机上
把远程的目录复制到本地
scp -r user@ip:path1 path2
其他
sort -nk 6 // -n 表示按照数字排序,-k 表示排序第几列输出
head -n 100 // 前 100 行
uniq -c // -c 统计
手册
CodeSheep
关机/重启/注销
常用命令 |
作用 |
shutdown -h now |
即刻关机 |
shutdown -h 10 |
10分钟后关机 |
shutdown -h 11:00 |
11:00关机 |
shutdown -h +10 |
预定时间关机(10分钟后) |
shutdown -c |
取消指定时间关机 |
shutdown -r now |
重启 |
shutdown -r 10 |
10分钟之后重启 |
shutdown -r 11:00 |
定时重启 |
reboot |
重启 |
init 6 |
重启 |
init 0 |
⽴刻关机 |
telinit 0 |
关机 |
poweroff |
⽴刻关机 |
halt |
关机 |
sync |
buff数据同步到磁盘 |
logout |
退出登录Shell |
系统信息和性能查看
常用命令 |
作用 |
uname -a |
查看内核/OS/CPU信息 |
uname -r |
查看内核版本 |
uname -m |
查看处理器架构 |
arch |
查看处理器架构 |
hostname |
查看计算机名 |
who |
显示当前登录系统的⽤户 |
who am i |
显示登录时的⽤户名 |
whoami |
显示当前⽤户名 |
cat /proc/version |
查看linux版本信息 |
cat /proc/cpuinfo |
查看CPU信息 |
cat /proc/interrupts |
查看中断 |
cat /proc/loadavg |
查看系统负载 |
uptime |
查看系统运⾏时间、⽤户数、负载 |
env |
查看系统的环境变量 |
lsusb -tv |
查看系统USB设备信息 |
lspci -tv |
查看系统PCI设备信息 |
lsmod |
查看已加载的系统模块 |
grep MemTotal /proc/meminfo |
查看内存总量 |
grep MemFree /proc/meminfo |
查看空闲内存量 |
free -m |
查看内存⽤量和交换区⽤量 |
date |
显示系统⽇期时间 |
cal 2021 |
显示2021⽇历表 |
top |
动态显示cpu/内存/进程等情况 |
vmstat 1 20 |
每1秒采⼀次系统状态,采20次 |
iostat |
查看io读写/cpu使⽤情况 |
查看io读写/cpu使⽤情况 |
查询cpu使⽤情况(1秒⼀次,共10次) |
sar -d 1 10 |
查询磁盘性能 |
磁盘和分区
常用命令 |
作用 |
fdisk -l |
查看所有磁盘分区 |
swapon -s |
查看所有交换分区 |
df -h |
查看磁盘使⽤情况及挂载点 |
df -hl |
同上 |
du -sh /dir |
查看指定某个⽬录的⼤⼩ |
du -sk * | sort -rn |
从⾼到低依次显示⽂件和⽬录⼤⼩ |
mount /dev/hda2 /mnt/hda2 |
挂载hda2盘 |
mount -t ntfs /dev/sdc1 /mnt/usbhd1 |
指定⽂件系统类型挂载(如ntfs) |
mount -o loop xxx.iso /mnt/cdrom |
挂 载 iso ⽂ 件 |
umount -v /dev/sda1 |
通过设备名卸载 |
umount -v /mnt/mymnt |
通过挂载点卸载 |
fuser -km /mnt/hda1 |
强制卸载(慎⽤) |
⽤户和⽤户组
常用命令 |
作用 |
useradd codesheep |
创建⽤户(没有用户目录,密码) |
userdel -r codesheep |
删除⽤户 |
usermod -g group_name user_name |
修改⽤户的组 |
usermod -aG group_name user_name |
将⽤户添加到组 |
usermod -s /bin/ksh -d /home/codepig –g dev codesheep |
修改⽤户codesheep的登录Shell、主⽬录以及⽤户组 |
groups test |
查看test⽤户所在的组 |
groupadd group_name |
创建⽤户组 |
groupdel group_name |
删除⽤户组 |
groupmod -n new_name old_name |
重命名⽤户组 |
su - user_name |
su - user_name |
passwd |
修改⼝令 |
passwd codesheep |
修改某⽤户的⼝令 |
w |
查看活动⽤户 |
id codesheep |
查看指定⽤户codesheep信息 |
last |
查看⽤户登录⽇志 |
crontab -l |
查看当前⽤户的计划任务 |
cut -d: -f1 /etc/passwd |
查看系统所有⽤户 |
cut -d: -f1 /etc/group |
查看系统所有组 |
⽹络和进程管理
常用命令 |
作用 |
ifconfig |
查看⽹络接⼝属性 |
ifconfig eth0 |
查看某⽹卡的配置 |
route -n |
查看路由表 |
netstat -lntp |
查看所有监听端⼝ |
netstat -antp |
查看已经建⽴的TCP连接 |
netstat -lutp |
查看TCP/UDP的状态信息 |
ifup eth0 |
启⽤eth0⽹络设备 |
ifdown eth0 |
禁⽤eth0⽹络设备 |
iptables -L |
查看iptables规则 |
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 |
配置ip地址 |
dhclient eth0 |
以dhcp模式启⽤eth0 |
route add -net 0/0 gw Gateway_IP |
配置默认⽹关 |
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 |
配置静态路由到达⽹络'192.168.0.0/16' |
route del 0/0 gw Gateway_IP |
删除静态路由 |
hostname |
查看主机名 |
host www.baidu.com |
解析主机名 |
nslookup www.baidu.com |
查询DNS记录,查看域名解析是否正常 |
ps -ef |
查看所有进程 -f:详细信息 -e:所有正在运行的进程 |
ps -ef | grep codesheep |
过滤出你需要的进程 |
kill -s name |
kill指定名称的进程 |
kill -s pid |
kill指定pid的进程 |
kill -9 pid |
kill进程 |
top |
实时显示进程状态 |
top -d pid |
实时显示某进程状态 |
vmstat 1 20 |
每1秒采⼀次系统状态,采20次 |
iostat |
iostat |
sar -u 1 10 |
查询cpu使⽤情况(1秒⼀次,共10次) |
sar -d 1 10 |
查询磁盘性能 |
nohup python3 test.py |
no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行 |
常⻅系统服务命令
常用命令 |
作用 |
chkconfig --list |
列出系统服务 |
service <服务名> status |
查看某个服务 |
service <服务名> start |
启动某个服务 |
service <服务名> stop |
终⽌某个服务 |
service <服务名> restart |
重启某个服务 |
systemctl status <服务名> |
查看某个服务 |
systemctl start <服务名> |
启动某个服务 |
systemctl stop <服务名> |
终⽌某个服务 |
systemctl restart <服务名> |
重启某个服务 |
systemctl enable <服务名> |
关闭⾃启动 |
systemctl disable <服务名> |
关闭⾃启动 |
⽂件和⽬录操作
常用命令 |
作用 |
cd <⽬录名> |
进⼊某个⽬录 |
cd .. |
回上级⽬录 |
cd ../.. |
回上两级⽬录 |
cd |
进个⼈主⽬录 |
cd - |
回上⼀步所在⽬录 |
pwd |
显示当前路径 |
ls |
查看⽂件⽬录列表 |
ls -F |
查看⽬录中内容(显示是⽂件还是⽬录) |
ls -l |
查看⽂件和⽬录的详情列表 |
ls -a |
查看隐藏⽂件 |
ls -lh |
查看⽂件和⽬录的详情列表(增强⽂件⼤⼩易读性) |
ls -lSr |
查看⽂件和⽬录列表(以⽂件⼤⼩升序查看) |
tree |
查看⽂件和⽬录的树形结构 |
mkdir <⽬录名> |
创建⽬录 |
mkdir dir1 dir2 |
同时创建两个⽬录 |
mkdir -p /tmp/dir1/dir2 |
创建⽬录树 |
rm -f file1 |
删除'file1'⽂件 |
rmdir dir1 |
删除'dir1'⽬录 |
rm -rf dir1 |
删除'dir1'⽬录和其内容 |
rm -rf dir1 dir2 |
同时删除两个⽬录及其内容 |
mv old_dir new_dir |
重命名/移动⽬录 |
cp file1 file2 |
复制⽂件 |
cp dir/* . |
复制某⽬录下的所有⽂件⾄当前⽬录 |
cp -a dir1 dir2 |
复制⽬录 |
cp -a /tmp/dir1 . |
复制⼀个⽬录⾄当前⽬录 |
ln -s file1 link1 |
创建指向⽂件/⽬录的软链接 |
ln file1 lnk1 |
创建指向⽂件/⽬录的物理链接 |
find / -name file1 |
从跟⽬录开始搜索⽂件/⽬录 |
find / -user user1 |
搜索⽤户user1的⽂件/⽬录 |
find /dir -name *.bin |
在⽬录/dir中搜带有.bin后缀的⽂件 |
locate <关键词> |
快速定位⽂件 |
locate *.mp4 |
寻找.mp4结尾的⽂件 |
whereis <关键词> |
显示某⼆进制⽂件/可执⾏⽂件的路径 |
which <关键词> |
查找系统⽬录下某的⼆进制⽂件 |
chmod ugo+rwx dir1 |
设置⽬录所有者(u)、群组(g)及其他⼈(o)的读(r)写(w)执⾏(x)权限 |
chmod ugo-rwx dir1 |
移除所有者(u)、群组(g)与其他⼈(o)对⽬录的读写执⾏权限 |
chown user1 file1 |
改变⽂件的所有者属性 |
chown -R user1 dir1 |
改变⽬录的所有者属性 |
chgrp group1 file1 |
改变⽂件群组 |
chown user1:group1 file1 |
改变⽂件的所有⼈和群组 |
⽂件查看和处理
常用命令 |
作用 |
cat file1 |
查看⽂件内容 |
cat -n file1 |
查看内容并标示⾏数 |
tac file1 |
从最后⼀⾏开始反看⽂件内容 |
more file1 |
more file1 |
less file1 |
类似more命令,但允许反向操作 |
head -2 file1 |
查看⽂件前两⾏ |
tail -2 file1 |
查看⽂件后两⾏ |
tail -f /log/msg |
实时查看添加到⽂件中的内容 |
grep codesheep hello.txt |
在⽂件hello.txt中查找关键词codesheep |
grep ^sheep hello.txt |
在⽂件hello.txt中查找以sheep开头的内容 |
grep [0-9] hello.txt |
选择hello.txt⽂件中所有包含数字的⾏ |
sed 's/s1/s2/g' hello.txt |
将hello.txt⽂件中的s1替换成s2 |
sed '/^$/d' hello.txt |
从hello.txt⽂件中删除所有空⽩⾏ |
sed '/ *#/d; /^$/d' hello.txt |
从hello.txt⽂件中删除所有注释和空⽩⾏ |
sed -e '1d' hello.txt |
从⽂件hello.txt 中排除第⼀⾏ |
sed -n '/s1/p' hello.txt |
查看只包含关键词"s1"的⾏ |
sed -e 's/ *$//' hello.txt |
删除每⼀⾏最后的空⽩字符 |
sed -e 's/s1//g' hello.txt |
从⽂档中只删除词汇s1并保留剩余全部 |
sed -n '1,5p;5q' hello.txt |
查看从第⼀⾏到第5⾏内容 |
sed -n '5p;5q' hello.txt |
查看第5⾏ |
paste file1 file2 |
合并两个⽂件或两栏的内容 |
paste -d '+' file1 file2 |
合并两个⽂件或两栏的内容,中间⽤"+"区分 |
sort file1 file2 |
排序两个⽂件的内容 |
comm -1 file1 file2 |
⽐较两个⽂件的内容(去除'file1'所含内容) |
comm -2 file1 file2 |
⽐较两个⽂件的内容(去除'file2'所含内容 |
comm -3 file1 file2 |
⽐较两个⽂件的内容(去除两⽂件共有部分) |
打包和解压
常用命令 |
作用 |
zip xxx.zip file |
压缩⾄zip包 |
zip -r xxx.zip file1 file2 dir1 |
将多个⽂件+⽬录压成zip包 |
unzip xxx.zip |
解压zip包 |
unzip xxx.zip -d path |
解压zip包到path |
tar -cvf xxx.tar file |
创建⾮压缩tar包 |
tar -cvf xxx.tar file1 file2 dir1 |
将多个⽂件+⽬录打tar包 |
tar -tf xxx.tar |
查看tar包的内容 |
tar -xvf xxx.tar |
解压tar包 |
tar -xvf xxx.tar -C /dir |
将tar包解压⾄指定⽬录 |
tar -cvfj xxx.tar.bz2 dir |
创建bz2压缩包 |
tar -jxvf xxx.tar.bz2 |
解压bz2压缩包 |
tar -cvfz xxx.tar.gz dir |
创建gzip压缩包 |
tar -zxvf xxx.tar.gz |
解压gzip压缩包 |
bunzip2 xxx.bz2 |
解压bz2压缩包 |
bzip2 filename |
压缩⽂件 |
gunzip xxx.gz |
解压gzip压缩包 |
gzip filename |
压缩⽂件 |
gzip -9 filename |
最⼤程度压缩 |
RPM包管理命令
常用命令 |
作用 |
rpm -qa |
查看已安装的rpm包 |
rpm -q pkg_name |
查询某个rpm包 |
rpm -q --whatprovides xxx |
显示xxx功能是由哪个包提供的 |
rpm -q --whatrequires xxx |
显示xxx功能被哪个程序包依赖的 |
rpm -q --changelog xxx |
显示xxx包的更改记录 |
rpm -qi pkg_name |
查看⼀个包的详细信息 |
rpm -qd pkg_name |
查询⼀个包所提供的⽂档 |
rpm -qc pkg_name |
查看已安装rpm包提供的配置⽂件 |
rpm -ql pkg_name |
查看⼀个包安装了哪些⽂件 |
rpm -qf filename |
查看某个⽂件属于哪个包 |
rpm -qR pkg_name |
查询包的依赖关系 |
rpm -ivh xxx.rpm |
安装rpm包 |
rpm -ivh --test xxx.rpm |
测试安装rpm包 |
rpm -ivh --nodeps xxx.rpm |
安装rpm包时忽略依赖关系 |
rpm -e xxx |
卸载程序包 |
rpm -Fvh pkg_name |
升级确定已安装的rpm包 |
rpm -Uvh pkg_name |
升级rpm包(若未安装则会安装) |
rpm -V pkg_name |
RPM包详细信息校验 |
YUM包管理命令
常用命令 |
作用 |
yum repolist enabled |
显示可⽤的源仓库 |
yum search pkg_name |
搜索软件包 |
yum install pkg_name |
下载并安装软件包 |
yum install --downloadonly pkg_name |
只 下 载 不 安 装 |
yum list |
显示所有程序包 |
yum list installed |
查看当前系统已安装包 |
yum list updates |
查看可以更新的包列表 |
yum check-update |
查看可升级的软件包 |
yum update |
更新所有软件包 |
yum update pkg_name |
升级指定软件包 |
yum deplist pkg_name |
列出软件包依赖关系 |
yum remove pkg_name |
删除软件包 |
yum clean all |
清除缓存 |
yum clean packages |
清除缓存的软件包 |
yum clean headers |
清除缓存的header |
DPKG包管理命令
常用命令 |
作用 |
dpkg -c xxx.deb |
列出deb包的内容 |
dpkg -i xxx.deb |
安装/更新deb包 |
dpkg -r pkg_name |
移除deb包 |
dpkg -P pkg_name |
移除deb包(不保留配置) |
dpkg -l |
查看系统中已安装deb包 |
dpkg -l pkg_name |
显示包的⼤致信息 |
dpkg -L pkg_name |
查看deb包安装的⽂件 |
dpkg -s pkg_name |
查看包的详细信息 |
dpkg –unpack xxx.deb |
解开deb包的内容 |
APT软件⼯具
常用命令 |
作用 |
apt-cache search pkg_name |
搜索程序包 |
apt-cache show pkg_name |
获取包的概览信息 |
apt-get install pkg_name |
安装/升级软件包 |
apt-get purge pkg_name |
卸载软件(包括配置) |
apt-get remove pkg_name |
卸载软件(不包括配置) |
apt-get update |
更新包索引信息 |
apt-get upgrade |
更新已安装软件包 |
apt-get clean |
清理缓存 |
常用命令 |
作用 |
apt install package1 |
安装 |
apt list --installed |
列出所有安装信息 |
apt list package1 |
列出指定包信息 |
apt remove package1 |
卸载 |
apt update |
更新包索引信息 |
|
|
|
|
|
|
|
|