windows
__----------------
Desktop Os
Linux+VMware
-------------
Linux
服务器Os
稳定
安全
VMware
-----------------
Oracle vbox
------------------
Host
----------------
Linux | mac
——————————————————
Client机
安装VMware
------------------
安装客户机
-------------
window:物理结构
——-----——————
资本主义
c:/
d:/
e:/
linux文件结构
———————————————————
/bin //二进制文件目录
/sbin //二进制文件目录
/dev //device,设备目录,光驱,磁盘,分区
/etc //配置文件目录
/lib //库文件,共享对象文件(so---shared object,等价于dll文件)
/home //主目录 /home/ubuntu /home/ubuntu......
/meida
/mnt
/opt //root用户的主目录
/root
/usr //user
/usr/bin //可执行文件
/usr/sbin //可执行文件
/usr/local //
/usr/local/bin //
/usr/local/sbin //
Linux
--------------
1.redhat
2.centOs
3.ubuntu
4.Suse
5....
共同祖先是Unix
最早的文件在bin和sbin中
自己的文件放在userbin中
哪一个优先级高,就近原则
Linux基本操作
----------------
windows linux
cd cd //进入目录
pwd //显示当前的目录
clear //清屏
whoami //查询当前的用户
sudo passwd //切换用户
ipconfig ifconfig //查询Ip
su root //切换用户
mkdir
rm
cp
mv
cat
touch
chow
ping www.baidu.com ping www.baidu.com //ping网络
tree find . | grep //ping网络
del 删文件 rm -fR xxx //递归强制删除目录(文件)
rmdir 删目录
echo touch hello.txt //创建空文件
echo helloworld > hello.txt //补齐文件(覆盖模式)
echo helloworld >> hello.txt //(追加模式)
cat hello.txt //直接查看文件内容
type hello.txt //
C滚把window模拟成linux
cat hello.txt //直接查看文件内容
copy a.txt ../b.txt cp hello.txt b/c/d //复制文件
cp hello.txt b/c/d/1.txt //复制并文件。指定名称
cp -R xxx ../
echo
nano 与 Ctrl+0与ctrl+x
cat
deirect :>>与> //重定向
more
head -n hello.txt //显示文件开头N行数据
tail -n hello.txt //显示文件结尾N行数据
which hostname //查看文件命令
sudo reboot //重启
uname -a //查看系统的内核信息,-all也可以实现
file xxx.so //查看文件类型
s 在类库中有so文件lib中,链接文件 -表示共享文件(动态链接库文件)
安装第三方软件在lib中就会生成so 文件,没有的话就有问题
tar //归档和解档
tar -xvzf mytar.tar.gz //解压(原地)
tar -tf mytar.tar //查看归档文件
tar -rf mytar.tar.xxx //-r追加文件到
mount //挂载外设
实例“”
umount /dev/cdrom
ls
gzip -l mytar.tar //原地压缩,时间优先
gzip -9 mytar.tar //原地压缩,空间优先
gzip -9 mytar.tar //原地压缩,空间优先
gzip -d mytar.tar.gz //原地文件,空间优先
gunzip mytar.tar.gz //加压缩文件 等价于 == gzip -d xxx.gz
sudo shutdown -p now //关机 -p:关电源 -r:reboot
sudo halp -p
sudo mount //挂载外设
sudo umount //解除挂载
ln -s /exist_file link_name
jobs
kill %n
ps -Af
cut -c num1-num2
cmd --help
man cmd
help
info cmd
fdisk
fdisk -l //查看分区表
fdisk /dev/sda //管理指定磁盘
...
df 磁盘空间使用情况 disk free
df -ah
dd diskdump
dd
dirname //查看文件所在目录
basename 输出文件的基本名称(取出目录的部分)
echo $(hostname)
echo $($cat 1.txt) //1.txt中写入 hostname,嵌套命令,多次调用
cd —p mylink //进入物理目录,不是连接目录
war //web
ear //enterprise
jar //java archive file
tar //归档文件
tar -f -
-c //创建
-f //指定文件
-v //指定信息verbose
-x //extract 从归档文件抽取,解档
-z //通过gzip进行过滤
-----------------------
ls
-h 人性化可读
-a 现实全部文件(.xxx)
-l:列表展示
--------------------
find
-------------------
find /usr/local
find .|xargs grep -ri "IBM" //含有ibm串
find .|xargs grep -ri "IBM" -l //输出文件名
find /cmd ".sh" -prin | ... //指定目录sh文件
ls | grep pig |cp 'xargs' ~/Download
xargs //将管道的输出内容合并成一行数据使用空格分割
find . | grep txt | c[ 'xargs' //''是按照命令进行执行
配置文件在/etc目录下
ls | grep host
ll 查看权限
source hostname 立即启用
nano 编辑器
----------------------------------
1.nano hello.txt
2.ctrl + o //保存
3.ctrl + x //退出
4.ctrl + k //剪切一行
5 ctrl + U //复制一行
Linux链接文件
-----------
1.硬链接(hard link)
两个完全相同的文件,占用2倍的磁盘空间,两者实时同步,删除一个文件。另一个不删除
2.符号链接(symbolic link)
相当于快捷方式,不会占用过多的磁盘空间
如果源文件删掉,连接失效(不意味删除,红色)
3.创建连接方式
ln hello.txt. hello.txt.ln //硬链接
4.grep特殊字符需要转移
ls -al | grep "\->" //过滤
jobs
-------------------
显示后台作业
查看进程信息
----------------
ps //process show
ps -Af //-A:所有进程 -f
杀死job
----------------
kill %1
cut
----------------------------
对每行文本剪切处理
对每行输出进行剪切处理
cat -c num1-num2
cut -c 1- //显示1以及后面的所有字符
cut -c -5 //显示开始到5的所有字符
cut -c 3-5 //显示3-5后面的所有字符
输出环境变量
——————————+
echo $path
echo ${PATH}
echo "PATH"
单引号错误,双引号正确
export mypath = /home/ubuntu //导入环境变量,只在当前会话中有效
export mypath =${path:-} //导入环境变量,只在当前会话中有效
export yourpath = //干掉你的path
exprot $yourpath
exprot $yourpath=${PATH:-$PATH:-$mypath}
export $yourpath=${PATH:-$PATH1:-$mypath} //相当于三元运算符,条件运算的过程
path环境变量,windows使用“;”号分割,linux使用“:”分割
export mypath=${path}:/home/ubuntu
echo $mypath
$env other //空格分区
${env} //{}界限
“$env” //""界限
export env = ${env:-$env:-$envn2} //是取env, 否env2 三元运算符
echo 'pwd' //按脚本执行
if["$1"="--conf"] //第几个参数
if[$#-lt 1]
if[$#-gt 1]
if[-e xxx] //是否存在
if[-d] //wrong ,需要空格
if[-d xxx] //right
查看linux内置命令的帮助
---------------------
help export
if commands ,then commands ;
[else if commands ;then commands ;] ....[else commands;] fi
help if
hellp export
help while
help for
使用if
["$1" = "--conf"] //第几个参数
---------------------------------
linux内置变量的访问方式
1.$?
返回刚刚执行命令的结果,0:成功 !0=失败
2.$#
获取参数个数
rm -r bin //$# = 2
3.$n
获取第几个参数
$0 //命令本身
$1 //第一个参数,rm -r bin $1=-r
..
4$@
得到所有参数
rm -r bin //$@=-r bin
5.shift
移动参数
$? //命令的返回值存储变量
$# //参数个数
$1 //第几个参数
$O //当前脚本名称
$@ //取出所有参数
shift //参数左移
${a/b/c} //
命令组合
-----------------
1.a && b
a成功执行后,再执行b命令
2.a || b
a执行后,再执行b命令
3.a ; b
a执行后,再执行b,没有成功失败的约束条件
4.(a ; b )
//组合命令,只在当前目录执行,不切换目录
ls -al ; cd /usr/ ; pwd
(ls -al;cd ~; pwd)
NetCat
--------------------
1.瑞士军刀
2.TCP/IP
transfer control protocal ,internet protocal
Socket
ServerSocket //server,listener,port
Socket //connection,port
3.使用nc 进行聊天
nc -l 8888 //在本机启动一个ServerSocket进程,
&表示在后台运行
nc localhost 8888 //启动客户端,连接到服务器端口8888
4.使用nc传递文件
传送文件
服务器端
nc -l 1234 > readme.txt //服务器端,重定向接收数据到文件
客户端
nc localhost 1234 < readme.txt //客户端,重定向输入
端口扫描
nc ip -z port-portn //指定需要扫描的主机ip和端口区间
nc -v -w 2 s1-z 2000 - 4000
-v 详细信息
-w 连接超时
-z 端口扫描
命令前后台执行切换
--------------------
1.启动命令时直接放到后台
nc -l 888 & //
2.将当前进程暂停并放入后台,变成交作业(job)了
ctrl + z
joba //查看后台运行的所有作业,只需要jobid
3.将后台job激活,并在后台运行
bg %1
4.将后台作业切换到前台运行
fg %1
d:directory 目录
-:file 文件
b:block
l:link
r:read 读
w:write写
x:execute执行
类型
owner //主人
group //组
other //其他人
d rwx r-x r-x .... hello.txt
权限说明
-----------------
1.read
文件:查看文件内容
2.write
文件:修改文件内容
3.执行
文件:可执行文件
修改文件权限
查看linux内置命令的帮助
------------------
help export
help if
help while
help for
使用if
["$1"="--conf"] //第几个参数
Ubuntu系统常用命令
-----------------
if[$#-lt 1]
if[$#-gt 1]
if[-e xxx]
if[-d] //wrong 需要空格
if[-d xxx] //right
$? //命令的返回值存储变量,返回刚刚执行命令的结果,0:成功 !0:失败
$# //参数个数 rm -r bin //$# = 2
$n //获取第几个参数。 $0 //命令本身
$1 //第一个参数,rm -r bin $1=-r
$0
得到所有参数
rm -r bin //$@=-r bin
$1 //第几个参数
$O //当前脚本名称
$@ //取出所有参数
shift //参数左移
向左移动参数,左边的参数被覆盖掉
${a/b/c} //
$env other //空格分区
${env} //{}界限
"$env" //""界限
export env=${env:-$evn2} //三元运算符
echo '${env}' //原样输出
echo 'pwd' //按脚本执行
if["$1"="--conf"] //第几个参数
文件和权限
-------------------
1.文件类型
d:目录
-:文件
b:block
l:link
2.权限
Owner(user) //主人
group //组,linux用户隶属于组,可以隶属于多个组,但是只能够隶属于一个primary group ,可以隶属于多个secondary group
other //其他人
all //owner+group+other
3.控制权限
r:read //rwx
111=7
w:write
x:exeute
修改文件权限
————————————
chmod ugo+-=rwx hello.txt //
chmod a+rwx hello.txt //
chomd 777 hello.txt //
chomd 755 hello.txt //
新增用户
---------------
1.useradd
是底层添加用户的命令,推荐用adduser添加新用户
2.adduser
通过adduser添加用户
adduser --home /home/ubuntu2 ubuntu2 --gid 1000 ubuntu2 //ubuntu 1000
3.Ubuntu静态Ip设置
(1)查看网关
VMware虚拟机————>编辑菜单-->虚拟网络编辑器-->打开窗口-->选中vmnet8虚拟网卡-->
nat设置-->查看网关(192.168.238.2)
(2)查看可用的ip网段
VMware虚拟机————>编辑菜单-->虚拟网络编辑器-->打开窗口-->选中vmnet8虚拟网卡-->
DHCP设置-->查看网段
Ubuntu 修改软件源
-----------
Ubuntu软件包操作
apt:advanced package tookit ,高级包管理工具
sudo apt-get install xxx //安装软件包列表
sudo apt-cache search xxx //
sudo apt-get remove xxx //删除
sudo apt-get purge xxx //删除软件和配置文件
sudo apt-get update //更新
sudo apt-get upgrade //升级
sudo dpkg -l | grep xxx //
复制163软件源
deb http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse
deb-src http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse
deb http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted
ctrl+o-- 回车-- ctrl+x-- 回车
sudo apt-get update
sudo apt-get upgrade
从本地安装桌面
--------------
1.取得iso文件
2.挂载iso文件到/mnt/下
mount /dev/cdrom /mnt/cdrom
3.修改/etc/apt/sources.list文件
[/etc/apt/sources.list]
deb file:/mnt/cdrom ./
4.更新和升级软件源
apt-get update
apt-get upgrade
5搜索软件
sudo apt-cache search ubuntu-desktop
6.安装软件
sudo apt-cache-install ubuntu-desktop
7.卸载软件
sudo apt-get remove ubuntu-desktop
Ubuntu安装VM增强工具
——————————————————
增强工具作用
和host共享文件夹
鼠标自动捕捉释放
高分屏
自适应窗口
1.VMWare-->重新安装VMware tool
2。自动打开光驱文件
3。复制vmware-tool-xxxx.tar.gz到桌面
4。右键vmware-tool-xxxx.tar.gz释放到这里
5。打开终端
6。进入~/Desktop/vmware-tool-distrib
7。执行python脚本
sudo ./vmware-tool.pl
8。一路回车
9。Enjoy...成功了
版本:
VMwareTools-9.9.3-2759765.tar.gz
客户机屏幕自适应
---------------
1.关闭客户机、
2.编辑客户机的设置
虚拟机-->虚拟机设置-->显示器-->指定显示器的设置(1366x768)
3 ok
4.启动客户机
完成window和linux共享文件夹
客户机和宿主机共享文件夹
-----------------
1.编辑客户机的设置
虚拟机-->虚拟机设置-->选项-->共享文件夹
2,进入客户机的/mnt/hgfs查看共享的文件夹
客户机和宿主机共享剪切板
--------------------
1.编辑客户机的设置
虚拟机-->虚拟机设置-->选项-->客户机隔离
2.选中复选框
客户机和宿主机之间支持拖放
dpkg
-----------
dpkg-query --help
dpkg-query --list | grep gedit
sudo dpkg --remove gedit
1.直接安装.deb软件包
dpkg -i gedit_4-xx.deb
2.通过which查看是否安装成功
which gedit
3.卸载软件包
sudo dpkg --remove gedit
dpkg-query
---------------
1.查看本地安全点的软件包
sudo dpkg-query --list | grep gedit
2.通过which查看是否安装成功
which gedit
3.卸载软件包
sudo dpkg --remove gedit
提高准确率
----------------
本地软件源制作
-----------
sudo apt-get install dpkg-dev
mkdir ~/software
cp -R -v /var/cache/apt/archives/* ~/software
sudo dpkg-scanpackages ~/software /dev/null
|gzip>~/software/Packages.gz
复制整个software文件夹到host主机
安装ubuntu客户机
从host复制software文件夹到主目录下
编辑/etc/apt/source.list文件
deb file:/home/ubuntu/software./
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install xxx //此时从本地软件源安装
注意:
该方式要确保所有所需软件都在本地仓库中,否则还需要
将sources.list文件配置成外部软件源地址
Ubuntu ISO文件制作
————————————————
1.安装mkisofs
sudo apt-get install mkisofs
2.使用mkisofs制作iso文件
//-r保留源文件-o输出文件
sudo mkisofs -r -o xxx.so /targ
Ubuntu通过光驱挂载iso文件实现共享
——————————————————————
1.虚拟机挂载iso文件
a.虚拟机->光驱设置->指定iso文件
b.连接
2.挂载CDROM到/mnt目录下
sudo mkdir /mnt/cdrom
sudo mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom
Ubuntu虚拟机克隆与Mac生成与网络连接形式
Ubuntu网络连接形式
-------------
1.桥接
模拟成一台物理机
完全模拟网络中的真实电脑,可配置IP,访问互联网,
局域网的互访,如果无网络,彼此无法连通
2.NAT
和Host形成局域网,由Host做NAT和DNS,可访问互联网,
局域网的主机无法访问客户机,没有网络时,Host和客户机
之间仍能连通。
net address transform 网络地址转换
3.Only-host
类似于NAT,不能访问外网,出于安全性考虑。
即类似于内网的使用
配置客户机为静态IP
--------------
1.查看NAT的网关
网络地址编辑器-->NAT-->NAT设置-->查看网关(192.168.119.2)
2.查看网段
网络地址编辑器-->NAT-->NAT设置-->查看网关(192.168.119.128)-->(192.168.119.254)
3.挑选一个ip
192.168.119.130
4.编辑ubuntu的网络配置文件
/etc/network/interface
5.重启网络服务
sudo /etc/init.d/networking restart
6.通过ping查看连通情况
脚本
-----——————————————————————————————————
0.查看帮助
help for
1.语法一
for NAME [in WORDS ... ]; do COMMANDS; done
[例如]
for a in 1 2 3 4 ; do each $a ; done
脚本创建文件
脚本删除文件
while
for a in 1 2 3 4 ; do rm ${a}.txt ; done
ls
2.语法二
[语法]for ((exp1;exp2;exp3)); do COMMANDS;done
[例子]for ((a = 1 ;a <= 11))
一饿就脑短路,来条士力架吧
横扫饥饿,做回自己
使用for循环打印10个数
————————————————————————
a = 10
for
1.语法
while语法
---------------
1.语法
((EXP1))
while((EXP2));do
COMMANDS
((EXP3))
done
步骤
1.创建脚本文件
2.
打印1-->10 10个数字
---------------
#!/bin/bash
(( a=1 ))
while (( a <= 10 )) ; do
echo $a
((a = a + 1 ))
done
使用fro循环打印所有参数
---------------------
#!/bin/bash
((count = $# ))
((a=1))
while ((a<=count)) ; do
echo $1 ;
shift;
((a=a+1))
done
if 语句
脚本的编写
参数的提取