zoukankan      html  css  js  c++  java
  • Linux经常使用的命令(必看)

    http://www.importnew.com/12425.html     http://www.importnew.com/13107.html

    http://www.importnew.com/12649.html             http://www.importnew.com/12773.html

    shell 学习必看:http://www.kuqin.com/shuoit/20150421/345801.html

    1. ls命令

    ls命令是列出目录内容(List Directory Contents)。

    执行它就是列出目录里的内容,可能是文件也可能是目录。
    root@tecmint:~# ls
    Android-Games                     Music
    Pictures                          Public
    Desktop                           Tecmint.com
    Documents                         TecMint-Sync
    Downloads                         Templates
    “ls -l”命令以详情模式(long listing fashion)列出目录的内容。相当于ll。ll 列出来的结果具体
    root@tecmint:~# ls -l
    total 40588
    drwxrwxr-x 2 ravisaive ravisaive     4096 May  8 01:06 Android Games
    drwxr-xr-x 2 ravisaive ravisaive     4096 May 15 10:50 Desktop
    drwxr-xr-x 2 ravisaive ravisaive     4096 May 16 16:45 Documents
    drwxr-xr-x 6 ravisaive ravisaive     4096 May 16 14:34 Downloads
    drwxr-xr-x 2 ravisaive ravisaive     4096 Apr 30 20:50 Music
    drwxr-xr-x 2 ravisaive ravisaive     4096 May  9 17:54 Pictures
    drwxrwxr-x 5 ravisaive ravisaive     4096 May  3 18:44 Tecmint.com
    drwxr-xr-x 2 ravisaive ravisaive     4096 Apr 30 20:50 Templates
    "ls -a"命令会列出目录里的全部内容,包含以"."开头的隐藏文件
    root@tecmint:~# ls -a
    .           .gnupg          .dbus           .goutputstream-PI5VVW       .mission-control
    .adobe                  deja-dup                .grsync                 .mozilla                    .themes
    .gstreamer-0.10         .mtpaint                .thumbnails             .gtk-bookmarks              .thunderbird
    .HotShots               .mysql_history          .htaccess       .apport-ignore.xml          .ICEauthority          
    .profile                .bash_history           .icons                  .bash_logout                    .fbmessenger
    .jedit                  .pulse                  .bashrc                 .liferea_1.8                .pulse-cookie           
    .Xauthority     .gconf                  .local                  .Xauthority.HGHVWW      .cache
    .gftp                   .macromedia             .remmina                .cinnamon                       .gimp-2.8
    .ssh                    .xsession-errors    .compiz                 .gnome                          teamviewer_linux.deb         
    .xsession-errors.old    .config                 .gnome2                 .zoncolor
    注意:在Linux中,文件以“.”开头的就是隐藏文件,而且每一个文件。目录,设备或者命令都是以文件对待。ls -l 命令输出:
    d (代表了是文件夹).
    rwxr-xr-x 是文件或者文件夹对所属用户,同一组用户和其他用户的权限。
    上面样例中第一个ravisaive 代表了文件文件属于用户ravisaive
    上面样例中的第二个ravisaive代表了文件文件属于用户组ravisaive
    4096 代表了文件大小为4096字节.
    May 8 01:06 代表了文件最后一次改动的日期和时间.
    最后面的就是文件/目录的名字
    2. lsblk命令
    "lsblk"就是列出块设备。除了RAM外,以标准的树状输出格式。整齐地显示块设备。
    root@tecmint:~# lsblk
    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda      8:0    0 232.9G  0 disk
    ├─sda1   8:1    0  46.6G  0 part /
    ├─sda2   8:2    0     1K  0 part
    ├─sda5   8:5    0   190M  0 part /boot
    ├─sda6   8:6    0   3.7G  0 part [SWAP]
    ├─sda7   8:7    0  93.1G  0 part /data
    └─sda8   8:8    0  89.2G  0 part /personal
    sr0     11:0    1  1024M  0 rom
    “lsblk -l”命令以列表格式显示块设备(而不是树状格式)。


    root@tecmint:~# lsblk -l
    NAME MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda    8:0    0 232.9G  0 disk
    sda1   8:1    0  46.6G  0 part /
    sda2   8:2    0     1K  0 part
    sda5   8:5    0   190M  0 part /boot
    sda6   8:6    0   3.7G  0 part [SWAP]
    sda7   8:7    0  93.1G  0 part /data
    sda8   8:8    0  89.2G  0 part /personal
    sr0   11:0    1  1024M  0 rom
    注意:lsblk是最实用和最简单的方式来了解新插入的USB设备的名字。特别是当你在终端上处理磁盘/块设备时。
    3. md5sum命令
    “md5sum”就是计算和检验MD5信息签名。

    md5 checksum(通常叫做哈希)使用匹配或者验证文件的文件的完整性,由于文件可能由于传输错误。磁盘错误或者无恶意的干扰等原因而发生改变。
    root@tecmint:~# md5sum teamviewer_linux.deb
    47790ed345a7b7970fc1f2ac50c97002  teamviewer_linux.deb
    注意:用户能够使用官方提供的和md5sum生成签名信息匹对以此检測文件是否改变。Md5sum没有sha1sum安全,这点我们稍后讨论。
    4. dd命令
    “dd”命令代表了转换和拷贝文件。能够用来转换和拷贝文件。大多数时间是用来复制iso文件(或不论什么其他文件)到一个usb设备(或不论什么其他地方)中去。所以能够用来制作USB启动器。


    root@tecmint:~# dd if=/home/user/Downloads/debian.iso of=/dev/sdb1 bs=512M; sync
    注意:在上面的样例中,usb设备就是sdb1(你应该使用lsblk命令验证它。否则你会重写你的磁盘或者系统),请谨慎使用磁盘的名,切忌。


    dd 命令在运行中会依据文件的大小和类型 以及 usb设备的读写速度,消耗几秒到几分钟不等。


    5. uname命令
    "uname"命令就是Unix Name的简写。显示机器名。操作系统和内核的具体信息。
    root@tecmint:~# uname -a
    Linux tecmint 3.8.0-19-generic #30-Ubuntu SMP Wed May 1 16:36:13 UTC 2013 i686 i686 i686 GNU/Linux
    注意: uname显示内核类别, uname -a显示具体信息。上面的输出具体说明了uname -a
    “Linux“: 机器的内核名
    “tecmint“: 机器的节点名
    “3.8.0-19-generic“: 内核公布版本号
    “#30-Ubuntu SMP“: 内核版本号
    “i686“: 处理器架构
    “GNU/Linux“: 操作系统名
    6. history命令
    “history”命令就是历史记录。它显示了在终端中所运行过的全部命令的历史。


    root@tecmint:~# history
     1  sudo add-apt-repository ppa:tualatrix/ppa
     2  sudo apt-get update
     3  sudo apt-get install ubuntu-tweak
     4  sudo add-apt-repository ppa:diesch/testing
     5  sudo apt-get update
     6  sudo apt-get install indicator-privacy
     7  sudo add-apt-repository ppa:atareao/atareao
     8  sudo apt-get update
     9  sudo apt-get install my-weather-indicator
     10 pwd
     11 cd && sudo cp -r unity/6 /usr/share/unity/
     12 cd /usr/share/unity/icons/
     13 cd /usr/share/unity
    注意:按住“CTRL + R”就能够搜索已经运行过的命令,它能够在你写命令时自己主动补全。


    (reverse-i-search)`if': ifconfig
    7. sudo命令
    “sudo”(super user do)命令同意授权用户运行超级用户或者其他用户的命令。

    通过在sudoers列表的安全策略来指定。


    root@tecmint:~# sudo add-apt-repository ppa:tualatrix/ppa
    注意:sudo 同意用户借用超级用户的权限,然而"su"命令实际上是同意用户以超级用户登录。所以sudo比su更安全。


    并不建议使用sudo或者su来处理日经常使用途,由于它可能导致严重的错误假设你意外的做错了事。这就是为什么在linux社区流行一句话:
    “To err is human, but to really foul up everything, you need root password.”
    “人非圣贤孰能无过,可是拥有rootpassword就真的万劫不复了。” 
    8. mkdir命令
    “mkdir”(Make directory)命令在命名路径下创建新的文件夹。然而假设文件夹已经存在了。那么它就会返回一个错误信息"不能创建文件夹。文件夹已经存在了"("cannot create folder, folder already exists")
    root@tecmint:~# mkdir tecmint
    注意:文件夹仅仅能在用户拥有写权限的文件夹下才干创建。

    mkdir:不能创建文件夹`tecmint`,由于文件已经存在了。

    (上面的输出中不要被文件迷惑了。你应该记住我开头所说的-在linux中,文件,文件夹。驱动。命令。脚本都视为文件)
    9. touch 命令
    “touch”命令代表了将文件的訪问和改动时间更新为当前时间。

    touch命令仅仅会在文件不存在的时候才会创建它。假设文件已经存在了。它会更新时间戳,可是并不会改变文件的内容。


    root@tecmint:~# touch tecmintfile
    注意:touch 能够用来在用户拥有写权限的文件夹下创建不存在的文件。


    10. chmod 命令
    “chmod”命令就是改变文件的模式位。chmod会依据要求的模式来改变每一个所给的文件,目录。脚本等等的文件模式(权限)。
    在文件(目录或者其他,为了简单起见。我们就使用文件)中存在3中类型的权限
    Read (r)=4
    Write(w)=2
    Execute(x)=1
    所以假设你想给文件仅仅读权限。就设置为'4';仅仅写权限。设置权限为'2';仅仅运行权限。设置为1; 读写权限,就是4+2 = 6, 以此类推。
    如今须要设置3种用户和用户组权限。第一个是拥有者。然后是用户所在的组。最后是其他用户。


    rwxr-x--x   abc.sh
    这里root的权限是 rwx(读写和运行权限),
    所属用户组权限是 r-x (仅仅有读和运行权限, 没有写权限),
    对于其他用户权限是 -x(仅仅有仅仅运行权限)
    为了改变它的权限,为拥有者,用户所在组和其他用户提供读。写,运行权限。
    root@tecmint:~# chmod 777 abc.sh
    三种都仅仅有读写权限
    root@tecmint:~# chmod 666 abc.sh
    拥有者用户有读写和运行权限。用户所在的组和其他用户仅仅有可运行权限
    root@tecmint:~# chmod 711 abc.sh
    注意:对于系统管理员和用户来说,这个命令是最实用的命令之中的一个了。

    在多用户环境或者server上。对于某个用户,假设设置了文件不可訪问,那么这个命令就能够解决,假设设置了错误的权限,那么也就提供了为授权的訪问。


    11. chown命令
    “chown”命令就是改变文件拥有者和所在用户组。每一个文件都属于一个用户组和一个用户。在你的文件夹下,使用"ls -l",你就会看到像这种东西。
    root@tecmint:~# ls -l
    drwxr-xr-x 3 server root 4096 May 10 11:14 Binary
    drwxr-xr-x 2 server server 4096 May 13 09:42 Desktop
    在这里,文件夹Binary属于用户"server",和用户组"root",而文件夹"Desktop"属于用户“server”和用户组"server"
    “chown”命令用来改变文件的全部权。所以只用来管理和提供文件的用户和用户组授权。
    root@tecmint:~# chown server:server Binary
    drwxr-xr-x 3 server server 4096 May 10 11:14 Binary
    drwxr-xr-x 2 server server 4096 May 13 09:42 Desktop
    注意:“chown”所给的文件改变用户和组的全部权到新的拥有者或者已经存在的用户或者用户组。
    12. apt命令
    Debian系列以“apt”命令为基础,“apt”代表了Advanced Package Tool。APT是一个为Debian系列系统(Ubuntu,Kubuntu等等)开发的高级包管理器。在Gnu/Linux系统上,它会为包自己主动地,智能地搜索,安装。升级以及解决依赖
    root@tecmint:~# apt-get install mplayer
    Reading package lists... Done
    Building dependency tree      
    Reading state information... Done
    The following package was automatically installed and is no longer required:
      java-wrappers
    Use 'apt-get autoremove' to remove it.
    The following extra packages will be installed:
      esound-common libaudiofile1 libesd0 libopenal-data libopenal1 libsvga1 libvdpau1 libxvidcore4
    Suggested packages:
      pulseaudio-esound-compat libroar-compat2 nvidia-vdpau-driver vdpau-driver mplayer-doc netselect fping
    The following NEW packages will be installed:
      esound-common libaudiofile1 libesd0 libopenal-data libopenal1 libsvga1 libvdpau1 libxvidcore4 mplayer
    0 upgraded, 9 newly installed, 0 to remove and 8 not upgraded.
    Need to get 3,567 kB of archives.
    After this operation, 7,772 kB of additional disk space will be used.
    Do you want to continue [Y/n]? y

    root@tecmint:~# apt-get update
    Hit http://ppa.launchpad.net raring Release.gpg                                          
    Hit http://ppa.launchpad.net raring Release.gpg                                          
    Hit http://ppa.launchpad.net raring Release.gpg                     
    Hit http://ppa.launchpad.net raring Release.gpg                     
    Get:1 http://security.ubuntu.com raring-security Release.gpg [933 B]
    Hit http://in.archive.ubuntu.com raring Release.gpg                                                  
    Hit http://ppa.launchpad.net raring Release.gpg                     
    Get:2 http://security.ubuntu.com raring-security Release [40.8 kB]  
    Ign http://ppa.launchpad.net raring Release.gpg                                                 
    Get:3 http://in.archive.ubuntu.com raring-updates Release.gpg [933 B]                           
    Hit http://ppa.launchpad.net raring Release.gpg                                                               
    Hit http://in.archive.ubuntu.com raring-backports Release.gpg
    注意:上面的命令会导致系统总体的改变,所以须要rootpassword(查看提示符为"#",而不是“$”).和yum命令相比,Apt更高级和智能。
    见名知义,apt-cache用来搜索包中是否包括子包mplayer, apt-get用来安装,升级全部的已安装的包到最新版。
    关于apt-get 和 apt-cache命令很多其它信息,请查看 25 APT-GET和APT-CACHE命令
    13. tar命令
    “tar”命令是磁带归档(Tape Archive),对创建一些文件的的归档和它们的解压非常实用。


    root@tecmint:~# tar -zxvf abc.tar.gz (记住'z'代表了.tar.gz)
    root@tecmint:~# tar -jxvf abc.tar.bz2 (记住'j'代表了.tar.bz2)
    root@tecmint:~# tar -cvf archieve.tar.gz(.bz2) /path/to/folder/abc
    注意: "tar.gz"代表了使用gzip归档,“bar.bz2”使用bzip压缩的,它压缩的更好可是也更慢。
    了解很多其它"tar 命令"的样例,请查看 18 Tar命名样例
    14. cal 命令
    “cal”(Calender),它用来显示当前月份或者未来或者过去不论什么年份中的月份。
    root@tecmint:~# cal
    May 2013       
    Su Mo Tu We Th Fr Sa 
              1  2  3  4 
     5  6  7  8  9 10 11 
    12 13 14 15 16 17 18 
    19 20 21 22 23 24 25 
    26 27 28 29 30 31
    显示已经过去的月份。1835年2月
    root@tecmint:~# cal 02 1835
       February 1835     
    Su Mo Tu We Th Fr Sa 
     1  2  3  4  5  6  7 
     8  9 10 11 12 13 14 
    15 16 17 18 19 20 21 
    22 23 24 25 26 27 28
    显示未来的月份,2145年7月。
    root@tecmint:~# cal 07 2145
         July 2145       
    Su Mo Tu We Th Fr Sa 
                 1  2  3 
     4  5  6  7  8  9 10 
    11 12 13 14 15 16 17 
    18 19 20 21 22 23 24 
    25 26 27 28 29 30 31
    注意: 你不须要往回调整日历50年,既不用复杂的数据计算你出生那天,也不用计算你的生日在哪天到来,[由于它的最小单位是月,而不是日]。


    15. date命令
    “date”命令使用标准的输出打印当前的日期和时间,也能够深入设置。
    root@tecmint:~# date
    Fri May 17 14:13:29 IST 2013
    root@tecmint:~# date --set='14 may 2013 13:57'
    Mon May 13 13:57:00 IST 2013
    注意:这个命令在脚本中十分实用。以及基于时间和日期的脚本更完美。在终端中改变日期和时间,让你更专业!

    (你须要root权限才干操作这个,由于它是系统总体改变)
    16. cat命令
    “cat”代表了连结(Concatenation),连接两个或者很多其它文本文件或者以标准输出形式打印文件的内容。
    root@tecmint:~# cat a.txt b.txt c.txt d.txt abcd.txt
    root@tecmint:~# cat abcd.txt
    ....
    contents of file abcd
    注意:“>>”和“>”调用了追加符号。它们用来追加到文件中,而不是显示在标准输出上。

    “>”符号会删除已存在的文件。然后创建一个新的文件。

    所以由于安全的原因。建议使用“>>”。它会写入到文件中,而不是覆盖或者删除。


    在深入探究之前,我必须让你知道通配符(你应该知道通配符,它出如今大多数电视选秀中)。

    通配符是shell的特色,和不论什么GUI文件管理器相比,它使命令行更强大有力。如你所看到那样,在一个图形文件管理器中,你想选择一大组文件,你通常不得不使用你的鼠标来选择它们。

    这可能认为非常easy,可是其实。这样的情形非常让人沮丧!
    比如,假如你有一个有非常多非常多各种类型的文件和子文件夹的文件夹,然后你决定移动全部文件名称中包括“Linux”字样的HTML文件到另外一个文件夹。怎样简单的完毕这个?假设文件夹中包括了大量的不同名的HTML文件。你的任务非常巨大,而不是简单了。


    在LInux CLI中。这个任务就非常easy,就好像仅仅移动一个HTML文件,由于有shell的通配符。才会如此简单。

    这些是特殊的字符。同意你选择匹配某种字符模式的文件名称。它帮助你来选择。即使是大量文件名称中仅仅有几个字符,并且在大多数情形中,它比使用鼠标选择文件更简单。
    这里就是经常使用通配符列表:
    Wildcard Matches
       *            零个或者很多其它字符
       ?            恰好一个字符
    [abcde]             恰好列举中的一个字符
     [a-e]          恰好在所给范围中的一个字符
    [!abcde]        不论什么字符都不在列举中
    [!a-e]          不论什么字符都不在所给的范围中
    {debian,linux}      恰好在所给选项中的一整个单词
    ! 叫做非,带'!

    '的反向字符串为真
    17. cp 命令
    “copy”就是复制。它会从一个地方复制一个文件到另外一个地方。


    root@tecmint:~# cp /home/user/Downloads abc.tar.gz      /home/user/Desktop (Return 0 when sucess)
    注意: cp,在shell脚本中是最经常使用的一个命令,并且它能够使用通配符(在前面一块中有所描写叙述)。来定制所需的文件的复制。
    18. mv 命令
    “mv”命令将一个地方的文件移动到另外一个地方去。
    root@tecmint:~# mv /home/user/Downloads abc.tar.gz     /home/user/Desktop (Return 0 when sucess)

    注意:mv 命令能够使用通配符。mv需慎重使用,由于移动系统的或者未授权的文件不但会导致安全性问题。并且可能系统崩溃。

    1.将/usr/udt中的全部文件移到当前文件夹(用”.”表示)中:
    $ mv /usr/udt/* .
    2.将文件test.txt重命名为wbk.txt:
    $ mv test.txt wbk.txt
    3.把当前文件夹的一个子文件夹里的文件移动到还有一个子文件夹里
    mv  文件名称/*  还有一个文件夹
    4.移动当前文件夹下的全部文件到上一级文件夹
    mv * ../

    19. pwd 命令
    “pwd”(print working directory),在终端中显示当前工作文件夹的全路径。
    root@tecmint:~# pwd
    /home/user/Desktop
    注意: 这个命令并不会在脚本中常常使用,可是对于新手,当从连接到nux非常久后在终端中迷失了路径,这绝对是救命稻草。
    20. cd 命令
    最后,常常使用的“cd”命令代表了改变文件夹。它在终端中改变工作文件夹来运行,复制,移动,读,写等等操作。
    root@tecmint:~# cd /home/user/Desktop
    server@localhost:~$ pwd
    /home/user/Desktop

    注意: 在终端中切换文件夹时,cd就大显身手了。“cd ~”会改变工作文件夹为用户的家文件夹。并且当用户发现自己在终端中迷失了路径时。很实用。“cd ..”从当前工作文件夹切换到(当前工作文件夹的)父文件夹。

    21.top命令

    Linux下经常使用的性能分析工具。可以实时显示系统中各个进程的资源占用状况

    1)每两秒钟更新一次 top ,观察总体信息:[root@linux ~] top -d 2
    2)将top的信息进行2次,然后将结果输出到 /tmp/top.txt:[root@linux ~]# top -b -n 2 > /tmp/top.txt

    3)top截取前5个进程: top -m 5

    22.ps(process status) 功能说明:报告程序状况

    补充说明:ps是用来报告程序运行状况的指令。您能够搭配kill指令随时中断。删除不必要的程序。
    ps -a

    23.vi的使用:

    http://www.cnblogs.com/88999660/articles/1581524.html

    24.make

    http://www.cnblogs.com/ifzy/p/3854560.html

    25. df 检查文件系统的磁盘空间占用情况。该命令来获取硬盘被占用了多少空间,眼下还剩下多少空间等信息

    26.rm 使用权限:全部使用者,删除档案及文件夹。 

    语  法:rm [-dfirv][--help][--version][文件或文件夹...]
    补充说明:运行rm指令可删除文件或文件夹,如欲删除文件夹必须加上參数"-r",否则预设仅会删除文件。
    參  数:
     -d或--directory  直接把欲删除的文件夹的硬连接数据删成0,删除该文件夹。


     -f或--force  强制删除文件或文件夹。


     -i或--interactive  删除既有文件或文件夹之前先询问用户。
     -r或-R或--recursive  递归处理,将指定文件夹下的全部文件及子文件夹一并处理。


     -v或--verbose  显示指令运行过程。
     --help  在线帮助。


     --version  显示版本号信息。

     

    可參考:

    http://linux.sheup.com/linuxs/list_4_1.htm

    http://linux.chinaitlab.com/special/linuxcom/

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    nodejs理解
    jquery练习
    SASS
    css 继承和层叠
    Session cookie
    vue框架里边的ref='xxx' 的用法 在父组件里边操作子组件的变量 有多组单选按钮(遍历生成)每次只能选中一组
    获取不到页面元素的宽度??????
    刷题很重要
    复盘很重要
    jquery里边的ajax请求,如果是发get请求,就不需要写contentType:'application/json;charset=uft-8'。只有post请求才需要写这个属性。
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4840981.html
Copyright © 2011-2022 走看看