20个中级Linux用户的高级命令

你可能已经发现了第一篇文章非常有用,这篇文章是一个扩展 Linux新手20个有用的命令 。 第一篇文章的目的是为新手和这篇文章是给 中层用户高级用户 。 在这里你会找到如何定制搜索,知道的进程中运行的指导,杀了他们,如何让你的 Linux终端生产是一个重要方面,如何编译 C,C ++,在尼克斯 的Java程序。

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一起。
  1. -w字(egrep的-w' 字1 | 字词2'/路径/要/文件)。
  2. -C对于数(即总次数匹配的模式)(grep的-c' '/路径/要/文件)。
  3. -颜色的彩色输出(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鲜为人知的事实,一个有趣的话题。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏