前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux中20个中级命令

linux中20个中级命令

作者头像
入门笔记
发布2022-06-02 15:24:43
7580
发布2022-06-02 15:24:43
举报
文章被收录于专栏:入门小站

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 world\n");
  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命令

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 21. find命令
  • 22. grep命令
  • 23. man命令
  • 24. ps命令
  • 25. kill命令
  • 26. whereis命令
  • 27. service命令
    • 在 Ubuntu 上启动 apache2 服务器
      • 在 Ubuntu 上停止 apache2 服务器
      • 28. alias命令
      • 29. df命令
      • 30. du命令
      • 31. rm命令
        • 删除目录
          • 创建一个小的交互式脚本
          • 文件 1.txt
          • 文件 2.txt
      • 32. echo命令
      • 33. passwd命令
      • 34. lpr命令
      • 35. cmp命令
      • 36. wget命令
        • 使用 wget 下载 ffmpeg
          • 编译它
          • 运行它
          • 这样编译
          • 编译它
          • 运行它
          • 这样编译
          • 运行它
          • 使用 javac 编译
          • 运行它
      • 37. mount命令
      • 38. gcc命令
      • 39. g++命令
      • 40. java命令
      相关产品与服务
      云服务器
      云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档