zoukankan      html  css  js  c++  java
  • Linux常用操作命令

    Linux目录结构

    分为相对路径和绝对路径,目录分隔符"/"
    绝对路径:所有以"/"开始的路径都是绝对路径
    相对路径:目录名或文件名开始的
    ./ 表示当前目录
    .. 表示当前目录的上一级
    ~ 表示用户的主目录

    /   -----处于Linux系统树形结构的最顶端,是Linux文件系统入口
    /bin-----常用的二进制命令目录,如ls,cp,mkdir等
    /boot----存放系统启动相关文件
    /dev-----设备文件目录
    /etc-----畅通系统及二进制安装包配置文件,默认路径和服务器命令目录
    /home----普通用户的家目录,默认存放目录
    /opt-----没什么用可以自己用
    /proc----存在于内存中,是内存的映射,可以查看CPU信息,/pro/cpuinfo
    /sys-----系统目录,存放硬件信息的相关文件
    /run-----运行目录,存放系统运行时的数据,如进程PID文件
    /srv-----服务目录,存放本地服务的相关文件
    /sbin----超级用户可执行命令存放目录
    /tmp-----存放临时文件目录,只能被owner(拥有者)和超级权限删除
    /var-----系统运行和软件运行时产生的日志信息
    /usr-----存放应用程序和文件,自己安装存放位置
    /mnt/media--一般用来临时挂载存储设备的挂载目录
    /lib/lib64---都在/usr目录,存放系统最基本的动态,链接共享库,能够让程序正常编译运行,lib***.a是静态库,lib***.so是动态库
    

    ls命令

    ls命令:查看当前目录下的所有文件
    
    ls [参数] 目录路径
    ls       #命令本身查看当前目录下的文件
    ls ./    #表示查看当前目录下的文件
    ls ../   #表示查看当前目录上级目录下的文件
    ls /     #表示查看系统根目录的所有文件
    ls -l    #-l表示查看当前目录下的文件的详细信息 这-l参数有时可以和ls命令简写为ll
    ls -a    #-a表示查看目录下的所有文件(包含隐藏文件)
    ls -h    #-h表示将文件的大小以合适的单位显示,一般情况和-l连用
    ls -hl   #表示查看当前目录下的文件,并以合适的单位显示文件大小
    

    pwd命令

    pwd命令 查看当前目录的路径
    

    cd命令

    cd命令是进入Linux系统文件夹的命令
    
    cd  目录路径
    cd /       #表示进入系统根目录
    cd usr     #表示进入档期那目录下的usr目录
    cd ./games #表示进入当前目录下的games目录
    cd ..      #表示返回当前目录的上一级目录
    cd         #表示cd后面加任何目录,表示进入当前用户的根目录 如果root目录会进入/root目录,如果是test用户会进入/home/test目录
    cd ~       #表示进入当前用户的根目录
    cd ../../  #表示返回当前目录的上级目录的上级目录
    cd ../home #表示进入与当前目录同级的home目录(进入上级目录下的home那目录)
    

    mkdir命令:创建文件夹命令

    mkdir [参数] 目录路径
    mkdir data        #在当前目录下创建一个叫data的文件夹
    默认情况下mkdir只能创建一级文件夹
    mkdir /root/file  #表示在/root目录下创建一个叫file的文件夹
    
    -p参数 : 一次性创建多级目录
    mkdir -p /root/opt/data/file  #表示在root目录下创建三个级联的目录
    

    rmdir命令:删除文件夹命令

    注意:使用rmdir命令删除目录时,目录必须是一个空目录(目录下面没有任何的文件活目录),否则不能删除
    
    rmdir data  #删除当前目录下的data目录
    rmdir -p    #删除当前目录下的所有目录
    rmdir -p opt/data/file  #删除当前目录下的opt以及它的子目录,相当于rmdir opt/data/file-->rmdir opt/data-->rmdir opt
    

    rm删除命令

    rm删除命令:可以删除文件和文件夹一般都使用 -rf参数
    
    rm anaconda-ks.cfg  #删除当前目录下的anaconda_ks.cfg文件
    rm -rf opt/data   #删除当前目录下opt目录下的data文件夹以及它下面的所有文件和文件夹
    
    -r : 表示递归删除
    -f : 表示强制删除,不提示
    
    rm -f file   #表示删除当前目录下file目录以及它下面的所有文件,会弹出提示
    rm _rf file  #表示强制删除当前目录下file目录下的所有内容,不会提示
    

    touch命令:创建文件命令

    touch 文件路径
    
    touch 1.txt   #表示在当前目录下创建一个1.txt文件
    touch /root/2.txt #表示在/root目录下创建一个2.txt文件
    

    echo命令:输出命令

    echo输出命令:相当于plsql中的dbms_output.put_line
    
    PATH系统环境变量
    $ : 表示取值
    echo $PATH   #表示输出环境变量的PATH的值
    
    echo -n  #表示输出但不换行
    

    >和>>命令

    命令>|>>文件 : 表示将前面命令的结果放入到文件中
    
    echo 1234 > 3.txt   #表示将1234输出到3.txt中,如果文件不存在会在创建文件,如果文件存在,会先将文件清空后媳妇1234
    echo 1234 >> 4.txt  #表示将1234输出到4.txt中,如果文件不存在会创建文件,如果文件存在,会在原有的文件内容后追加1234
    

    查看文件内容命令

    cat命令

    cat 文件路径
    cat 4.txt  #表示查看当前目录下的4.txt文件的内容
    
    cat 4.txt >> 3.txt  #表示将4.txt文件的内容追加到3.txt中
    

    more命令

    more 文件路径  #表示查看文件内容,先显示文件的部分内容,按空格(或回车)翻页
    

    less命令

    less 文件路径  #表示查看文件的内容,先显示文件部分内容,按空格(或回车)翻页,输出q退出查看
    

    head命令

    head [-n] 文件路径  #表示从文件开始查看文件若干行内容,n是一个正整数表示行数
    head -20 4.txt  #表示查看4.txt的前20行内容
    

    tail命令

    tail [-n][-f] 文件路径  #表示从文件结尾开始查看文件若干行内容,n表示行数是一个正整数,-f参数表示动态查看文件的后几行内容(用来查看日志文件)
    
    tail -15 4.txt   #表示查看4.txt的后15行内容
    tail -f  4.txt   #表示动态查看4.txt的内容,按Ctrl+C退出查看Ctrl+Z
    
    Ctrl+C : 表示暂停程序的运行
    Ctrl+Z : 表示停止程序的运行
    

    vi和vim命令:文件编辑

    vi是Linux系统自带的命令,vim一般需要安装 : yum -y install vim
    
    vim 文件路径
    vim 5.txt  #表示编辑当前目录下5.txt文件,没有该文件会自动创建一个5.txt
    
    非编辑模式:用来使用一些命令的
    i  #进入编辑模式,光标就在当前行
    o  #进入编辑模式,光标出现在当前行的下一行
    yy  #将光标当前行的内容,复制到粘贴板上
    p  #将粘贴板上的内容复制到当前行的下一行
    dd  #删除光标当前行的内容
    :set nu  #显示行号
    :set nonu   #取消显示行号
    /查找字符   #从前向后查找字符串(当前光标)
    ?查找字符   #从后往前查找字符串(当前光标)
    :%s/查找的字符串/新的字符串/g  #表示将文中的所有内容进行替换  g表示:global 全文替换  i:表示忽略大小写
        :%s/fa/34/g  #表示将文本中的所有fa替换成34
        :%s/$/;/g    #表示将文本中的每一行的末尾添加一个";"   $:表示行末
        :$s/^/#/g    #表示在文本中的每一行的行头添加一个"#",将所有内容注释掉   ^:表示行首,#是Linux中的注释符号
    :n1,n2s/查找的字符串/新的字符串/g  #表示将第n1行到第n2行之间的所有内容进行替换
        :15,15s/12/34  #表示将15行中的12替换成34
    :s/查找的字符串/新的字符串   #表示替换光标当前行第1个目录字符串
        :s/34/56  #将光标当前行的34替换成56
        :%s/n/x/gi  #将文本中的所有n(包括大写)都替换成x
    
        Ctrl+F : 表示向下翻页
        Ctrl+B : 表示向上翻页
        Ctrl+U : 表示向上翻半页
        Ctrl+D : 表示向下翻半页
    
    :set ff  #表示查看当前文件的格式
            Windows中的 doc
            Linux中的 unix
    u:   #表示撤销
    :w   #表示保存
    :q   #表示退出不保存
    :wq  #表示退出并保存
    :q!  #表示强制退出不保存
    :wq! #表示强制保存并退出
    
    ESC键  #表示退出编辑模式
    

    cp命令:复制命令

    cp 源文件 目标文件
    
    cp 5.txt 6.txt  #将当前目录下的5.txt文件复制一份保存为6.txt
    cp 5.txt opt/   #将当前目录下的5.txt文件复制到opt目录下
    
    cp -r opt data/ #将opt目录及目录下的所有内容拷贝到data目录下
    cp -r data/* opt #将data目录下的所有文件拷贝到opt目录下
    

    mv命令:移动命令(剪切命令)

    mv 源文件 目标文件
    
    mv 6.txt 7.txt   #将当前目录下的6.txt文件移动到7.txt(相当于给6.txt改名)
    mv 7.txt data/   #将当前目录下的7.txt文件移动到data目录下
    mv 4.txt data/5.txt  #将当前目录下的文件移动到data目录下的5.txt(相当于移动并改名)
    
    mv op data/     #将当前目录下的op目录移动到data目录下
    mv opt op       #将opt目录改名成op
    

    压缩命令

    zip命令

    zip的安装命令:yum -y install zip
    
    zip 压缩文件名 源文件
    
    zip 5.zip 5.txt  #将当前目录下的5.txt压缩到5.zip文件中
    
    zip data.zip data/*  #将data目录下的所有文件压缩到data.zip文件中(压缩时没有将data的下级目录内的文件压缩)
    zip -r data.zip data/*  #将data目录下的所有文件包含子目录下的文件压缩到data.zip文件中
    

    unzip解压命令

    unzip的安装命令:yum -y install unzip
     
    unzip [参数] 压缩文件
    unzip -l 5.zip  #查看5.zip压缩包中的内容
    unzip 5.zip     #将5.zip解压到当前目录中
    unzip 5.zip -d data/  #将5.zip解压到指定的目录data目录下
    

    tar命令

    tar -cvf 压缩文件名 要压缩的文件  #将目标文件压缩成.tar压缩包
    tar -cvf data.tar data/   #将当前目录下的data目录压缩到data.tar压缩包中
    
    tar -xvf 压缩文件名   #解压.tar压缩包
    tar -xvf data.tar    #将data.tar解压到当前目录
    tar -xvf data.tar -C unzip/  #将data.tar解压到unzip目录下
    
    tar -zcvf 压缩文件名 要压缩的文件 #将文件压缩为.tar.gz压缩包
    tar -zcvf data.tar.gz data/ #将当前目录下的data目录压缩到data.tar.gz中
    
    tar -zxvf 压缩文件名  #将.tar.gz文件解压到当前目录
    tar -zxvf data.tar.gz  #解压到当前目录
    tar -zxvf data.tar.gz -C unzip/  #解压到unzip目录
    

    用户和权限

    groupadd命令:添加用户组

    groupadd 用户组名
    
    groupadd arq   #创建一个叫aiq的用户组
    

    groupdel命令:删除用户组

    groupdel 用户组名称
     
    groupdel aiq  #删除用户组(注意:删除用户组时,必须保证用户组下没有任何用户)
    

    useradd命令:添加用户

    useradd 用户名 [参数]
    
    useradd test  #添加一个test用户
    
    useradd 用户名 -g 用户组名 -G用户组名
      -g :后面跟用户组,是该用户的主用户组
      -G :后面跟用户组,是该用户的其他用户组
    groupadd ai
    useradd  aiqs -g aiq -G ai  #创建一个用户aiqs,它的主用户组是aiq,还属于ai用户组
    

    id命令:查看用户id

    id 用户名
    id aiqs  #查看aiqs的用户id
    

    passwd命令:修改用户密码

    passwd 用户名
    passwd aiqs  #修改aiqs用户的密码
    

    su命令:切换用户命令

    su [参数] 用户名
    
    su aiqs   #切换到aiqs用户(但是不会加载aiqs用户的环境变量)
    su - aiqs   #切换到aiqs用户,并加载用户的环境变量
    su - root   #切换到root用户
    

    exit:退出命令

    Linux上的文件权限

    分为三组 : 用户权限(u),用户组权限(g),其他用户权限(o)
    r : 表示只读权限,数字表示4
    w : 表示写权限,数字表示2
    x : 表示执行权限,数字表示1
    - : 表示没有相应的权限
    每一组的权限顺序: 读 , 写 , 执行
    
    文件的显示类型:
    d文件夹          用户权限u          用户组权限g         其他用户权限o
    -                   rw-              r--                r--       
                        6                 4                  4
                  *详图看下
    权限根据rwx所代表的数字可以使用三个数字来表示三组权限,每一组权限用一个数字表示
    

    chmod命令赋值权限命令

    chmod [参数] 权限(可以使用数字,可以使用用户组和rwx的组合) 文件或目录
    
    chmod u+x 1.txt   #给1.txt的用户增加执行权限
    chnod g+x 1.txt   #给1.txt的用户组添加执行权限
    chmod o+x 1.txt   #给1.txt的其他用户组添加执行权限
    chmod g-x 1.txt   #给1.txt的用户组撤销执行权限
    数字法:
    chmod 766 2.txt   #修改2.txt权限,u=rwx,g=rw-,o=rw-
    chmod 777 3.txt   #修改3.txt权限,让所有人都可以读写执行
    
    -R : 表示递归目录以及目录下的所有文件或文件夹都赋值相同的权限
    chmod -R 777 data  #将data目录及它下面的所有文件都赋值权限为777
    

    chown命令:修改目录或文件的拥有者

    chown -R 用户名[:用户组] 目录或文件
    
    chown aiqs 1.txt   #将1.txt用户拥有者改为aiqs用户
    chown aiqs:aiq 2.txt   #将2.txt的拥有者改为aiqs和所在用户组改为aiq
    chown -R aiqs:aiq data   #将目录data以及它下面的所有文件的拥有改为aiqs,所属用户组改为aiq
    

    who命令:查看当前系统的用户进程

    whoami命令:查看当前用户的用户名

    find命令:查找命令

    find [目录] 查找内容
    
    find *.txt   #查看当前目录下的所有txt文件
    find 1.*     #查看当前目录下的以1.开头的文件
    

    whereis查找命令

    whereis 要查找的内容 : 一般用来查找是否安装了某个软件
    

    |和grep

    | : 通道符号,作用是将前一个命令的执行结果,传给后面的命令
    
    grep [参数] 要查找的内容
    cat 5.txt | grep 12  #查找出5.txt中所有带12的行
    
    -v : 参数表示取反,查找的内容不包含某个内容的行
    cat 5.txt | grep -v 12  #查找出5.txt中不包含12的行
    

    ping命令

    ping ip地址|域名|主机名  #查看网络是否连通
    

    ifconfig命令

    ifconfig命令:用来获取网络接口配置信息
    
    ifconfig的安装:yum -y install net-tools
    

    netstat命令:查看网络状态

    netstat命令 : 查看网络状态,相当于Windows下的telnet命令
    
    netstat -tnulp | grep 1521  #查看系统中Oracle的监听器是否启动
    

    ps命令:查看系统进程

    ps命令 : 查看系统进程命令
    
    ps -ef | grep oracle   #查看系统中的Oracle进程
    ps -ef | grep java     #查看系统中java程序进程
    
    ps -aux | grep python  #查看系统中python的进行
    

    kill命令:结束进程

    kill 进程id  #结束某个进程
    ps -ef | grep ssh
    kill 6611  #结束进程是6611的进程
    
    kill -9 进程id  #强制结束某个进程
    kill -9 6724    #强制结束id是6724的进程
    
    killall  进程名称  #按名称结束进程
    killall java  #结束掉系统中的所有java进程
    

    df命令:查看内存

    df命令 : 查看系统硬盘使用的情况
    df -h : 查看系统内存使用情况,并以合适的单位显示
    

    防火墙命令

    centos7:
        systemctl stop firewalld     #关闭防火墙
        systemctl start firewalld    #打开防火墙
        systemctl disable firewalld  #永久关闭防火墙 
        systemctl status firewalld   #查看防火墙状态
    centos6:
        service iptables start       #打开防火请
        service iptables stop        #关闭防火墙
        chkcnofig iptables off|on    #永久关闭防火墙
    

    修改主机名称

    centos7:
        hostnamectl set-hostname 计算机名称
    centls6:
        vim /etc/sysconfig/network 修改文件中的hostname值
    
    hostname命令 : 查看当前主机名
    

    man命令

    man命令 : 查看Linux命令的详细信息(使用文档,最详细的)
    man ls : 查看ls命令的格式和参数
    
    --help,--h,-h : 命令的帮助参数,和man命令的结果类似,但没有man命令查看到的详细
    

    ssh命令:远程登录

    ssh 命令 : 它是Linux上的远程登录命令
    ssh 用户名@ip|主机名|域名
    
    ssh root@127.0.0.3   #使用ssh登录120.0.0.3
    ssh root@oracle      #使用ssh登录Oracle的电脑
    

    scp命令:远程拷贝

    scp -r 用户名@ip|域名|主机名:目录路径 本地路径   #将远程文件拷贝到本地
    scp -r root@127.0.0.3:/root/ln1/6.txt /root/  #将远程服务器上的/root/ln1/6.txt文件拷贝到本地的/root目录
    
    scp -r 本地路径 用户名@ip|域名|主机名:目录路径   #将本地的文件拷贝到远程服务器
    scp -r 1.txt root@127.0.0.3:/root/ln1         #将本地的1.txt文件拷贝到远程服务器的/root/ln1目录下
    scp -r data root@127.0.0.3:/root/ln1/         #将本地的data目录拷贝到远程服务器/root/ln1目录下
    
    scp -r 用户名@ip|域名|主机名:目录路径 用户名@ip|域名|主机名:目录路径   #将文件从一台服务器拷贝到另一台服务器
    scp -r root@127.0.0.3:/root/ln1/*.txt  root@127.0.0.3:/root/ln2/  #将远程目录/root/ln1下的所有txt文件拷贝到另一台服务器的/root/ln2目录下
    

    多行处理命令

    <<EOF
    ...
    EOF
    将<<EOF和EOF之间的多行内容传前面的命令,EOF可以是任意字符串
    
    例子:
    [root@oracle ~]# cat <<EOF
    > A
    > 2
    > 4
    > AB
    > C
    > E
    > T
    > EOF
    A
    2
    4
    AB
    C
    E
    T
    
    [root@oracle ~]# cat <<A
    > e
    > w
    > 1
    > f
    > c
    > f
    > A
    e
    w
    1
    f
    c
    f
       #在Linux上执行一个SELRCT * FROM EMP;的sql语句
        sqlplus -S scott/scott<<EOF
        select * from emp
        exit
        EOF
    

    sed命令

    sed '5p' 7.txt   #打印7.txt的第五行后,打印7.txt的全部内容
    sed -n 5p' 7.txt   #只打印7.txt的第五行内容
    
    sed -i 's/local/home/g' 7.txt #将文件中的local替换成home
    
    如果要替换的内容中有特殊字符例如/,需要使用转义字符"\"
    sed -i 's/\/usr\/home/\/opt\/config/g' 7.txt   #将7.txt中的/usr/home替换为/opt/config
    
    -n  #一般sed命令会把所有数据都输出到屏幕上.如果加入此参数,则只会把经过sed命令处理的行输出到屏幕
    -e  #允许对输入数据应用多条sed命令编辑
    -i  #用sed修改结果会直接修改读取的数据文件,而不是修改屏幕输出
    
    sed可以修改文件,替换文件内容
    
    a\   #追加,在当前行后追加一行或多行.添加多行时除最后一行外,,每行末尾要用"\"代表该行的数据完结
    c\   #行的替换,在c后面的字符替换原有数据行,替换多行时除最后一行外,每行末尾要用"\"代表该行的数据完结
    i\   #插入,当前行插入一行或多行,插入多行时,除最后一行外,每行末尾要用"\"代表该行的数据完结
    d    #删除,删除指定的行
    p    #打印,输出指定的行
    s    #字符串的替换,用一个字符串替换另一个字符串.格式为"行范围 s/旧的字符串/新的字符串/g"
    

    wc命令:数数

    wc命令:word count 数文件或内容中的单词个数,行数等
    
    wc -l 文件   #查看文件的行数
    wc -w 文件   #查看文件的单词数,按照空格来算单词
    
    wc -l 7.txt  #查看7.txt的行数
    wc -w  7.txt #查看7.txt的单词个数
    

    cut命令:截取命令

    cut -f n -d 分隔符   #n是一个正整数,表示第n列 -d : 是定列和列之间的分隔符,默认是tab键
    
    cut -f 2 8.txt   #截取文件8.txt的第二列
    cp 8.txt 9.txt   #复制8.txt
    sed -i 's/\t/,/g' 9.txt  #将9.txt文件中的水平制表符替换为","
    
    cut -f 2 -d ',' 9.txt   #指定','为分隔符截取9.txt的第二列
    
    wc -l 9.txt | cut -f 1 -d ' '  #取9.txt的行数
    

    awk '条件1{动作1}条件2{动作2}...' 文件名

    awk '{printf $2 "\t" $6 "\n"}' a.txt  #输出文件a.txt的第二列和第6列
    
    awk '{print $1}' 8.txt #打印8.txt中的第一列(自动换行)
    awk '{printf $1}' 8.txt #打印8.txt中的第一列,(不换行)
    
    print和printf 是格式化输出命令
    print自动换行
    printf不换行
    

    Linux的安装命令

    rpm :安装.rpm的安装文件
    rpm -ivh  安装包文件.rpm  #安装程序
    
    rpm -qa | grep mariadb   #查询电脑上已安装mariadb的数据库,是mysql的开源版
    
    rpm -e 安装文件  #卸载程序
    rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps  #卸载mariadb,--nodeps表示不管它是否依赖其他内容,或者有其他软件依赖
    
    
    yum命令:它是ret hat和Centos上的特定安装命令
    yum -y install 软件名称
    
    yum -y remove 软件名称 卸载软件
    
    
    ubunto:它安装命令apt-get -y install 软件名称```
    
  • 相关阅读:
    SQL练习题28:创建一个actor表,包含如下列信息(注:sqlite获取系统默认时间是datetime('now','localtime'))
    SQL练习题27:你能使用子查询的方式找出属于Action分类的所有电影对应的title,description吗
    SQL练习题26: 将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分 (注:该数据库系统是sqllite,字符串拼接为 || 符号,不支持concat函数)
    SQL练习题25:使用join查询方式找出没有分类的电影id以及名称
    SQL练习题24:给出每个员工每年薪水涨幅超过5000的员工编号emp_no、薪水变更开始日期from_date以及薪水涨幅值salary_growth,并按照salary_growth逆序排列。 (数据保证每个员工的每条薪水记录to_date-from_date=1年,而且同一员工的下一条薪水记录from_data=上一条薪水记录的to_data)
    SQL练习题23:汇总各个部门当前员工的title类型的分配数目,即结果给出部门编号dept_no、dept_name、其部门下所有的当前(dept_emp.to_date = '9999-01-01')员工的当前(titles.to_date = '9999-01-01')title以及该类型title对应的数目count
    SQL练习题23:获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999-01-01', 结果第一列给出员工的emp_no, 第二列给出其manager的manager_no, 第三列给出该员工当前的薪水emp_salary, 第四列给该员工对应的manager当前的薪水manager_salary
    SQL练习题22:获取所有非manager员工当前的薪水情况,给出dept_no、emp_no以及salary ,当前表示to_date='9999-01-01'
    SQL练习题22:查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序
    SQL练习题21:查找当前薪水(to_date='9999-01-01')排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,你可以不使用order by完成吗
  • 原文地址:https://www.cnblogs.com/beloved-bq/p/12536976.html
Copyright © 2011-2022 走看看