Linux学习笔记(一)
注:本文章摘自网络与论坛,仅用于记录学习笔记,分享学习经历。
Linux常用命令集
目录/文件处理命令
cd: 切换工作目录
$cd 返回主目录
$cd home/liu 跳转当前目录
$cd …/…当前目录向上移动两级
ls: 列出指定目录内容
-l 以列表形式查看
-h 显示文件大小查看
-a 查看所有文件,包括隐藏文件
-i 显示出文件的 i 节点
pwd:显示当前工作目录的绝对路径
cp:复制文件或者文件夹
-a =-pdr
-p 同时复制文件属性,比如修改日期
-d 复制时保留文件链接
-r 复制文件夹时,递归复制子文件夹
-l 不复制,而是创建指向源文件的链接文件,链接文件名由目标文件给出。
note :可以在拷贝时重命名
mv: 移动文件或者文件夹,可以在移动时重命名
rm:删除文件或者文件夹
-r:递归删除
-f:强制删除 (没有提醒)
mkdir:创建目录
-p:递归的创建目录(创建多层目录)
一次创建多个目录:mkdir{a,b,c,d,e,f}
rmdir:删除一个空文件夹
touch 文件名:创建文件 可以一次创建多个文件,以空格隔开
cat :查看文件内容
-n:带行号
find:搜索指定范围内的文件
压缩解压缩命令
tar:
zip:
zip -r 压缩生成的文件名 要压缩的目录
zip 压缩生成的文件名 要压缩的文件。
unzip:
unzip 要解压缩的文件
网络命令
ping:测试网络连通性
ping ip地址
-c 要ping的次数
ifconfig:
直接回车查看当前网卡信息
ifconfig 网卡名 ip地址 临时修改网络ip
ifconfig th0:0 192.168.1.100 netmask 255.255.255.0
给th0这个网卡新添加一个ip
ifconfig eth0:0 down
ifconfig eth0:0 up
其他命令
Linux日常知识点
什么是Lilo?
LILO 是Linux的引导加载程序。他主要是用于将Linux操作系统加载到主内存中,以便它可以开始运行
什么是交换空间?
交换空间是Linux使用的一定空间,用于临时保存一些并发运行的程序。当RAM没有足够的内存来容纳正在执行的所有程序时,就会发生这种情况。
什么是BASH
BASH是作为原始Bourne Shell的替代品。他结合了原始版本的Bourne Shell的所有功能,以及其他功能,使其更容易使用。已经被改成运行Linux的大多数系统的默认shell。
什么是CLI?
命令行页面:CLI,又叫字符用户页面CUI
什么是GUI?
图形用户界面
Linux系统重要概念
一切皆文件
Linux文件类型
普通文件,目录文件,链接文件,设备文件,命名管道
什么是硬链接?
因为Linux的文件是由索引节点(inode)来识别文件,硬链接可以认为是一个指针,指向文件索引节点的指针,系统不为他来重新分配iNode,每添加一个硬链接,文件的连接数就加一
不足:1.不可以在不同文件系统的文件之间建立链接
2.只有超级用户才能为目录创建硬链接
什么是软连接?
软连接没有文件系统限制,任何用户都可以指向目录的符号链接。
不足:源文件移动之后软连接就失效了。
软硬连接区别
1.硬链接不可以跨分区,软连接可以跨分区
2.硬链接指向一个iNode节点,软连接是创建一个新的iNode节点
3.删除硬链接文件,不会删除源文件,删除软链接文件,会把源文件删除
RAID 是什么?
RAID 全称是独立磁盘冗余阵列,基本思想是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个整体的大硬盘。RAID 通常被用在服务器电脑上,使用完全相同的硬盘组成一个逻辑扇区,因此操作系统只会把它当做一个硬盘。
RAID 分为不同的等级,各种不同等级在数据可靠性和读写性能上做了不同的权衡,在实际应用中,可以依据自己的实际需求选择不同的 RAID 方案。
**
安全
**
一台 Linux 系统初始化环境后需要做一些什么安全工作?
- 添加普通用户登录,禁止 root 用户登录,更改 SSH 端口号。
- 服务器使用秘钥登录,禁止密码登录。
- 开启防火墙,关闭SELinux,根据业务需求设置相应的防火墙规则。
- 装 fail2ban 这种防止 SSH 暴力破解软件。
- 设置只允许公司办公网出口 IP 能登录服务器
也可以安装VPN等软件,只允许链接 VPN 到服务器上。
- 修改历史命令记录的条数为10条。
- 只允许有需要的服务器可以访问外网,其他全部禁止。
- 做好软件层面的防护。
· 设置 nginx_waf 模块防止 SQL 注入
· 把 Web 服务使用 www 用户启动,更改网站目录的所有者和所属组为 www 。
什么叫 CC 攻击? 什么叫 DDOS 攻击?
- CC 攻击主要是用来攻击页面,模拟多个用户不停对你的页面进行访问攻击,让你的系统资源消耗殆尽。
- DDOS 攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,来对一个或多个目标发动 DDOS 攻击。**
如何预防 CC 攻击和 DDOS 攻击?
只能是通过硬件防火墙来做流量清洗,将攻击流量引入黑洞。
什么是网站数据注入?
- 由于没有对用户输入数据进行合法性判断,用户通过应用存在的安全隐患,来提交一段数据库查询代码,根据程序返回的结果,获得某些他想知道的数据,这就是SQL注入
- SQL 注入,是从正常的 www 端口访问,而且表面是看起来和一般的 web 页面访问没什么区别,如果管理员没有查看日志的习惯,可能入侵了很久都不会发现。
如何过滤与预防 SQL 注入?
数据库网页端注入这种,可以考虑使用 Nginx_WAF 做过滤与预防。
WAF系统结构
- 规则处理模块(nginx)
- 日志手机模块(gofluent+httpmq)
- 日志分析模块(mysql)
- 数据展示模块(web)
了解,WAF的配置命令就是一种编程语言,本身不带有任何语言性质,类似的正则匹配和逻辑操作都是由其他模块提供的。
Shell
Shell 脚本是什么?
一个Shell 脚本是一个文本文件,包含一个或者多个命令。作为系统管理员,经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件来完成这些日常工作任务。
什么是默认登录 Shell ?
在 Linux 操作系统,“/bin/bash” 是默认登录 Shell,是在创建用户时分配的.
使用 chsh 命令可以改变默认的 Shell。示例如下所示:
## chsh <用户名> -s <新shell>
## chsh ThinkWon -s /bin/sh
在 Shell 脚本中,如何写入注释?
依旧是两个#
#!/bin/bash
##This is a command
echo "I am logged in sd $USER"
Shell脚本中 $? 标记的用途是什么?
在写一个 Shell 脚本时,如果你想要检查前一命令是否执行成功,在 if 条件中使用 $? 可以来检查前一命令的结束状态。
如果结束状态是 0 ,说明前一个命令执行成功。例如:
root@localhost:~## ls /usr/bin/shar
/usr/bin/shar
root@localhost:~## echo $?
0
如果结束状态不是0,说明命令执行失败。例如:
root@localhost:~## ls /usr/bin/share
ls: cannot access /usr/bin/share: No such file or directory
root@localhost:~## echo $?
2
实战
如何选择 Linux 操作系统版本?
一般来讲,桌面用户首选Ubuntu;服务器首选 RHEL (企业版系统)或 CentOS(社区企业操作系统) ,两者中首选 CentOS 。
根据具体要求:
- 安全性要求较高,则选择 Debian 或者 FreeBSD。
- 需要使用数据库高级服务和电子邮件网络应用的用户可以选择 SUSE
- 想要新技术功能的可以选择 Feddora ,Feddora 是 RHEL 和 CentOS 的一个测试版和预发版本。
- 【重点】现有情况大多数互联网公司选择 CentOS 。 现在比较常用的是 6 系列,现在市场占有一般左右。另外原因是因为 CentOS 更侧重服务器领域,并且无版权约束。
CentOS 7 系列,也慢慢会使用的多了。
绝对路径用什么符号表示?
如:/etc/init.d
当前目录,三层目录用什么表示?
当前目录和上层目录:./ …/
主目录用什么表示?
主目录:~/
切换目录用什么命令?
切换目录:cd
怎么查看当前进程?怎么执行退出?怎么查看当前路径?
查看当前进程:ps
执行退出:exit
查看当前路径:pwd
怎么退出当前命令?
Ctrl+C彻底退出
建立软连接,硬链接的命令
软连接:ln -s slink source
硬链接:ln link source