• Linux基础命令


     ctrl +alt +t  打开新终端

     sudo shutdown -h now    关机

                   -r +分钟数  重启    

    vi:

       输入模式 i   a  

       底行模式

       命令模式   

       视图模式:v  进入视图模式

    命令:

    dd  剪切

    yy  复制

    p/P 粘贴

    r: 修改光标上的字符

    R:  修改后边的字符,直到命令结束

    <b> 移动到当前单词的开始

    <e>  移动到当前单词的结尾

     db:  删除单词

     dw:  删除单词

     debain: deb

     redhat: rpm

     deb包的组成: 软件包名_版本号_体系架构.deb

     deb包的管理机制:

     1、本地管理(无法解决依赖关系)  需要sudo  dpkg 命令

     dpkg -i <package.deb>   安装一个在本地文件系统上存在的Debian软件包

     dpkg -L <package>   列出安装的软件包清单  

     dpkg -r <package>    移除一个已经安装的软件包

     dpkg -P <package>   移除已安装软件包及配置文件

     dpkg -s  <package>    显出软件包的安装状态(是否已经安装)  

     2、在线管理(可以解决软件包之间的依赖关系)

        apt-get

    apt-cache

     安装包的镜象站点  /etc/apt/sources.list   

     本地软件包索引:   /var/lib/apt/lists

     sudo   apt-get   update  用来更新本地索引, 即更新 /var/lib/apt/lists 

     sudo  apt-get  install  xxxx(软件包名, 不是全称)      安装软件包

     sudo  apt-get  remove --purge  xxx                     彻底卸载软件包

     安装包的自动下载目录: /var/cache/apt/archives/

     sudo apt-get clean/autoclean    删除自动下载目录下的deb包

     sudo apt-get --reinstall install  xxxx   在不卸载的时,重新进行安装。

     sudo apt-get source xxx   就是下载xxx的源码到当前目录下

     sudo  apt-get upgrade  升级软件包

     sudo apt-cache  

     sudo apt-cache policy xxx  查看已经安装的软件包的状态

     sudo apt-cache show  xxx   列出软件包的详细信息

     sudo apt-cache  showpkg  xxx  

     sudo apt-cache depends xxx  找到xxx所依赖的软件包

     sudo apt-cache rdepends xxx  找到依赖于 xxxx的软件包

    shell:  Linux中的Shell就是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互 

            Shell是一个命令行解释器

    ys@ys-ubuntu:/$ 

    用户名称@主机名称:当前路径$(普通用户)

    whoami 列出当前登录的用户名称

    hostname 列出当前登录的主机名

    命令的使用格式: 

      Command [-Options] Argument1 Argument2 …

       命令      选项     参数

       dpkg     [-i]        sl 

     一行运行多个命令:需要使用”;“作为分隔符

                      比如: ls  ; cd  /    

    如果一条命令不能在一行写完,在行尾使用反斜杠()标明该条命令未结束:

       比如:  ls  

                /home/ys    表示列出/home/ys目录中的文件名

    自动补全:

     文件名: 一次tab键

     命令补全: 两次tab键 

     history: 查询历史执行的命令

     history  列出所允许的最大命令个数

     history   10  列出最近操作的10个命令

     echo  $HISTSIZE   查看环境变量 HISTSIZE的值

     彻底修改HISTSIZE的值: 修改 家目录中 /home/linux/.bashrc 中的  HISTSIZE的值即可

     修改完成之后需要执行  source  ./.bashrc  重启配置文件

     shell的通配符:

     ”*“ :表示匹配任意长度的字符串

     ”?“ :匹配任意一个字符

     ”[ ]": 匹配中括号中的一个字符。

         比如 [0-9] 匹配0-9的数字

      [a-z]  匹配a-z小写字母

      [A-Z]  匹配A-Z大写字母

      [0-9a-zA-Z] 匹配数字、字母

    要想匹配多个,需要使用多个[]来完成

    [^abc] :表示除了a b  c 三个字符外都可以匹配

    管道:管道可以把一系列命令连接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又将作为第三个命令的输入,以此类推。就像通过使用“|”符连成了一个管道。

    wc 命令(文件操作):列出行、字符个数、 单词个数

    wc -c  统计字符个数 

    wc -w  统计单词个数

    wc -l(字母)  统计行数

    输入输出重定向:

    “>"  :表示输出重定向 后边需要跟一个目标文件。

         比如: ls > file  将ls的输出结果写到文件file中

             file文件如果没有,就会被创建;如果已经存在就将原内容清空。  

    ”>>"  :表示输出重定向,将输出内容追加到目录文件中。

            ls  >> file   将内容追加到file文件中。

    “<"  :表示输入重定向

         wc -w  <  file  将内容作为输入源传递给命令  

    ”2> ": 表示错误输出重定向

            gcc 的编译错误 2> file 

    如果是文件执行的结果重定向,那么“>" ,将正确输出定向到文件中,错误还是会显示到终端

    如果是文件执行的结果重定向,那么“2>" 将错误输出定向到文件中, 正确的会显示到终端上。

    ”&>" :表示将所有的信息输出重定向到文件中。

    命令置换:将一个命令的输出作为另一个命令的参数

    pwd 命令:显示当前所在的绝对路径

    命令格式: 命令1  `命令2`

                将命令2的结果作为命令1的参数来使用

        ls `pwd` 列出当前路径下的文件名

    命令别名:alias

    alias cc='gcc'   注意是单引号

      相当于 为gcc 起别名叫cc    

    alias  新名字='原名字' 

    去除别名:unalias

     unalias ll(要去除的别名)

      

    shutdown 命令: 

    sudo  shutdown  -r  +10   重启(10)

    sudo  shutdown  -r  now  立刻重启

    sudo   shutdown -h  now  立刻关机

    sudo   shutdown -h   +10   关机时间

    sudo   shutdown -c  立刻取消正在执行的shutdown操作

    sudo   shutdown  -k  +时间    发送一个广播告诉其他登录的用户要进行关机操作,但是不会真正关机。

    sudo  shutdown -f/-n     其他关机方式

    修改密码:

    passwd  修改自己的密码

    sudo  passwd  user   要修改user用户的密码

    比如给超级用户设置密码: sudo passwd root 

    su : 直接切换到超级用户

    exit:  退出当前的用户

    su  用户名:  表示切换到该用户

    echo:输出命令, 自带换行符

    echo  "hello world"   就是原样输出字符串

    echo   hello     world   就是将空白缩短到最小

    echo -n  xxxxx   输出语句不带换行符

    获得系统时间:date

    修改系统时间: sudo date -s  "year -mon -day  h:m:s"

    修改时区: 需要将  /etc/localtime  文件替换为   /usr/share/zoneinfo/Asia/Shanghai    

    清楚终端上的显示:clear

    ctrl + L   ==== clear

    df: 查看磁盘空间的使用情况

    df -h  以合适的数据单位显示磁盘使用

    df -T   显示文件系统的信息

    df -Th   显示文件系统的信息,以合适的单位

    df -a  显示所有物理文件系统的使用情况,包括虚拟文件系统,如/proc、/sys等

    df -k  以kB为单位显示

    df -aTh

    du: 查看文件使用此磁盘的情况

    du  -mh  file(文件)   以合适的单位显示文件占用磁盘情况

    du  -sh  xxx(目录)   查看目录占用磁盘空间

    用户管理:

    /etc/passwd  :记录系统用户的信息

    ys      :x      :1000:1000:      ys,,,:      /home/ys      :/bin/bash  

    用户名  密码     用户id 组id     个人信息    家目录         对应的shell解释器

    /etc/shadow  :存放着用户的密码

    /etc/group :存放着用户组信息

      ys:    x        :1000:  改组的成员

      组名   组密码    组id

    添加新用户:

    sudo  adduser  用户名

    添加过程 从 /etc/skel 目录中复制文件到新用户的家目录下

    su  用户名:  表示切换到该用户

    exit  表示从当前登录的用户中退出

    删除用户: 

    sudo  deluser  要删除的用户名

    彻底删除用户(包括家目录): sudo  deluser --remove-home  用户名

    小问题:要执行删除用户的操作, 必须要保证该用户不在登录状态(exit退出)。

    在一个已经存在的用户组添加一个新用户:

    sudo  adduser  新用户名  --ingroup 组名

    添加一个用户组:

    sudo  addgroup  组名

    删除一个组:

    sudo  delgroup  组名

    vipw:  直接打开/etc/passwd 文件

    sudo  vipw  

    usermod: 修改用户属性

    sudo usermod -p  xxx   用户

    查看进程:

    ps 查看正在运行的进程

    ps -ajx 显示当前系统中的进程的详细信息

    ps -aux  显示当前系统中的进程的详细信息

    top:命令 ,动态显示系统当前的使用情况

    pstree: 显示当前系统中的进程的树状图

    kill 命令: 是用来发送信号的

    kill -l(是字母)  列出当前系统所支持的信号类型

    kill -9  pid   杀死pid的进程(发送一个杀死信号)

    修改文件的属性:chmod  chown  chgrp

    chown:修改文件的属主

           修改文件所属于的用户:sudo  chown 新用户  文件

       同时修改文件的属主和组: sudo chown 用户:组   文件

       

    chgrp: 修改文件所属于的组

           sudo chgrp  新组名  文件    

       

    chmod:就是修改文件的权限。

          文件权限?                   

       ll  命令可以列出文件的权限  读、写、执行

                                     rw-        rw-          r-- 

                                   属主权限   属组的权限   其他人的权限

       r: 表示该文件可读

       w: 表示文件可写

       -:表示什么没有

       x: 表示可以执行(有执行权限)

       

       chmod  664  file  表示将文件的权限修改为  rw- rw-  r--

                                                     110 110   100

           chmod  777  file  表示将文件的权限修改为  rwx rwx  rwx

               

    sudo usermod  -G linux  yys    关联yys用户和linux组,这样就可以在/etc/group中看到成员列表

    文件系统:就是对磁盘的访问和管理的一种机制

    linux文件系统分类:

     磁盘文件系统:针对真实的存储介质,

     FAT16、FAT32、NTFS 、ext2、 ext3 、ext4

     网络文件系统:是可以远程访问的文件系统

     虚拟文件系统:存在于内存当中, 常见的有tmpfs proc  sysfs

     系统上的硬盘:/proc/partitions文件查看

                   df -aTh

       

    linux上一切皆文件(操作方式按照文件来操作)    

    分区:

    linux的分区在目录中  / 20G 

                         /home  10G

    windows的目录在分区中

    文件与目录的操作命令:

    pwd  获得绝对路径

    ls:

    ls -a  列出当前目录下所有文件, 包括隐藏文件

    .  当前目录

    ..  代表上层目录

    ls -l  列出文件的详细信息

    ls -R  递归的显示当前目录中的所有文件

    ll  列出文件详细信息

    -         rw-------    1            ys   ys       5618          Jul 23 20:48    file

    文件类型   权限       硬链接个数   用户  组        大小(字节)  最后修改时间    文件名

    linux文件类型:有7种

     b  属于块设备

     c  字符设备

     d  目录

     -  普通文件

     l  链接文件(软连接)

     s   套接字(网络)

     p   管道

    cd: 改变工作目录的

    cd     表示回到家目录

    cd ..   进入上层目录

    cd .    当前目录

    cd ~     表示回到家目录

    cd /ect/init.d/xxxx/    按照绝对路径进入某一个目录中

    cd ../../../../    进入上上层目录

    cd  dir        进入当前目录中的dir目录

    cd  ~/C/xx    进入家目录/C/xx目录中

    cd  -        进入上一次操作的目录

    touch  1)创建一个新文件

           2)更改文件时间戳

       

    file:  命令功能用于判定一个文件的类型、格式、运行架构等

    file  xxxx(文件)

    cp: 文件或者目录复制

    文件操作:

    cp  file1   file2     将当前目录中的文件file1, 复制一份改名为file2

    cp  file1   /xx/xxx/  将当前目录中的文件file1, 复制到绝对路径中名字不变

    cp   file1   /xxx/xxx/file2   将当前目录中的文件file1, 复制到绝对路径中名字变为file2

    cp  /xxx/xx/file1  .(必须有目的路径)   将绝对路径中的文件file1 复制到当前目录, 名字不变

    cp  /xxx/xxx/file1   /yyyy/yyy/    将绝对路径中的file1复制到绝对路径中,名字不变

    cp  /xxx/xxx/file1   /yyyy/yyy/file2    将绝对路径中的file1复制到绝对路径中,名字变为file2

    目录操作:

    cp  dir1   dir2  -a   复制当前的dir1目录,改名为dir2

    -a:  拷贝所有的东西,包括软连接

    -r:   递归拷贝,软连接会丢失

    cp  dir1  /xxx/xxx  -a   将当前目录中dir1, 复制到绝对路径中名字不变

    cp dir1 /xxx/xxx/dir2  -a  将当前目录中dir1, 复制到绝对路径中名字变为dir2

    cp  /xxxx/dir1   /yyy/   -a   将绝对路径中dir1 复制到绝对路径中目录, 名字不变

    cp  /xxx/dir1  /yyyy/dir2  -a  将绝对路径中dir1 复制到绝对路径中目录, 名字变为dir2

    mv: 

         1)移动文件

     2)重命名  

    mv file1  file2  将当前目录中的file1重命名为file2

    mv  dir1  dir2   将当前目录中的dir1重命名为dir2

    mv file1 /xxx/xxx/  将当前目录中的file1  移动到绝对路径中,名字不变

    mv file1 /xxx/xxx/file2   将当前目录中的file1  移动到绝对路径中,名字变为file2

    mv  /xxx/file1  /yyy/    将绝对路径中file1复制到绝对路径中目录, 名字不变

    mv  /xxx/file1  /yyy/file2    将绝对路径中file1复制到绝对路径中目录, 名字变为file2

    mv  /xxx/file1   /xxx/file2  修改绝对路径中的文件名字

    rm: 删除命令(谨慎操作)

    rm  file   删除文件

    rm   file*  通配符删除

    -r :递归删除,操作目录

    -f: 忽略文件或者目录是否存在

    rm -rf  dir1   删除目录dir1

    rm -rf /xxx/yy/dir1   

    rm 删除目录的特点:无论目录是否为空,都可以删除。

    mkdir:  创建目录

    mkdir  xxx   在当前目录中创建一个目录xxx

    mkdir  /xxx/xxx/dir   在绝对路径中创建一个目录

    mkdir -p /xxx/yyy/zzz   嵌套创建多级目录

    rmdir 只能删除空目录

    cat  :查看文件内容

    cat  file 在终端上显示该文件的内容

    cat -n 显示文件内容时,携带行号。

    cat -vE  file   在文件每一行的结尾添加一个$符号

    cat  xxx  > file  重定向时使用

    echo "helloworld" > file 

    head :从头查看文件的前几行内容

    head  -10  file   表示要查看file文件的前10行。

    tail: 从文件结尾显示后几行内容

    tail -10  表示显示后10行

    head、tail配合使用:

    head -xx  file | tail -xxx 

    软链接:相当于快捷方式,源文件被删除时,链接文件就无法使用

    硬链接: 多个链接指向的是同一个文件,只有硬链接的个数变为0时,才会从磁盘上删除。

    ln命令:

    创建软链接: ln -s  源文件名  链接文件名

                        源目录名字  链接目录的名字

    如果链接文件的路径发生了变化,可能会导致之前的链接无法使用,除非链接是绝对路径。

    比如: ln  -s /xxx/xxx/file(源文件的绝对路径)  link

    创建硬链接 : ln    原文件名   链接文件名

    目录无法创建硬链接   

    压缩命令:

     gzip:   gzip file   就是将file文件压缩为file.gz 

             源文件会消失

     gunzip: gzip的解压命令

             gunzip xxx.gz

     gzip -l  xxx.gz  查看文件压缩情况。

     bzip2: bz2的压缩命令

            bzip2  file   

            bunzip2  file.bz2   解压命令    

    zip :压缩文件、目录

         压缩命令  zip -r  xxx.zip   dir  将目录dir压缩为xxx.zip

         解压命令  unzip  xxxx.zip     

    tar命令:

       归档:tar -cvf  1.tar  dir

             -c  创建归档文件

     -v   显示归档过程

     -f(归档名之前)   指定归档后的文件名

       归档并且压缩:  

             tar  -cjvf  1.tar.bz2   dir

      就是将dir目录归档压缩为bz2格式

     -j :指定压缩方式为bzip2 

     -z :指定压缩方式为 gzip

     -J :指定压缩方式为xz

    解压命令:

         tar  -xvf xxx.tar.xx 解压压缩包

     tar -tf  xxx.tar  查看归档文件的组成

     tar -uf  xxx.tar  file   就是将file文件添加到xxx.tar的归档包中

    less/more  分屏显示文件内容, 按q退出

    grep :用来进行字符串查找

          grep -Rn  "字符串“  查找路径

       -R :递归查找

       -n: 显示字符串所在的文件的行号。

      grep 支持shell的通配符、正则表达式等。 

    sort: 默认对文件内容进行升序排列

       sort file  -o  file  表示将排序后的内容写入到源文件    

       sort -r  file  按照降序排列

       

       如果文件内容为字符‘0-9‘,会按照ascii比较   

       sort -n  file  排序时按照数值大小进行

       

    uniq: 在终端上显示去除文件中相邻重复行后的内容

    uniq -c  file : 表示统计文件中相邻重复的行数

    diff: 比较文件的内容是否一致,会列出不一致的地方。

          如果文件内容一致,那么没有任何提示。

    which:查找实用命令  

    whereis: 查找命令或者程序 

    who: 显示当前登录的用户名

    find : 递归查找文件

       find  查找路径  -name   文件名(可以使用通配符)   /////按照文件名查找

       find  查找路径  -perm    666     /////按照文件权限查找

       find  查找路径  -group   组名    /////按照文件分组查找

    配合管道使用:  find  . | grep "查找关键字”

    cut: 进行域的分隔

    cut -d "xx"  -f xx, xxx

    -d: 指定分隔符

    -f: 指定要显示的域

    比如:cut -d ":" -f 2,3     表示要显示以“:”作为分隔符的第2和第3个域的内容。

    网络配置:相关文件 /etc/network/interfaces

                       /etc/resolv.conf

       /etc/init.d/networking     

     ipv4 ip地址类型: A B C D E

      ip地址组成: 网络id + 主机id

      子网掩码: A 255.0.0.0

                 B  255.255.0.0

     C  255.255.255.0

    ifconfig: 查看和配置网络的命令  

      通过ifconfig命令临时修改网络连接:

       ifconfig eth0  192.xxx.xxx.xx 修改eth0的ip地址

    虚拟机网络:

        1)共享主机网路

        2)独立于主机(桥接模式)

      通过配置文件修改网络:见文件   

  • 相关阅读:
    linux内核源码之基础准备篇
    GDB 自动化操作的技术-PYTHON
    GDB 调试PYTHON
    GCC onlinedocs
    深入CSS,让网页开发少点“坑”
    多款控件新版发布,新特性抢鲜知
    如何选择前端框架:ANGULAR VS EMBER VS REACT
    推荐10个很棒的AngularJS学习指南
    Top 15 不起眼却有大作用的 .NET功能集
    最全数据结构详述: List VS IEnumerable VS IQueryable VS ICollection VS IDictionary
  • 原文地址:https://www.cnblogs.com/yangziwen0709/p/5013335.html
Copyright © 2020-2023  润新知