Linux是一款广泛应用于服务器的操作系统。
1. 使用客户端来连接Linux
由于Linux在服务器上,一般不能直接在上面操作,并且在上面操作也比较不方便,所以利用各式各样的客户端软件用来连接Linux
连接方法:连接的时候需要知道Linux的ip地址,用户名和密码。并且虚拟机和本地机要能ping通,虚拟机需要开启网卡。
2. Linux的常用命令
Linux中万物皆文件,一般操作就是对文件和文件夹的操作
(1) 切换目录
切换到根目录:cd /
切换到家目录:cd ~
切换到指定目录的位置:cd a/b/c 或者cd/a/b/c
切换到上一级的目录:cd ..
(2) 查看目录
ls –a:查看全部 包括隐藏文件
ls -R:级联显示
ll: 详细查询
ll -h:显示文件大小
(3) 创建文件夹
创建文件夹:mkdir 文件夹名
连续创建多层文件夹:mkdir –p
(4) 创建文件:touch 文件名(注意Linux中不区分扩展名)
(5) 删除命令
删除文件:rm 文件名
删除文件夹:rm –r 文件夹名
(6) 复制命令
cp 要复制的文件名 目标目录/文件名
cp-r 复制目录
(7) 命令移动:mv 要移动的文件名 移动到的位置
(8) vim 编辑器
vim 文件名,打开后按i进入输入模式,写入内容
然后按esc退出输入模式
然后:-> wq 保存并退出
:->q!强制退出
(9) cat 查看文本内容
cat a > b 将a的内容给b
cat a >> b 将a的内容追加给b
(10)tar 归档压缩
具有两个功能:压缩和解压缩
-c 压缩
-x 解压缩
-f 文件
-v 显示
压缩:tar -czvf 压缩后文件名目标
解压缩:tar -xzvf 目标名
tar -xzvf 目标名 -C 目标目录
3. Linux的用户、组和权限
Linux中多用户,而且各个用户之间的操作互不影响,可以说是几乎完全隔离的,这些用户之中root用户具有最高的权限。
Linux中有许多组,每个组中有用户,可以有多个用户。
最初的时候一个用户属于一个组,就是他自己
(1) 用户的操作
Linux中只有root用户才能创建用户
创建用户:useradd 用户名
设置密码:passwd 用户名
切换用户:su 用户名
删除用户:userdel 用户名
(2)组的操作
添加组:groupadd 组名
删除组:groupdel 组名
修改组:groupmod 后接-n 新组名 旧组名 是修改组名
将用户添加到组中:usermod –G 组名 用户名
(3)显示的操作
cat: 显示全部的信息
tail:显示后十个的信息
grep:搜索
more:按回车键一点一点的显示
cat /etc/group:显示所有的组
(4)权限
通过ll或ls -l 可以查看文件的类型和权限
权限一共有10位:第一位是类型位,剩下9位,每三位一组分别表示:所属用户 组 其他
权限的表示 x代表可执行,w代表可写,r代表可读。
也可以利用数字来进行表示12 4 分别代表执行 写 读。
权限的后九位就可以用三个数字来表示。例如777(都是可执行可读可写)、755(组和其他是可执行可读)
(5)权限的调整
A、调整文件所属用户/组
调整文件所属的组:chgrp 组名 文件名
调整文件所属的用户:chown 改的用户 文件名
调整文件的用户和组:chown 用户:组文件名
B、修改用户的权限
通过数字来修改权限,也可以通过具体的文件所属和权限修改,+号代表添加,-号代表减少(文件所属 ug o a,具体权限 x w r)
例如: chmod 777 xx.txt
chmod u+r xx.txt
4. Shell脚本语言
shell是用来和系统内部进行交互的,也可以理解为是一种语言
(1)shell文件的执行
./文件名 表示执行文件中的脚本
bash 文件名 也表示执行脚本
(2)shell文件
第一行写:#!/bin/bash(这句代码就是告诉操作系统/bin/bash这个为可执行文件,就是说明什么程序是可执行的)
# 符号代表注释
在shell文件中调用变量的时候在变量前要加$
1.输出语句:echo 内容
2.输入语句:read -p “input 名字”变量名:q
3.判断大小:
等于:-eq
大于:-gt
小于:-lt
4.if语句格式:
第一种if [ $a –gt 5 ];
then 满足条件要执行的语句
else 不满足条件要执行的语句
fi
(注意:[]内部两端要有空格)
第二种if [];
then
elif [];then
else
fi
5.多选项的语句格式:
case 变量名 in
选项1)要执行的语句;; #注意是两个分号
选项2)要执行的语句;;
*) default
esac
6.while循环语法:
while [ $i –lt 10 ]
do
done
7.for循环语法:
第一种:for n in a b c d
do
done
第二种:for((i=0;i<100;i++))
do
done
8.函数
定义函数:function 函数名(){函数体}
调用函数:函数名 参数1 参数2
取参(取第一个参):$1
9.数组
array(a b c)
${array[0]} 通过下标去数组内容
${array[*]}取所有元素
${#array[*]}取长度
10.日期命令
date
%H 小时,24小时制(00~23)
%I 小时,12小时制(01~12)
%k 小时,24小时制(0~23)
%l 小时,12小时制(1~12)
%M 分钟(00~59)
%p 显示出AM或PM
%r 显示时间,12小时制(hh:mm:ss %p)
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 显示秒(00~59)
%T 显示时间,24小时制(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 显示时区,日期域(CST)
%a 星期的简称(Sun~Sat)
%A 星期的全称(Sunday~Saturday)
%h,%b 月的简称(Jan~Dec)
%B 月的全称(January~December)
%c 日期和时间(Tue Nov 2014:12:58 2012)
%d 一个月的第几天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第几天(001~366)
%m 月份(01~12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%y 年的最后两个数字(1999则是99)
小练习:制作一个随机数的函数并调用,可以指定最大数和最小数
#!/bin/bash
function random(){
min=$1
max=$2
time=$(date +%s%N)
num=$[$max-$min +1]
result=$[$time%$num+$min]
echo$result
}
echo $(random 1 9)
会输出1到9的随机数