我的技术学习物语果然有问题
(最后更新 )

Linux

学习尚硅谷的教程时候的学习笔记。

虚拟机网络

连接方式连接的网卡能否连接局域网能否连接公网
桥接VMnet0(本地真实网卡)可以可以
NATVMnet8不可以可以
仅主机VMnet1不可以不可以
  1. 桥接连接的网卡是随机连接的,要是连接到了没网络的网卡还需要自己设置。
  2. 桥接模式下虚拟机相当一台独立的计算机,拥有一个独立的IP地址,与本机在一个局域网内。
  3. NAT模式可以帮助虚拟机通过本机所在的网络来访问公网。
  4. 仅主机模式会建立一个全封闭的虚拟网络,只有主机能访问

目录结构

常用命令

目录命令

ls

# 查看文件夹的信息
	ls 
# 查看详细信息
	ls -l
# 查看隐藏目录
	ls -a 
# 显示文件大小
	ls -lh

cd

# 进入目录
	cd [路径]
# 进入家目录
	cd ~
# 进入上一次所在的目录
	cd -
# 进入上一级目录
	cd ..

mkdir和rmdir

# 创建目录
	mkdir [目录名]
# 删除目录,只能删除空目录
	rmdir [目录名]
# 递归建立目录
	mkdir -p [目录路径]
# 递归删除目录,只能删除空目录
	rmdir -p [目录路径]

文件操作

touch

# touch创建文件
	touch [文件名]
# 若已有该文件则会修改文件时间

stat

# 查看文件详细信息
	stat

cat

# 查看文件内容
	cat [文件名]
# 显示行号
	cat -n [文件名]
# 显示所有隐藏符号
	cat -A [文件名]

more和less

# 分屏显示文件内容
	more [文件名]
# 空格键翻页,回车向下一行,b向上翻页,/字符串就算搜索字符串,q退出

# 分行显示文件内容
	less [文件名]

head和tail

# 显示文件开头n行
	head -[n] [文件名]
# 显示文件末尾n行
	tail -[n] [文件名]
# 监听文件新增内容
	tail -f [文件名]

文件和目录的命令

rm

# 删除文件或者目录
	rm [文件名]
# 强制删除
	rm -f
# 递归删除
	rm - r

cp

# 复制文件,不自定义名字就会默认原名
	cp [文件名] [复制后]
# 递归复制,多用于目录
	cp -r 

mv

# 移动或重命名
	mv [文件名] [移动后]

权限

基本权限

通过命ls -l就能看到一些文件的基本权限,比如下图。

  1. 第一位表示的是文件的类型。
    • -代表的是普通文件
    • d代表是目录
    • b代表块设备文件
    • c代表字符设备,比如键盘鼠标等等
    • s代表套接字文件
    • l位链接文件
    • p位管道文件
  2. 第二到第四位代表文件所有者的权限(user)
  3. 第五到第七位代表组群所有者的权限(group)
  4. 第八到第十位代表其他人的权限(other)
    • -代表没用该权限
    • r代表可读
    • w代表可写
    • x代表可执行
  5. 后面两个root代表的是文件所有者和群组

修改权限

chmod

# 增加文件所有者的一个文件的可写权限
	chmod u+w [文件名]
# 删除权限
	chmod u-w [文件名]
# 修改所有者,组和其他用户权限
	chmod u+w,g+w,o+w [文件名]
# 设置权限
	chmod u=rwx,g=rwx,o=rwx [文件名]

数字权限

# 4代表可读,2代表可写,1代表可执行
# 修改文件权限,4+2+1=7,4+1=5
   chmod 755 [文件名]
# 经常使用到的数字权限
   chmod 644
   chmod 755
   chmod 777

chown

## 修改文件的所有者
	chown [用户] [文件名]
## 修改文件的所有者和所有组
	chown [用户]:[] [文件名]

chgrp

## 修改文件的所属组
	chown [组] [文件名]

默认权限

每次新建的文件都会有权限,这就是默认权限,umask。对文件来讲默认权限最大为666,对目录来讲是777。

## 查看当前umask的值
	umask
## 查看当前默认权限
	umask -S

帮助命令

man

	man ls
## 查看命令有几个级别
	man -f 
	what is 

info

	info ls 

help

## help只能获取shell内置命令的帮助,不常用
	cd --help
## 可以用type来判断是不是内置命令
	type cd

搜索命令

whereis

## 用来搜索系统命令,源文件和帮助文档位置
	whereis ls

which

## 查找命令,若该命令有别名也会查找别名
	which ls

locate

## 通过文件名搜索,因为是通过数据库查找,所以新增的需要更新数据库
	locate [文件名]

find

按照文件名搜索

## 通过文件名搜索
	find [搜索的路径] -name [文件名]
## 不区分大小写的文件名
	find [搜索的路径] -iname [文件名]
## 通过inode查找
	find [搜索的路径] -inum [inode]

按照文件大小搜索

## 按照文件大小搜索
	find [搜索的路径] -size [大小]

按照权限搜索

	find [搜索的路径] -perm [数字权限]
## 三个权限只要有一个比数字权限的大或者等于
	find [搜索的路径] -perm +[数字权限]
## 三个权限每一个都要比数字权限的大或者等于
	find [搜索的路径] -perm -[数字权限]

grep

## 查找文件中符合条件的字符串
	grep "ww" [文件名]
## 输出行号
	grep -n
## 不区分大小写
	grep -i
## 查找不符合条件的
	grep -v
## 符合的部分高亮
	grep --color=auto

压缩与解压缩

zip格式

## 压缩
	zip [压缩后文件名] [原文件]
	zip test.zip test.txt
## 解压缩
	unzip [压缩文件]

gz格式

## 压缩文件,能压缩目录但不打包
	gzip [文件名]		# 不保留原文件
	gzip -r [目录]	# 会将目录内文件一个个压缩,不压缩目录
## 解压缩
	gzip -d [压缩文件]
	gunzip [压缩文件]
	gzip -dr [目录]

bz2格式

## 压缩,不能压缩目录
	bzip2 [文件名]			# 不保留原文件
	bzip2 -k [文件名]		# 保留原文件
## 解压缩
	bzip2 -d [压缩文件]
	bunzip2 [压缩文件]

tar格式

## 打包,c表示打包,f表示指定文件名,v显示打包过程
	tar -cvf [文件名.tar] [原文件或目录]
## 解压,x表示解打包
	tar -xvf [tar包]
## 压缩包,生成.tar.gz的压缩包
	gzip [tar包]
## 解压缩包
	gzip -d [tar.gz压缩文件]

tar.gz和tar.bz2

## 压缩,z表示tar.gz格式,j表示tar.bz2
	tar -zcvf [文件名.tar.gz] [原文件或目录]
	tar -jcvf [文件名.tar.bz2] [原文件或目录]
## 解压缩
	tar -zxvf [文件名.tar.gz] 
	tar -jxvf [文件名.tar.bz2] 
## 解压缩到指定位置
	tar -zxvf [文件名.tar.gz] -C [路径]
	tar -jxvf [文件名.tar.bz2] -C [路径]
## 只查看不解压,用t参数
	tar -ztvf [文件名.tar.gz] [原文件或目录]
	tar -jtvf [文件名.tar.gz] [原文件或目录]

关机和重启

sync

# 数据同步,刷新文件系统的缓存区
	sync

shutdown

# 现在关机
	shutdown -h now
# 在10点关机
	shutdown -h 10:00
# 现在重启
	shutdown -r now
# 取消关机或重启
	shutdown -c

reboot

# 现在重启
	reboot

网络命令

ifconfig

# 查询网卡的信息
	ifconfig

ping

# ping向一个主机发送ICMP请求
	ping [IP]
# 指定ping的次数
	ping -c 10 [IP]
# 广播
	ping -b [IP]

netstat

# 查询本机开启的所有端口
	netstat -tuln
# 查看本机开启的所有端口是哪个服务
	netstat -tulnp
# 查看网关
	netstat -rn

VIM

进入输入模式

插入命令描述
i在光标所在字符后插入
I在光标所在字符行尾插入
a在光标所在字符前插入
A在光标所在行行首插入
o在光标下插入新行
O在光标上插入新行

编辑模式

# 在命令模式用:进入编辑模式
# 保存
	:w	
# 退出
	:q
# 强制不保存退出
	:q!
# 强制保存退出
	:wq!

命令模式

移动光标

  1. 上下左右键
  2. HJKL键,h向左,j向下,k向上,l向右
  3. gg移动光标到文件头,G移动到文件尾
  4. ^移动到行首,&到行尾
  5. 进入编辑模式加数字到第几行,比如:3是到第三行

删除

  1. x删除一个字母,nx删除n个字母
  2. dd删除一行,ndd删除n行
  3. 进入编辑模式,:n1,n2d删除n1到n2行
  4. 其实删除是放到了剪切板,按p数粘贴到下一行,P是粘贴到上一行

复制

  1. yy复制单行,nyy复制n行
  2. p数粘贴到下一行,P是粘贴到上一行

撤销

  1. u撤销上一次操作
  2. ctrl+r是反撤销

替换

  1. r替换光标的字符
  2. R进入替换模式,esc退出

vim配置文件

参数描述
nu
显示行号
nonu
取消行号
on
依据语法显示相关颜色帮助
off
取消颜色帮助
hlsearch
设置将查询的字符串高亮,默认
nohlsearch
取消设置将查询的字符串高亮
ruler
显示右下角状态栏,默认
noruler
取消显示右下角状态栏
showmode
显示状态显示,默认
noshowmode
不显示状态显示
list
显示隐藏字符
nolist
不显示隐藏字符,默认

在编辑器中输入只是临时的,需要改就需要到家目录下的.vimrc中添加配置,比如添加set nu该用户的编辑器就会显示行号