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

    目录:

    1 查看系统里预装了哪些shell
    2 查看使用过的命令历史
    3 linux目录结构
    4 ls命令常用选项
    5 cd命令
    6 显示当前目录
    7 创建目录
    8 显示目录结构
    9 删除目录
    10 创建文件
    11 显示文件里的内容
    12 【wc】统计文件里的行数,单词树,字节数
    13 【du】查看文件所占用的磁盘空间的大小
    14 【df】查看硬盘的使用情况
    15 软硬连接
    16 更改文件或者文件夹的权限
    17 更改文件或者文件夹的所有者和用于组
    18 find来查找文件
    19 grep 查找内容
    20 zip和unzip
    21 tar压缩和解压缩,tar是linux里最常用的,文件后缀为.tar.gz
    22 apt-get 安装
    23 dpkg 安装
    24 用户相关
    25 时间日期
    26 alias别名
    27 补码(控制,创建文件后,给这个文件的默认权限):umask

    1,查看系统里预装了哪些shell

    cat /etc/shells
    

    2,查看使用过的命令历史

    history
    

    3,linux目录结构

    • linux把所有硬件和资源都看作是文件!
    文件目录 功能描述
    /bin 可执行文件目录
    /media 外部连接到本电脑的设备,比如U盘,光盘等
    /mnt 为了让用户挂载别的文件系统
    /usr 是unix system resources的缩写,不是user的缩写,很多应用会安装到此目录
    /usr/local 用户自己安装软件的目录
    /sbin root用户可以使用的可执行文件的目录
    /proc 系统内存的映射,会保留进程运行的一些信息
    /etc 系统软件的启动和配置目录
    /dev linux把所以电脑的设备虚拟化成文件,这里放的是虚拟化后的文件,黄色的代表机器里的各种设备,比如sda1代表硬盘。

    4,ls命令常用选项

    选项 解释
    -l 能够显示详细信息
    -a 显示隐藏文件,也就是以.开头的文件或者文件夹
    -R 如果文件夹里还有文件夹,就会把所有子文件夹里文件都显示出来
    -lrt 按更新时间的升序显示

    5,cd命令

    回到家目录的几种方式

    • cd
    • cd -
    • cd ~
    • cd $HOME

    6,显示当前目录

    pwd
    

    7,创建目录

    • 直接创建
    mkdir aa
    
    • 创建有子目录的(bb是不存在的,如果不加-p是无法创建成功的)
    mkdir -p bb/cc
    

    8,显示目录结构

    tree
    

    9,删除目录

    rm -r 目录
    

    10,创建文件

    如果文件不存在,则直接创建文件;如果已经存在了,则更新文件的更新时间,可以用【ls -lrt】命令验证

    touch 文件1 文件2
    

    11,显示文件里的内容

    • 当文件内容比较少,一个屏能显示全的时候使用cat
    • 当文件内容比较多,一个屏能显示不全的时候使用more

    ​ 回车:一行一行向下移动

    ​ 空格:一屏一屏向下移动

    ​ 不方便的地方:不能向上移动

    • 当文件内容比较多,一个屏能显示不全的时候使用less

    ​ 回车/上下箭头:一行一行向上/下移动

    ​ 空格:一屏一屏向下移动

    ​ 方便的地方:能向上移动

    • 只想看文件的头几行,head

    ​ 默认显示10行。-n 行数:可以指定显示的行数

    • 只想看文件的末尾几行,tail

    ​ 默认显示10行。-n 行数:可以指定显示的行数

    ​ -f : 可以一直监视日志文件的末尾增加的行

    12,【wc】统计文件里的行数,单词树,字节数

    • -l :统计函数
    • -w:统计单词书
    • -c :统计字节数

    13,【du】查看文件所占用的磁盘空间的大小

    • -h 对人类友好的表示方式。
    • --max-depth=1 不看子目录,不加的话,会把所有子目录也都列出来。

    14,【df】查看硬盘的使用情况

    • -h 对人类友好的表示方式。

    15,软硬连接

    • 硬连接:增加对磁盘文件的引用计数
    • 软连接:不增加对磁盘文件的引用计数,相当于windows里的快捷方式。
    • 不管修改哪个连接里的文件内容,其他连接都是共有修改后的内容。
    • 增加硬连接(只可以增加文件的硬链接):ln src des
    • 增加软连接(既可以增加文件的软链接,可以增加文件夹的软链接):ln -s src des
    • 删除软硬连接:unlink des 或者 rm des

    16,更改文件或者文件夹的权限

    -rw-r--r--  1 ys ys  8980 9月   9  2018 examples.desktop
    drwxr-xr-x  2 ys ys  4096 9月   9  2018 Videos
    -rwxr-xr-x  1 ys ys 28792 4月  18 10:57 a.out
    
    • 第一位或者是【d】或者是【-】。【d】代表是文件夹;【-】代笔是文件

    • 【rwx】【rw-】【r--】等的含义。

      r:可以读取;

      w:可以修改;

      x:可以执行

      【rwx】:可以读取,可以修改,可以执行。

      【rw-】:可以读取,可以修改,不可以执行。

      【r--】:可以读取,吧可以修改,不可以执行。

      第一组【---】:代表自己。

      第二组【---】:代表自己所在的组。

      第三组【---】:代表其他人。

    • 数字表示法:rws代表 111,111的十进制数字为:7

    • 数字表示法:rw-代表 110,111的十进制数字为:6

    • 数字表示法:r--代表 100,111的十进制数字为:4

    • 数字表示法:-w-代表 010,111的十进制数字为:2

    • 数字表示法:--x代表 001,111的十进制数字为:1

    chmod [u|g|o|a] [+|-][r|w|x] filename
    
    • u:自己
    • g:自己所在的组
    • o:别人
    • a:包括u,g,o
    • +:赋予权限
    • -: 删除权限
    chmod 777 filename //自己,组,别人:都有读写和执行的权限
    chmod 640 filename //自己:可以读写,但不能执行;组:只可以读;别人:不能读写,不能执行
    

    文件夹的x代表,可以cd进去这个文件夹,否则不可以cd进入这个文件夹。

    17,更改文件或者文件夹的所有者和用于组

    -rw-r--r--  1 ys ys  8980 9月   9  2018 examples.desktop
    drwxr-xr-x  2 ys ys  4096 9月   9  2018 Videos
    -rwxr-xr-x  1 ys ys 28792 4月  18 10:57 a.out
    
    • 第一个ys:代表这个文件或者文件夹属于谁。
    • 第二个ys:代表这个文件或者文件夹属于哪个组。
    chown new_user:new_group filename
    
    chown new_user filename
    

    可以看出来,chown即可改用户也可以改变组。

    chgrp new_group filename
    

    可以看出来,chgrp只能改变组。

    18,find来查找文件

    • 按照名字查找 【-name】,在路径【/home/ys】下(它下面的子目录也查找),查找名字为【src.h】的文件

      find /home/ys -name "src.h"
      
    • 按照类型来查找【-type】,在路径【/home/ys】下(它下面的子目录也查找),查找类型为【f】的文件。

      类型f:普通文件;类型d:文件夹

      find /home/ys -type f
      
      -type c
                    File is of type c:
      
                    b      block (buffered) special
      
                    c      character (unbuffered) special
      
                    d      directory
      
                    p      named pipe (FIFO)
      
                    f      regular file
      
                    l      symbolic link; this is never true if the -L option or the -follow  option
                           is  in effect, unless the symbolic link is broken.  If you want to search
                           for symbolic links when -L is in effect, use -xtype.
      
                    s      socket
      
                    D      door (Solaris)
      
    • 按照文件的大小来查找【-size】,在路径【/home/ys】下(它下面的子目录也查找),查找文件大小为大于1M并且小于5M的文件。不写【+】【-】代表等于

      find /home/ys -size +1M -size -5M
      
      -size n[cwbkMG]
                    File uses n units of space, rounding up.  The following suffixes can be used:
      
                    `b'    for 512-byte blocks (this is the default if no suffix is used)
      
                    `c'    for bytes
      
                    `w'    for two-byte words
      
                    `k'    for Kibibytes (KiB, units of 1024 bytes)
      
                    `M'    for Mebibytes (MiB, units of 1024 * 1024 = 1048576 bytes)
      
                    `G'    for Gibibytes (GiB, units of 1024 * 1024 * 1024 = 1073741824 bytes)
      
    • 只在当前目录查找,不查找子目录,【-maxdepth 1】,注意:要放到-size前面

      find /home/ys -maxdepth 1 -size +1M -size -5M
      
    • find出来的结果是没有文件的详细信息,想看详细信息怎么办呢

      • 使用下面的固定写法,注意:ls -l是可以替换成别的命令,比如[rm -f],把查找出来的文件删除掉,但是直接删除很文件,所以可把【-exe】替换成【-ok】,这样就会把查找出来的结果一条一条的让你确认是否要删除,输入【y】代表删除,输入【n】代表不删除。

        find ./ -maxdepth 2 -size +1M -exec ls -l {} ;
        
      • 使用管道,并加上【xargs】

        find ./ -maxdepth 2 -size +1M | xargs ls -l
        
      • [exec]和[xargs]哪个好呢,推荐使用[xargs]。如果find出来的结果过于多的话,[exec]直接把所有结果都传给后面的命令(比如ls -l),会导致后面的命令崩溃掉;然而[xargs]会把find的结果进行分块,就保证了后面的命令不会崩溃。

    • grep 内容过滤,把find的结果再过滤一下,比如只想看find结果(打印到屏幕的纯文本结果作为grep的输入)里,文件名字里有txt的文件

      find ./ -maxdepth 2 -size +1M | grep txt
      

      例子:grep后的结果是把f.txt过滤出来了

      ys@ys-VirtualBox:~/aa$ ls
      11  22  33  aa1  f.txt
      ys@ys-VirtualBox:~/aa$ find ./ -type f | grep txt
      ./f.txt
      ys@ys-VirtualBox:~/aa$ 
      
    • grep 内容过滤,把find的结果再过滤一下,比如只想看find结果(文件列表作为grep的输入)里,文件内容里有abc的文件

      find ./ -maxdepth 2 -size +1M | xargs grep abc
      

      例子:grep后的结果是没有把f.txt过滤出来,而是把11和22过滤出来了,因为11和22的文件内容里有【txt】

      ys@ys-VirtualBox:~/aa$ ls
      11  22  33  aa1  f.txt
      ys@ys-VirtualBox:~/aa$ find ./ -type f |xargs grep txt
      ./11:txt
      ./22:txt
      ys@ys-VirtualBox:~/aa$ cat 11
      txt
      ys@ys-VirtualBox:~/aa$ cat 22
      txt
      ys@ys-VirtualBox:~/aa$ cat f.txt 
      ys@ys-VirtualBox:~/aa$ 
      
      

    19,grep 查找内容

    grep [option] 要查找的内容 dir或者filename
    
    • 当要在目录里查找时,要使用【-r】,在文件中查找时,不用加

    • 当想要显示查找的内容所在的行号,加【-n】

    • 排除内容

      grep -v 要排除的内容 dir或者filename
      
    • 分析日志

      • 只关注日志里有【txt】的内容

        tail -f 日志文件名 | grep txt
        
      • 排除日志里含有【txt】的内容

        tail -f 日志文件名 | grep -v txt
        

    20,zip和unzip

    • 压缩:zip。-r:代表递归子目录

      zip -r 压缩包的名字(不用加.zip后缀名) 目录或者文件
      

      例子:把文件夹aa和文件a.out压缩到fir.zip里

      zip -r fir aa a.out
      
    • 解压缩:unzip,解压缩到当前目录

      unzip fir.zip
      

    21,tar压缩和解压缩,tar是linux里最常用的,文件后缀为.tar.gz

    • z:gz格式的压缩和解压缩
    • j:bzip2格式的压缩和解压缩
    • c:压缩
    • x:解压缩
    • v:显示信息
    • f:指定压缩包的名字

    例子:把文件夹aa和文件a.out压缩成bb.tar.gz

    tar zcvf bb.tar.gz aa/ a.out
    

    例子:解压缩bb.tar.gz到当前目录

    tar zxvf bb.tar.gz
    

    22,apt-get 安装

    • apt-get update :更新 /etc/apt/sources.list这个文件
    • apt-get install mongdb:安装mongdb
    • apt-get remove mongdb:卸载mongdb
    • apt-get clean:清理

    23,dpkg 安装

    • dpkg -i mongd.deb :安装mongdb
    • dpkg -r mongd.deb:卸载mongdb

    24,用户相关

    • 创建用户组:groupadd

      sudo groupadd 组名
      
    • 创建用户:useradd

      • -s:指定使用哪个shell
      • -g:指定组
      • -d:指定用户家的目录
      • -m:家目录不存在时,自动创建
      sudo useradd -d /home/a -s /bin/bash -m -g 组名 用户名
      
    • 设置密码(刚创建的用户,必须设置密码):passwd

      sudo passwd 用户名
      
    • 删除用户:userdel

      • -r:删除用户的同时,还把用户的家目录也删除掉
      sudo userdel -r 用户名
      
    • 切换用户:

      su - 用户名
      

    25,时间日期

    • date命令

      date +'%Y/%m/%d'
      

      输出结果:2019/04/21

      %a     locale's abbreviated weekday name (e.g., Sun)
      
             %A     locale's full weekday name (e.g., Sunday)
      
             %b     locale's abbreviated month name (e.g., Jan)
      
             %B     locale's full month name (e.g., January)
      
             %c     locale's date and time (e.g., Thu Mar  3 23:05:25 2005)
      
             %C     century; like %Y, except omit last two digits (e.g., 20)
      
             %d     day of month (e.g., 01)
      
             %D     date; same as %m/%d/%y
      
             %e     day of month, space padded; same as %_d
      
             %F     full date; same as %Y-%m-%d
      
             %g     last two digits of year of ISO week number (see %G)
      
             %G     year of ISO week number (see %V); normally useful only with %V
      
             %h     same as %b
      
             %H     hour (00..23)
      
             %I     hour (01..12)
      
             %j     day of year (001..366)
      

    26,alias别名

    • 输入【ls -lrt】是不是很繁琐,可以用alias把【ls -lrt】简单化成【ll】

      ys@ys-VirtualBox:~$ alias
      alias egrep='egrep --color=auto'
      alias fgrep='fgrep --color=auto'
      alias grep='grep --color=auto'
      alias l='ls -CF'
      alias la='ls -A'
      alias ll='ls -lrt'
      alias ls='ls --color=auto'
      
    • 修改.bashrc文件,添加:【alias ll='ls -lrt'】,然后使用下面的命令,之后当敲ll时,实际执行【ls -lrt】

      source .bashrc
      

    27,补码(控制,创建文件后,给这个文件的默认权限):umask

    • -S 友好显示

    0002 取反后得到 0775 再 & 666 后,得到664,所以,

    创建文件后,这个文件的默认权限就时664(rw-rw-r--)

    28,查看文件的种类:file

    • file 可执行的二进制文件的结果:

      ttcp: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=0d093749a09a7d558bfd44a95654f9153a22d2d8, with debug_info, not stripped
      
    • file 文本文件的结果:

      sender.cc: C source, ASCII text
      

    c/c++ 学习互助QQ群:877684253

    本人微信:xiaoshitou5854

  • 相关阅读:
    直接插入排序
    排序概述
    因为现在这个水平还用不到树和图,所有之后放弃树和图的学习,直接进入排序的学习,现在学到排序树的删除部分,还没学完删除
    检索树
    二叉树的构造
    dedecms 忘记后台密码
    php配置伪静态的方法
    thinkPHP 中去除URL中的index.php
    thinkphp 验证码的使用
    php MySQL数据库操作类源代码
  • 原文地址:https://www.cnblogs.com/xiaoshiwang/p/10745718.html
Copyright © 2011-2022 走看看