Linuxのパイプ文字とは何ですか
Linux では、パイプ文字は「|」で、主に 2 つ以上のコマンドを結合し、1 つのコマンドの出力を次のコマンドの入力として使用するために使用されます。構文は「command1 | command2」です。 [ | commandN... ]" の場合、「|」文字の左側にあるコマンドの出力が、「|」文字の右側にあるコマンドの入力として使用されます。パイプ文字は連続して使用でき、最初のコマンドの出力は 2 番目のコマンドの入力として使用され、2 番目のコマンドの出力は 3 番目のコマンドの入力として使用されます。
#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。
シェルには、2 つ以上のコマンド (プログラムまたはプロセス) を接続し、1 つのコマンドの出力を次のコマンドの入力として使用する機能もあります。コマンドはパイプラインを形成します。
Linux パイプでは、垂直バー |
を使用して複数のコマンドを接続します。これはパイプ文字と呼ばれます。
command1 | command2 command1 | command2 [ | commandN... ]
2 つのコマンドの間にパイプを設定すると、パイプ記号 | の左側のコマンドの出力が右側のコマンドの入力になります。最初のコマンドが標準出力に書き込み、2 番目のコマンドが標準入力から読み取る限り、2 つのコマンドはパイプを形成できます。ほとんどの Linux コマンドを使用してパイプを形成できます。
パイプ文字は連続して使用できます。最初のコマンドの出力は 2 番目のコマンドの入力として使用され、2 番目のコマンドの出力は 3 番目のコマンドの入力として使用されます。すぐ。
ここで、command1 には正しい出力が必要であり、command2 は command2 の出力結果を処理できなければならず、command2 は正しい出力結果のみを処理できることに注意してください。 command1 のエラーメッセージを処理するのではなく、command1 の結果を出力します。
例: hello.sh ファイルを並べ替え、並べ替えと重複排除を行った後、「better」を含む行を見つけます。
コマンドは次のとおりです。 : cat hello.sh | sort | uniq | grep 'better'
- テキストの表示
- Sort
- Deduplication
- Filter
[1] 最初のステップ - テキストの表示
最初に cat コマンドを使用してテキストを表示します。画面に表示される内容が出力です。 cat コマンドの結果
[root@linuxforliuhj test]# cat hello.sh hello this is linux be better be better i am lhj hello this is linux i am lhj i am lhj be better i am lhj have a nice day have a nice day hello this is linux hello this is linux have a nice day zzzzzzzzzzzzzz dddddddd gggggggggggggggggggg [root@linuxforliuhj test]#
[2] 2 番目のプロセス - ソート
前の cat コマンドによって出力された結果をパイプライン経由で sort コマンドにスローします。これにより、sort コマンドはテキストをソートします。前の cat コマンドによる出力
[root@linuxforliuhj test]# cat hello.sh | sort be better be better be better dddddddd gggggggggggggggggggg have a nice day have a nice day have a nice day hello this is linux hello this is linux hello this is linux hello this is linux i am lhj i am lhj i am lhj i am lhj zzzzzzzzzzzzzz [root@linuxforliuhj test]#
[3] 3 番目のプロセス - 重複排除
uniq を紹介した前の記事で述べたように、sort は uniq と組み合わせて使用すると効果的に重複排除できるため、sortパイプラインを介して処理され、出力されます。 テキストは処理のために uniq にスローされるため、uniq は並べ替えられたテキストを処理します。これにより重複を効果的に削除できます。
[root@linuxforliuhj test]# cat hello.sh | sort | uniq be better dddddddd gggggggggggggggggggg have a nice day hello this is linux i am lhj zzzzzzzzzzzzzz [root@linuxforliuhj test]#
[4] 4 番目のステップ - フィルタリング
フィルタリングの最後のステップは同じです。前のコマンド、つまり uniq コマンドの処理後にテキスト出力をフィルタリングすることです。
[root@linuxforliuhj test]# cat hello.sh | sort | uniq | grep 'better' be better [root@linuxforliuhj test]#
ここが重要なポイントです!
ここが重要なポイントです!
ここがポイントです!
上記の cat、sort、uniq、grep などこれらのコマンドは標準入力から読み取ることができるため、コマンドはすべてパイプ文字をサポートしています。処理されるテキスト (つまり、標準入力からパラメータを読み取る)。一部のコマンド (rm、kill、その他のコマンドなど) はサポートされていません。標準入力からのパラメータの読み取りは可能ですが、コマンド ライン (つまり、rm コマンド) からのパラメータの読み取りのみをサポートします。削除するファイルまたはディレクトリは後で指定する必要があり、強制終了するプロセス番号は kill コマンドの後に指定する必要があります。 )
ソート後にパラメータがない場合、パイプ文字によってスローされた前のコマンドの出力が処理されます (つまり、前のコマンドの標準出力がこのコマンドの標準入力として使用されます) )それでは、どのようなコマンドがパイプをサポートし、どのようなコマンドがパイプをサポートしないのでしょうか? ?
一般に、sort、uniq、grep、awk、sed などのテキストを処理するコマンドはすべてパイプをサポートしますが、テキストを処理しないコマンド (rm や ls など) はパイプをサポートしません。[root@linuxforliuhj test]# cat hello.sh | sort be better be better be better dddddddd gggggggggggggggggggg have a nice day have a nice day have a nice day hello this is linux hello this is linux hello this is linux hello this is linux i am lhj i am lhj i am lhj i am lhj zzzzzzzzzzzzzz [root@linuxforliuhj test]#ログイン後にコピーログイン後にコピー
[root@linuxforliuhj test]# ls beifen.txt hello.sh mk read.ln read.sh read.txt sub.sh [root@linuxforliuhj test]# ls | grep read.sh read.sh [root@linuxforliuhj test]# ls | grep read.sh | rm rm: missing operand Try 'rm --help' for more information. [root@linuxforliuhj test]#
標準入力とコマンドラインパラメータではどちらが優先されますか?
次の 2 つのファイルがあります[root@linuxforliuhj test]# cat a.txt aaaa dddd cccc bbbb [root@linuxforliuhj test]# cat b.txt 1111 3333 4444 2222 [root@linuxforliuhj test]#
[root@linuxforliuhj test]# cat a.txt | sort aaaa bbbb cccc dddd [root@linuxforliuhj test]#
[root@linuxforliuhj test]# cat a.txt | sort b.txt 1111 2222 3333 4444 [root@linuxforliuhj test]#
[root@linuxforliuhj test]# cat a.txt | sort b.txt - 1111 2222 3333 4444 aaaa bbbb cccc dddd [root@linuxforliuhj test]#
の並べ替えと同等
[root@linuxforliuhj test]# sort a.txt b.txt 1111 2222 3333 4444 aaaa bbbb cccc dddd [root@linuxforliuhj test]#
思考:对于rm、kill等命令,我们写脚本时常常会遇到需要查询某个进程的进程号然后杀掉该进程,查找某个文件然后删除它这样的需求,该怎么办呢?那就用xargs吧!
相关推荐:《Linux视频教程》
以上がLinuxのパイプ文字とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









ルートとしてMySQLにログインできない主な理由は、許可の問題、構成ファイルエラー、一貫性のないパスワード、ソケットファイルの問題、またはファイアウォール傍受です。解決策には、構成ファイルのBind-Addressパラメーターが正しく構成されているかどうかを確認します。ルートユーザー許可が変更されているか削除されてリセットされているかを確認します。ケースや特殊文字を含むパスワードが正確であることを確認します。ソケットファイルの許可設定とパスを確認します。ファイアウォールがMySQLサーバーへの接続をブロックすることを確認します。

c言語条件付きコンパイルは、コンパイル時間条件に基づいてコードブロックを選択的にコンパイルするメカニズムです。導入方法には、#IFおよび#ELSEディレクティブを使用して、条件に基づいてコードブロックを選択します。一般的に使用される条件付き式には、STDC、_WIN32、Linuxが含まれます。実用的なケース:オペレーティングシステムに従って異なるメッセージを印刷します。システムの数字数に応じて異なるデータ型を使用します。コンパイラに応じて、異なるヘッダーファイルがサポートされています。条件付きコンパイルにより、コードの移植性と柔軟性が向上し、コンパイラ、オペレーティングシステム、CPUアーキテクチャの変更に適応できます。

1.0.1序文このプロジェクト(コードとコメントを含む)は、私の独学の錆の間に記録されました。不正確または不明確な声明があるかもしれませんが、謝罪してください。あなたがそれから利益を得るなら、それはさらに良いです。 1.0.2なぜRustrustは信頼性が高く効率的ですか? Rustは、CとCを同様のパフォーマンスであり、セキュリティが高くなり、CやCのようなエラーを確認するために頻繁な再コンパイルを必要としません。主な利点には、メモリセキュリティ(nullポインターの防止、ぶら下がりポインター、およびデータ競合の防止)が含まれます。スレッドセーフ(実行前にマルチスレッドコードが安全であることを確認してください)。未定義の動作を避けてください(例:境界のない配列、未知の変数、または解放されたメモリへのアクセス)。 Rustは、ジェネリックなどの最新の言語機能を提供します

Linuxの5つの基本コンポーネントは次のとおりです。1。カーネル、ハードウェアリソースの管理。 2。機能とサービスを提供するシステムライブラリ。 3.シェル、ユーザーがシステムと対話するインターフェイス。 4.ファイルシステム、データの保存と整理。 5。アプリケーション、システムリソースを使用して機能を実装します。

MySQLの起動が失敗する理由はたくさんあり、エラーログをチェックすることで診断できます。一般的な原因には、ポートの競合(ポート占有率をチェックして構成の変更)、許可の問題(ユーザー許可を実行するサービスを確認)、構成ファイルエラー(パラメーター設定のチェック)、データディレクトリの破損(テーブルスペースの復元)、INNODBテーブルスペースの問題(IBDATA1ファイルのチェック)、プラグインロード障害(エラーログのチェック)が含まれます。問題を解決するときは、エラーログに基づいてそれらを分析し、問題の根本原因を見つけ、問題を防ぐために定期的にデータをバックアップする習慣を開発する必要があります。

MySQLはAndroidで直接実行できませんが、次の方法を使用して間接的に実装できます。Androidシステムに構築されたLightWeight Database SQLiteを使用して、別のサーバーを必要とせず、モバイルデバイスアプリケーションに非常に適したリソース使用量が少ない。 MySQLサーバーにリモートで接続し、データの読み取りと書き込みのためにネットワークを介してリモートサーバー上のMySQLデータベースに接続しますが、強力なネットワーク依存関係、セキュリティの問題、サーバーコストなどの短所があります。

C Language Functionライブラリは、さまざまな機能を含むツールボックスであり、さまざまなライブラリファイルに編成されています。ライブラリを追加するには、コンパイラのコマンドラインオプションを介して指定する必要があります。たとえば、GCCコンパイラは-Lオプションを使用して、ライブラリ名の略語が続きます。ライブラリファイルがデフォルトの検索パスの下にない場合は、-Lオプションを使用してライブラリファイルパスを指定する必要があります。ライブラリは、静的ライブラリと動的ライブラリに分けることができます。静的ライブラリはコンパイル時にプログラムに直接リンクされ、動的ライブラリは実行時にロードされます。

MySQLのインストールエラーのソリューションは次のとおりです。1。システム環境を慎重に確認して、MySQL依存関係ライブラリの要件が満たされていることを確認します。異なるオペレーティングシステムとバージョンの要件は異なります。 2.エラーメッセージを慎重に読み取り、依存関係のインストールやSUDOコマンドの使用など、プロンプト(ライブラリファイルの欠落やアクセス許可など)に従って対応する測定値を取得します。 3.必要に応じて、ソースコードをインストールし、コンパイルログを慎重に確認してみてください。これには、一定量のLinuxの知識と経験が必要です。最終的に問題を解決する鍵は、システム環境とエラー情報を慎重に確認し、公式の文書を参照することです。
