zoukankan      html  css  js  c++  java
  • linux零基础入门总结

    啊,notepad++贴过来怎么对齐格式这么糟糕呢?

    #root用户
    $普通用户
     
    linux命令
    清屏clear翻页清屏  CRT中ctrl+L
       reset"清空
    CRT中不起作用"
    创建用户useradd a创建用户名为a的用户
    设置密码passwd a设置用户a的密码(输入密码时内容显示)
    切换用户su        切换到root,需密码
                   su - a切换到用户a,无需密码
    pwd当前所在目录
    主机名hostname    查看主机名
    hostname xxxx临时设置主机名为xxx
    vi /etc/sysconfig/network
    hostname=xxxxx
    在root用户下永久设置主机名为xxx
    vi /etc/hosts
    IP+空格+主机名
    关机重启
            halt        关机(root)
       reboot或init 6重启(root)
     
    SSH 登录
    查看IP    ipconfigwindows的命令
    ifconfiglinux的命令
       网络设置建议使用NAT模式
       静态IP    address    前三段和ifconfig得到的一致,最后一段任意
       netmask    255.255.255.0
    gateway    VMware——编辑——虚拟机网络编辑器——NAT模式——NAT设置——网关
    DNS        和gateway一致或8.8.8.8
               (bridge模式用win下的DNS地址)
    HWADDR      其实就是MAC地址
    ping IP地址/域名/主机名
               测试能否连通对应的地址
              (注意关闭防火墙)
     
    secureCRT
        修改hosts文件  C:WindowsSystem32driversetc
                 (如不能保存请赋予当前用户权限)
                  IP+空格+带域名的主机名+简写的主机名
    端口   22(filezilla、notepad++也是)
    协议       SSH2(notepad++是SFTP)
    需要:       win的hosts文件配置+linux的静态IP配置+network文件配置
              主机名、用户名和密码
    自定义
           配色方案ANSI+使用配色方案打钩
       编码    UTF-8(linux中中文文件在CRT中显示乱码问题没解决)
       字体大小
    Xmanager4远程界面工具的端口是22,协议是SFTP
    Ctrl+C     中断程式的执行
    Ctrl+Z       暂停程式的执行,稍后可以按下fg或bg命令继续.
    Ctrl+S       屏幕暂停输出
    Ctrl+Q       屏幕恢复输出SSH 登录C:WindowsSystem32driversetc
     
    secureCRT
        修改hosts文件
                 (如不能保存请赋予当前用户权限)
                  IP+空格+带域名的主机名+简写的主机名
    端口   22(filezilla、notepad++也是)
    协议       SSH2(notepad++是SFTP)
    需要:       win的hosts文件配置+linux的静态IP配置+network文件配置
              主机名、用户名和密码
    自定义
           配色方案ANSI+使用配色方案打钩
       编码    UTF-8(linux中中文文件在CRT中显示乱码问题没解决)
       字体大小
    Xmanager4远程界面工具的端口是22,协议是SFTP
    Ctrl+C     中断程式的执行
    Ctrl+Z       暂停程式的执行,稍后可以按下fg或bg命令继续.
    Ctrl+S       屏幕暂停输出
    Ctrl+Q       屏幕恢复输出
     
    文件和目录
    目录
    .     当前目录
    ..  上级目录
    cd    change directory
     单独cd 进入当前用户主目录
     cd+目录名 进入指定目录
    查看
    ls    单独使用,或ls+目录路径
    ll    更详细,等价于ls -l
    ls -a 显示隐藏的文件夹(.开头)
        类型
              -文件
     d  目录
     l 链接
    归属
     u所属用户 user
     g同组用户 group
     o其他 other
     
        文件权限
         r     可读     2^2     4
     w 可写 2^1 2
     x可执行   2^0 1   
     - 无权限
     rw-   ->  4+2+0=6  
     修改权限
     chmod (change mode)
     chmod 归属者加号权限字母 被修改权限的文件
    加号 增加某权限
    减号 减去某权限
    归属者加号权限字母也可以使用一组数字代替
     如    chmode u+x readme.txt 
           chmode 664 readme.txt 修改u和g的权限为rw-,o的权限为r--
    chmod -R 664 /opt/softwares
      修改目录下的子文件/目录的权限为664(-R表示递归)
     修改归属者
    chown 新的所有者用户 被修改的文件
    chown 新的所有者用户:新的所属组 被修改的文件
         chown beifeng /home/hive-select-log.sql
     修改所属用户为beifeng
     chown -R beifeng /opt/softwares
     修改目录下的所有的所属用户为beifeng
     chown senior:senior /home/hive-select-log.sql
     修改所属用户和组都为beifeng
    chgrp 新的所有者用户 被修改的文件
     chgrp beifeng /home/hive-select-log.sql
     修改所属组为beifeng
    创建文件/目录
             创建文件
           touch touch+文件名+后缀名 创建文件
           (虽无后缀名之别,但总要区分)
                创建目录
       mkdir test
    mkdir -p ~/data/dfs/tmp
         创建多级目录
    复制文件
    cp 源文件src 目标目录destdir
       1 /xxx    表示在主目录下的xxx目录(无权限被拒)
    2 ./xxx   表示当前目录的xxx目录下面
             xx要存在,否则写./xxx/报错(无法创建xxx)
     如xx不存在,写./xxx,不保存,但创建了xx文件(内容复制过去了)
    拷贝的时候建议写全目录
     
    dest:文件/目录
       目录:拷贝一个文件到一个目录dest中去
     cp test.txt test-dir
       文件时,拷贝一个文件的内容至一个文件dest中
                              cp test.txt cp-test.txt
             如果该文件dest不存在,
     则创建该文件并将source中的内容拷贝到这个文件
       source:文件名/目录名
    目录:将一个目录拷贝到另一个目录中去
         如果dest目录存在
     cp -r test-dir test-dir2
     拷贝test-dir目录到一个名为test-dir2的目录下
     如果dest目录不存在
         cp -r test-dir test-dir2
         test-dir2不存在,则会创建并拷贝test-dir中的内容过去
        不要写成cp -r test-dir/ test-dir2
           而cp -r test-dir test-dir2/
     的意思是,拷贝目录test-dir到目录下
         -r的意思是递归(因为test-dir中可能有很深的层次)
     linux是严格区分大小写的。
     在chmod中:-R, --recursive
     在cp中:   -R, -r, --recursiv
     所以建议统一使用-R,不然还以为不区分呢
    移动/重命名
    mv src dest
    重命名
    src和dest在同一个目录下则是重命名
    $ mv test-dir/ sub-dir(目录的重命名)
    $ mv test.txt test.log(文件的重命名)
    移动
    src和dest不在同一目录
    $ mv test-dir2/sub-dir/ test-dir
    将test-dir2目录这的sub-dir目录中的文件移动到test-dir目录下
        查看文件内容
    * cat  : 查看全部内容,内容比较少
             cat 文件名
    * more :  翻页查看
             按下空格,查看下一页,向上滚动直接查看上面的 
     按下q退出
    * tail :  末尾内容,通常与 -f参数连用,适合于查看服务实时动态日志信息
             在正则中,f是换页符
    tail -f xxxx.log
        默认的倒数x行
    tail -200f yyy.log
        倒数200行
    * head :  开头文件,文件格式,内容模板样式
    修改文件内容
    vi编辑——->vim
    i           编辑插入
    end键       行末
    G           文件末
    esc   退出编辑模式
    :wq   保存
    :q!或:q回车   不保存
    echo "second line" >> test.txt 
    追加新的一行内容(字符串"second line")到test.txt文件中
    date >> bf-log.txt    向bf-log.txt文件中追加日期数据
                在vi查看模式下(没按下i之前或者在按下i之后的编辑模式中按下esc)
    * dd :表示删除光标所在的行的内容
    * ZZ :表示的是保存文件内容(要是大写的,所以要打开大写锁定)
    * x  :表示将光标处的字符给删除
    * o  : 表示在光标的下一行进行插入内容(自动跳到下一行的行首)
        
     
    帮助
        nan 命令名
    man中的相关操作
      ctrl + F或者Page Down:向下翻页
      ctrl + B或者Page Up:向上翻页
      gg到第一行
      GG到最后一行
      /start:能在整手册中搜索start相关字符,使用n查找下一个,使用N查找上一个
      j,k与vi中一样使用,j向下一行,k向上一行
      d下翻半页
      u上翻半页
      h获取man使用帮助
      q退出man
        tab自动补全
     
    系统信息:
    uname  系统类型
    uname -r   内核版本
    cat /proc/cpuinfo   CPU信息
    cat /proc/meminfo   内存信息
    who                    显示当前的终端
    系统时间
                date查看当前的系统时间
    date -R 显示系统时间+市区
    root用户下:
    hwclock 查看当前的硬件时间
    cal+xx年xx月     显示xx年xx月日历
    which date          查看date命令是在哪里
    date +%Y-%m-%d %H:%M:%S      使其格式化显示: 年-月-日 时:分:秒
                             2016-07-08 14:09:17
                             注意上面由于中间需要空格,所以加了转义字符
    /bin/date +%Y-%m-%d %H:%M:%S
                             等价于上一条命令
    /bin/date +%Y/%m/%d %H:%M:%S
                             2016Y/07/08 14:10:02
    安装软件
    rpm -qa|grep xxxx      查看都安装了哪些版本的xxx软件
                rpm -e --nodeps xxxxxx  强制卸载xxx软件(所谓强制就是有依赖它的我也要卸载)
     查看帮助文档可以看到:
     --nodeps
                  Don’t do a dependency check before installing or upgrading a package.
    不检查相关的依赖
    rpm -ivh xxx.rpm               安装rpm格式的软件包
    解压/压缩zip yy.zip file                将file压缩为名为xxx.zip的文件
    tar -zcvf zzzz.tar.gz dir   将dir目录压缩成zzzz.tar.gz
       unzip xxx.zip                  解压
    tar -zxvf xxxx.tar.gz          解压到当前目录
    tar -zxvf xxxx.tar.gz -C dir   将dir目录压缩成zzzz.tar.gz
       -v, --verbose
                                           verbosely list files processed
      就是在屏幕上显示解压出来的那些文件,建议不用
    安装jdk     1下载tar.gz(1.7)
                2tar -zxf xxx.tar.gz -C 目录
       3#vi /etc/profile    配置JAVA_HOME
    export JAVA_HOME=xxxxx
    export PATH=$PATH:$JAVA_HOME/bin
    4source /etc/profile
    5echo $JAVA_HOME     回显
    6java -version       检验
      
    sudo权限    1# vi /etc/sudoers
                   添加
      要设置权限的用户的用户名 ALL=(root)NOPASSWD:ALL
      如:test ALL=(root)NOPASSWD:ALL
      以后sudo+命令等价于在root下使用此命令
     
    任务调度crontab
    crontab -l列出目前所有的定时任务
    crontab -r删除所有的定时任务
    crontab 基本定义
    语法:
    * * * * * command
    说明:
    1)六个字段之间,使用逗号隔开
    2)字段的含义
    *       *        *        *        *
    分:1-59, 每十分钟 */10
    时:0-23,*/2
    日:1 -31
     月:1-12
      星期:(0-6)
    举一些例子:
    ### 每天21:30 执行
    30 21 * * * cmd01
     
    ### 每个月1,11,21 的2:30执行
    30 2 1,11,21 * * cmd02
     
    ### 每周六或者每周日,1:45 执行(星期一是0)
    45 1 * * 6,0 cmd03
     
    ### 每天20:00至 23:00 ,每半个小时执行一次
    0,30 20-23 * * * cmd04
    或者写
    */30 20-23 * * * cmd04
     
     
    ### 每一小时执行一次
    * */1 * * *cmd05
    为什么要加/呢?
    */1表示每一分钟
    1表示第一分钟
     
    Shell脚本
                #!         shell脚本第一行用其坐开头指定用哪个程序来编译或执行该shell
    name=hadoop 
              创建变量name,其值为hadoop
      (等号前后不能有空格)
    echo ${name}或echo name
      查看变量name的值
      (当然,如果我此时重新克隆一个窗口,那么是不能引用到这些本地变量的)
      /etc/profile中存放的是系统的全局变量
    .bash_profile
    该文件在用户主目录下,可以设置用户的环境变量
    testst.sh  一个名为test的shell脚本文件(shell脚本文件以.sh结尾)
    执行           . testst.sh 
                  sh testst.sh
                  bash testst.sh
              这里的dot(表示执行)
      以上三种执行方式都可以(可能有细微差别)
    bash testst.sh localprama1 参数值2
                  运行testst.sh脚本,并传入两个参数值
    bash testst.sh localprama1 " localprama2 key3"
                               当值中含有空格的时候,要用双引号
    ${0}           在shell脚本中表示当前脚本的文件名
    ${1}           表示第一个参数(可以理解为传入的值对于的变量吧)
                  也可以使用$1,但是推荐${1},因为0=9再往后就必须加花括号了
    ${#}   位置参量个数  
                echo $?        运行一条命令,紧接着运行此命令,
                  可以显示刚刚运行的那条命令的状态码
      0表示成功,其他表示有问题
    数组
    arr=(xuan lingya yu)
    echo ${arr[2]}         查看数组中第三个元素的值(角标从0开始)
                 yu
    echo ${arr[*]}         查看数组中所有元素的值
                 xuan lingya yu
    echo ${#arr[*]}        数组元素的个数
                 3
    echo ${arr}            
                 xuan
    echo ${arr[0]}         数组名等价于数组中角标为0的元素
                 xuan
    arr[0]=me   修改数组中元素的值
    echo $arr
                 me
                $(命令) 里面写的是命令
    ${变量} 里面写的是变量
                []的作用:判断语句的true/fasle,等价于tes(细节比较多)
    控制结构,还是参考鸟哥的书吧,想系统的学习下的话
     





    附件列表

     

  • 相关阅读:
    自实现的DNetStopWatch类
    IL Discovery 系列三 《为什么在遍历List<T>对象时同时删除其中项会抛出异常》
    高效的线程安全队列ConcurrentQueue<T>(上)
    .NET中Object.Equals()方法与Object.ReferenceEquals()方法
    麻省理工学院(MIT)的开放课程(OCW)真的不错,其音像资料
    Eclipse快捷键大全
    MyEclipse快捷键大全
    c#单文件上传下载源代码
    Tomcat 配置集锦
    asp.net(C#)多文件上传(源代码)vs2008
  • 原文地址:https://www.cnblogs.com/xuanlvshu/p/5721254.html
Copyright © 2011-2022 走看看