为什么要有Liunx?
我们用手机浏览器打开一个网页的时候,和用电脑浏览器打开同一个网页时,显示是不一样的,手机浏览器会自动的去适应这个网页,但是如果手机打开的网页和电脑浏览器打开的网页那样,那么就要我们自己去进行缩放,去找到自己的东西,那样很麻烦,我们的操作也很不方便。
所以系统程序在Liunx运行的时候,Liunx会自动去协调、调整相关的参数,并且Liunx提供好一些所需要的功能,网络功能、多用户登录等功能,无需用户自己在去构建这些东西,程序在运行的时候和网络的交互等,Liunx已经帮助我们做好了。
什么是Liunx?
这个要讲一下这个Unix和Liunx的一点小历史,大家可以理解为在60年代,有一群人可以说是在这个AT&T贝尔实验室内机缘巧合下开发了出了这个系统(具体的历史,大家去百度,我们这是用白话文去讲解),AT&T意识到了这个操作系统的商业价值就将Unix包装成商业产品(收费)。
Liunx的产生是源于有那么一个人林纳斯·托瓦兹(Linus Torvalds),也就是这Liunx创始人,觉得不满意那些收费的,他就以Unix为基础编写了一个新的操作系统,这个新的操作系统就是Liunx。
Liunx在编写的过程中,使用了大量的由麻省剑桥免费软件基金的GNU软件,也是要感谢这个Liunx创始者,所以这个Liunx才得以开源,免费。
Liunx是一套免费和自由传播的类Unix操作系统,一个多用户、多任务、支持多线程和多CPU的操作系统,Liunx能运行主要的Unix工具软件、应用程序和网络协议,所以Liunx也继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统,Liunx也支持32位和64位硬件。
目前市面上比较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、Suse、OpenSUSE。
为什么不用Windows作为服务器操作系统?
Windows是我们常用的桌面化操作系统,但是这个桌面化操作系统为了更加人性化,所以做了很多事情,使得用户不用在像操作Unix或Liunx那样敲代码,但是就因为做了太多的事情,使得我们的应用在运行的时候,往往很多计算机资源就没有办法给应用利用起来,因为这些资源都去做了很多人性化的东西。
Liunx就是一个白色,空的篮。
Windows就是一个装饰好,而且还很人性化的设计了一个可以提的把手。
Liunx适合搬运东西。
Windows适合出去拿着出去买菜。
Liunx特点
一切都是文件
没有后缀之说,什么后缀的文件都可以查看
支持32位和64位硬件
多用户
……
Liunx目录结构(标红就是常用)
|
目录 |
描述 |
|
/ |
根目录 |
|
bin |
系统脚本命令 |
|
boot |
系统启动相关 |
|
dev |
挂载外部设备(光盘等…) |
|
etc |
配置文件 |
|
home |
自定义用户根目录 |
|
lib64 |
Liunx自带库(C++等) |
|
lost+found |
|
|
media |
存放系统自动识别设备,例如U盘 |
|
mnt |
也是用于挂载用,例如共享文件夹 |
|
opt |
挂载软件,用户安装的软件所相关的存放目录,如:oracle |
|
proc |
存放系统镜像、内存 |
|
root |
超级管理员目录 |
|
sbin |
系统命令 |
|
seliunx |
系统安全相关 |
|
srv |
Service简写,系统服务等 |
|
tmp |
临时文件 |
|
usr |
存放一些安装软件,和opt差不多 |
|
var |
变化文件(日志、变量…) |
Vim编辑器
所有的Unix Like系统都会内建Vi文书编辑器,其他的文书编辑器则不一定会存在,但是目前使用比较多的是Vim编辑器。
Vim具有程序编程能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
Vim是从Vi发展出来的一个文本编辑器。
简单来说Vi是老式的字处理器,不过功能很齐全了,但是还有进步的空间。
Vim编辑器有三种模式:一般模式、编辑模式、指令模式
文本使用Vim编辑器命令:
vi test.txt
vim test.txt
编辑模式
|
操作 |
描述 |
|
i |
进入编辑模式,当前光标前 |
|
a |
进入编辑模式,当前光标后 |
|
o |
进入编辑模式,当前光标行下一行,新开一行 |
指令模式
进入指令模式:输入 :
|
操作 |
描述 |
|
:set nu |
设置行号 |
|
:set nonu |
取消行号 |
|
:wq! |
w 保存、q 退出 、 ! 强制执行 |
一般模式
|
操作 |
描述 |
|
yy |
复制光标一行 |
|
y数字y |
复制一段(光标起始,第几行到第几行) |
|
p |
箭头移动到目的行粘贴 |
|
u |
撤销上一步 |
|
dd |
删除光标当前行 |
|
d数字d |
删除光标(含) 后多少行 |
|
x |
删除一个字母 |
|
X |
删除一个字母 |
|
yw |
复制一个词 |
|
dw |
删除一个词 |
|
shift+^ |
移动到行头 |
|
shift+$ |
移动到行尾 |
|
1+shift+g |
移动到页头 |
|
shift+g |
移动到页尾 |
|
数字N+shift+g |
移动到目标行 |
命令操作(常用)
查看网络的IP和网关
|
命令 |
描述 |
备注 |
示例 |
|
ifconfig |
查看网络和网关 |
|
|
|
ping 地址 |
|
|
ping 192.168.1.1 |
|
service network restart |
重启网络 |
|
|
|
netstat |
显示网络统计信息 |
|
netstat -anp #显示整个系统的网络请,连接数,书包传递,路由表内容等 |
配置主机名称
|
命令 |
描述 |
备注 |
示例 |
|
hostname |
查看主机名称 |
|
|
|
hostname 主机名 |
临时修改主机名称 |
|
hostname myhost |
|
cat/etc/sysconfig/i18n |
查看系统语言 |
|
|
永久性修改主机名
CentOS6
修改主机名称:vi /etc/sysconfig/network
修改:HOSTNAME=hadoop100
备注:修改是不起作用的,要reoot机器重启才会启用,重启网络也是没有用的
CentOS7
vi /etc/hostname
#先删除,只保留下面内容
hadoop-senior01-levi.com
防火墙
Linux6.x系统防火墙
|
命令 |
描述 |
备注 |
示例 |
|
service iptables status |
查看防火墙状态 |
|
|
|
service iptables stop |
临时关闭防火墙 |
|
|
|
service iptables start |
临时关闭的开启 |
|
|
|
chkconfig iptables --list |
查看防火墙状态列表 |
0系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动 1单用户工作状态,root权限,用于系统维护,禁止远程登录 2多用户状态,没有NFS 3完全的多用户状态,有NFS,登录后进入控制台命令行模式 4系统未使用,保留 5控制台,登录后进入图形GUI 6系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动 |
|
|
chkconfig iptables off |
关闭防火墙 |
|
|
|
chkconfig iptables on |
启动防火墙 |
|
|
Linux7.x系统防火墙
|
命令 |
描述 |
备注 |
示例 |
|
firewall-cmd --state |
查看防火墙的状态 |
|
|
|
iptables -L |
查看防火墙的状态 |
|
|
|
systemctl stop firewalld.service |
关闭防火墙 |
但是开机之后还会启动防火墙 |
|
|
systemctl disable firewalld.service |
禁止firewall开机启动 |
|
|
|
cat /etc/sysconfig/iptables-config |
查看防火墙配置 |
|
|
防火墙文件
修改防火墙文件,关闭防火墙值为disabled
vi /etc/sysconfig/seliunx
SELINUX=disabled
关机重启
|
命令 |
描述 |
备注 |
示例 |
|
sync |
将内存的数据同步到磁盘中 |
养成关机和重启都操作一次是最好 |
|
|
shutdown [选项] 时间 |
关机或重启 |
|
shutdown -h now #马上关机 shutdown -r now #马上重启 shutdown -r 1 \"描述信息\" #一分钟后重启 |
|
halt |
直接关机 |
等于shutdown -h now 和 power off |
|
|
reboot |
重启 |
等于shutdow -r now |
|
常用快捷键
|
快捷键 |
描述 |
备注 |
示例 |
|
ctrl + c |
停止进程或退出进程 |
|
|
|
ctrl + l |
清屏 |
|
|
|
ctrl + q |
退出 |
|
|
|
ctrl + alt |
Liunx和windows之间切换 |
|
|
|
tab |
自动补全 |
|
|
|
上下键 |
最近执行的命令 |
|
|
文件命令
|
命令 |
描述 |
备注 |
示例 |
|
pwd |
显示当前目录绝对路径 |
|
|
|
ls |
列出目录内容 |
-a 全部文件,包括隐藏文件 -d 列出目录本身 -l 长数据串列出,包括文件属性与权限,这个可写成ll |
ls -a ls -al ll
|
|
mkdir 文件夹名称 |
创建空文件夹 |
-p 创建多层目录 |
mkdir dirname
mkdir -p f/s/t |
|
ln |
文件或文件夹链接 |
-s 软链接 硬链接:当原文件删除时,任然可以独立自由使用 软链接:当原文件删除时,就无法使用 |
touch test.sh vi test.sh #!/bin/bash ls
ln -s test.sh testm.sh ln test.sh testh.sh chmod 777 test.sh testh.sh testm.sh ./testm.sh ./testh.sh rm -rf test.sh ./testh.sh ./testm.sh |
|
cd |
切换目录 |
cd 切换目录 cd 绝对路径 #切换到当前这个文件夹下 cd 相对路径 #切换到文件夹内的文件夹 cd ~或cd #回到用户的家目录,即当前用户主目录 cd - #回到上一次的目录 cd .. 回到当前目录的上一级目录 cd -P 跳转到实际的物理目录,例如:软连接的文件夹 |
cd /home |
|
cp |
复制文件或目录 |
cp source dest #复制 原 目的地 cp -r source dest #复制(递归) 原 目的地 |
cp test.txt test2.txt |
|
rm |
删除文件或目录 |
-r 递归 -f 强制删除 -i 询问是否删除 |
rm -rf #强制递归删除文件夹
|
|
mv |
移动文件与目录或重命名 |
mv 原文件/文件夹名 新名(当前目录不可重名) mv 被移动 移动地址 |
mv test.txt test2.txt
mv test.txt /home |
|
cat |
查看文件内容 |
cat 文件名 cat -n 文件名 #显示行号 cat -A #显示特殊符号,便于查询BUG,空行,看不见特殊字符等等 cat -b 列出行号,仅对非空白行做行号显示,空白行不标行号 cat -E #将结尾的空行以$显示 cat -T #将[tab]按键以^| 显示出来 cat -v #列出一些看不见的特殊字符 备注:-T和-v都包含到-A |
cat -b - A -n #显示行号也显示符号
写法1:cat -nAbE string2.txt
|
|
tac |
查看文件内容 |
是cat的反写,就是倒着看,从结尾行开始看 |
tac test.txt |
|
more |
查看更多文件内容,一页一页展示 |
空白键[space]:向下翻一页 Enter:向下翻一行 q:表示离开more,不在显示该文件内容,几乎所有q都代表离开,部分特殊的不说 ctrl+F:向下滚动一屏 ctrl+B:返回上一屏 =:输出当前行的行号 :f :输出文件名和当前行的行号 |
more test.txt |
|
less |
查看文件内容 |
作用和more类似,不同的是允许使用[pageup]和[pagedown]往回滚动 [pagedown]:向下翻一页 [pageup]:向上翻一页 /字符串:向下搜索 ?字符串:向上搜索 q: 离开less |
less test.txt |
|
head |
查看文件内容头几行 |
-n 查看前几行 |
head -n 10 文件名 #查看文件前几行 |
|
tail |
查看文件内容,查看尾几行,很多时候查看日志都是查看后几行 |
-f追踪文件变化,日志不断打印的时候,不断的监控追加的日志 |
tail -f 文件名 |
|
|
|
|
|
结果过滤
|
命令 |
描述 |
备注 |
示例 |
|
grep |
将结果内搜索字符串匹配的行并输出 |
grep + 参数 + 查找内容 + 源文件 -l 不区分大小写(使用单字符) -h 查询多文件时不显示文件名 -l 查询多文件时只输出包含匹配字符的文件名 -n 显示匹配行和行号 -s 不显示不存在或无匹配文本的错误信息 -v 显示不包含匹配文本的所有行 |
ls -l | grep ll.txt #将查询结果过滤出ll.txt这个文件
ls -l | grep -n ll.txt # 将查询结果过滤出ll.txt这个文件,并显示行号 |
命令连接符号
|
命令 |
描述 |
备注 |
示例 |
|
| |
管道,将一个命令输出传送给另一个命令,管道可以连接多个文件 |
|
ls -l /etc | grep init #过滤这个查询出来的文件 ps -ef | grep tomcat #查询出所有的进程信息,并且过滤出tomcat |
|
&& |
逻辑与 |
第一个命令成功,就执行第二个命令成功 |
ls && pwd #执行成功 lss && pwd #执行失败 |
|
|| |
逻辑或 |
第一个命令不成功,或执行第二个命令 |
ls || pwd lss || pwd |
|
> |
输出重定向 > 输出结果覆盖文件 >> 输出结果在文件后追加 |
Shell对每一个进程预先定义了3个文件描述字,0,1,2 0标准输入,1标准输出,2标准错误输出 |
ll /usr > /home/test.log #会把ll的结果输出到这个文件中,会把内容给覆盖,将>换成>>才会追加
lls /usr 2> /home/test.log #错误重定向,将执行错误日志信息放到指定的log日志中
|
|
< |
结果输入重定向 < 输出结果覆盖文件 << 输出结果在文件后追加 |
Shell对每一个进程预先定义了3个文件描述字,0,1,2 0标准输入,1标准输出,2标准错误输出 |
wall < /test/x.log |
历史
|
命令 |
描述 |
备注 |
示例 |
|
history |
显示当前账号敲过的命令历史 |
|
|
时间、日期、日历
|
命令 |
描述 |
备注 |
示例 |
|
date [OPTION]...[+FORMAT] |
时间 |
|
date #显示当前日期、时间 date \"+%Y-%m-%d %H:%M%:S\" #按照年月日,时分秒显示 date -d \"next day\" #明天的日期 date -d \"yesterday\" #昨天的日期 date -d \"next week\" #下周 date -d \"next monday\" #下周一 date -s \"2018-06-30 11:45:45\" #设置日期 |
|
cal |
查看日历 |
|
cal #查看日历 cal -3 #最近三个月 cal 2017 #显示年的日历 |
同步时区:
1、先生成时区配置文件Asia/Shanghai,用交互式命令 tzselect 即可
2、拷贝该时区文件,覆盖系统本地时区配置
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#重启后无效
sudo date -s \'2016-04-20 11:22:33\'
#永久
hwclock -w
#查看时区
timedatectl
分区、硬盘
|
命令 |
描述 |
备注 |
示例 |
|
fdisk |
查看分区 |
-l 查看分区详情,在root权限下才能知晓 |
fdisk -l #查看分区详情,在root权限下才能知晓 |
命令帮助
|
命令 |
描述 |
备注 |
示例 |
|
man |
帮助命令,获取命令的帮助文件,如何使用等 |
q 是退出 |
man ls |
|
命令 –help |
查看命令选项用法 |
|
|
搜索查找
|
命令 |
描述 |
备注 |
示例 |
|
find [搜索范围] [搜索条件] |
查找文件或目录 |
-name 按照文件名查找 -size 按照文件大小查找 -type 按照文件类型查找(f二进制文件、l链接文件、d是目录)
find 也可以用逻辑与和逻辑或 -a 逻辑与 or 逻辑或
-exec是连接其他一起 |
find /home -name \"*.txt\" #查询home目录下的所有文件,后缀是.txt
find /home -user root *.txt #所有者的是root的用户,且后缀是.txt
find /home -size +10 #查找大于10个字节的文件 find /home -size -10 #查找小于10个字节的
逻辑与和逻辑或 find /opt -size -10 -a -name \"*.txt\" #逻辑与 find /opt -size -10 -or -name \"*.txt\" #逻辑或
find /opt -type d #查找文件类型是文件夹的
find /opt -type f -exec rm -rf {} \\; #查找出这个目录下的文件,全部删除,,{}是结果数据
|
|
which |
搜索命令执行位置 |
在liunx中一般有两种命令,一种是所有用户可以使用,一种是只允许管理员使用, |
which ls #搜索这个命令在哪里 |
|
whereis |
搜索命令执行位置 |
比which显示的更多 |
whereis ls #搜索这个命令相关文件 |
@font-face { font-family: "autolinktags"; src: url("https://www.seowoai.com/zb_users/plugin/AutoLinkTags/style/fonts/iconfont.woff2") format("woff2"), url("https://www.seowoai.com/zb_users/plugin/AutoLinkTags/style/fonts/iconfont.woff") format("woff"), url("https://www.seowoai.com/zb_users/plugin/AutoLinkTags/style/fonts/iconfont.ttf") format("truetype"); font-weight:normal; font-style:normal; }.tagslink::after { content:"\e613"; margin:2px 0 0 0px; font-size:12px; font-family:"autolinktags"; display:inline-block; vertical-align:top; }
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。



