linux

1    软件安装
     rpm安装 (radhat,contos)
        检查是否已经安装
        
        rpm -ivh i安装 v展示#号式的进度条,h详细过程
        
        rpm -qa |grep jdk  q查询 a所有
        
        rpm -qi jdk  查询安装信息

        rpm -qc jdk 查询安装的配置文件

        rpm -ql jdk more    more 一屏屏显示,包括隐藏文件放到哪儿了
        
        所谓的安装目录是不能选择的,官方在打包的时候已经定好了
        删除 rpm -m

        查询
        rpm -qi jdk
        
    3 下载源码,自己编译安装
    yum 类同 manven,有库,它可以很好的解决依赖关系。yum库也可改为阿里云的 (阿里云镜像站,点击help,缓存云的镜像文件)
    配置文件 /etc/yum.repos.d
    
    搭建本地 yum 源,制定本地目录为yum源
    (注意服务间要想沟通,需要建一个基于某种协议的共享服务器)
    yum本地源:
    注意在使用yum时
        1 先查 yum search mysql-server yum中是否有该包
        2 可以查版本 yum -info mysql-server
            cd /mnt/Packages
            ls 你会发现有很多包,但你rpm -i安装时是不成功的,因为有依赖

3   但是这个本地yum源只能在本机上用不能在其他机子上用,那么我么需要搭建一个共享服务器
    搭建nginx,用编译源码方式安装
    源码安装,一般是指repm中找不到,yum库中也没有,例如 nginx
    源码安装注意几个步骤
        1    找到源码,预编译(就是准本编译环境,查看依赖和兼容性,就是执行./configure)
            (查看是什么语言写的,基本都是python,c++)
        2    编译、安装  make && make install
    
 4    linux命令
    文件准备
    man   (手册)
        man有8个种类
    例如 man 1 ls (1,表示普通命令也叫用户命令)数字可以省略
         man 8 ifconfig (8表示管理命令)
        
         学习date  man date
        显示当前日期date +%Y-%m-%d
         学习 echo
        type echo 输出内容
    man: 
        examples   ,man tar examples
    

    翻屏:
        向后翻一屏:SPACE
        向前翻一屏:b
        向后翻一行:ENTER
        向前翻一行:k

    查找:
        
        n: 下一个
        N:前一个

        q: 退出

    more 是屏显示  less是行显示
    
    tail 是后,head是前
    
    例:看第15行
        head -15 profile |tail -1

        分屏看
        ls -l /dev | more   
文本、字符串处理  

        cut:
            -d: 指定字段分隔符,默认是空格
            -f: 指定要显示的字段
                -f 1,3
                -f 1-3

        文本排序:sort    
        文本统计:wc (word count)
            -l
            -c
        sed基本用法:
        sed: Stream EDitor
            行编辑器 (全屏编辑器: vi)
            
        sed: 模式空间
        默认不编辑原文件,仅对模式空间中的数据做处理;而后,处理结束后,将模式空间打印至屏幕;


        sed [options] 'AddressCommand' file ...
            -n: 静默模式,不再默认显示模式空间中的内容
            -i: 直接修改原文件
            -f /PATH/TO/SED_SCRIPT
                sed -f /path/to/scripts  file
            -r: 表示使用扩展正则表达式
            
            
        Command:
            d: 删除符合条件的行;
            a \string: 在指定的行后面追加新行,内容为string
                \n:可以用于换行
            i \string:添加     在指定的行前面添加新行,内容为string
            r FILE: 添加     将指定的文件的内容添加至符合条件的行处
            s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
                加修饰符
                g: 全局替换
                i: 忽略字符大小写
            s///: s###, s@@@    (/#@这3种都可以,是命令隔断符)
                \(\), \1, \2
                
            
            
    自己解释
    ^(行首)$(行尾)  ^$就表示空白符
    cut(行)  sort  wc(统计) sed(行编辑)   awk

    cut:  cut -d(切割符号): -f(域)1,7 passwd

    sort: cut -d: -f1 passwd | sort

    wc:ls -l /dev | wc -l(统计有多少行) 得到dev下有多少个文件
        wc -l passwd  得到passwd的行数

    sed:行编辑器 全屏编辑器: vi sed -i(本文件) 's/before/after/gi' profile
         sed -r(后面是正则) 's@^(行首)[[:space:]]+@@g' /etc/grub.conf
      

    awk:  它比sed要复杂  它也是行编辑,一行一行的读出,注意区分 vi
    awk是一个强大的文本分析工具,
    相对于grep的查找,sed的编辑,
    awk在其对数据分析并生成报告时,显得尤为强大。
    简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
    
    
    awk '{pattern + action}' {commands}
        
        awk 选项 '内部命令{匹配表达式去查找(可以省略) + 匹配后的一系列动作}' 【】括号也行 {commands}
        
        
        其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。
        花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。
        pattern就是要表示的正则表达式,用斜杠括起来。    
        
    案例:
        显示最近登录的5个帐号
            last 命令时,它会把所有登录的信息列出来  tty1说明客户端是 xshell,还有ip
        #last -n 5 | awk  '{print $1}' 这里省略了匹配表达式  默认按字表符(也就是那个空格) 隔开
        awk -F: '{print $1}' passwd
        读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域
        $0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键",
        所以$1表示登录用户,$3表示登录用户ip,以此类推。
        
        输出 第一个和第七个  按字表符分开
        #cat /etc/passwd |awk  -F ':'  '{print $1"\t"$7}'  "\t"表示按字表符隔开
        
        在开头输出个“name” 和“tshell”
        cat /etc/passwd |awk  -F ':'  'BEGIN {print "name\tshell"}  {print $1","$7} ' passwd
        
        
        在头行和尾行加东西
        cat /etc/passwd |awk  -F ':'  'BEGIN {print "name,shell"}  {print $1","$7} END {print "aaaaaa"}'
        BEGIN(awk内部命令表示读入数据之前执行的动作)
        
        
        只输出能登录的,,这时候你要做判断了
        
    注意:::::每读取一行就会执行花括号里的动作
        awk -F: '{if($7=="/bin/bash") print $1"\t"$7}' passwd
        
        接着我们添加用户 useradd hsc
        more /etc/passwd
        
        允许登录的用户前加序号,序号要随着用户增加而增加
        可见在读文件之前定义一个变量 i=0
        awk -F: 'BEGIN {i=0} {if($7=="/bin/bash"){ i++;print i"\t" $1"\t"$7"\t"NF}}' /etc/passwd
        
    awk内置变量
        awk有许多内置变量用来设置环境信息,这些变量可以被改变,下面给出了最常用的一些变量。

        ARGC               命令行参数个数
        ARGV               命令行参数排列
        ENVIRON            支持队列中系统环境变量的使用
        FILENAME           awk浏览的文件名
        FNR                浏览文件的记录数
        FS                 设置输入域分隔符,等价于命令行 -F选项
        NF                 浏览记录的域的个数(例如上面那一行被分成了7份)
        NR                 已读的记录数
        OFS                输出域分隔符
        ORS                输出记录分隔符
        RS                 控制记录分隔符
    
        好多不常用
        $0变量是指整条记录。$1表示当前行的第一个域,$2表示当前行的第二个域,......以此类推。
       上面介绍的awk只做一些了解,不会后再看看这里能想起来就行,后期会用shell编程替代它
       查看登录用户默认执行的shell 用 passwd
        root:x:0:0:root:/root:/bin/bash  (bash是默认的执行的shell)
        

shell
    1    shell:若类型、解释型语言
        解释器:bash
    变量,变量的类型
        环境变量 (用户,系统)
            export 名字 = 值
            作用于当前bash及子bash
        本地变量 没有local
            只属于某一个bash的变量,另外一个bash是取不到的。
            作用于整个bash进程
            name = 值
        局部变量 有local
            作用于 当前代码段
            local name = 值
        位置变量:传给脚本的参数 $1是第一个,依次类推
        特殊变量:(死记住)
            $?:上一个命令的执行状态返回值,记录一个特殊值
                 # ls
                 hsc  nginx-1.8.1  nginx-1.8.1.tar.gz  zs
                 # echo "$?"
                 0  在bash里只要非0就表示错误
            $#:传递到脚本的参数个数
            $* 传递到脚本的参数,与位置变量不同,此选项参数不超过9个
            $$ 传入当前进程的id号
            后面用的不多
            $! 最后一个进程号
            $@与$#相同,使用时加引号,并在引号中返回参数个数
            $-上一个命令的最后一个参数
            
        程序两类执行结果:
            1 执行结果
            2 执行状态 $?:0表示成功,1-255错误
            >  覆盖重定向 ls>/dev/null
            >> 追加重定向
            2> 错误重定向
            2>> 错误追加重定向
            &>  全部重定向 ls abc&>/dev/null
        查看shell中变量:
            set 命令
            
        查看shell中的环境变量
            printenv
            
            env
            
            export
            
        应用变量:$(变量名),一般可以省略{}
            单引号:强引用,不作变量替换
            双引号:弱引用,做变量替换
            反引号:··命令替换
    脚本
    
        脚本:命令的堆砌
        标准输入stdin、标准输出stdout
        
    条件判断
        
        1  [ 表达式 ]  这种多,注意空格
        2  test 表达式
        
    整数比较
    
        -eq:比如[ $A -eq $B ]
        -ne,-gt,-lt,-ge,-le
        
    命令的逻辑关系:
        在linux中 命令执行状态:0位真,其他为假
        
        逻辑与:&&
        [ $# eq 0 ] && exit 3
        id $1 (非0,都是假)|| echo "user $1 not found" 或运算如果前面是真,那后面就不用运行了
        
           
1    tomi 敏感信息加密(比如法律规定不能讲手机号密码等敏感信息传播)
2    两种计算体系流式计算体系
rabhat和 centos 区别很小,他俩版本号几乎一致,例如都有6.5
centos就是来源于radhad
rpm是一个应用程序
linux 和win都有 用户接口((图形和命令接口),所有的用户接口,它就是一个软件,一个桌面
应用程序,把进程关掉后就看不到桌面
命令行的share和图形化的share。linux就bash

ls    -l    /usr
命令 选项   参数
应用程序的的入口就命令,可执行文件就是应用程序的入口,一个应用程序有多个程序入口,一个
可执行文件就是一个入口
键盘是字符设备 硬盘是块设备

ibm 包
man 1 ifconfig  1表示第一章节,也就是第一类型  外部命令
帮助文档
help 查看内部命令
【】表示可选  login表示用户名

date 031215062016

boot 在关机时,它是0k的,他是系统的映射文件,他和系统文件是一一对应的
home 是家的概念,也就是说在家里有最高的权限
lib64  指64位操作系统
opt是用户自己放东西的
/proc内核文件都和磁盘上的文件一一对应的
/sys 同上
/ temp 重启是会 清掉一些,所以重要文件不能放到这儿
/var第三方的数据或配置文件

看文件时间
stat 1.txt
access最后一次访问时间
改变包括修改,改变权限的时候,change时间也会改变,修改时间不变

vim是vi的进化版
i在光标前,o在光标后
 vi + 自动跑最后一行
 vi +/after  再写小写字母n 下一个,N前一个
zz 保存并退出
jkil 移动光标
行首 0 ^ 行尾 $
w  往后移动单词
#   G 最后一行

x删除,i,输入完了后再按下退出键就又回来

dd 删除
4dd 删除4行

3dw删除3个词
先钱还到抹行.+3d  ($文件末尾)

复制 yw  就复制成功了
复制一行 2yy

u 撤销上一次操作,
ctrl撤销上次撤销


末行:!接外部命令?
末行 :显示行号,随便找个地方放进去就行
设置自动缩进


bash登录时 启动  已登录就会看到一个任务接口

如果不指定 GID 或UID 那么它就会自动增 ,如果不创建组的话,就会 和用户名一样的组

ps -aux 详细 看进程
net start
网络底层协议就两种  tcp udp

grep ^zx /etc/passwd   匹配


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值