Linux:开源
Ubuntu
Centos
Deepin
Debian
Linux mint
。。。
1、省钱
2、省资源
Linux由unix演化而来
Linux:开源
Unix: 闭源 solary ibm
vmware:
宿主机
虚拟机
客户机
安装所有软件必须要在没有中文没有空格的路径下
在vmware上安装centos:
用户:
root 密码:hadoop //超级用户
centos 密码:hadoop
Centos命令提示符:
[centos@localhost ~]$
[用户名@主机名 当前路径]$
Centos基本命令
ls //列出当前目录下的文件和文件夹
ls / //列出根目录.....
ls -al / //
ll / [ls -l] //以长列表形式输出
cd / //切换到根目录
clear[ctrl+l] //清屏
su root //switch user切换用户
which ls //查看可执行文件位置
pwd //查看当前路径
exit //退出当前用户
mkdir //创建目录
mkdir -p //创建多级目录
find . //递归输出指定文件夹内容
rm -rf * //删除文件和文件夹
echo //回声
> //覆盖重定向
>> //追加
cat 1.txt //查看文件内容
ctrl+c //强制退出
ctrl+z //后台运行程序
sudo //在当前用户临时使用root权限进行操作
hostname //查看主机名
whoami //查看当前用户
Centos文件结构(树形结构)没有盘符
/为根目录,所有目录的父目录以.开头的文件和文件夹是默认隐藏的
windows库文件:.dll dynamic link library
Linux库文件: .so shared object
/boot //引导
/dev //device设备文件
/etc //配置文件
/home/xxx //家目录 ~
/media //媒体文件
/mnt //挂载目录
/opt //安装软件
/proc //进程文件
/root //root用户的家目录 ~
/var /run //运行时文件
/srv //服务文件
/usr //用户级文件 软件、配置、可执行文件
- //普通文件
d //directory文件夹
l //link符号链接[windows中的快捷方式]
b //block块设备文件 磁盘、cd、分区
c //字符设备文件
s //socket套接字文件
p //pip管道文件
Linux查看帮助:
ls --help //一直是帮助
man ls //人性化可读
ls -h //有时是帮助,有时是其他参数
info ls //详细信息
putty的使用:
远程登录主机 putty
mtputty 多标签putty
注意:putty和mtputty安装路径不能有中文和空格!!
centos无法上网:
1、网络没有打开:
$> su root
#> vi /etc/sysconfig/network-scripts/ifcfg-ens33
将onboot改为yes即可
重启客户机
Centos权限:
1、u //user
2、g //group
3、o //other
1、r //read 4
2、w //write 2
3、x //执行 1
修改权限:chmod //change mode 修改权限
chmod u+w //user增加写权限
chmod o-r //other去掉读权限
chmod g-rx //
chmod a+rwx //
chmod 644
user读写 group读 other读
6 4 4
文件权限:
读:读 cat 1.txt
写:写 echo hello > 1.txt
执行:执行权限和读权限要共存 ./1.txt
文件夹权限:
读: ls
写: 增删文件(夹)
执行: cd,包括读和写
注意:一个文件是否能够删除,取决于此文件所属文件夹是否有写权限
注意:文件权限一般是644,文件夹权限一般是755
修改用户:chown //change owner修改拥有者
chown centos:centos aaa //仅修改aaa文件夹...
sudo chown -R centos:centos aaa //递归修改aaa文件夹权限为centos用户,centos用户组
vi的使用方法:
vi 1.txt
insert //进入到编辑模式
esc //退出编辑模式
:wq //保存退出
:q //不修改退出(未编辑)
:q! //不修改退出(已编辑)
退出编辑模式下的快捷方式
x //删除光标选中字符
dd //删除当前行
dG //删除当前行以下
普通用户使用sudo的方法:
1、切换为root权限 //su root
2、visudo
3、添加centos ALL=(ALL) ALL
4、保存退出
yum:
sudo yum install -y nano //下载安装
sudo yum remove -y nano //卸载
sudo yum install --downloadonly --downloaddir=. nano //仅下载
sudo yum localinstall *.rpm //本地安装
nano:
nano 2.txt
快捷键:
ctrl+o //保存
ctrl+k //剪切(删除)
ctrl+u //粘贴
ctrl+w //搜索
ctrl+x //退出
修改主机名
sudo nano /etc/hostname
改为s100
修改静态ip
sudo nano /etc/sysconfig/network-scripts/ifcfg-ens33
将BOOTPROTO="dhcp" =====> BOOTPROTO="static"
将ipv6的所有yes改成no,或直接删除
添加以下几行:
IPADDR=192.168.23.100
PREFIX=24
GATEWAY=192.168.23.2
DNS=192.168.23.2
然后重启网络:
service network restart
vmware的网络类型
/home和/usr的区别? //和windows中的users文件夹和program Files文件夹的关系一样
Day_2
文件:
touch 1.txt
rm 1.txt
vi
nano:
ctrl+k
ctrl+u
ctrl+o
ctrl+x
echo hello > 1.txt
>>
cat
文件夹:
mkdir -p a/b/c/d
rm -rf a
find ls ll
文件的执行一般和读权限共存
文件夹执行:cd
权限:
User
Group
Other
chmod u+r
644
sudo chown -R root:root a
桥接:
NAT:
仅主机:
环境变量:
export PATH=$PATH:tom
/etc/profile
source /etc/profile
tar:
tar -cf archeive.tar aaa bbb //归档
tar -tvf archeive.tar //列出归档文件的详细文件内容
tar -xf archeive.tar //解档
gzip:
gzip 1.txt //对文件进行压缩
gunzip 1.txt //对文件进行解压
gzip不支持文件夹压缩
解压.tar.gz后缀的文件:
tar -xzvf bbb.tar.gz
x:extract解压
z:gzip
v:verbose列出文件信息
f:file
mount
mount /dev/cdrom /mnt //挂载镜像文件
yum localinstall -y * //本地安装目录下所有文件
umount /mnt //卸载镜像文件
安装vmtools:
0、右键虚拟机 ===> 选项 ===> 共享文件夹,先启动,然后设置相关目录
1、vmware中点击虚拟机选项卡 ===> 安装vmtools
2、mount /dev/cdrom /mnt
3、tar -xzvf xxx.tar.gz -C ~ //将压缩文件解压到指定位置
4、cd到解压路径发现可执行脚本
5、./vmware-install.pl
6、如果顺序颠倒,重新安装vmtools即可
yum在安装的时候,会将软件涉及到的相关依赖同时安装。
脚本:所见即所得 //perl shell javascript
java: 预编译
winscp:远程传输文件
链接:
ln aaa aaa.ln 硬链接 //不支持文件夹,原文件删除,硬链接仍然可以充当源文件
ln -s aaa aaa.ln 软链接(符号链接) //支持文件夹,源文件删除即失效
ln -sf BBB bbb2.ln //重构已有符号链接
pwd -P //查看当前路径的物理路径
安装jdk:
0、解压jdk到/soft文件夹
1、创建符号链接
ln -s /soft/jdk1.8.0_131 /soft/jdk
2、配置环境变量(/etc/profile)
#java环境变量
export JAVA_HOME=/soft/jdk
export PATH=$PATH:$JAVA_HOME/bin
3、使环境变量生效
source /etc/profile
4、检查jdk安装
java -version
查看进程的方式:
ps -Af //全格式全进程显示
netstat -anop //显示网络进程,全格式全进程
磁盘使用情况:
df -lh
内存使用情况:
free -h
echo $PATH //ok
echo ${PATH} //ok
echo "$PATH" //ok
echo '$PATH' //no
反引号:``
强制命令解析
echo `ls -al /` >> 3.txt
管道符:|
在当前命令的基础上做二次操作
抓取: grep
抓取含有指定内容的行
grep hello 1.txt
ll / | grep txt
for循环用法:
for NAME [in WORDS ... ] ; do COMMANDS; done //将word中的所有单词赋值给name,并通过do命令对逐个name进行操作
for x in `cat 2.txt`; do echo $x; done //分词并逐行打印
for ((i=1 ; i<10 ; i++)); do echo $i; done //普通的for循环
for循环打印99乘法表:
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
#!/bin/bash
for (( i=1 ; i<=9 ; i++ )) ; do
for (( j=1 ; j<=i ; j++ )) ; do
echo -ne ${j}x${i}=$((j*i))'\t'
done
echo
done
echo :
echo -n //不换行
echo -e //解析分隔符:类似于'\t' '\n' '\r'
脚本中的解释器
sh #!/bin/sh
bash #!/bin/bash
while循环:
while (( $i<10 )) ; do echo $i ; done
#!/bin/bash
i=1
while (( i<10 )) ; do
j=1
while (( j<=i )) ; do
echo -ne ${j}x${i}=$((i*j))'\t'
j=$((j+1))
done
i=$((i+1))
echo
done
if:
整数比较:if [ a -xx b ]
注意:用作赋值时两边不能有空格,用做判断时必须有空格。
= //eq(equal)
> //gt(greater than)
< //lt(less than)
!= //ne(not equal)
>= //ge(greater equal)
<= //le(less equal)
if [ $i -lt 5 ] ; then echo small ; elif [ $i -eq 5 ] ; then echo equal ; else echo big ; fi
if ((i < 5)); then echo small ; elif [ $i -eq 5 ] ; then echo equal ; else echo big ; fi
&&和||
a && b //a成功后执行b
a || b //a失败后执行b
组合任务:
~]$ (cd ~/ccc; rm -rf *) //不切换目录(运行完后仍在当前目录)
~]$ cd ~/ccc; rm -rf * //切换目录(运行完后切换到了另一目录)
注意:以上运行结果一样
/]# pwd
/]# /
/]# cd /tnp/test; rm -rf *
/]# -bash: /tnp/test, no such file or directory
...
... after for a while ...
...
^c
常用变量:
$# //参数个数
$1 //第几个参数
$0 //当前脚本(命令)名称
$@ //取出所有参数
shift //参数左移
使用tput实现变色:
#!/bin/bash
for (( i=1 ; i<=$1 ; i++ )) ; do
for (( j=1 ; j<=$1 ; j++ )) ; do
if (( i<j )) ; then tput setaf 1 ; elif (( i==j )) ; then tput setaf 3 ; else tput setaf 2 ; fi
echo -ne ${j}x${i}=$((j*i))'\t'
done
echo
done
作业:
使用for和while打印倒三角,并实现隔行变色