1、先过一遍菜鸟教程
2、Ubuntu倒是用过,狂神用的CentOS,竟然还有Oracle Linux
3、通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。
码耶,昨天注册阿里云,今日竟然有0元买云服务器,开干开干。
4、在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
正确的关机流程为:sync > shutdown > reboot > halt
关机指令为:shutdown ,你可以man shutdown 来看一下帮助文档。
例如你可以运行如下命令关机:
sync 将数据由内存同步到硬盘中。
shutdown 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:
shutdown –h 10 ‘This server will shutdown after 10 mins’ 这个命令告诉大家,计算机将在10分钟后关机,并且会显示在登陆用户的当前屏幕中。
shutdown –h now 立马关机
shutdown –h 20:25 系统会在今天20:25关机
shutdown –h +10 十分钟后关机
shutdown –r now 系统立马重启
shutdown –r +10 系统十分钟后重启
reboot 就是重启,等同于 shutdown –r now
halt 关闭系统,等同于shutdown –h now 和 poweroff
最后总结一下,不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。
关机的命令有 shutdown –h now halt poweroff 和 init 0 , 重启系统的命令有 shutdown –r now reboot init 6。
5、在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给 root 使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。
6、常见的处理目录的命令
ls(英文全拼:list files): 列出目录及文件名
cd(英文全拼:change directory):切换目录
pwd(英文全拼:print work directory):显示目前的目录
mkdir(英文全拼:make directory):创建一个新的目录
rmdir(英文全拼:remove directory):删除一个空的目录
cp(英文全拼:copy file): 复制文件或目录
rm(英文全拼:remove): 删除文件或目录
mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
你可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp。
7、以下命令来查看文件的内容
cat 由第一行开始显示文件内容
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行
你可以使用 man [命令]来查看各个命令的使用文档,如 :man cp。
8、Shell命令语言
1)、定义变量时,变量名不加美元符号(
,
P
H
P
语
言
中
变
量
需
要
)
,
变
量
名
和
等
号
之
间
不
能
有
空
格
命
名
只
能
使
用
英
文
字
母
,
数
字
和
下
划
线
,
首
个
字
符
不
能
以
数
字
开
头
。
中
间
不
能
有
空
格
,
可
以
使
用
下
划
线
(
)
。
不
能
使
用
标
点
符
号
。
不
能
使
用
b
a
s
h
里
的
关
键
字
(
可
用
h
e
l
p
命
令
查
看
保
留
关
键
字
)
。
2
)
、
推
荐
给
所
有
变
量
加
上
花
括
号
r
e
a
d
o
n
l
y
命
令
可
以
将
变
量
定
义
为
只
读
变
量
,
只
读
变
量
的
值
不
能
被
改
变
。
使
用
u
n
s
e
t
命
令
可
以
删
除
变
量
,
变
量
被
删
除
后
不
能
再
次
使
用
。
u
n
s
e
t
命
令
不
能
删
除
只
读
变
量
。
3
)
、
使
用
一
个
定
义
过
的
变
量
,
只
要
在
变
量
名
前
面
加
美
元
符
号
,PHP语言中变量需要),变量名和等号之间不能有空格 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。 中间不能有空格,可以使用下划线(_)。 不能使用标点符号。 不能使用bash里的关键字(可用help命令查看保留关键字)。 2)、推荐给所有变量加上花括号 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。 使用 unset 命令可以删除变量,变量被删除后不能再次使用。unset 命令不能删除只读变量。 3)、使用一个定义过的变量,只要在变量名前面加美元符号
,PHP语言中变量需要),变量名和等号之间不能有空格命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。中间不能有空格,可以使用下划线()。不能使用标点符号。不能使用bash里的关键字(可用help命令查看保留关键字)。2)、推荐给所有变量加上花括号readonly命令可以将变量定义为只读变量,只读变量的值不能被改变。使用unset命令可以删除变量,变量被删除后不能再次使用。unset命令不能删除只读变量。3)、使用一个定义过的变量,只要在变量名前面加美元符号即可
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
双引号里可以有变量
双引号里可以出现转义字符
9、字符串
1)、获取字符串长度
string=“abcd”
echo ${#string} #输出 4
2)、以下实例从字符串第 2 个字符开始截取 4 个字符:
string=“runoob is a great site”
echo KaTeX parse error: Expected 'EOF', got '#' at position 14: {string:1:4} #̲ 输出 unoo 注意:第一个…string" io# 输出 4 注意: 以上脚本中
是反引号,而不是单引号 ',不要看错了哦。
10、在 Shell 中,用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:数组名=(值1 值2 … 值n)
1)、例如:array_name=(value0 value1 value2 value3)或者
array_name=(
value0
value1
value2
value3
)
还可以单独定义数组的各个分量:
array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen
2)、读取数组元素值的一般格式是:${数组名[下标]}
3)、数组中可以存放多个值。
Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。
11、运算符
1)、关系运算符
2)、布尔运算符
3)、逻辑运算符
4)、字符串运算符
5)、文件测试运算符
12、流程控制
(1)、if else
fi 语法格式:if [ $(ps -ef | grep -c “ssh”) -gt 1 ]; then echo “true”; fi
(2)、if else 语法格式:
if condition
then
command1
command2
…
commandN
else
command
fi
(3)、if else-if else 语法格式:
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
(4)、for循环:for var in item1 item2 … itemN; do command1; command2… done;
(5)、while 循环用于不断执行一系列命令,也用于从输入文件中读取数据。其语法格式为:
while condition
do
command
done
(6)、无限循环语法格式:
while :
do
command
done
或者
while true
do
command
done
或者
for (( ; ; ))
(7)、 case 语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。
case … esac 语法格式如下:
case 值 in
模式1)
command1
command2
…
commandN
;;
模式2)
command1
command2
…
commandN
;;
esac
(8)、break命令允许跳出所有循环(终止执行后面的所有循环)。
continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。
13、函数
14、Shell 输入/输出重定向
大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。
一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。
同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。