虚拟机是什么?
就是虚拟的电脑。理解为:在windows中使用Linux等其他系统,为了节省成本。
.vmx虚拟机文件后缀。
一个电脑正常只可以装一个os,若想装2个,就用虚拟机。
vmware是虚拟机,ubuntu是虚拟系统,就是Linux系统。
ubuntu是什么?
ubuntu有ui界面的Linux系统。
正常的Linux系统都是命令行,并没有界面。
Linux是什么?
Linux是一种文件系统,所有的东西都是以文件的形式存在的。
终端:网络的尽头,输入命令用的。
操作系统与内核
os为用户提供服务,使用用户通过os来操作计算机上的资源。
资源:显示器、硬盘、所有程序等,需要主资源cpu的。
操作系统的位置
操作系统位于程序与计算机资源的中间层。
内核的位置
内核kernel,在os内部,是os的一部分。
操作系统与内核关系
指令通过接口来操作内核。
内核控制硬件。shell是os的外壳。
用户通过shell与OSkernel交互,使得kernel控制硬件。
SHELL
SHELL:命令解析器。
命令由shell翻译,成为可以执行硬件的命令。
仅有内核可以控制硬件和资源。
shell是用户和内核交互的接口。
shell本质是:让用户使用内核。
用户
ubuntu无盘符,所有文件都在根目录下。
用户名@主机名:~$
$是普通用户,#是管理员root。
~是家目录,就是:/home/用户名,而/是根目录。
根目录文件夹
- boot开机文件,reboot重启。
- dev是设备接口device。
- etc备份文件
- home用户目录,里面放的是用户。
- lib库
- media媒体,挂载的文件,光驱、光盘。
- mnt挂载。
- bin存放的是命令,都是命令的原码。
- opt第三方文件
- proc系统进程
- tmp临时文件
cat
cat+内容。
查看文本,使用:cat+文本
例子:
cat /etc/shells
cat a.cpp
输出结果:显示文本内容查看目录,使用:cat+路径
例子:
cat /aa/bb
输出结果:是一个目录写入打印,使用:cat什么也不加
例子:
cat
输出结果:输入什么打印什么
echo
echo+变量。
查看环境变量,$:变量标识。
例子:
echo $SHELL
输出结果:显示变量信息。向文本里写入内容,使用:echo "string" > a.cpp
其中>表示重定向
例子:
echo "abc"
输出结果:直接打印到终端。
echo "abc" > a.cpp
输出结果:直接对文本进行abc字符串的覆盖。即使是内容有特别多,也能覆盖。
ls
显示目录下的所有文件。
ls -a同时显示隐藏文件,点.开头为隐藏文件
ls -l同时显示详细信息
ls -R显示包括子文件夹里的内容,会显示的特别多ls+路径,显示该路径下的内容
ls+文本,只显示路径
文件的颜色标识:
- 蓝色:目录
- 红色:压缩包
- 白色:txt
- 浅蓝色:链接
- 绿色:exe
cd
进入目录。
cd ~和cd都是表示跳转到家目录
cd / 跳转到根目录
cd+路径,直接跳转
cd .本目录
cd ..上级目录
cd -回到上一次的目录
clear/ctrl+l
清屏。
histroy
查看历史输入的指令。
which
查看指令所在的位置。
which+命令
which ls,查看ls指令所在的位置
结果是 /bin/ls
所有的指令都是一个个执行文件,输入ls就等于打开了ls.exe,都在bin目录中。
只有cd没有位置,因为cd是系统自带。
tree
查看当前目录的树形结构。
pwd
查看完整路径。是绝对路径。从根目录开始的。
mkdir/rmdir/touch
创建目录,删除目录,创建文本。
mkdir aa,创建aa目录。
mkdir -p aa/bb,创建套娃目录。
rmdir aa,删除目录,注:aa必须是空目录。
rm,删除文本文件。
rm -r,递归删除,也就是全部删除。
rm -rf,强删除,不可恢复。
touch,创建文本,如果已经存在,则修改次文件的创建时间。内容并不会覆盖。
也可以用模糊查询的方式rm -rf删除很多东西,但是无法删除,尽量不用
mv
重命名和移动。
mv a b,将a文件改名为b,如果b存在,则删除原来的b
其中,b是文件,如果是两者都是目录,也能起到目录重命名的作用
mv a b,将a文件移动到b目录中,a也可以是目录
移动并不修改原来内容
cp
拷贝文本、目录。
cp a b,把b的内容变为a,cp离a近,表示ab结果就都是a了
同理如果b存在,就覆盖了,名字还是b但是内容是a
cp -r aa bb,其中aabb是目录,必须用-r
若bb目录不存在,则复制一个出来。
若bb目录存在,则将aa目录全部复制到bb目录下。
more/less
查看文本,more会全部显示在终端上,less是十页十页的显示。
head/tail -10 a.cpp,看a文本的前/后十行。
ln
链接。
硬链接:hard link
硬链接是复制体,删除了源文件不影响硬链接存在。
删除不影响,但是修改任意一方,两者都会同时被修改。
硬链接只能是文本。
每个文件也会有连接计数,当计数器是0的时候,删除文本。只有硬链接有计数。
软链接:symbolic link
软链接是快捷方式,删除源文件软链接失效。
软链接可以是文本或目录。
使用:
ln aa www
ln -s aa qqq
第一个是硬链接,将www作为a文件的硬链接,www大小与aa一样
第二个是软链接,将qqq作为aa文件的软链接,qqq大小与aa文件名字长度一样
例如,aa大小是10,那么www大小是10,qqq大小是2
对链接文件修改,源文件也跟着修改了
vi
创建文本,并直接开始编程。
wc
wc -c,显示字节数,若为文本,则就是字符数,换行算一个,结尾有一个。
wc -l,行数。
wc -w,word,单词数,用空格隔开。
od
拆分文本,od -tcx,将文本拆成一个个字符。
du/df
查看目录大小。
du -hm
du -hk
du -hb,分别以m、k、b为单位显示目录的大小。
df,磁盘使用情况。
whoami
查看当前用户。
权限模式
rw-rw-r--,9个位置,分别用01表示。
每三个一组,分别是属主、属组、其他人,表示的是访问权限。
r读w写x执行,写就是修改。
例如664,就是110110100,表示的就是rw-rw-r--
一般权限是664,全部权限就是777
chmod/chown/sudo/chgrp
chmod修改权限
chmod 0664 /aa/bb,将bb文件修改为664访问权限
sudo chmod 777
chown,更改文件目录的用户,仅root可以操作
sudo,临时获取超级用户权限
sudo chown root:root aa,人:组,的形式。
sudo apt-get install
chgrp,修改属组
权限0664的0表示八进制,5表示r和x。
find/grep
find查找,grep检索。
find文件名字查找。
find+在哪找+-name+找谁
grep文件内容匹配检索。
grep+找谁+-R+在哪找(目录)
grep+找谁+-n+在哪找(文本)
find是文件名
grep是文件内容,在内容中找
例子:
find . -name aa,在当前目录里找aa,必须是aa。
grep aa -R ..,在上级目录中的文本里检索aa,凡是有aa的就算。
grep "aa" -n a,在a文本里查找aa字样,并且能返回行号。
find . -name a*,模糊查询,与mysql一样,通配符
*
find里是通配符
grep是正则表达式,例如str*,表示离*最近的r,出现0次或n次。
而find的a*,表示a什么。