Linux関連コマンド2(Ubuntuまとめ)

1.ネットワークコマンド

1. ifconfig コマンド

$ ifconfig           #查看所有已激活的网络端口信息
$ ifconfig ens33     #查看系统中指定的网络端口信息
$ sudo ifconfig ens33 192.168.1.5  #修改系统指定的网络端口(网卡ens33)的IP地址
$ sudo ifconfig lo down            #关闭指定的网络端口(网卡lo)
$ sudo ifconfig lo up              #开启指定的网络端口(网卡lo)

2.pingのコマンド

$ ping -c2 -t2 www.baidu.com       #测试上网的功能ping命令 发送2次 2s一次

ping [パラメーター] [ホスト名または IP アドレス]
パラメーター: -c 数値、指定された数のパケットを送信した後に停止; -i 秒数、ネットワーク パケットをマシンに送信する間隔を秒単位で設定、デフォルト値はone 1 秒に 1 回送信; -s バイト数、送信するデータ バイト数を指定、デフォルト値は 56 に 8 バイトの ICMP ヘッダーを加えた、合計 64 の ICMP データ バイト; -t 生存値、設定サバイバル値 TTL のサイズ。

3.natstat コマンド

$ netstat -a    #显示所有连线中的socket,默认不显示LISTEN相关。
                  #-t仅显示tcp相关项;-u仅显示udp相关项
$ netstat -r    #显示路由表

パラメータの説明:
-a(all) 接続があることを示すソケットを表示します
-n エイリアスの表示を拒否し、表示できるすべての数字を数字に変換します
-t リッスンしているサービスのステータスのみをリストします
-p プログラム名を表示します関連するリンクを確立する
-r ルーティング情報を表示します。ルーティング テーブル
-e は、uid などの拡張情報を表示します。
-s プロトコルごとの統計情報です。
-c nelstatl コマンドを定期的に実行します。#nelstatl コマンドが利用できないようです(試してみました)

4.ルートコマンド

$ route -n  									#显示路由信息
$ sudo route add default gw 192.168.1.254 #添加默认网关192.168.1.254
$ sudo route del default gw 192.168.1.254 #删除默认网关192.168.1.254

route コマンドは、IP ルーティング テーブルを表示および操作するために使用されます。
コマンド形式 Route [-f] [-p] [cmd mask Netmask] [Gateway]
add: 新しいルートを追加
del: ルートを削除
-c 詳細情報を表示
-n 名前を解析しない
-v 詳細処理情報を表示
-F送信情報を表示する
-c ルート キャッシュを表示する
-f すべてのゲートウェイ エントリのルーティング テーブルをクリアする
-p add コマンドで使用する場合、ルートを永続的にする
-net
宛先アドレスは
ネットワーク
であるゲートウェイ経由でパケットをルーティングするときに必要です。指定するゲートウェイは通過できる必要があります。

Flags フラグの一般的に使用されるパラメーター
U: Up は、ルートが現在アクティブであることを示します。
H: Host は、このゲートウェイがホストであることを示します。
G: ゲートウェイ、このゲートウェイがルーターであることを示します
R: Reinstate Route、動的ルーティングを使用して再初期化されたルート
D: 動的に、このルートは動的に書き込まれます
M: Modified、このルーティング デーモンまたはディレクターは動的に変更されます。
! :このルートが現在閉鎖されていることを示します。

# windows下的cmd中
$ ipconfig/release  #断开网络
$ ipconfig/renew    #重启网络

2. プロセス関連コマンド

1.キルコマンド

$ kill -s SIGXXX 1234    #给进程ID为1234的发送一个信号SIGXXX(XXX可以是KILL)
$ kill -N 1234	        #N可以是9 、15等
$ kill -s SIGXXX -1234   #给进程组发送一个信号SIGXXX
$ kill -l                #查看当前系统所支持的信号

kill 形式 kill [シグナル コード] PID #プロセスを終了するために使用されます。指定されたプロセスにシグナルを送信します。
フォアグラウンドは ctrl+c で終了でき、バックグラウンド プロセスは kill コマンドで終了する必要があります。
-0 現在のプロセス内のすべてのプロセスにシグナルを送信します
-1 プロセス番号が 1 より大きいすべてのプロセスにシグナルを送信します
-9 プロセスを強制的に終了します -15
プロセスを終了します
-17 プロセスを中断します
-19 中断されたプロセスをアクティブにします
- a すべてのプロセスを終了
-l シグナルの名前のリストを指定します。オプションが追加されていない場合、-l パラメータはすべてのシグナル名をリストします
-p は送信シグナルをシミュレートします。プロセスの ID を表示し、シグナルを送信しない
-s はプロセスに送信されたシグナルを示します。例: -9 (強制終了)、デフォルトで TERM シグナルを送信します
-u はユーザーを指定します

2.キラルコマンド

$ killall nginx           #杀死所有nginx同名的进程
$ killall -TERM nginx     #向进程nginx发送指定信号

書式: killall [パラメータ] [プロセス名]

3. pkill コマンド

$ pkill -u zhang           #杀死zhang的所有用户
$ w                        #查看在线用户
$ pkill -vu   root         #杀死所有用户(除了root)


pkill コマンドは、プログラム形式 pkill [optionsl] パターンの名前ですべてのプロセスを直接強制終了します

4. xkill コマンド

$ xkill

フォアグラウンド プロセスをグラフィカルに閉じる;
ターミナルで xkill と入力 #プロセスをグラフィカルに閉じる
クリックして、gedit、firebox、その他の種類のプログラムなど、さまざまな種類のプロセスを実行します

5.pgrep コマンド

$ pgrep -lo hud-service 
$ pgrep -l hud-service
$ pgrep -ln hud-service     #查询指定程序的进程三种方式
$ pgrep -G other,ma         #匹配真实组ID是other或者ma的进程(逗号相对与命令差不多,前面的成立后面不执行)
$ pgrep -G other,ma -U root,ma  #条件被指派,这些条件按逻辑与运算,匹配组为other或ma,用户为root或ma的进程
$ pgrep -u root   #显示root用户的进程(指定root)
$ pgrep -V -P 1   #列出父进程不为1(init进程)的进程
$ pgrep -P 1      #列出父进程为1(init进程)的所有进程
$ pgrep at        #列出at字符串相关的程序

pgrep コマンド: プログラムの名前またはその他の属性でプロセスを検索します。通常、プログラムが実行されているかどうかを判断するために使用されます。
形式: pgerp [オプション] パターン #プロセス ID を返す

6.ps コマンド

$ ps -A            #显示所有进程
$ ps -u root       #显示指定用户信息
$ ps -ef           #显示所有进程信息,连同命令行
$ ps -ef | grep ssh#查询特定的进程ssh  ps和grep常用的组合用法
$ ps -l            #将目前属于用户自己这次登入的PID与相关信息列示出来
$ ps aux           #列出目前所有的正在内存当中的程序
$ ps -axjf         #列出类似程序树的程序显示
$ ps aux | egrep(cron|syslog)#找出与cron与syslog这两个服务相关的PID
$ ps -o pid,ppid,pgrep,tpgid       #输出指定的字段

ps コマンド: プロセスのステータスを表示します。オプションがない場合は、現在のユーザーが現在のターミナルで開始したプロセスを表示します.
パラメータの説明
a すべてのプロセスを表示します
-a 統合ターミナル配下のすべてのプログラムを表示します
-A すべてのプロセスを表示します
c プロセスの実名を表示します
-N reverse selection
-e equals "-A"
e 環境変数を表示する
f プロセス間の関係を表示する
-H ツリー関係
を表示する r 現在中断されているプロセスを表示する
T 現在の端末のすべてのプロセスを表示する
u 指定したユーザーのすべてのプロセスを
表示する -au より詳細な情報を表示する
-aux他のユーザーを含むすべてを表示 -C <コマンド>
指定したコマンドのステータスを一覧表示
–lines<行番号> 1 ページに表示される行数
–width<文字数> 1 ページに表示される文字数
–help ヘルプ情報を表示
–バージョン表示 バージョン情報

7.pstree コマンド

$ pstree -u   #树状图的进程显示用户名称

pstree コマンド: プロセスの親子関係をツリー形式で表示します
: pstree [オプション]
-a パス、パラメーター、または常駐サービス マークを含む、各プログラムの完全なコマンドを表示します
-c コンパクト マーク法を使用しません
- G VT100 端末を使用する 描画文字の列
-h 描画文字をリストする場合、現在実行中のプログラムを具体的に示します
-H<プログラム識別コード> このパラメーターの効果は、「-h」パラメーターを指定するのと似ていますが、具体的には、指定されたプログラム
-l が長い列形式の表示デンドログラムを採用していることを示します
-n プログラム ID で並べ替えます。プリセットはプログラム名でソートされます。
-p プログラム ID を表示
-u ユーザー名を表示
-U UTF-8 列描画文字を使用

8.トップコマンド

top コマンド: CPU 使用率、メモリ使用率、およびその他の関連情報を動的に表示します。先頭をフォーマット [-d 秒] デフォルトで 5 秒ごとに更新

$ top         #显示 按m按内存排序,按t按时间排序,按p按CPU使用率排序,ctrl+c,q退出
$ top -c      #显示完整指令
$ top -b      #以批处理模式显示程序信息(一直查看,未清除以前信息)
$ top -S      #以累计模式显示程序信息
$ top -n 2    #表示更新2次后终止更新显示
$ top -d 3    #表示更新周期为3秒
$ top -p 139  #显示进程号为139的进程信息,CPU,内存占有率等
$ top -n 10   #更新10次后退出
$ top -s      #使用者将不能利用交谈式指令来对进程下指令
$ top -n 2 -b > top.log  #将更新显示二次的结果输入到名称为top.log的档案内(重定向文件)

$ gnome-system-monitor   #图形化的系统检测器,类似于windows的任务管理器差不多。
#也可这样查看系统监视器 “应用程序”->“系统工具”->“系统监视器”

9.ナイスコマンド

nice コマンド: 起動するプロセスの優先度を指定します。プライオリティが指定されていない場合、デフォルトの
フォーマットは 10 です: nice [-priority value] コマンド

$ nice vi &    #将vi命令设置默认优先级10
$ nice -n 19 vi & #设置vi命令的优先级为19

10. レニスの命令

renice コマンド: 実行中のプロセスの優先度を変更し、指定されたユーザーまたはグループのプロセスの優先度を設定します

$ renice -5 -p 5200  #将PID为5200的进程优先级设置为-5
$ renice -5 -u xue   #将属于用户为xue的进程优先级设置为-5
$ renice 5 -g group1 #将属于group1组的进程优先级设置为5
$ renice -n -5 -p 5200  #将PID为5200的进程优先级设置为-5
$ renice -n +5 -p 5200  #将PID为5200的进程优先级设置为5

-p プロセス番号: 指定されたプロセスの優先度を変更します
-u ユーザー名: 指定されたユーザーによって開始されたプロセスのデフォルトの優先度を変更します
-g グループおよび指定されたグループ内のすべてのユーザーによって開始されたプロセスのデフォルトの優先度を変更します

3. フォアグラウンド処理とバックグラウンド処理のスケジューリング

デフォルトでは、コマンドの実行後、このコマンドはシェルを独占し、他の入力を拒否します。フォアグラウンド プロセスと呼ばれます。代わりに舞台裏のプロセス。
フォアグラウンド タスクとバックグラウンド タスクの制御とスケジューリングは、タスク制御と呼ばれます。

1.スイッチプロセス

将前台任务放入后台
$ command &   #将一个命令放入后台执行
ctrl+z        #将一个正在执行的前台进程暂时停止,放入后台
控制后台进程
$ jobs            #列出系统作业号和名称
$ fg [%作业号]   #前台恢复运行
$ bg [%作业号]   #后台恢复运行
$ kill [%作业号] #给定信息发送终止信号

2.スケジューリング

プロセスのスケジューリング (プロセスの優先度の値が低いほど、優先度が高くなります。値は -20~19)
時々実行されるプロセスには、at またはバッチ スケジューリングを使用します
特定の時間に繰り返し実行されるプロセスには、cron スケジューリングを使用します

(1) スケジューリング時

$ sudo apt install at    #加载at工具
$ sudo apt install atp   #加载atp工具
$ at 5pm + 2days         #两天后上午5点执行date +%Y/%m/%d-%H:%M 的命令
warning: commands will be executed using /bin/sh
at> date +%Y/%m/%d-%H:%M<EOT>    #输入完成按组合键Ctrl+D保存并退出
job 5 at Fri Jul 15 17:00:00 2022
$ atq      #查看at任务 也可使用at -l
$ atrm 7   #删除任务队列中的任务7

at schedule: format [option] [time] 指定したコマンドを実行する指定時刻を設定します
-f: 標準入力デバイスではなく、指定したファイルから実行するコマンドを取得します
-l: 実行待ちのスケジュールジョブを表示します。
-d : 指定したスケジューリングジョブを削除
(1) 絶対時刻方式 「HH:MM (時: 分) は 24 時間を使用、12 時間の場合は AM (朝)、PM (午後) を追加」 (2) 相対時刻方式now
+ 時間間隔の単位は、分 (分)、時間 (時)、日 (日)、週 (週)
(3) 直接計時法 今日 (今日)、明日 (明日)、深夜 (深夜)、正午 (正午)、ティータイム(午後4時)

(2) crontabのスケジューリング

cron スケジューリング (at および batch は 1 回のみ実行可能、cron は繰り返し実行可能)
crontab 構成ファイル /var/spool/cron/user
ここに画像の説明を挿入
(1) すべてのフィールドを空にすることはできず、フィールドを区切るためにスペースが使用されます。内容を指定しない場合は、
期間を示すために「*」記号 (2) を使用して「-」を使用します。日付フィールドに「1-5」を入力すると、毎月最初の 5 日にコマンドが実行されます。
(3) 「,」記号を使用して、指定した時刻を示すことができます。たとえば、日付に「5、15、25」と入力して、5 日、15 日、25 日を示します。


0 * /2 * * * echo “Have a good dream” >> /tmp/test.txt   #每两个小时追加一次

0 23-7 /2,8 * * * echo “hello crontab” >> /tmp/test.txt  #晚上11点到早上7点没两个小时

0 11 4 * 1-3 cmd line                                   #每个月的 4 号和每个星期一到星期三的早上11点

crontab命令:维护用户的crontab配置文件 # 格式crontab [选项]
-e:创建斌编辑crontab配置文件
-l:显示crontab配置文件内容
-r:删除crontab文件

(3)crond処理

$ service crond restart
#或者
$ systemctl restart crond.service

crond プロセスは、システムの起動時に自動的に開始され、常にバックグラウンドで実行されます。crond プロセスは、crontab 構成ファイルを検出し、crontab コンテンツをインストールして、指定された cron スケジューリング作業を繰り返し実行する役割を果たします。crontab 構成ファイルを作成または変更した後、crond プロセス サービスを再起動するには、「service crond restart」が必要です。

4. その他

1. ディレクトリ以外のファイルを削除する

$ ls --file-type | grep -v /$ | xargs rm -f  #删除当前目录下非目录文件的命令
# 使用 ls --file-type 会列举出当前目录下所有的文件和文件夹,且文件夹后面会带一个 /
# 再用 grep -v 将文件夹过滤掉,文件夹的 / 符号在结尾,所以使用正则表达式 /$ 过滤
# 最后将其他所有的文件通过 rm 命令删除,此时需要将文件名通过 xargs 传递到命令行参数中

2.ディレクトリ内のすべてのファイルの内容を見つける

$ find /opt/nfs -type f | xargs grep "apple" -wnH  
#find查找的普通文件中找”apple”,要求剔除“appletree”的单词
# xargs代表find的输出作为grep的参数(否则grep只会在find的查找出来的列表中找,不会进入文件内找)

おすすめ

転載: blog.csdn.net/weixin_44763594/article/details/125774771