Linux是一套基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU,可以免费使用和自由传播的类Unix操作系统。
linux能运行主要的UNIX工具软件、应用程序和网络协议,支持32位和64位硬件。继承了Unix以网络为核心的设计思想。Linux存在着许多不同的Linux版本,但都使用Linux内核。可安装在各种计算机硬件>设备中,严格来讲,Linux这个词本身只表示Linux内核,只是大家习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
常用命令
诶。。。这个地方
1、linux删除指定后缀的文件
1 | find . -name "*.png" | xargs rm -rf |
find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部
xargs要处理的文件如果不是在结尾,需要加上 -i这个参数
2、vim编辑器下
1 | cat /dev/null > a.txt |
dd:删除游标所在的一整行(常用)
ndd:n为数字。删除光标所在的向下n行,例如20dd则是删除光标所在的向下20行
d1G:删除光标所在到第一行的所有数据
dG:删除光标所在到最后一行的所有数据
d$:删除光标所在处,到该行的最后一个字符
d0:那个是数字0,删除光标所在到该行的最前面的一个字符
x,X:x向后删除一个字符(相当于[del]按键),X向前删除一个字符(相当于[backspace]即退格键)
nx:n为数字,连续向后删除n个字符
3、复制一个文件的所有内容到另一个文件
1 | cat file1 >> file2 |
4、将a.txt内容清除,并且使得文件的大小为0,而不删除文件
1 | cat /dev/null > a.txt |
文件系统
Linux的文件系统目录结构采用分层结构
在linux中,可执行的二进制文件可以不要扩展名
权限
用户分成3类
用户(user),组(group),其他用户(other),所有用户(all)=u,g,o,a
权限也分成3类
读(read),写(write),执行权限(excute)=r,w,x,三种权限既可以单独使用也可以组合使用
比如我给文件hhardyy.txt的属主增加执行权限。1
chmod u+x hhardyy.txt
将文件hhardyy.txt的属组去掉写权限,同时将其他用户设置为只有执行权限,而文件属主的权限不变。1
chmod g-w,o=x hhardyy.txt
chmod的数字使用方式也是很方便的,关键是数制转换的问题。这种方式是先将每个权限位化成二进制数,其中如果某权限位是“-”则用0来表示,否则用1来表示;接着,将这9列权限分为三组(每三位一组),再将每组化成一个八进制数。例如,某文件有如下权限rwxrw-r–,则转换为二进制数为111110100,再化为八进制数则为764;反之,当看到八进制数764时也应该很快转化为相应权限。
例如,将文件hhardyy.txt的权限设置为:属主拥有全部权限,属组拥有读写权限,其他用户拥有执行权限。1
chmod 764 hhardyy.txt
shell的爆炸艺术
Shell是指“提供使用者使用界面”的软件(命令解析器),它类似于DOS下的command.com和后来的cmd.exe,以及node的linux。
用linux带的编辑编一个shell脚本输出IT界最强的大佬Hello,world:1
2
3
4
5
6命令
vi hello.sh
内容
#!/bin/sh
echo “Hello,world!”
shell脚本是按行解释的,每个脚本的第一行总是以#!/bin/sh开头 。
执行shell脚本的几种方式有:
1.sh hhardyy.sh
2../hhardyy.sh
3.source hhardyy.sh or . hhardyy.sh
4.直接执行,就是给脚本hhardyy.sh增加执行权chmod a+x hhardyy.sh
也可以把命令写到shell脚本执行
比如我要挂载光驱1
2
3
4
5
6
7命令
vi mount.sh
内容
#!/bin/sh
mkdir -p mnt/cdrom
mount /dev/cdrom ~/mnt/cdrom
iptables防火墙
iptables是Linux上常用的防火墙软件。1
yum install iptables //安装
清除已有iptables规则
1 | iptables -F |
开放指定的端口
1 | #允许本地回环接口(即运行本机访问本机) |
屏蔽IP
1 | #如果只是想屏蔽IP的话“3、开放指定的端口”可以直接跳过。 |
查看已添加的iptables规则
1 | iptables -L -n |
删除已添加的iptables规则
1 | 将所有iptables以序号标记显示,执行: |
iptables的开机启动及规则保存1
2
3
4
5
6
7
8
9
10
11
12
13
14CentOS上可能会存在安装好iptables后,iptables并不开机自启动,可以执行一下:
chkconfig --level 345 iptables on
将其加入开机启动。
CentOS上可以执行:service iptables save保存规则。
另外更需要注意的是Debian/Ubuntu上iptables是不会保存规则的。
需要按如下步骤进行,让网卡关闭是保存iptables规则,启动时加载iptables规则:
创建/etc/network/if-post-down.d/iptables 文件,添加如下内容:
#!/bin/linux
iptables-save > /etc/iptables.rules
执行:chmod +x /etc/network/if-post-down.d/iptables 添加执行权限。
创建/etc/network/if-pre-up.d/iptables 文件,添加如下内容:
#!/bin/linux
iptables-restore < /etc/iptables.rules
执行:chmod +x /etc/network/if-pre-up.d/iptables 添加执行权限。
yum
yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
配置本地yum源1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
171、挂载DVD光盘
mount /dev/cdrom /mnt/cdrom //mnt/cdrom是我自定义的目录,挂载光驱成功之后,成功会在cdrom下面出现一个Packages文件包
2、在目录/etc/yum.repos.d/创建文件文件名(任意名).repo
3、配置本地yum源
cd /etc/yum.repos.d/ #进入yum配置目录
touch centos.repo #建立yum配置文件
vim centos.repo #编辑配置文件,添加以下内容
[centos-yum]
name=centos #自定义名称
baseurl=file:///mnt#本地光盘挂载路径
enabled=1 #启用yum源,0为不启用,1为启用
gpgcheck=0 #检查GPG-KEY,0为不检查,1为检查
:wq! #保存退出
4、测试使用yum命令自动安装软件
yum clean all #清除yum缓存
yum makecache #缓存本地yum源中的软件包信息
这里提示一下,假如要用yum安装dhcp的时候提示失败,很可能是因为安装源是网络源,而不是挂载的本地源,这时候要把默认的网络源禁掉就可以了,所谓禁掉就是把网络源的配置文件改个名字,它找不到了本地源就生效了
yum(选项)(参数)
1 | -h:显示帮助信息; |
yum参数
1 | install:安装rpm软件包; |
部分常用的yum命令
1 | 自动搜索最快镜像插件:yum install yum-fastestmirror |