20 Linux高级和专家命令
命令:查找
在给定目录中搜索文件,从父目录开始分层次地移动到子目录。root@youcl:~# find -name *.sh ./Desktop/load.sh ./Desktop/test.sh ./Desktop/shutdown.sh ./Binary/firefox/run-mozilla.sh ./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh ./Downloads/kdewebdev-3.5.8/admin/doxygen.sh ./Downloads/kdewebdev-3.5.8/admin/cvs.sh ./Downloads/kdewebdev-3.5.8/admin/ltmain.sh ./Downloads/wheezy-nv-install.sh注意:`-name'选项使得搜索区分大小写。 你可以使用 `-iname'选项找到的东西不区分大小写。 (*为通配符并搜索所有具有文件扩展名 “.SH”您可以使用文件名或文件名的一部分,自定义输出)。
root@youcl:~# find -iname *.SH ( find -iname *.Sh / find -iname *.sH) ./Desktop/load.sh ./Desktop/test.sh ./Desktop/shutdown.sh ./Binary/firefox/run-mozilla.sh ./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh ./Downloads/kdewebdev-3.5.8/admin/doxygen.sh ./Downloads/kdewebdev-3.5.8/admin/cvs.sh ./Downloads/kdewebdev-3.5.8/admin/ltmain.sh ./Downloads/wheezy-nv-install.sh
root@youcl:~# find -name *.tar.gz /var/www/modules/update/tests/aaa_update_test.tar.gz ./var/cache/flashplugin-nonfree/install_flash_player_11_linux.i386.tar.gz ./home/server/Downloads/drupal-7.22.tar.gz ./home/server/Downloads/smtp-7.x-1.0.tar.gz ./home/server/Downloads/noreqnewpass-7.x-1.2.tar.gz ./usr/share/gettext/archive.git.tar.gz ./usr/share/doc/apg/php.tar.gz ./usr/share/doc/festival/examples/speech_pm_1.0.tar.gz ./usr/share/doc/argyll/examples/spyder2.tar.gz ./usr/share/usb_modeswitch/configPack.tar.gz注 :对于具有根目录的扩展名“ 的tar.gz'和所有子目录包括安装设备的所有文件中的上述命令搜索。 在阅读Linux的“ 查找 ”命令的更多例子 35查找Linux命令的例子
命令:grep
在 'grep'可以命令搜索包含匹配给定的字符串或字线指定的文件。 搜索 “/ etc / passwd文件 '的 'youcl'用户。root@youcl:~# grep youcl /etc/passwd youcl:x:1000:1000:youcl,,,:/home/youcl:/bin/bash忽略单词的情况下,用 'i'可选项的所有其他组合。
root@youcl:~# grep -i youcl /etc/passwd youcl:x:1000:1000:youcl,,,:/home/youcl:/bin/bash递归搜索 (-r) 即读每个目录为一个字符串 “127.0.0.1”下的所有文件。
root@youcl:~# grep -r "127.0.0.1" /etc/ /etc/vlc/lua/http/.hosts:127.0.0.1 /etc/speech-dispatcher/modules/ivona.conf:#IvonaServerHost "127.0.0.1" /etc/mysql/my.cnf:bind-address = 127.0.0.1 /etc/apache2/mods-available/status.conf: Allow from 127.0.0.1 ::1 /etc/apache2/mods-available/ldap.conf: Allow from 127.0.0.1 ::1 /etc/apache2/mods-available/info.conf: Allow from 127.0.0.1 ::1 /etc/apache2/mods-available/proxy_balancer.conf:# Allow from 127.0.0.1 ::1 /etc/security/access.conf:#+ : root : 127.0.0.1 /etc/dhcp/dhclient.conf:#prepend domain-name-servers 127.0.0.1; /etc/dhcp/dhclient.conf:# option domain-name-servers 127.0.0.1; /etc/init/network-interface.conf: ifconfig lo 127.0.0.1 up || true /etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1). /etc/java-6-openjdk/net.properties:# http.nonProxyHosts=localhost|127.0.0.1 /etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1). /etc/java-6-openjdk/net.properties:# ftp.nonProxyHosts=localhost|127.0.0.1 /etc/hosts:127.0.0.1 localhost注意 :您可以使用这些下列选项中使用 grep一起。
- -w字(egrep的-w' 字1 | 字词2'/路径/要/文件)。
- -C对于数(即总次数匹配的模式)(grep的-c' 字 '/路径/要/文件)。
- -颜色的彩色输出(grep的-color服务器的/ etc / passwd文件)。
命令:人
在' 人 '是系统手册寻呼机。 Man使用命令及其用法为所有可能的选项提供在线文档。几乎所有的命令都带有相应的手册页。例如,root@youcl:~# man man MAN(1) Manual pager utils MAN(1) NAME man - an interface to the on-line reference manuals SYNOPSIS man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-m system[,...]] [-M path] [-S list] [-e extension] [-i|-I] [--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages] [-P pager] [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justification] [-p string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section] page ...] ... man -k [apropos options] regexp ... man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ... man -f [whatis options] page ... man -l [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-P pager] [-r prompt] [-7] [-E encoding] [-p string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] file ... man -w|-W [-C file] [-d] [-D] page ... man -c [-C file] [-d] [-D] page ... man [-hV]手册页手册页本身,类似“ 人猫 ”(手动页 cat命令 )和“ 人LS'(用于手册页 命令ls )。 注 :手册页供参考的命令和学习。
命令:ps
PS( 处理 )给正在运行的进程有一个名为 PID的唯一 ID的状态。root@youcl:~# ps PID TTY TIME CMD 4170 pts/1 00:00:00 bash 9628 pts/1 00:00:00 ps要列出进程 ID,PID沿所有进程的状态,使用选项 '-A“。
root@youcl:~# ps -A PID TTY TIME CMD 1 ? 00:00:01 init 2 ? 00:00:00 kthreadd 3 ? 00:00:01 ksoftirqd/0 5 ? 00:00:00 kworker/0:0H 7 ? 00:00:00 kworker/u:0H 8 ? 00:00:00 migration/0 9 ? 00:00:00 rcu_bh ....注意 :当你想知道哪些进程正在运行,或可能需要 PID有时这个命令非常有用,被杀害的过程。 您可以使用它与 'grep的 “命令来查找定制输出。例如,
root@youcl:~# ps -A | grep -i ssh 1500 ? 00:09:58 sshd 4317 ? 00:00:00 sshd在这里 ,'PS'的流水线与 'grep的 “命令,找到自己的需要量身定制的相关输出。
命令:kill
确定,您可能已经从命令的名称中了解了此命令的作用。此命令用于kill现在不相关或不响应的进程。这是非常有用的命令,而是非常非常有用的命令。您可能会熟悉频繁的Windows重新启动,因为大多数时间的运行过程不能被杀死,如果杀死它需要Windows重新启动,以便更改可以生效,但在Linux的世界,没有这样的东西。在这里你可以杀死一个进程,启动它,而不需要重新启动整个系统。 你需要一个进程的pid(ps)来杀死它。 让我们假设你想杀死计划“ 的Apache2'可能不响应。 运行 “PS -A'使用 grep命令一起。root@youcl:~# ps -A | grep -i apache2 1285 ? 00:00:00 apache2查找进程的 Apache2的 “时,请注意其 PID和 杀死它。 例如,在我的情况“ 的Apache2'pid是 '1285'。
root@youcl:~# kill 1285 (to kill the process apache2)注意 :每次你的时间重新运行一个进程或启动系统,为每个过程中产生新的 PID,你可以知道当前正在运行的进程,并使用命令 “PS”它的 PID。 另一种杀死同一进程的方法是。
root@youcl:~# pkill apache2注 :杀死要求 作业id / 进程ID发送信号,其中在 pkill的,你有使用模式的选项,指定流程所有者等
命令:whereis
在 'whereis“命令用于定位 二进制 , 源和命令的 手册页 。 例如,要找到 二进制 , 源和命令 “ls'的 手册页和” 杀死 “。root@youcl:~# whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz
root@youcl:~# whereis kill kill: /bin/kill /usr/share/man/man2/kill.2.gz /usr/share/man/man1/kill.1.gz注 :这是非常有用知道在哪里的二进制文件安装手动编辑的时候。
27.命令:服务
在“ 服务 ”命令控制 启动 , 停止或“ 服务 ”的 重新启动 。 此命令使人们有可能 启动 , 重新启动或不重新启动系统 停止服务,因为要考虑到效果的变化。在Ubuntu上启动apache2服务器
root@youcl:~# service apache2 start * Starting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName httpd (pid 1285) already running [ OK ]
在Ubuntu上重新启动apache2服务器
root@youcl:~# service apache2 restart * Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName ... waiting .apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [ OK ]
在Ubuntu上停止apache2服务器
root@youcl:~# service apache2 stop * Stopping web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName ... waiting [ OK ]注 :所有流程脚本在于 '/etc/init.d中 “,并列入特定的系统,也就是说,尽管运行” 服务的Apache2启动 “上可能需要的路径,你会被要求运行 在”/ etc / init.d中/ Apache2的开始 “。
命令:别名
别名是一个内置的shell命令,可以让你很长的命令或经常使用的命令指定名称。 我使用“ 的ls -l”命令频繁,其中包括 5个字符,包括空格。 因此,我创建了这个以 'L'的别名。root@youcl:~# alias l='ls -l'检查它是否工作。
root@youcl:~# l total 36 drwxr-xr-x 3 youcl youcl 4096 May 10 11:14 Binary drwxr-xr-x 3 youcl youcl 4096 May 21 11:21 Desktop drwxr-xr-x 2 youcl youcl 4096 May 21 15:23 Documents drwxr-xr-x 8 youcl youcl 4096 May 20 14:56 Downloads drwxr-xr-x 2 youcl youcl 4096 May 7 16:58 Music drwxr-xr-x 2 youcl youcl 4096 May 20 16:17 Pictures drwxr-xr-x 2 youcl youcl 4096 May 7 16:58 Public drwxr-xr-x 2 youcl youcl 4096 May 7 16:58 Templates drwxr-xr-x 2 youcl youcl 4096 May 7 16:58 Videos要删除别名 “L”,使用下面的 'unalias“命令。
root@youcl:~# unalias l检查,如果 “L”还是别名与否。
root@youcl:~# l bash: l: command not found从这个命令有点有趣。将某些重要命令的别名重命名为其他重要命令。
alias cd='ls -l' (set alias of ls -l to cd) alias su='pwd' (set alias of pwd to su) .... (You can create your own) ....现在,当你的朋友类型 “CD”,只是觉得多么可笑,当他得到目录列表,而不是目录变化这将是。 而当他试图成为' 苏 '他得到了一切工作目录的位置。 您可以在以后使用命令 “unalias”删除别名如上所述。
命令:df
报告文件系统的磁盘用法。对用户以及系统管理员有用,以跟踪其磁盘用法。 “DF”通过检查目录条目,当一个文件被关闭它一般只更新工作。root@youcl:~# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 47929224 7811908 37675948 18% / none 4 0 4 0% /sys/fs/cgroup udev 1005916 4 1005912 1% /dev tmpfs 202824 816 202008 1% /run none 5120 0 5120 0% /run/lock none 1014120 628 1013492 1% /run/shm none 102400 44 102356 1% /run/user /dev/sda5 184307 79852 94727 46% /boot /dev/sda7 95989516 61104 91045676 1% /data /dev/sda8 91953192 57032 87218528 1% /personal对于 “DF”命令的更多示例,请阅读文章 在Linux中12 df命令的例子 。
30.命令:du
估计文件空间使用情况。以分层方式(即以递归方式)输出磁盘使用情况的摘要。root@youcl:~# du 8 ./Daily Pics/wp-polls/images/default_gradient 8 ./Daily Pics/wp-polls/images/default 32 ./Daily Pics/wp-polls/images 8 ./Daily Pics/wp-polls/tinymce/plugins/polls/langs 8 ./Daily Pics/wp-polls/tinymce/plugins/polls/img 28 ./Daily Pics/wp-polls/tinymce/plugins/polls 32 ./Daily Pics/wp-polls/tinymce/plugins 36 ./Daily Pics/wp-polls/tinymce 580 ./Daily Pics/wp-polls 1456 ./Daily Pics 36 ./Plugins/wordpress-author-box 16180 ./Plugins 12 ./May Articles 2013/Xtreme Download Manager 4632 ./May Articles 2013/XCache注 :“DF”只报告文件系统的使用统计数据,而 “du”公司,在另一方面,测量目录内容。 欲了解更多' 杜 '命令的例子和用法,阅读 10杜(磁盘使用)命令 。
命令:rm
命令 “RM”表示删除 。Rm是用来删除文件(S)和目录。删除目录
root@youcl:~# rm PassportApplicationForm_Main_English_V1.0 rm: cannot remove `PassportApplicationForm_Main_English_V1.0': Is a directory该目录不能简单地用 “RM”命令删除,你必须以 “RM”一起使用 “-rf”开关。
root@youcl:~# rm -rf PassportApplicationForm_Main_English_V1.0警告 :“ 室射频 ”命令是一个破坏性的命令,如果你不小心让它到错误的目录。 一旦你 RM -rf“目录中的所有文件和目录本身是永远失去了一下子。请谨慎使用。
命令:echo
作为 呼应的名称相呼应建议在标准输出的文本。它与shell无关,shell也不读取echo命令的输出。但是在交互式脚本中,echo通过终端将消息传递给用户。它是脚本,交互式脚本中常用的命令之一。root@youcl:~# echo "youcl.com is a very good website" youcl.com is a very good website
创建一个小的交互式脚本
1.创建一个文件,名为 “interactive_shell.sh”在桌面上。 (还记得 “.SH”扩展名是必须)。 2.复制和粘贴下面的脚本,完全一样,如下。#!/bin/bash echo "Please enter your name:" read name echo "Welcome to Linux $name"接下来,设置执行权限并运行脚本。
root@youcl:~# chmod 777 interactive_shell.sh
root@youcl:~# ./interactive_shell.sh Please enter your name: Ravi Saive Welcome to Linux Ravi Saive注 :“#!/斌/ bash的 '告诉shell认为这是一个脚本,它始终是一个好主意,包括它在脚本的顶部。 “ 读 ”读给定的输入。
命令:passwd
这是一个重要的命令,可用于更改终端中的自己的密码。显然,你需要知道你当前的passowrd为安全的原因。root@youcl:~# passwd Changing password for youcl. (current) UNIX password: ******** Enter new UNIX password: ******** Retype new UNIX password: ******** Password unchanged [Here was passowrd remians unchanged, i.e., new password=old password] Enter new UNIX password: ##### Retype new UNIX password:#####
命令:lpr
此命令将命令行上命名的文件打印到命名打印机。root@youcl:~# lpr -P deskjet-4620-series 1-final.pdf注 :“LPQ”命令,可以查看打印机的状态(无论是涨不跌),以及作业(文件),等待打印。
命令:cmp
比较任何类型的两个文件,并将结果写入标准输出。 默认情况下 ,“CMP”,则返回0,如果这些文件是相同的;如果它们不同,则报告发生第一差异的字节和行号。 为了提供这个命令的例子,让我们考虑两个文件:file1.txt
root@youcl:~# cat file1.txt Hi My name is youcl
file2.txt
root@youcl:~# cat file2.txt Hi My name is youcl [dot] com现在,让我们比较两个文件,看看命令的输出。
root@youcl:~# cmp file1.txt file2.txt file1.txt file2.txt differ: byte 15, line 1
命令:wget
wget的是用于从Web文件的非交互(即,可以在后台工作)下载一个免费的实用工具。 它支持 HTTP,HTTPS,FTP协议和 HTTP代理。使用wget下载ffmpeg
root@youcl:~# wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2 --2013-05-22 18:54:52-- http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2 Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.34.181.59 Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.34.181.59|:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://kaz.dl.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2 [following] --2013-05-22 18:54:54-- http://kaz.dl.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2 Resolving kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)... 92.46.53.163 Connecting to kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)|92.46.53.163|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 275557 (269K) [application/octet-stream] Saving to: ‘ffmpeg-php-0.6.0.tbz2’ 100%[===========================================================================>] 2,75,557 67.8KB/s in 4.0s 2013-05-22 18:55:00 (67.8 KB/s) - ‘ffmpeg-php-0.6.0.tbz2’ saved [275557/275557]
指令:mount
山是用于挂载文件系统没有安装本身就是一个重要的命令。您需要root权限才能装载设备。 后第一次运行 “lsblk”插入式文件系统,并确定您的设备,记下你的设备分配的名称。root@youcl:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 931.5G 0 disk ├─sda1 8:1 0 923.6G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 7.9G 0 part [SWAP] sr0 11:0 1 1024M 0 rom sdb 8:16 1 3.7G 0 disk └─sdb1 8:17 1 3.7G 0 part从这个屏幕很明显,我在 4 GB的U盘插入这样 “SDB1'是我的文件系统被安装。 成为执行此操作,并切换到,所有的文件系统挂载 / dev目录 根 。
root@youcl:~# su Password:
root@youcl:~# cd /dev创建一个名为anything的目录,但应该参考。
root@youcl:~# mkdir usb现在挂载文件系统 “SDB1'到目录 ”USB“。
root@youcl:~# mount /dev/sdb1 /dev/usb现在,您可以导航到从安装目录中的终端或 X-windows系统和接取文件 / dev / USB。
时间代码开发者知道Linux环境中如何致富
命令:gcc
海湾合作委员会是在Linux环境下的 C语言中内置的编译器。 一个简单的 C程序,将其保存UR作为桌面上的 HELLO.C(记住 '.C'扩展是必须)。#include <stdio.h> int main() { printf("Hello world\n"); return 0; }
编译它
root@youcl:~# gcc Hello.c
运行
root@youcl:~# ./a.out Hello world注意 :在编译输出自动生成一个新文件 “a.out的 ”C程序,每次编译一个 C程序相同的文件 “a.out的 ”被修改。因此,在编译期间定义输出文件是一个很好的建议,因此没有覆盖到输出文件的风险。
以这种方式编译
root@youcl:~# gcc -o Hello Hello.c在这里 ,“-o”将输出发送到“ 你好 ”文件,而不是 'a.out的 “。再次运行。
root@youcl:~# ./Hello Hello world
命令:g ++
g ++的是内置编译 “C ++,第一面向对象编程语言。 一个简单的 C ++程序,将其保存乌尔桌面作为 Add.cpp上(还记得“ 的.cpp'扩展是必须)。#include <iostream> using namespace std; int main() { int a; int b; cout<<"Enter first number:\n"; cin >> a; cout <<"Enter the second number:\n"; cin>> b; cin.ignore(); int result = a + b; cout<<"Result is"<<" "<<result<<endl; cin.get(); return 0; }
编译它
root@youcl:~# g++ Add.cpp
运行
root@youcl:~# ./a.out Enter first number: ... ...注意 :在编译输出自动生成一个新文件 “a.out的 ”C ++程序,每次编译一个 C ++程序相同的文件 “a.out的 ”被修改。因此,在编译期间定义输出文件是一个很好的建议,因此没有覆盖到输出文件的风险。
以这种方式编译
root@youcl:~# g++ -o Add Add.cpp
运行
root@youcl:~# ./Add Enter first number: ... ...
命令:java
Java是世界上使用频率高的编程语言之一,被认为是快速,安全,可靠。今天的大多数基于web的服务运行在java上。 通过粘贴下面的测试文件中创建一个简单的Java程序,命名为 youcl.java(还记得“ 的.java”扩展名是必须)。class youcl { public static void main(String[] arguments) { System.out.println("youcl "); } }
使用javac编译它
root@youcl:~# javac youcl.java
运行
root@youcl:~# java youcl注 :几乎每一个分销挤满了来自 gcc编译器 ,发行版的主号码有内置的 G ++和 Java编译器 ,而有些可能没有。 你可以 容易或 Yum所需的软件包。 不要忘记提及你值得注意的评论和你想在这里看到的文章类型。我很快就会回来的有关对 Linux鲜为人知的事实,一个有趣的话题。