zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    leetcode701. Insert into a Binary Search Tree
    leetcode 958. Check Completeness of a Binary Tree 判断是否是完全二叉树 、222. Count Complete Tree Nodes
    leetcode 110. Balanced Binary Tree
    leetcode 104. Maximum Depth of Binary Tree 111. Minimum Depth of Binary Tree
    二叉树
    leetcode 124. Binary Tree Maximum Path Sum 、543. Diameter of Binary Tree(直径)
    5. Longest Palindromic Substring
    128. Longest Consecutive Sequence
    Mac OS下Android Studio的Java not found问题,androidfound
    安卓 AsyncHttpClient
  • 原文地址:https://www.cnblogs.com/chacha51/p/13764860.html
Copyright © 2011-2022 走看看