linux基本
一、初识
Linux与windows相比的优点是:长期稳定的运行,避免了因为系统的问题导致的项目运行中断;占用资源少;开源软件多。
Centos(Community Enterprise Operating System)是基于redhat,去掉商业软件,用开源软件替换。
操作系统是本质就是一系列软件,内核+常用软件组成,功能是帮助用户控制硬件来解决实际需求的操作。
二、安装过程中的知识点
虚拟机是在我们的操作系统中用软件模拟出来的,相当于虚拟机是寄宿在我们真实的物理机系统里,虚拟机和物理机是寄宿与被寄宿的关系,真实的物理机被称为宿主机。
Bridged(桥接模式):通过网络地址可以确定我们在互联网中的位置,桥接模式就是将我们虚拟机中的网卡的网络地址,放在我们真实的物理环境的网卡上。这样的话,我们的虚拟机就像我们的宿主机所在的局域网中的一台机器一样。桥接模式适合有路由器的情况,和真实的物理环境一样。
NAT(网络地址转换模式):在宿主机制作一个虚拟网卡,通过这个网卡给虚拟机分配IP。宿主机在这里的角色相当于局域网中的路由器。NAT模式适合于没有路由的情况,虚拟机通过宿主机取上网。
Host-Only模式和NAT的区别在于没有地址转换服务。该模式下的 虚拟机只能访问到主机,无法访问外网。
三、Linux目录结构
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/ : 根目录所有目录都在 /boot : boot 配置文件、内核和其它启动 时所需的文件 /etc : 存放系统配置有关的文件 /home : 存放普通用户目录 /mnt : 硬盘上手动 挂载的文件系统 /media : 自动挂载(加载)的硬盘分区以及类似CD、数码相机等可移动介质。 /cdrom : 挂载光盘? /opt : 存放一些可选程序,如某个程序测试版本,安装到该目录的程序的所有数据,库文件都存在同个目录下 /root : 系统管理员的目录,对于系统来说,系统管理员好比上帝,他可以对系统做任何操作,比如删除你的文件,一般情况下不要使用root用户。 /bin : 存放常用的程序文件(命令文件)。 /sbin : 系统管理命令,这里存放的是系统管理员使用的管理程序 /tmp : 临时目录,存放临时文件,系统会定期清理该目录下的文件。 /usr : 在这个目录下,你可以找到那些不适合放在/bin或/etc目录下的额外的工具。比如游戏、打印工具等。 /usr目录包含了许多子目录: /usr/bin目录用于存放程序; /usr/share用于存放一些共享的数据,比如音乐文件或者图标等等; /usr/lib目录用于存放那些不能直接 运行的,但却是许多程序运行所必需的一些函数库文件。 /usr/local : 这个目录一般是用来存放用户自编译安装软件的存放目录;一般是通过源码包安装的软件,如果没有特别指定安装目录的话,一般是安装在这个目录中。 /var : 该目录存放那些经常被修改的文件,包括各种日志、数据文件; /var/cache/ 应用程序缓存数据。这些数据是在本地生成的一个耗时的I/O或计算结果。应用程序必须能够再生或恢复数据。缓存的文件可以被删除而不导致数据丢失。 /var/lib/ 状态信息。 由程序在运行时维护的持久性数据。 例如:数据库、包装的系统元数据等。 /var/lock/ 锁文件,一类跟踪当前使用中资源的文件。 /var/log/ 日志文件,包含大量日志文件。 /var/mail/ 用户的电子邮箱。 /var/run/ 自最后一次启动以来运行中的系统的信息,例如:当前登录的用户和运行中的守护进程。现已经被/run代替[13]。 /var/spool/ 等待处理的任务的脱机文件,例如:打印队列和未读的邮件。 /var/spool/mail/ 用户的邮箱(不鼓励的存储位置) /var/tmp/ 在系统重启过程中可以保留的临时文件。 /lib : 目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。这些文件包含了可被许多程序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间。 /lib32 : 同上 /lib64 : 同上 /lost+found : 该目录在大多数情况下都是空的。但当突然停电、或者非正常关机后,有些文件就临时存放在; /dev : 存放设备文件 /run : 代替/var/run目录, /proc : 虚拟文件系统,可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里; /sys : 和proc一样,虚拟文件系统,可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里;
SWAP分区的作用:
当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。
sudo cat /proc/sys/vm/swappiness该值默认值是60.
swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,
swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
--临时性修改:
[root@rhce ~]# sysctl vm.swappiness=10
m.swappiness = 10
[root@rhce ~]# cat /proc/sys/vm/swappiness
10
这里我们的修改已经生效,但是如果我们重启了系统,又会变成60.
-永久修改:
在/etc/sysctl.conf 文件里添加如下参数:
vm.swappiness=10
四、命令
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
mkdir == make directory 创建目录
-p parent当父目录不存在时,自动创建父目录
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
ls == list 查看指定目录下的内容
参数 -l 显示文件或目录的详细信息
pwd == print work directory 打印当前目录
cd == change directory 切换目录
touch 创建一个空白文件
vi编辑文本:
1.vi 文本编辑器 2.i 插入模式 3.esc 退出编辑模式 4.:wq保存并退出
查看:
cat 一次查看文件的所有内容
more 分页查看文件的内容,翻页按空格,一行行看用回车键
less 分页查看文件的内容,想对于more,支持回看
复制:
cp == copy 复制,拷贝
移动:
mv == move 移动,剪贴
删除
rm == remove 删除 参数 -f 强制删除 参数 -r配合-f一起使用,不提示直接删除目录
head 取文件的头部n行
tail 取文件的倒数n行
seq 生成队列
alias 查看别名
定义别名alias ipr='ip addr'
unalias 取消别名 unalias ipr
find 查找
sed 's#./hostlists.txt#../idctest_iplist#g'
特殊符号:
***** | 管道 / 根目录 . 当前目录 ~ 用户家目录 - 上一次所在的目录 .. 上一级目录 { } 代表一个范围 > 重定向
相对路径: etc/services
绝对路径:/etc/services
五、常用操作
(1)创建目录
mkdir /data
(2)新建文件
cd /data
touch oldboy.txt
(3)编辑文件
vi oldboy.txt
默认进入常规模式,按i进入到插入模式,I am studying linux. 按esc回到常规模式,:wq保存并退出
i光标当前插入
a光标之后插入
o光标的下一行
(4)查看文件内容(一次性查看所有内容)
cat aa.txt
(5)拷贝文件到目标目录下
cp aa.txt /tmp/
(6)移动目录及目录下所有文件和子文件夹到目标目录下
mv file_or_dir target_file_or_dir
(7)删掉目录及目录下所有文件及子文件夹
rm -rf data
(8)linux三剑客
***** grep 最擅长过滤
***** sed 擅长替换
***** awk 擅长取列
方法1:grep -v 'oldboy' test.txt
方法2:sed '/oldboy/d' test.txt
方法3:awk 'NR<3' test.txt
方法4:head -n 2 test.txt
(9)拷贝目标文件到有同名文件的文件夹下,要求不提示替换
方法1:/usr/bin/cp -i /mnt/test.txt /tmp
方法2:\cp /mnt/test.txt /tmp
方法3:unalias cp
cp /mnt/test.txt /tmp
(10)查看文件某部分内容
head -n 30 ett.txt|tail -n 11
awk 'NR>19 && NR<31' ett.txt
sed -n '/20/,/30/p' ett.txt
grep '20' -A 10 ett.txt
grep '30' -B 10 ett.txt
grep '25' -C 5 ett.txt
(11)将目标文件夹下所有以.sh结尾的文件中的特定内容替换为其他内容
find /oldboy -type f -name "*.sh"|xargs sed -i 's#./hostlists.txt#../idctest_iplist#g'
find找出来的结果,是一段文本信息,xargs将找出来的文本,转换成文件对象