zoukankan      html  css  js  c++  java
  • linux常用命令

    学习了一段时间的linux之后,开始着手基本命令的学习,这里主要记录一些学习过程中重要的知识点供以后查阅。

    • Shelll介绍

    1、Shell是什么?

    Shell是一个命令行解释器,它为用户提供一个详Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。

    Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。

     2、Shell的分类

    Bourne Shell:从1979年起Unix就开始使用Bourne Shell,Bourne Shell的主文件名为sh。

    C Shell:主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名。

    这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh

    echo $SHELL

    /etc/shells 查看当前系统支持的shell

    • 编辑命令vi

    命令行模式 (command mode/一般模式)
      任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。 
      在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。
       如:G跳到文本末尾,gg跳到文本开头
    文本输入模式 (input mode/编辑模式)
      在命令模式下输入插入命令i(insert)、附加命令a (append)、打开命令o(open)、修改命令c(change)、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按"ESC"键即可。 
      如,i,a,o,c等命令
    末行模式 (last line mode/指令列命令模式)
      末行模式也称ex转义模式。 
      Vi和Ex编辑器的功能是相同的,二者主要区别是用户界面。在Vi中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。Vi有一个专门的“转义”命令,可访问很多面向行的Ex命令。在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。

      如:(shift+:键,进入此模式)q!强制退出,wq保存退出等命令。

    •  排序命令sort

    在linux的使用过程中,总是避免不了排序问题。比如,topN问题。linux提供了sort排序命令,支持常用的排序功能。

    sort命令支持很多参数,常用参数如下:

    • 文件系统查看命令df

    df命令是从文件系统考虑的,不光要考虑文件占用的空间,还要统计被命令和程序占用的空间 (最常见的是文件已经被删除,但是程序并没有释放空间) 

    •  统计目录或文件大小du

    du命令是面向文件的,只会计算文件和目录占用的空间:

    du -sh * | sort -nr

    如:查看tomcat目录下占用空间最大的前6的目录(du -h |sort -hr|head -n 6 不包括文件)、文件(du -ha|sort -hr |head -n 6 包括目录):

    • grep命令

     查找指定字符串string

    grep 'string' filename

    若需要在文件夹下所有文件查找

    grep 'string'  dirPath/*

    补充:若目录下含有多级子目录,则用 grep -r "string" ./

    • 利用 scp、rsync、rz传输文件

    前提条件:

    服务器要开启写入权限;

    本地和服务器都要安装有 scp 包;

    如何传输:

    1. 从服务器上下载文件;

    scp username@servername:远程目录/文件名 本地目录

    例:scp root@192.168.0.101:/var/www/test.txt  .

    (把 192.168.0.101 上的 /var/www/test.txt 文件下载到本地目录 /var/www/local_dir)

    2. 从服务器上下载目录;

    scp -r username@servername:远程目录 本地目录

    例:scp -r root@192.168.0.101:/var/www/test .

    (把 192.168.0.101 上的 /var/www/test 目录下载到本地目录 /var/www)

    3. 上传本地文件到目标服务器;

    scp /本地目录/文件名 username@servername:远程目录

    例:scp /var/www/test.txt  root@192.168.0.101:/var/www/

    (把本地目录 /var/www/ 下的 test.txt 文件上传到 192.168.0.101 的 /var/www/ 目录中)

    4. 上传本地目录到目标服务器;

    scp -r 本地目录 username@servername:远程目录

    例:scp -r /var/www/local_dir root@192.168.0.101:/var/www/

    (把本地目录 /var/www/local_dir 上传到服务器的 /var/www/ 目录)

    5.rsync从远程获取目录(可以加参数排除复制某些目录);

    rsync -azh -ssh --exclude 'l_temp'  --exclude 'l_tmp/claimImageList' weblogic@10.3.20.65:/t/system_temp /t/system_temp #排除复制l_temp 和l_tmp/claimImageList
    #目录结构
    #/t/system_temp
    #/t/system_temp/l_temp
    #/t/system_temp/l_tmp/claimImageList

    6.使用rz从本地电脑传输文件

    6.使用sftp传输

    sftp username@ip
    put [本地文件的地址] [服务器上文件存储的位置]
    get [服务器上文件存储的位置] [本地要存储的位置]
    
    #当前本地的目录就是登陆时的目录
    • chown 改变用户和所属组命令

    将test.php 文件的所属用户设置成zhuo,所属用户组设置成zhuogroup   
    chown zhuo:zhuogroup test.php

     
    将testfiel 及其内部文件所属用户设置成zhuo,所属用户组设置成zhuoroup
    chown -R zhuo:zhuogroup testfile

    • 为系统添加mysql 组和用户。

    groupadd mysql 
    useradd -u 544 -d /home/mysql -g mysql -m mysql
    • 不知道分类,可以解决ssh问题:

    ssh -tt weblogic@10.3.20.22 << EOF
    sh $proddomaindir/stopappserver1.sh
    sh $proddomaindir/startappserver1.sh
    exit
    EOF
  • 相关阅读:
    HDFS进阶
    sql 自连接 优化
    爬虫初探-笔趣阁小说下载
    Uos 系统访问局域网下的windows 系统文件
    统信Uos 操作系统--ThinkPad x280 机 安装后无法调节亮度
    Hadoop源码分析-hdfs(2)-NameNode类探索
    Hadoop源码分析-hdfs(1)-启动脚本分析
    设计模式学习笔记(4)-接口和抽象类
    设计模式学习笔记(3)-面向对象与面向过程
    设计模式学习笔记(2)-面向对象基本概念和四大特性
  • 原文地址:https://www.cnblogs.com/hoaprox/p/4871976.html
Copyright © 2011-2022 走看看