• Linux通配符与基础优化


    Linux通配符与基础优化

    欢迎来到 来到大浪涛天的博客

    Linux通配符与基础优化

    1. 正则表达式通配符

    1. 匹配字符
    • . 任意单个字符
    • [] 匹配指定范围内的任意单个字符
    • [^] 匹配指定范围外的任意单个字符
    1. 匹配次数
    • .* 匹配前面的任意字符任意次
    • ? 匹配前面字符0或1次
    • {m,n}匹配前面字符至少M次,至多N次
    1. 位置锁定字符
    • ^ 瞄定行首,此字符后面的任意内容必须出现在行首
    • $ 喵定行尾,此字符前面的任意内容必须出现在行尾
    • ^$ 空白行

    2. hash

    1. linux系统下会有一个hash表,当你刚开机时这个hash表为空,每当你执行过一条命令时,hash表会记录下这条命令的路径,就相当于缓存一样
    2. 第一次执行命令shell解释器默认的会从PATH路径下寻找该命令的路径,当你第二次使用该命令时,shell解释器首先会查看hash表,没有该命令才会去PATH路径下寻找
    3. hash表的作用:大大提高命令的调用速率。
    4. 输入hash或hash -l 可以查看hash表的内容,
      hash -r 清空hash表
    5. linux的共性,慢了就找缓存

    3. scp传输命令

    1. 从本地拷文件到solaris:
    scp local_file user@solaris_host:remote_path
    从suse 10传文件到solaris 10
    scp root@10.231.172.85:/root/zxy.txt  root@10.231.172.83:/
    或者
    scp ./zxy.txt   root@10.231.172.83:/
    1. 从solaris拷贝文件到本地:
    scp user@solaris_host:remote_path_and_file local
    从solaris 10传文件到suse 10
    scp root@10.231.172.83:/ diff.txt   root@10.231.172.85:/root

    4. 系统初始化相关:

    1. 修改字符集,如果ssh客户端显示出乱码,则肯定是系统的字符集和客户端那里设置不匹配
      系统里看字符集: echo $LANG; 配置文件为:/etc/sysconfig/i18n。修改完成后:source /etc/sysconfig/i18n
    [root@Server sysconfig]# cat /etc/sysconfig/i18n
    LANG="zh_CN.UTF-8"
    [root@Server sysconfig]#
    eg:
    #LANG="zh_CN.UTF-8"
    LANG="en_US.UTF-8"
    #LANG="zh_CN.GB18030"
    SYSFONT="latarcyrheb-sun16"
    1. 修改密码,不需要交互:echo "123456" |passwd --stdin ouyan
    2. history 删除历史 history -d 23,删除23行记录,history -c 删除所有历史记录
    3. 关闭selinux:
    • sed -i s#SELINUX=enforcing#SELINUX=disable#g /etc/selinux/config
    • getenforce;setenforce 0; geteforce
    1. 关闭不必要的服务:
    利用for循环把所有3:on的服务都关闭,然后在利用for循环把需要的服务开启
    chkconfig --list|grep "3:on"
    [root@localhost /]# for oldboy in `chkconfig --list |grep "3:on" |awk -F " " '{print $1}'` ;do chkconfig $oldboy off ;done
    for oldboy in crond network sshd rsyslog; do chkconfig $oldboy on ;done
    chkconfig --list |grep "3:on"
    或者
    [root@localhost /]# for oldboy in `chkconfig --list |grep "3:on" |awk -F " " '{print $1}'|grep -vE "crond|network|sshd|rsyslog" ` ;do chkconfig $oldboy off ;done  
    1. runlevel查看运行级别,如果修改则/etc/inittab,切换则init +级别
    2. yum install tree telnet dos2unix sysstat lrzsz vim man
      yum grouplist 安装必要的软件
      安装包组的命令: yum groupinstall base
      注意删除软件包不要用yum删除,会删除依赖关系软件
    3. 修改ssh配置文件:
    • windows下的默认端口 3389 管理员administrator
    • ssh 的默认端口是22 在配置文件下更改默认端口
    /etc/ssh/sshd_config
    port 55232
    PermitRootLogin no
    PermitEmptyPasswords no
    GSSAPIAuthentication no(服务器端启用了GSSAPI。
    登陆的时候客户端需要对服务器端的IP地址进行反解析,
    如果服务器的IP地址没有配置PTR记录,那么就容易在这里卡住)
    UseDNS no
    /etc/init.d/sshd restart/reload
    1. netstat -an |grep 192.168.50.1 查看linux系统的网络连接
    2. 关闭防火墙:[root@localhost ~]# /etc/init.d/iptables sto
    3. sudo:让普通用户可以拥有指定的root用户的权限
      sudo与su的区别是,sudo是角色没变,su是直接变成root
      visudo相当于编辑sudo的配置文件(/etc/sudoers)
      vi编辑器 ,98gg定位到该行,yy复制该行,p粘贴,NOPASSWD是指执行sudo的时候不需要密码。
    ## Allow root to run any commands anywhere
    root    ALL=(ALL)       ALL
    
    maiyat  ALL=(ALL)       NOPASSWD:ALL
    1. 开启NTP服务
    # cat  /etc/inet/ntp.server
    # vi /etc/inet/ntp.conf   
    把ntp.conf文件中的 
    server 127.127.XType.0 prefer fudge 127.127.XType.0 stratum 0 编写成 
    server 220.192.8.57 
    #fudge 127.127.XType.0 stratum 0
    3 # /etc/init.d/xntpd start
    4 查看服务是否启动:# ntpq –p
    5 停止NTP服务:# /etc/init.d/xntpd stop
    NTP监控:
    * NTP server和client端互ping,保证能ping通
    * NTP server和client服务均开启,# ps -ef | grep ntp | grep -v grep
    * 若未启动,执行命令:# /etc/init.d/xntpd start
    * 监控包流动:# snoop | grep -i ntp 
    Using device /dev/pcn (promiscuous mode) 
    facn1 -> xxx.xxx.xxx.xxx   NTP  client  (Fri Apr 18 09:33:19 2003) xxx.xxx.xxx.xx -> facn1    NTP  server  (Fri Apr 18 09:33:20 2003)
    1. linux 最简单的上传下载命令: 上传 rz ,下载 sz
      如果服务器没有安装这两个包,可以自己安装单独的包,还可以安装包组
      如果安装单独的包:
      如果安装包组: yum groupinstall "Dial-up Networking Support" -y
    2. inode
    • 每个linux存储设备被格式化为文件系统后一般有两部分,一部分是inode,第二部分是block
      block是用来储存实际数据用的,inode就是用来存储数据的属性信息的(ls -i),inode包含的属性包括文件大小,属主,归属的用户组,读写权限,文件类型,修改时间,还包含指向文件实体的指针功能
      (inode节点---block的对应关系)等,唯独不包含文件名,inode除了记录文件属性信息外,还会为
      每个文件进行信息索引,所以就有了inode的数值,系统根据指令,即可通过inode的值最快的找到
      相对应的文件实体。
    • 文件访问的原理:系统要找某个文件先会去找这个inode,找到inode后先确定inode里的属性,看该用户有没有这个权限,如果没有这个权限则返回个权限不允许,如果有这个权限indode 可以给你一个指向,让你看到文件储存的block,硬盘一格式化会划分几百万个block和inode,如果文件比较小,自动分配一个block,如果文件比较大,会分配多个block,但是都会有对应的inode以之关联。block固定大小为1K,2K,4K(其中引导分区为1K其他的普通分区为4K);,centos 5 inode的大小128字节,centos 6的inode大小为256字节
    • 查看系统里面inode和block的大小
      dumpe2fs /dev/sda3| grep -i "Inode size"/"block size"
    • 一个文件至少要占用一个inode和一个block,格式化数量inode数量会大于block的数量
      大文件要尽量分大一点的block,如果是小文件分小的block
      小的block节省硬盘空间,但是增加磁盘IO,大的block减少磁盘IO但是浪费空间
      工作中基本没有小于4K的block
    • 总结:
    1. 磁盘分区格式化文件系统后会分为inode和block两部分内容
    2. inode存放文件的属性以及指向文件实体的指针,文件名不在inode,,一般在上级目录的block里。
    3. 访问文件通过---->inode ---->blocks
    4. inode一般情况下默认大小256b,block大小有1k,2k,4k,默认是4k,引导分区等特殊分区除外。
    5. df -i 查看inode数量及使用情况,dumpe2fs/dev/sda3查看的是indode及block大小及数控.
    6. 一个文件至少要一个inode及一个block,对于一个文件可以占用同一个inode(硬链接)
    7. 一个bolck只能被一个文件使用,如果block过大会浪费,不可以给别的文件之用
    8. block和inode的大小可以在格式化的时候指定大小,25600
    1. linux 最简单的上传下载命令: 上传 rz ,下载 sz
      如果服务器没有安装这两个包,可以自己安装单独的包,还可以安装包组
      如果安装单独的包:
      如果安装包组: yum groupinstall "Dial-up Networking Support" -y
  • 相关阅读:
    iOS开发之多线程技术(NSThread、OperationQueue、GCD)
    数据结构回顾之顺序存储结构中的线性表(栈与队列顺序线性表实现)
    iOS开发之使用CocoaPods更新第三方出现“target overrides the `OTHER_LDFLAGS`……”问题解决方案
    iOS开发之使用XMPPFramework实现即时通信(三)
    iOS开发之调用系统打电话发短信接口以及程序内发短信
    iOS开发之抽屉效果实现
    iOS开发之WebView
    iOS开发之地图与定位
    iOS开发之使用XMPPFramework实现即时通信(二)
    iOS开发之使用XMPPFramework实现即时通信(一)
  • 原文地址:https://www.cnblogs.com/chacha51/p/13764860.html
Copyright © 2020-2023  润新知