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

       文章简介:本篇文章主要讲解Linux系统环境下一些基础的操作命令,附带相应的截图,方便理解和操作对比,如有错误,欢迎指正。

    一、远程工具的使用

      对于大多数人来说,日常使用操作的都是windows操作系统,在windows环境下操作Linux系统,需要借助远程工具。  

      本人使用过两种,secureCRT和Xshell两种工具,链接:https://pan.baidu.com/s/15aBXzVoxxXmYN_xfrvqLUw 密码:13wb

            

            

            

             

    二、Linux相关命令

      Linux操作系统有许多命令与在windows操作系统环境下不一样,以下列举一些常见的命令,相关详细信息可查阅资料:链接:https://pan.baidu.com/s/1ArVHfi2ZIEO39KmufyCDUg 密码:5u6r

      2.1、mkdir 创建文件夹

        

      2.2、touch 创建文件

        

      2.3、 rm指令:删除文件或目录

        当使用rm指令删除"test1"目录时,系统将报错。在命令行中输入下面的命令:

          root@localhost yunjuanyunshuTest]# rm test1     #不带选项,删除目录 

        输出信息如下:

          rm: cannot remove `test1': Is a directory

          

        说明:上面的示例表明rm指令不能直接删除目录。

        2.3.1、rm -r(或者rm -R)::表示递归删除,有提示信息

        

        

        可以看出是从下往上删除。

          rm -r * 删除目录下的所有文件和文件夹

        

        2.3.2、rm -rf  强制删除而不提示警告

         

        2.3.3、 rm -f 删除文件(不能删除文件夹),删除不提示警告

        

         2.3.4、删除文件后的文件恢复

        待更新

      2.4、mv 移动或重命名

        mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。

        mv 命令重命名:

         

        mv命令移动

        

       2.5、ls和ll查看文件列表

        

        “ll”是“ls -l"的别名,所以"ll"和“ls -l”的功能是相同的。

        备注:可以使用alias XX 查看XX的别名代表的含义

        

        ls : 显示当前目录下文件(包括文件夹和文件)

        ll  : 显示当前目录下文件的详细信息(包括文件夹和文件)

           

        第一个栏位:表示文件的属性。Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。但是这里有十个格子可以填写(具体程序实现时,实际上是十个bit位)。第一个小格是特殊表示格,表示目录或连结文件等等,d表示目录,例如drwx------;l表示连结文件,如lrwxrwxrwx;如果是以一横“-”表示,则表示这是文件。其余剩下的格子就以每3格为一个单位。因为Linux是多用户多任务系统,所以一个文件可能同时被许多人使用,所以我们一定要设好每个文件的权限,其文件的权限位置排列顺序是(以-rwxr-xr-x为例):  
        rwx(Owner)r-x(Group)r-x(Other)  
        这个例子表示的权限是:使用者自己可读,可写,可执行;同一组的用户可读,不可写,可执行;其它用户可读,不可写,可执行。另外,有一些程序属性的执行部分不是X,而是S,这表示执行这个程序的使用者,临时可以有和拥有者一样权力的身份来执行该程序。一般出现在系统管理之类的指令或程序,让使用者执行时,拥有root身份。 
        第二个栏位:表示文件个数。如果是文件的话,那这个数目自然是1了,如果是目录的话,那它的数目就是该目录中的文件个数了。    
        第三个栏位:表示该文件或目录的拥有者。若使用者目前处于自己的Home,那这一栏大概都是它的账号名称。  
        第四个栏位:表示所属的组(group)。每一个使用者都可以拥有一个以上的组,不过大部分的使用者应该都只属于一个组,只有当系统管理员希望给予某使用者特殊权限时,才可能会给他另一个组。  
        第五个栏位:表示文件大小,单位是byte。可以用其它参数使文件显示的单位不同,如使用ll –k就是用kb来显示一个文件的大小单位,不过一般我们还是以byte为主。

        

        ll命令查询出来的第一行total,表示该目录中所有文件所占的空间大小,就是第五个栏位的总和,total 单位是kb

        第六个栏位:表示创建日期。以“月,日,时间”的格式表示,如Aug 15 5:46表示8月15日早上5:46分。  
        第七个栏位:表示文件名。我们可以用ls –a显示隐藏的文件名。

      2.6、pwd打印当前目录

        

      2.7 、zip文件压缩与unzip文件解压

      2.7.1、 压缩服务器上当前目录的内容为xxx.zip文件 zip -r xxx.zip ./*

      

      将test2压缩成test2.zip

      2.7.2、解压zip文件到当前目录 unzip filename.zip

      

      解压testZip.zip压缩文件内的文件名为test2

      压缩并指定目录 举例:zip -r /home/kms/kms.zip /home/kms/server/kms

      解压并指定目录 举例:unzip /home/kms/kms.zip -d /home/kms/server/kms

      2.7.3、tar及其他的压缩解压

      压缩:
        tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
        tar –czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
        tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
        tar –cZf jpg.tar.Z *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
        rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
        zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux

      解压
        tar –xvf file.tar //解压 tar包
        tar -xzvf file.tar.gz //解压tar.gz
        tar -xjvf file.tar.bz2   //解压 tar.bz2
        tar –xZvf file.tar.Z   //解压tar.Z
        unrar e file.rar //解压rar
        unzip file.zip //解压zip

      总结
        1、*.tar 用 tar –xvf 解压
        2、*.gz 用 gzip -d或者gunzip 解压
        3、*.tar.gz和*.tgz 用 tar –xzf 解压
        4、*.bz2 用 bzip2 -d或者用bunzip2 解压
        5、*.tar.bz2用tar –xjf 解压
        6、*.Z 用 uncompress 解压
        7、*.tar.Z 用tar –xZf 解压
        8、*.rar 用 unrar e解压
        9、*.zip 用 unzip 解压

     2.8、tail -f 查看动态日志

      

      2.9、chmod 777 文件授权

      

      进入到对应文件夹下授权,chmod 777 *.txt 对txt文件授权

      2.10、echo 在显示器上显示一段文字,一般起到一个提示的作用

      

      2.11、cat 读和写

      写:往文件中写入内容,cat > file(备注:cat后面有个空格),这个可以向文件“file”写入内容,最后按 Ctrl + D 结束输入,会将你输入的数据保存到文件。

        读:cat 接普通文件名,会把文件内容打印到屏幕;

      

      对于已经存在的文件,cat直接写入内容,对于不存在的文件,会先创建文件,再写入内容

      2.12、more分页显示大文本文件

      

      

      enter键会一直往下逐行显示,空格键会往下翻页显示

      

      2.13、grep搜索过滤

       grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 

      实例1:查找指定进程

      命令:

      ps -ef|grep svn

      

      实例2:查找指定进程个数

      命令:ps -ef|grep svn -c 或ps -ef|grep -c svn

      

      windows环境下

      查找某端口的进程,获取进程号

      

      根据进程号获取进程名称

      tasklist | findstr 2524

      根据进程号从任务管理器中查找该程序,手动杀死即可。

      但是我发现,在任务管理器中可能找不到该程序。只好从命令行杀死该程序了,命令如下:

      taskkill -PID <进程号> -F //强制关闭某个进程
      

      2.14、/proc/cpuinfo 文件分析(查看CPU信息)

      总核数 = 物理CPU个数 X 每颗物理CPU的核数 

      总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

      查看物理CPU个数:cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

      查看每个物理CPU中core的个数(即核数):cat /proc/cpuinfo| grep "cpu cores"| uniq

      查看逻辑CPU的个数:cat /proc/cpuinfo| grep "processor"| wc -l

      查看CPU核数:

      

      查看CPU个数:

      

      2.15、fdisk命令操作磁盘

      fdisk -l查看磁盘空间

      

      2.16、linux下MD5加密

      Java MD5与linux echo Md5不一致:

       linux md5实现是: echo -n 'XXX' | md5sum   如果不加-n 则表示在原字符串的的最后加了一个 即换行,导致其值和java生成的md5值不一样。

      java的MD5加密:

      

      linux下MD5加密:

      

      对比linux下MD5加密(去掉-n)

      

      2.17、lsof -i:port 查看端口对应的进程

      

      2.18、rz与sz实现文件上传下载

      rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具。优点就是不用再开一个sftp工具登录上去上传下载文件。

      sz:将选定的文件发送(send)到本地机器
      rz:运行该命令会弹出一个文件选择窗口,从本地选择文件到Linux服务器

      

      

      2.19、cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录

      

      

       2.20、passwd修改ssh密码 

            

      2.21、查看文件大小du –sh      

        du -ach *    #这个能看到当前目录下的所有文件占用磁盘大小和总大小
        du -sh       #查看当前目录总大小
        du -sh *     #查看所有子目录大小

            

      2.22、文件查询locate和find

      22.1、find命令:实时查找,遍历所有文件进行条件匹配

      功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大

      语法:find 起始目录 寻找条件 操作 
      说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。 
      该命令提供的寻找条件可以是一个用逻辑运算符not、and、or组成的复合条件。逻辑运算符and、or、not的含义为: 
      (1)and:逻辑与,在命令中用“-a”表示,是系统缺省的选项,表示只有当所给的条件都满足时,寻找条件才算满足。例如: 
        $ find –name ’tmp’ –xtype c -user ’inin’ 
        该命令寻找三个给定条件都满足的所有文件。 
      (2)or:逻辑或,在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足时,寻找条件就算满足。例如: 
        $ find –name ’tmp’ –o –name ’mina*’ 
        该命令查询文件名为’tmp’或是匹配’mina*’的所有文件。 
      (3)not:逻辑非,在命令中用“”表示。该运算符表示查找不满足所给条件的文件。例如: 
        $ find ! –name ’tmp’ 
        该命令查询文件名不是’tmp’的所有文件。 
      需要说明的是:当使用很多的逻辑选项时,可以用括号把这些选项括起来。为了避免Shell本身对括号引起误解,在话号前需要加转义字符“”来去除括号的意义。 

      例:$ find (–name ’tmp’ –xtype c -user ’inin’ ) 
      寻找条件有以下选项: 
      首先,下列各个选项中的n值可以有三种输入方式,假设n为20,则: 
      +20 表示20以后(21,22,23等) 
      -20 表示20以前(19,18,17等) 
      20 表示正好是20   

      22.1.1、 以名称和文件属性查找。   

      - name ’字串’ 查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。 
      - lname ’字串’ 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符*、?、[ ]。 
      -gid n 查找属于ID号为n的用户组的所有文件。 
      -uid n 查找属于ID号为n的用户的所有文件。 
      -group ’字串’ 查找属于用户组名为所给字串的所有的文件。 
      -user ’字串’ 查找属于用户名为所给字串的所有的文件。 
      -empty 查找大小为0的目录或文件。 
      -path ’字串’ 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。 
      -perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711,644。 
      -size n[bckw] 查找指定文件大小的文件,n后面的字符表示单位,缺省为b,代表512字节的块。 
      -type x 查找类型为x的文件,x为下列字符之一: 
      b 块设备文件 
      c 字符设备文件 
      d 目录文件 
      p 命名管道(FIFO) 
      f 普通文件 
      l 符号链接文件(symbolic links) 
      s socket文件 
      -xtype x 与-type基本相同,但只查找符号链接文件。 
      22.1.2、 以时间为条件查找   

      - amin n 查找n分钟以前被访问过的所有文件。 
      - atime n 查找n天以前被访问过的所有文件。 
      - cmin n 查找n分钟以前文件状态被修改过的所有文件。 
      - ctime n 查找n天以前文件状态被修改过的所有文件。 
      - mmin n 查找n分钟以前文件内容被修改过的所有文件。 
      - mtime n 查找n天以前文件内容被修改过的所有文件。

       linux find命令查找文件和文件夹:

      查找目录:find /(查找范围) -name '查找关键字' -type d

      查找文件:find /(查找范围) -name 查找关键字 -print

           

      22.2、locate命令:非实时查找,根据索引查找

      locate命令用于查找文件,它比find命令的搜索速度快,因为它在搜索时并没有去遍历文件系统查找,而是在一个索引数据库中进行查找。它需要一个数据库,这个数据库由每天的例行工作(crontab)程序来建立。当我们建立好这个数据库后,就可以方便地来搜寻所需文件了。 这个数据库文件在/var/lib/mlocate/mlocatedb(版本不同,会有所不同。有的版本位置是/var/lib/slocate/slocate.db,还有的是/var/cache/locate/locatedb)。此数据库中存储了系统的全部文件名和目录,locate命令就是在这个数据库内查找,所以速度非常快。但locate的查找并不是实时的,而是以数据库的更新为准。所以在查找前,可先运行”sudo updatadb”命令来更新数据库为最新。

      整个locate工作其实是由四部分组成的:

      /usr/bin/updatedb
      /usr/bin/locate(mlocate)
      /etc/updatedb.conf
      /var/lib/mlocate/mlocate.db


      updatedb主要用来更新数据库,这个工作可以通过crontab自动完成的; 
      mlocate/locate是完成查询功能的程序; 
      updatedb.conf用来配置数据库中要放入哪些目录和文件,排除哪些文件等; 
      mlocate.db则是存放文件信息的文件;

           

       2.23、free 查看内存信息 

      free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。( 默认以 KB 为单位显示信息)

           

          free 同样提供给我们 b (B), -k (KB), -m (MB), -g (GB) and –tera (TB)这些单位

         

         free 同样提供了-h选项,这意味着适于人类可读(译注:系统上可能并不存在-h选项,已被-m取代)。那么这与其它的选项有什么不同呢,如-m(MB)选项? 可见的最大不同是-h选项会在数字后面加上适于人类可读的单位。让我们看一个例子。

         

        有时我们需要持续的观察内存的状况,此时可以使用 -s 选项并指定间隔的秒数:

     $ free -h -s 3

           

       上面的命令每隔 3 秒输出一次内存的使用情况,直到你按下 ctrl + c。 

       由于 free 命令本身比较简单,所以本文的重点会放在如何通过 free 命令了解系统当前的内存使用状况。

    输出简介

    下面先解释一下输出的内容:
    Mem 行(第二行)是内存的使用情况。
    Swap 行(第三行)是交换空间的使用情况。
    total 列显示系统总的可用物理内存和交换空间大小。
    used 列显示已经被使用的物理内存和交换空间。
    free 列显示还有多少物理内存和交换空间可用使用。
    shared 列显示被共享使用的物理内存大小。
    buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。
    available 列显示还可以被应用程序使用的物理内存大小。

    我想只有在理解了一些基本概念之后,上面的输出才能帮助我们了解系统的内存状况。

    三、linux系统环境下SVN的权限配置

      

      conf有三个文件:svnserve.conf、passwd、authz:

      authz查看svn配置的权限

      

      

      可以在对应的角色中添加响应的账号

      password 管理账号密码:

      

      

     

  • 相关阅读:
    Codevs 2296 仪仗队 2008年省队选拔赛山东
    Codevs 1535 封锁阳光大学
    Codevs 1069 关押罪犯 2010年NOIP全国联赛提高组
    Codevs 1218 疫情控制 2012年NOIP全国联赛提高组
    Codevs 1684 垃圾陷阱
    洛谷 P1108 低价购买
    Vijos P1325桐桐的糖果计划
    Codevs 3289 花匠 2013年NOIP全国联赛提高组
    Codevs 2611 观光旅游(floyed最小环)
    C语言基础之彩色版C语言(内含linux)
  • 原文地址:https://www.cnblogs.com/bianchengxia/p/7111850.html
Copyright © 2011-2022 走看看