linux中20个中级命令

2022-06-02 15:24:43 浏览数 (1)

21. find命令

在当前目录搜索文件

代码语言:javascript复制
rumenz@local:~# 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

Note:-name选项使搜索区分大小写。你可以使用 -iname无论大小写都可以找到一些东西的选项。(*是一个通配符并搜索所有扩展名为 ' 的文件.sh`你可以使用文件名或文件名的一部分来自定义输出)。

代码语言:javascript复制
rumenz@local:~# 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
代码语言:javascript复制
rumenz@local:~# 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

22. grep命令

grep命令在给定文件中搜索包含与给定字符串或单词匹配的行。搜索 /etc/passwdrumenz用户。

代码语言:javascript复制
rumenz@local:~# grep rumenz /etc/passwd 

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

-i忽略单词大小写

代码语言:javascript复制
rumenz@local:~# grep -i rumenz /etc/passwd 

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

递归搜索-r

代码语言:javascript复制
rumenz@local:~# 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
  1. -w单词 (egrep -w word1|word2/path/to/file)。
  2. -cfor count(即模式匹配的总次数)(grep -c word/path/to/file)。
  3. –color对于彩色输出(grep–color服务器 /etc/passwd)。

23. man命令

man是系统的手册页。Man 提供了有关命令及其用法的所有可能选项的在线文档。几乎所有的命令都带有相应的手册页。例如,

代码语言:javascript复制
rumenz@local:~# 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]

手册页本身的手册页,类似地man cat([cat 命令的]手册页和man ls([命令 ls 的]手册页)。

24. ps命令

ps(Process) 以唯一的方式给出正在运行的进程的状态IdPID.

代码语言:javascript复制
rumenz@local:~# ps

 PID TTY          TIME CMD
 4170 pts/1    00:00:00 bash
 9628 pts/1    00:00:00 ps

列出所有进程的状态以及进程idPID, 使用选项 -A

代码语言:javascript复制
rumenz@local:~# 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
....

Note:可以先用grep找到进程的pid

代码语言:javascript复制
rumenz@local:~# ps -A | grep -i ssh

 1500 ?        00:09:58 sshd
 4317 ?        00:00:00 sshd

这里psgrep命令来查找我们需要的自定义和相关输出。

25. kill命令

代码语言:javascript复制
rumenz@local:~# ps -A | grep -i apache2

1285 ?        00:00:00 apache2

查找进程apache2,注意其pidkill它。例如,在我的情况下apache2pid 是1285

代码语言:javascript复制
rumenz@local:~# kill 1285 (to kill the process apache2)

Note: 每次重新运行一个进程或启动一个系统时,都会有一个新的pid为每个进程生成,你可以了解当前正在运行的进程及其pid使用命令 ps

pkill通过进程名结束进程

代码语言:javascript复制
rumenz@local:~# pkill apache2

26. whereis命令

whereis命令用于定位Binary,SourcesManual Pages命令的。例如,要定位Binary,SourcesManual Pages命令的lskill

代码语言:javascript复制
rumenz@local:~# whereis ls 

ls: /bin/ls /usr/share/man/man1/ls.1.gz
代码语言:javascript复制
rumenz@local:~# whereis kill

kill: /bin/kill /usr/share/man/man2/kill.2.gz /usr/share/man/man1/kill.1.gz

27. service命令

service命令控制Starting,StoppingRestarting一个service。这个命令可以start,restartstop无需重新启动系统即可使更改生效的服务。

在 Ubuntu 上启动 apache2 服务器
代码语言:javascript复制
rumenz@local:~# 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 服务器
代码语言:javascript复制
rumenz@local:~# service apache2 stop
                                                           [ OK ]

28. alias命令

alias是一个内置的 shell 命令,可让你为长命令或常用命令指定自定义名称。

我经常使用 ls -l命令。因此我为此创建了一个别名为 l

代码语言:javascript复制
rumenz@local:~# alias l='ls -l'

检查它是否有效。

代码语言:javascript复制
rumenz@local:~# l

total 36 
drwxr-xr-x 3 rumenz rumenz 4096 May 10 11:14 Binary 
drwxr-xr-x 3 rumenz rumenz 4096 May 21 11:21 Desktop 
drwxr-xr-x 2 rumenz rumenz 4096 May 21 15:23 Documents 
drwxr-xr-x 8 rumenz rumenz 4096 May 20 14:56 Downloads 
drwxr-xr-x 2 rumenz rumenz 4096 May  7 16:58 Music 
drwxr-xr-x 2 rumenz rumenz 4096 May 20 16:17 Pictures 
drwxr-xr-x 2 rumenz rumenz 4096 May  7 16:58 Public 
drwxr-xr-x 2 rumenz rumenz 4096 May  7 16:58 Templates 
drwxr-xr-x 2 rumenz rumenz 4096 May  7 16:58 Videos

删除别名 l, 使用下面的unalias命令。

代码语言:javascript复制
rumenz@local:~# unalias l
代码语言:javascript复制
rumenz@local:~# l

bash: l: command not found

29. df命令

报告文件系统的磁盘使用情况。对用户和系统管理员跟踪他们的磁盘使用情况很有用。df通过检查目录条目来工作,目录条目通常仅在文件关闭时更新。

代码语言:javascript复制
rumenz@local:~# 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

30. du命令

统计文件空间使用量。以分层方式(即以递归方式)按文件输出磁盘使用情况摘要。

代码语言:javascript复制
rumenz@local:~# 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

31. rm命令

命令 rm代表移除。rm用于删除文件和目录。

删除目录
代码语言:javascript复制
rumenz@local:~# rm PassportApplicationForm_Main_English_V1.0

rm: cannot remove `PassportApplicationForm_Main_English_V1.0': Is a directory

不能简单地通过rm删除目录,你必须使用rm -rf

代码语言:javascript复制
rumenz@local:~# rm -rf PassportApplicationForm_Main_English_V1.0

Warning:rm -rf命令是一个危险的命令,如果你不小心把它放到了错误的目录中。一旦你rm -rf一个目录中的所有文件和目录本身突然就永远丢失了。请谨慎使用。

32. echo命令

echo顾名思义,在标准输出上回显文本。它与 shell 无关,shell 也不读取 echo 命令的输出。但是在交互式脚本中,echo 通过终端将消息传递给用户。它是脚本、交互式脚本中常用的命令之一。

代码语言:javascript复制
rumenz@local:~# echo "rumenz.com is a very good website" 

rumenz.com is a very good website
创建一个小的交互式脚本
  1. 创建一个文件,命名为interactive_shell.sh在桌面上。(记住.sh扩展名是必须的)。
  2. 复制粘贴下面的脚本,完全一样,如下。
代码语言:javascript复制
#!/bin/bash 
echo "Please enter your name:" 
read name 
echo "Welcome to Linux $name"

接下来,设置执行权限并运行脚本。

代码语言:javascript复制
rumenz@local:~# chmod 777 interactive_shell.sh
代码语言:javascript复制
rumenz@local:~# ./interactive_shell.sh

Please enter your name:
Ravi Saive
Welcome to Linux Ravi Saive

Note:#!/bin/bash告诉 shell 它是一个脚本。

33. passwd命令

这是一个重要的命令,可用于在终端中更改自己的密码。显然出于安全原因,你需要知道你当前的密码。

代码语言:javascript复制
rumenz@local:~# passwd 

Changing password for rumenz. 
(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:#####

34. lpr命令

此命令将命令行上命名的文件打印到命名打印机。

代码语言:javascript复制
rumenz@local:~# lpr -P deskjet-4620-series 1-final.pdf

Note: lpq命令可让你查看打印机的状态(是否已启动)以及等待打印的作业(文件)。

35. cmp命令

比较任何类型的两个文件并将结果写入标准输出。默认情况下,cmp如果文件相同,则返回 0;如果它们不同,则报告出现第一个不同的字节和行号。

文件 1.txt
代码语言:javascript复制
rumenz@local:~# cat file1.txt

Hi My name is rumenz
文件 2.txt
代码语言:javascript复制
rumenz@local:~# cat file2.txt

Hi My name is rumenz [dot] com

我们比较两个文件并查看命令的输出。

代码语言:javascript复制
rumenz@local:~# cmp file1.txt file2.txt 

file1.txt file2.txt differ: byte 15, line 1

36. wget命令

wget是一种免费实用程序,用于从 Web 上以非交互方式(即可以在后台工作)下载文件。它支持HTTP,HTTPS,FTP协议和HTTP代理。

使用 wget 下载 ffmpeg
代码语言:javascript复制
rumenz@local:~# wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2

100%[===========================================================================>] 2,75,557    67.8KB/s   in 4.0s   

2021-08-22 18:55:00 (67.8 KB/s) - ‘ffmpeg-php-0.6.0.tbz2’ saved [275557/275557]

37. mount命令

Mount是一个重要的命令,用于挂载不挂载自身的文件系统。你需要root权限才能挂载设备。

第一次运行lsblk在插入你的文件系统并识别你的设备并记下你的设备分配名称后。

代码语言:javascript复制
rumenz@local:~# 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
代码语言:javascript复制
rumenz@local:~# su
Password:
代码语言:javascript复制
rumenz@local:~# cd /dev
代码语言:javascript复制
rumenz@local:~# mkdir usb

现在挂载文件系统sdb1到目录usb

代码语言:javascript复制
rumenz@local:~# mount /dev/sdb1 /dev/usb

现在你可以导航到/dev/usb从终端或X-windows挂载目录中的 system 和 access 文件。

38. gcc命令

gcc是一个编译器

代码语言:javascript复制
#include <stdio.h>
int main()
{
  printf("Hello worldn");
  return 0;
}
编译它
代码语言:javascript复制
rumenz@local:~# gcc Hello.c
运行它
代码语言:javascript复制
rumenz@local:~# ./a.out 

Hello world

Note: 在编译一个c程序输出自动生成到一个新文件 a.out并且每次编译c程序相同的文件 a.out被修改。因此,在编译期间定义输出文件是一个很好的建议,因此不存在覆盖输出文件的风险。

这样编译
代码语言:javascript复制
rumenz@local:~# gcc -o Hello Hello.c

这里-o将输出发送到Hello文件而不是a.out。再次运行它。

代码语言:javascript复制
rumenz@local:~# ./Hello 

Hello world

39. g 命令

g 是 ' 的内置编译器C ,第一个面向对象的编程语言。一个简单的c 程序,将其保存在你的桌面上Add.cpp(记住.cpp扩展名是必须的)。

代码语言:javascript复制
#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;
     }
编译它
代码语言:javascript复制
rumenz@local:~# g   Add.cpp
运行它
代码语言:javascript复制
rumenz@local:~# ./a.out

Enter first number: 
...
...

Note: 在编译一个c 程序输出自动生成到一个新文件 a.out并且每次编译c 程序相同的文件 a.out被修改。因此,在编译期间定义输出文件是一个很好的建议,因此不存在覆盖输出文件的风险。

这样编译
代码语言:javascript复制
rumenz@local:~# g   -o Add Add.cpp
运行它
代码语言:javascript复制
rumenz@local:~# ./Add 

Enter first number: 
...
...

40. java命令

Java是世界上使用率最高的编程语言之一,被认为是快速、安全和可靠的。当今大多数基于 Web 的服务都运行在 Java 上。

通过将以下测试粘贴到名为的文件中来创建一个简单的 java 程序rumenz.java(记住.java扩展名是必须的)。

代码语言:javascript复制
class rumenz {
  public static void main(String[] arguments) {
    System.out.println("rumenz ");
  }
}
使用 javac 编译
代码语言:javascript复制
rumenz@local:~# javac rumenz.java
运行它
代码语言:javascript复制
rumenz@local:~# java rumenz

相关文章

Linux之find命令

Linux之grep命令

linux之man命令

Linux之ps命令

Linux之kill命令

0 人点赞