centos:企业 Linux-----Community Enterprise Operating System----开源免费
Redhat enterprise Linux(RHEL)---Linux操作系统佼佼者---企业版
Ubuntu----开源免费,可购买服务---借鉴Debian,超越Debian
Debian----欧洲流行
suse
oracle Linux
麒麟 kylin---军方
cpu:一颗,里面有4核,8核,16核 实现运算功能(core)
Intel:
core酷睿系列:i5,i7,i8,i9----个人电脑使用
xeon至强系列:服务器使用
塔式服务器
机架式服务器:1路(1U),2路(2U),4路(4U)
1U = 4.5cm
GUI 图形用户界面---可以通过图形看到效果,可点鼠标操作
CLI 命令行界面---只能通过敲命令来完成---Linux的专业人士
localhost 本地主机---Linux系统安装好之后默认的名字 一台电脑就是一台主机
ps aux 查看当前Linux里所有的进程的信息的命令
ps 命令
aux 选项
| 管道
grep 文本过滤的命令
ps aux|grep sshd
sshd Linux里提供的远程登陆服务的进程
Ubuntu里安装软件的命令:
sudo apt-get install openssh#
sudo授权的命令,root用户授权我们当前的登陆去执行重要的命令,Ubuntu默认情况下root用户是禁用的
apt-get 是Ubuntu里软件管理的命令
openssh# 安装软件的名字以openssh开头的
#是通配符,可代表任意个字符
openssh-clent openssh-server
service sshd start 启动sshd服务
yum是centos系统里管理软件的命令
yum install/remove vim---安装/删除vim
CTRL+c 强行终止
ping网络测试的命令,检测网络是否通畅
Linux会一直ping,需要CTRL+C强行终止,windows只会Ping4次
关机命令:
init 0
poweroff
halt
shutdown -h now
Ubuntu和centos区别:
派系:Debian Redhat
免费
开源
使用上的区别:Ubuntu不允许root用户登陆,安装命令:apt-get,,,yum
centos没有桌面版本
nginx:web服务器软件---提供网站服务
基础软件不要钱
增值软件:需要购买----vip(使用更好的功能)
support:
NGINX Plus---plug 插件
提示符:第一提示符---PS1-- prompt symbol 1
Shell编程:Linux命令编程---简单---脚本编程)——Linux命令堆积起来
脚本在Windows里不能使用,有些命令在Windows没有
echo Linux里输出内容的命令,相当于python里的print()
[root@localhost ~]# echo $PS1
[\u@\h \W]\$
[root@localhost ~]#
shell赋值时等号左右不能有空格,有空格会当成命令
[root@localhost ~]# sg="han"--定义变量sg,赋值han
[root@localhost ~]# echo $sg---引用变量的值要接$
han
[root@localhost ~]# echo "hello,world"
hello,world
[root@localhost ~]# echo hello,world
hello,world
输出一段内容可不加引号,但是不能用单引号
单引号和双引号的区别:
1.双引号里可以引用变量的值
2.单引号:所见即所得---$符号在里面只是一个符号,没有特殊作用,不能去引用变量的值
自定义:自己定义的变量---建议小写
预定义变量:系统里预先定义好的变量,不需要人再去定义,可直接使用
env查看预定义好的环境变量
环境变量:全局变量,所有用户都可以使用
set查看所有变量
[root@localhost ~]# set|grep PS1
PS1=‘[\u@\h \W]\$ ‘
主提示符[登录用户@主机名 工作目录]
PS1=‘[\u@\h \W]\$ ‘
辅助提示符
root用户登录后,提示符为“#”
其他普通用户登陆后,该提示符为“$”
PS1可修改(不推荐)----临时修改:
[]只是一个符号,用来组合使用
\u 当前登录用户的名字 userbr/>@只是一个符号,无特殊作用
\h 当前Linux主机的名字 hostname
\W当前所在文件夹的名字(当前路径) working directory 工作目录 目录=文件夹
~当前目录所在的文件夹是家目录
根目录:整个Linux系统的文件夹开始的地方--最顶层的文件夹名字
家目录:用户登录系统的时候直接进入的文件夹,就是这个用户的家目录
root用户的家目录在/root目录
普通用户的家目录在/home下,默认与用户名同名
区别:
家目录在根目录下,根目录包含了家目录(root的家目录/root,普通用户的家目录/home)
cd 进入文件夹的命令 change directory to another directory
ls 查看文件夹里的内容 list
[root@localhost ~]# cd /
[root@localhost /]#
\$若登陆的root用户,就使用#
[root@localhost ~]# useradd han---新建用户han
[root@localhost ~]# su - han---切换用户han,substitute替换
[han@localhost ~]$
[han@localhost ~]$ exit--退出登陆用户
注销
[root@localhost ~]#
注销:退出当前用户,退出时会关闭这个用户开启的所有(前端)程序
[root@localhost ~]# pwd---查看当前路径---print name of current/working directory
/root
[root@localhost ~]# man pwd---使用man命令查看pwd命令的使用手册--manual手册,指南
按q(quit)退出man命令界面
[root@localhost /]# rm -rf china
[root@localhost /]# cd china
-bash: cd: china: 没有那个文件或目录
PS2是第2提示符:续行,一行没写完继续到下一行写的时候,出现的提示符
[root@localhost ~]# echo ‘hello
world
han
‘
hello
world
han
Linux通用命令格式:命令字符[选项][参数]
选项:用于调节命令的具体功能,是可供选择的项目,接了有特殊作用
参数:参与进来的(),命令操作的对象,如文件,目录名
中括号内可接可不接
“-”引导短格式选项----“-a”
“--”引导长格式选项(多个字符)---“--all”
-p --parents:1.文件夹如果存在,不报错
2.当父目录不存在的时候,自动新建
Linux命令:用于实现某一类功能的指令或程序
ls,makdir,cp,rm,pwd都是命令,c语言编写
命令的执行依赖于解释器程序(如bin\bash)
Linux命令的分类:
内部命令:属于shell解释器的一部分----安装好bash就有的命令,这些命令不用额外安装
外部命令:独立于解释器之外的程序文件---安装好bash并没有提供的命令,需要我们另外安装的
操作系统:
1.内核:操作系统内部最核心软件
作用:1.对cpu进行调度管理
2.对内存进行分配
3.对文件系统进行管理
4.对进程进行管理
5.对其他硬件进行管理
系统调用:system call 操作系统内部的程序,它是内核对外的接口程序---理解为函数,如read(),write(),fork()等
2.库:函数库,用来实现一个具体的功能,可被其他程序调用--相当于一个*
3.应用程序:具体拿来使用的软件,如nginx,mysql,ls,mkdir等----普通用户使用的软件
硬件(服务器方向):cpu,内存,网卡,磁盘
shell是Linux系统里的解释器---中间传递
shell解释器:翻译工具,将人输入的命令翻译给内核,内核把执行结果给shell,shell再返回给人
用户---》ip add---》shell 1.分析语法2.查找命令在哪3.让内核去启动程序--》内核执行程序---》执行结果---》shell---》用户
bash:Linux里最好使用的shell解释器,很多版本的Linux默认解释器(centos,ubuntu,redhat)
bash也是一个程序,用c语言缩写出来的
bsh----bash again
[root@localhost ~]# echo $SHELL 查看Linux里默认的shell
/bin/bash
[root@localhost ~]# cat /etc/shells 查看Linux里有哪些shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/usr/bin/tmux
/bin/tmux
shell主要的工作:
1.解释用户输入的命令,哪个是命令,哪些是参数和选项
2.查找命令在磁盘里存放的位置
3.启动这个程序
shell编程:就是Linux里的shell里写程序---让shell帮忙执行Linux命令
cd /
mkdir -p han
cd han
#创建20个文件夹,以sanchuang开头
for i in {1..20}
do
mkdir sanchuang$i
done
#for in do done 都是关键字
#创建10个用户,用户名以feng开头,并创建完后输出信息
for a in {1..10}
do
useradd feng$a
echo "create user feng$a ok"
done
shell脚本:剧本,里面的内容都是提前安排好的
shell脚本是一个文件,里面是大量的Linux命令,执行这个脚本就会执行里面的命令,按照相关的顺序,从头到尾的执行
[root@localhost ~]# bash create_file.sh 执行脚本
create user feng1 ok
create user feng2 ok
create user feng3 ok
create user feng4 ok
create user feng5 ok
create user feng6 ok
create user feng7 ok
create user feng8 ok
create user feng9 ok
create user feng10 ok
echo $? 上一条命令执行的返回值为0,说明上一条命令执行成功,非0表示执行失败
id判断用户是否存在,查询用户信息的命令,如果能显示出来,说明用户存在
if 条件
then
命令1
else
命令2
fi
条件:可以是执行的一条Linux命令,命令执行成功,条件为真(成立),失败则为假(不成立)
fi 关闭符号
&>/dev/null 将内容不要在屏幕上显示,重定向到黑洞文件
/dev/null 黑洞文件,任何内容只要存放到这个文件里,都不保存
重定向:
将id feng$a再屏幕上的输出内容重定向到/dev/null文件里,这个文件不保存内容