Linux

  • Linux下实现在指定目录中遍历所有文件查找指定字符串

    ·

    要实现此功能只要使用grep命令就好啦,具体可以看下下边这个小例子: 查找/home目录及其子目录中所有包含”hello”字符串的文件,并显示出该字符串在文件中所处的行数。 [root@localhost ~]# grep -nR "hello" /home /home/a:8:hello,world! /home/b/a:10:hello,it7e! grep命令相关参数介绍 -n 是显示行号 -R 查找所有文件包含子目录 -i 忽略大小写

    Read More

  • minicom常用组合键介绍

    ·

    minicom 组合键的用法是:先按Ctrl+A组合键,然后松开这两个键,再按完成特定功能的按键。常用的功能按键如下 S键:发送文件到目标系统中; W键:自动卷屏。当显示的内容超过一行之后,自动将后面的内容换行。这个功能在查看内核的启动信息时很有用; C键:清除屏幕的显示内容; B键:浏览Minicom的历史显示; X键:退出Minicom,会提示确认退出。

    Read More

  • samba配置文件smb.conf详解

    ·

    前言 Samba的主配置文件叫smb.conf,默认在/etc/samba/目录下。 smb.conf含有多个段,每个段由段名开始,直到下个段名。每个段名放在方括号中间。每段的参数的格式是:名称=指。配置文件中一行一个段名和参数,段名和参数名不分大小写。 除了[global]段外,所有的段都可以看作是一个共享资源。段名是该共享资源的名字,段里的参数是该共享资源的属性。 Samba安装好后,使用testparm命令可以测试smb.conf配置是否正确。使用testparm –v命令可以详细的列出smb.conf支持的配置参数。 全局参数 ==================Global Settings =================== [global] config file = /usr/local/samba/lib/smb.conf.%m 说明:config file可以让你使用另一个配置文件来覆盖缺省的配置文件。如果文件 不存在,则该项无效。这个参数很有用,可以使得samba配置更灵活,可以让一台samba服务器模拟多台不同配置的服务器。比如,你想让PC1(主机名)这台电脑在访问Samba Server时使用它自己的配置文件,那么先在/etc/samba/host/下为PC1配置一个名为smb.conf.pc1的文件,然后在smb.conf中加入:config file = /etc/samba/host/smb.conf.%m。这样当PC1请求连接Samba Server时,smb.conf.%m就被替换成smb.conf.pc1。这样,对于PC1来说,它所使用的Samba服务就是由smb.conf.pc1定义的,而其他机器访问Samba Server则还是应用smb.conf。 workgroup = WORKGROUP 说明:设定 Samba Server 所要加入的工作组或者域。 server string = Samba Server Version %v 说明:设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。 netbios name = smbserver 说明:设置Samba Server的NetBIOS名称。如果不填,则默认会使用该服务器的DNS名称的第一部分。netbios name和workgroup名字不要设置成一样了。 interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24…

    Read More

  • Apache配置对站点目录的认证

    ·

    前言: 有的时候需要对站点中的某个目录进行保护,只有输入指定的账号密码才可以浏览。这当然可以通过动态网站设计语言来实现,但通过对Apache本身的配置来实现似乎要更方便一些。 配置方法: 一、Apache配置编辑及站点创建 创建一个站点配置文件。 [root@localhost auth]# vim /etc/httpd/conf.d/vhost1.conf 内容如下: <Directory “/tmp/html/auth/”> // 要启用认证的目录 AuthName “请认证身份” // 服务器返回的认证对话框的标题 AuthType Basic // 认证类型 AuthUserFile /tmp/html/auth/.htpasswd // 密码配置文件路径 require valid-user // 允许通过认证的所有用户访问,如果改为某一用户名则只允许此用户访问 </Directory> <VirtualHost *:80> // 创建一个简单的虚拟主机用于测试 DocumentRoot /tmp/html/ </VirtualHost> 创建站点运行目录及要开启认证的站点子目录。 [root@hostname ~]# mkdir -p /tmp/html{,/auth} 查看此时的站点目录结构。 [root@hostname ~]# tree /tmp/html/ /tmp/html/ └── auth 在站点子目录下创建首页文件。 [root@hostname ~]#…

    Read More

  • CentOS 6中创建及管理LVM逻辑卷

    ·

    LVM简介: LVM是逻辑管理卷的简写,其可以将多块物理磁盘的分区组成一个大的卷组(可以把他想象成是一个大的资源池),再在卷组上划分出逻辑卷并在其上建立文件系统最终供用户使用。 LVM的好处是可以动态的增加逻辑卷的大小,这样就不用面临随着业务发展,原本的分区空间不足的尴尬啦! 下面是LVM的结构图,最下面是物理磁盘分区,其上是物理卷(一个物理磁盘分区对应一个物理卷),再往上是我称之为“资源池”的卷组,这个“资源池”的容量是由组成其的物理卷的总容量决定的,而最上面则是可以被当成“普通分区”来使用的逻辑卷,逻辑卷可以划分很多个(默认一个卷组可以划分256个逻辑卷),只要其加起来的容量不超过“资源池”的容量就好! 创建LVM: 一、安装LVM软件包 通常情况下,CentOS中都有自带LVM软件包,但为了以防万一,我还是把安装命令贴出来吧~ [root@localhost ~]# yum install -y lvm 二、创建物理磁盘的分区 记得要先添加一块空磁盘呐,本实验中我添加了一块8GB大小的SCSI磁盘。 查看新添加的磁盘。 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 4.2G 0 rom /media/cdrom sda 8:0 0 8G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 7.5G 0 part ├─VolGroup-lv_root (dm-0) 253:0…

    Read More

  • Linux下查看串口信息

    ·

    使用管道命令过滤系统开机时的启动信息来得出当前系统中已存在的串口,可以看到,我的系统中存在ttyS2这个串口。 [root@localhost ~]# dmesg | grep tty console [tty0] enabled //这个tty0我暂时没搞懂他是什么,但他肯定不是一个物理串口 serial8250: ttyS2 at I/O 0x3e8 (irq = 4) is a 16550A 00:04: ttyS2 at I/O 0x3e8 (irq = 4) is a 16550A

    Read More

  • Linux下卸载被进程占用的分区

    ·

    有的时候在卸载目录时会看到类似下面的错误提示。 [root@localhost ~]# umount /mnt umount: /mnt: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) 这段信息是告诉你,设备正在被使用,无法卸载。此时,想卸载掉这块分区唯一的方法就是杀死占用他的进程。 先找出是谁在占用这块分区,可以看到这里占用他的是进程号为1341的进程,后面的c代表的是进程的权限,不予理会。 [root@localhost ~]# fuser /mnt /mnt: 1341c 使用kill -9杀死该进程后即可成功卸载磁盘 [root@localhost ~]# kill -9 1341 [root@localhost ~]# umount /mnt [root@localhost ~]# df Filesystem 1K-blocks Used Available Use% Mounted…

    Read More

  • CentOS 6下不重启系统就识别新增加的SCSI磁盘的方法

    ·

    执行以下命令重新扫描SCSI磁盘,若重新扫描后依然没有看到新增加的磁盘,则将路径中的host0改为host1、host2、host3、host4…直到看到新的磁盘为止(我做这个实验的时候试到host2才扫描到)。 [root@localhost ~]# echo "- – -" > /sys/class/scsi_host/host0/scan 查看硬盘是否被扫描到,可以看到这里多了一块”sdb”就是我新增加的SCSI磁盘。 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 19.5G 0 part ├─VolGroup-lv_root (dm-0) 253:0 0 18.6G 0 lvm / └─VolGroup-lv_swap (dm-1) 253:1 0 960M 0 lvm sr0…

    Read More

  • Linux在不重启系统的情况下重新挂载根目录下的分区

    ·

    当修改了/etc/fstab中的分区挂载参数后需要卸载分区并重新挂载,这对于普通分区还好说,但是对于挂载在根目录下的分区呢?如果冒然卸载掉会导致系统无法运行。那,除了重启系统之外还有什么方法可以使修改的分区自动挂载参数立即生效呢? 这里可以使用mount命令的remove选项来实现重新挂载分区的功能~ [root@localhost ~]# mount -o remove /

    Read More

  • Linux下创建及调整swap分区

    ·

    swap分区简介: Linux下的swap分区类似于Windows下的虚拟内存,都是当物理内存不够用时临时充当“内存”角色的一块磁盘空间。 Linux下增加及新建swap分区有两种方法,一种是基于硬盘分区的方式,另一种是基于文件的方式。 1、基于磁盘分区的swap 要增加基于分区的swap分区,首先得保证你有一块空余的磁盘空间可供分区,这里因为我是在虚拟机环境下实验,所以直接新增一块8G的硬盘用于分区。 下面是操作过程,每一步都有注释。 [root@localhost ~]# fdisk /dev/sdb //使用fdisk分区工具为新增加的磁盘分区 WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to switch off the mode (command ‘c’) and change display units to sectors (command ‘u’). Command (m for help): n //新建一个分区 Command action e extended p primary partition (1-4) p //新建为主分区 Partition number (1-4): 1 //分区编号为1…

    Read More

  • 为Apache配置虚拟目录

    ·

    虚拟目录简介: 虚拟目录就是将原本不存在于网站根目录下的目录映射到一个别名上,这样Apache就可以通过“http(s)://网址/别名”的形式访问他啦! 配置方法: 先配置一个简单的虚拟主机。 [root@localhost ~]# vim /etc/httpd/conf.d/a.conf <VirtualHost *:80> DocumentRoot /tmp/html/ </VirtualHost> 在虚拟主机中定义虚拟目录。 Alias /dir /tmp/html1 最终的虚拟机配置文件的内容是这样的。 <VirtualHost *:80> DocumentRoot /tmp/html/ Alias /dir /tmp/html1 </VirtualHost> 创建站点目录及网页。 [root@localhost ~]# mkdir /tmp/html /tmp/html1 [root@localhost ~]# echo one > /tmp/html/index.html [root@localhost ~]# echo two > /tmp/html1/index.html 在保证selinux和防火墙均关闭的情况下启动Apache。 [root@localhost ~]# service httpd start 测试: 可以选择在Windows的浏览器上测试,这里我为了方便,直接在CentOS下的文本浏览器中测试。 安装浏览器。 [root@localhost ~]#…

    Read More

  • 配置vsftpd服务器的最大并发连接数、每个客户端的最大线程数及文件下载速度

    ·

    之所以把他们三个放在一起写,是因为这三个都是关乎资源限制及保障FTP服务器稳定运行的。 默认配置文件中是没有这三个选项的,如需要可手动添加。vsftpd配置文件路径:/etc/vsftpd/vsftpd.conf max_clients=10               #配置最大并发客户端连接数。 max_per_ip=5                 #配置单个IP可使用的线程数(主要为了“照顾”迅雷等多线程下载软件)。 local_max_rate=50000         #配置用户的最大下载速度,单位是b/s。

    Read More

  • vsftpd设置无操作时的超时时间及文件传输超时时间

    ·

    之所以把这两个放在一起写,不是因为他们两个都是关于超时时间的设定,而是因为这俩在配置文件中离得实在太近了(手动滑稽)~ 编辑主配置文件。 [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 转到第五十九行,其就是设置无操作时的超时时间的选项,默认时间单位是秒,默认动作是什么都不做,如果你想配置一个超时时间那么请取消注释(删除#符号)。 #idle_session_timeout=600 转到第62行,这一行是关于文件传输超时时间的设定,默认单位也是秒,默认动作是什么都不做。 #data_connection_timeout=120</pre>

    Read More

  • CentOS 6下挂载NFS共享的方法

    ·

    挂载前请确保客户机已安装nfs-utils软件包,否则是无法成功挂载的(我是不会告诉你我在这个坑里蹲了四个多小时才爬出来的)。 [root@localhost ~]# yum install -y nfs-utils 挂载使用如下命令格式: mount nfs服务器ip:共享文件夹的路径 要挂载在本地的路径 例如: [root@localhost ~]# mount 192.168.1.20:/tmp/test1 /mnt/test1 笔者看到网上有的教程推荐使用类似如下命令来进行挂载: [root@localhost ~]# mount -t nfs 10.0.2.69:/home /mnt 但经过实测,CentOS 6.5可以不使用-t参数来指定文件系统类型,程序会自动识别。 除了命令行挂载之外,也可以将其加入到/etc/fstab文件中实现开机自动挂载。 之后重启系统即可自动挂载,若想立即生效可以使用如下命令 : [root@localhost ~]# mount -a 卸载nfs使用此命令格式: umount nfs共享的挂载点 例如: [root@localhost ~]# umount /mnt/test1 最后再介绍一种比较特殊的情况,那就是当nfs服务器无响应的时候,在客户端执行df命令或showmount命令时会导致进程假死,而使用umount命令卸载nfs存储则会抛出错误。 此问题的解决方法参考此篇文章: https://www.ibadboy.net/archives/730.html

    Read More

  • Linux下添加虚拟网卡,实现一块物理网卡绑定多个IP地址

    ·

    前言: 这个功能在实际生产环境中可能没有意义,但是在虚拟机里做实验的时候还是蛮实用的,可以直接在一个网卡上模拟出多个网段,这样就不用再添加单独的网卡啦。 配置方法: 以当前网卡的配置文件为模板创建虚拟网卡。 [root@localhost ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:1 编辑虚拟网卡的配置文件。 [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:1 删除其中的MAC地址信息和UUID信息,同时将DEVICE的参数改为eth0:1,并按需求修改IP地址等信息。 以下是我修改好的虚拟网卡配置文件,仅供参考。注意!不要为虚拟网卡配置网关和DNS信息,完全没有意义且容易造成网络连接问题。 DEVICE=eth0:1 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.2.100 NETMASK=255.255.255.0 重启网络。 [root@localhost ~]# service network restart 最后,ping一下虚拟网卡的IP地址看看是否配置成功。 [root@localhost ~]# ping 192.168.2.100 -c 4 PING 192.168.2.100 (192.168.2.100) 56(84) bytes of data. 64 bytes from 192.168.2.100: icmp_seq=1 ttl=64 time=0.010 ms 64 bytes from 192.168.2.100:…

    Read More