この記事では、プログラム開発環境、一般的なコマンド、環境変数など、Linux オペレーティング システムの基本的な知識を紹介します。
Linux は、自由にリリースできる UNIX に似たカーネル実装であり、オペレーティング システムの基礎となるコアです。 Linux は、インターネット上の多数の UNIX プログラマーの協力を得て、フィンランドのヘルシンキ大学の Linus によって開発されました。これはもともと教授の Minix (UNIX に似た小さなシステム) からインスピレーションを得たプログラムでした。純粋に個人的な趣味でしたが、後に徐々に発展して、それ自体が完全なシステムになりました。
Linux とは何かを理解するにはということは、まず Linux-UNIX や GNU ソフトウェアより前に生まれたシステムとアプリケーションを理解する必要があります。
UNIX オペレーティング システムは、もともとベル研究所によって開発されました。ベル研究所は、当時通信大手 AT&T (American Telegraph and Telephone Company) の一員でした。現在では、マルチユーザー、マルチタスクのオペレーティング システムとして非常に人気があります。 UNIX オペレーティング システムは、PC からマルチプロセッサ サーバーやスーパーコンピュータに至るまで、多数の異なるハードウェア プラットフォーム上で実行できます。
UNIX でのプログラム開発には、いくつかの典型的なスタイルと特徴があります:
1) シンプルさ: 多くの便利な UNIX ツールは非常にシンプルです。 「小さくてシンプル」は学ぶ価値のあるテクニックです。大規模で複雑なシステムには、より大規模で複雑なバグが必ず含まれます。
2) 集中化: すべての機能をひとまとめにするよりも、プログラムに 1 つのタスクをうまく実行させるほうがよいでしょう。機能が肥大化したプログラムは使用と保守が難しく、単一目的のプログラムはより優れたアルゴリズムが開発されるにつれて改善される可能性が高くなります。 UNIX では、ユーザーから新たなニーズが生じた場合、ユーザーが期待するすべての機能を大きなプログラムに組み込むのではなく、小さなツールを組み合わせてより複雑なタスクを完了するのが一般的です。
3) 再利用可能なコンポーネント: アプリケーションのコアをライブラリとして実装します。シンプルで柔軟なプログラミング インターフェイスを備えたライブラリは、他の人が同様のプログラムを開発したり、これらの技術を新しいアプリケーション分野に適用したりするのに役立ちます。
オペレーティング システム カーネルがあるだけでは十分ではありません。今日に至るまでの Linux の開発は、共同の努力の結果です。無数の人々の。オペレーティング システム カーネル自体は、利用可能な開発システムのほんの一部にすぎません。一般的な UNIX システムには、システム サービスやツールを提供するアプリケーションも含まれていますが、Linux システムの場合、これらのプログラムは多くのプログラマによって作成され、自由にリリースされます。
Linux コミュニティはフリー ソフトウェアの概念をサポートしています。つまり、ソフトウェア自体は制限されるべきではなく、GNU (GNU は GNU の Not UNIX の再帰的略語です) 一般公衆利用許諾書 (GPL) に準拠しています。
The Free Software Foundation は Richard Stallman によって設立されました。その目的は、UNIX システムと互換性があるが、UNIX の名前とソース コードのプライバシー権によって制限されないオペレーティング システムと開発システムを作成することです。 。
GNU プロジェクトは、UNIX システム上のアプリケーションの模倣品をソフトウェア コミュニティに多数提供してきました。たとえば、有名なものは、
GCC: GNU Compiler Collection。GNU C コンパイラが含まれています。
G: G コンパイラ、GCC の一部。
GDB: ソース コード レベルのデバッガー。
GNU make
bash: コマンド インタプリタ (シェルの一種)
これらの利用可能なフリー ソフトウェアと Linux カーネルを組み合わせることで、次のように言えます。 GNU、無料の UNIX のようなシステムは、Linux システムを通じて実現されています。 GNU ソフトウェアの貢献により、現在では多くの人が Linux システムのことを GNU/Linux と呼んでいます。
仕事をうまくやり遂げたいなら、まずツールを磨く必要があります。Linux プログラムを開発したい場合は、ビルドする必要があります。まずは開発環境。
Linux開発ではLinuxシステム環境のインストールが必要で、開発用のUbuntuシステムのインストールには一般にVMWareが使用されます。具体的なインストールプロセスについては、次の投稿を参照してください https://zhuanlan.zhihu.com/p/38797088. ここではあまり詳しく説明しません。
Secure Shell (SSH) は、IETF (The Internet Engineering Task Force) によって開発されたアプリケーション層に基づく安全なネットワーク プロトコルです。 FTP、Pop、Telnet などの従来のネットワーク サービス プログラムは本質的に安全ではありません。データ、ユーザー アカウント、ユーザー パスワードをネットワーク上でプレーン テキストで送信するため、中間者攻撃に対して脆弱です。
SSH はクライアント openssh-client とサーバー openssh-server に分かれており、ssh クライアントを使用してシステムにログインするには、ubuntu システムに ssh サーバーをインストールする必要があります。
現在の ubuntu IP アドレスは 192.168.176.148
Ubuntu に ssh サーバーをインストールした後、次に使用します。 MobaXterm を使用して Windows システムに接続し、ssh サーバーが正常にインストールされているかどうかをテストします。操作手順は次のとおりです。
Xterm ソフトウェアを実行し、次の図に示すように「セッション」を選択します。
「SSH」をクリックして、図に示すように設定します。以下の図:
このダイアログ ボックスで、「プロトコル」として「SSH」、「ホスト名」として ubuntu の IP アドレス、およびユーザー名として現在のユーザー名を選択します。 。ポート番号にはデフォルト値の 22 を使用します。設定完了後、「OK」をクリックすると以下のコマンドラインターミナルが表示され、仮想マシンのUbuntuシステムが接続されたことがわかります。
この方法により、ホストと開発ボード間のネットワーク通信が正常であることを確認した後、開発ボードにログインできるようになります。
Visual Studio Code (略して VSCode) は、Microsoft の無料エディターであり、Windows、Linux、および macOS バージョンで利用できます。クロスプラットフォームエディター。インストール手順はご自身で検索していただくことも可能です ここでは主にC/Cプログラム開発に使用する拡張パッケージを紹介します インストール手順は下図のとおりです:
次のプラグイン-ins は一般的に使用されており、インストールする必要があります:
C/C。
C/C スニペット、C/C 再利用コード ブロック。
C/C Advanced Lint、つまり C/C 静的検出。
コード ランナー、つまりコードの実行。
AutoComplete (ヘッダー ファイルの自動組み込み) を組み込みます。
虹括弧、虹中括弧は、コードを読むのに役立ちます。
One Dark Pro、VSCode のテーマ。
GBKtoUTF8、GBK を UTF8 に変換します。
ARM。ARM アセンブリ構文の強調表示をサポートします。
中国語(簡体字)、つまり中国語環境。
vscode-icons、VSCode アイコン プラグイン、主にリソース マネージャー配下の各フォルダーのアイコン。
compareit (比較プラグイン) は、2 つのファイル間の差異を比較するために使用できます。
DeviceTree (デバイス ツリー構文プラグイン)。
Markdown Preview 強化されたマークダウン プレビュー プラグイン。
Maridown pdf、.md ファイルを他の形式に変換します。
Linux コマンドは数百ありますが、初心者にとっては一般的に使用されるコマンドはそれほど多くないため、習得する必要はありません。日々の勉強や仕事の過程で、馴染みのない Linux コマンドに出会っても、時間をかけてさらに情報を確認することで自然に覚えられるようになります。以下は、Linux の最も基本的な 17 個のコマンドの紹介です。
#クリア
## 4 、ディレクトリとファイル
ディレクトリやファイルのパスは絶対パスと相対パスに分かれており、絶対パスは/usr/etc/readme.txtのようにルート(/)から計算されます。相対パスは現在の作業ディレクトリから計算され、現在の作業ディレクトリが /usr の場合、etc/readme.txt は /usr/etc/readme.txt と同等になります。さらに、1 つのドットは現在の作業ディレクトリを示し、2 つのドット... は現在の作業ディレクトリの上位ディレクトリを示します。 以下は、Linux システム ディレクトリ構造についての簡単な説明です。多くのユーザーが Linux システム ディレクトリ構造について突飛な考えを持たないようにするために、Linux Foundation は FHS 標準をリリースしました。ほとんどの Linux ディストリビューション システムはこの標準に従っています。注: FHS (Filesystem Hierarchy Standard)、ファイル システム階層標準。Linux システムにおけるすべての第 1 レベル ディレクトリと一部の第 2 レベル ディレクトリ (/usr および /var) の使用を指定します。この標準を公開する主な目的は、各ディレクトリにどのような種類のファイルを保存する必要があるかをユーザーが明確に理解できるようにすることです。
1) Linux ルート ディレクトリ (/)
usr (ユーザーではないことに注意)、フルネームは Unix Software Resource で、このディレクトリはシステム ソフトウェア リソースの保存に使用されます。 FHS では、開発者が製品用に別のディレクトリを作成するのではなく、/usr ディレクトリのサブディレクトリにソフトウェア製品データを配置することをお勧めします。
Linux システムでは、すべてのシステムのデフォルト ソフトウェアは /usr ディレクトリに保存されます。/usr ディレクトリは、Windows システムの C:\Windows\ C:\Program files\ の組み合わせに似ています。
FHS では、/usr ディレクトリに次の表に示すようなサブディレクトリを設けることを推奨しています。
/var ディレクトリは、キャッシュ、ログ ファイル、ソフトウェアの実行中に生成されるファイルなどの動的データを保存するために使用されます。一般に、表 4 に示すように、このディレクトリにこれらのサブディレクトリを含めることをお勧めします。
pwd
#cd ディレクトリ名
を入力します。
は list の略です。ls
コマンドを使用すると、ディレクトリとファイルの情報だけでなく、権限、サイズ、所有者、グループ、および権限も表示できます。ディレクトリやファイルのその他の情報。 オプション
-l
ディレクトリとファイルの詳細をリストします。 例:
#2) 現在の作業ディレクトリ内のすべてのディレクトリとファイル名に関する詳細情報を一覧表示します。
3) 正規表現
例:
ls open*.zip
##8. ディレクトリを作成します
2) 現在の作業ディレクトリに aaa ディレクトリを作成します。そして、aaa ディレクトリに bbb ディレクトリを作成します。
9、ディレクトリとファイルを削除します
オプション -r
でディレクトリを削除できます。-r を使用しない場合は、ファイルのみを削除できます。削除されました。
オプション-f
は強制削除を示し、確認は必要ありません。
1) aaa ディレクトリを削除します
2) 現在作業しているディレクトリを強制的に削除しますdirectory ccc.c file
##9. ディレクトリとファイルの移動
# に変更します。 ##mv book.c book1.c
mv book.c OPC/test3
mv book.c OPC/test3
cp [-r] 古いディレクトリまたはファイル名 新しいディレクトリまたはファイル名
オプション -r
オプション
がない場合は、ディレクトリをコピーできます。ファイルのコピーのみが可能です。
1) 現在の作業ディレクトリにある book1.c ファイルを book2.c
cp book1.c book2 にコピーします。 .c
cp aaa bbb -r
cp book1.c aaa/book1.c にコピーします。
#4) 現在の作業ディレクトリの aaa ディレクトリを /tmp/aaa
## にコピーします。 #
cp -r aaa /tmp/.
上記 2 つのコマンドは同じ効果があります。
ping -c パケット数 IP アドレスまたはドメイン名
pingローカル ホストが別のホストとデータ パケットを正常に交換できるかどうか、およびネットワークがスムーズであるかどうかを判断します。
Baidu のサーバーが
できることがわかります。
Google のサーバーが
であることがわかります。意味がありません。
、## の 3 つのコマンドがあります。 #more と
tail。
1) cat コマンド
cat コマンドは、ファイル全体の内容を一度に表示します。
2) その他のコマンド
読みやすくするために、more コマンドはファイルの内容をページ単位で表示します。スペース バーを押すと次のページが表示され、b キーを押すと前のページが表示され、 q キーを押して終了します。
3) tail コマンド
tail -f
tail -f は非常に重要で、バックグラウンド サービス プログラムのログを動的に表示し、プログラムのデバッグと実行の追跡に使用できます。
13. テキストファイルの行数、ワード数、バイト数をカウントする
#14. ファイル内の内容を検索
例:
1) main.cpp ファイル内で signal
#15. ファイルの検索
1) find
ファイル名: 検索するファイル名に一致するルール。 例:
OPC ディレクトリから検索を開始し、すべての *.cpp ファイルを表示します。
find OPC -name *.cpp
2)locate
ファイル名を検索
locate open62541.c
注: このコマンドを初めて使用する場合は、次の操作が必要になる場合があります。データベースを更新するには、プロンプトに従ってコマンドを実行してください。
find は主に特定のディレクトリ内のあいまい検索に使用され、locate は領域全体の正確な位置を特定するために使用されます。
16. chmod コマンド
は、Linux ファイルまたはディレクトリのアクセス許可を変更するために使用されます。このコマンドには 2 つの用途があります。 1 つは文字と演算子式を含むテキスト設定方法、もう 1 つは数字を含む数値設定方法です。
最初の列には 10 個の位置があり、最初の文字はファイルの種類を指定します。通常の意味では、ディレクトリもファイルです。最初の文字がダッシュの場合、それは非ディレクトリ ファイルであることを意味します。 dの場合はディレクトリを意味します。 2 文字目から 10 文字目までの合計 9 文字があり、3 文字のグループは、ファイルまたはディレクトリに対する 3 つのユーザー グループの権限を表します。パーミッション文字は水平線を使用して空のパーミッションを表し、r は読み取り専用、w は書き込み、x は実行可能を表します。 <p> 一般的に使用されるパラメータ: </p>
<ul style="list-style-type: disc;">
<li><p> -c 変更が発生した場合、処理情報をレポートします </p></li>
<li><p> -R 指定されたディレクトリとそのサブディレクトリを処理します すべてfiles</p></li>
</ul>
<p> 権限範囲:</p>
<ul style="list-style-type: disc;">
<li><p> u: ディレクトリまたはファイルの現在のユーザー</p></li>
<li><p> g: ディレクトリまたはファイルの現在のグループ </p></li>
<li><p># o: ディレクトリまたはファイルの現在のユーザーまたはグループ以外のユーザーまたはグループ </p></li>
<li><p># a: すべてのユーザーとグループ </p></li>
</ul>
<p> 権限コード: </p>
<ul style="list-style-type: disc;">
<li>
<p> r: 読み取り権限 (数字 4</p> ##) </li>
<li># w: 書き込み権限 (番号 2<p></p>
</li>
<li> で表されます) x: 実行権限 (番号 1<p></p>
</li>
<li> で表されます) # -: 削除権限 (番号 0<p></p>
</li>
<li> で表されます) s: 特別な権限<p></p>
</li>
</ul>例:<p></p>1) 削除ファイルの例 すべてのユーザーは実行可能権限を持っています<h5></h5>
<p>chmod a-x の例<code>
3) aaa ディレクトリとそのサブディレクトリ内のすべてのファイルに読み取り権限を追加します
17. システム ディスク容量を確認します
オプション-h
読みやすい形式で情報を表示します:
df -h
オプション
-T ファイル一覧 システムタイプ:
df -h -T
3. Linux環境変数の説明
2) ライフサイクルによる分類。
永続的な環境変数: 環境変数スクリプト ファイルで設定すると、これらのスクリプトはユーザーがログインするたびに自動的に実行されます。これは永続的な効果と同等です。
3) Linux 環境変数
Linux 環境変数はシェル環境変数とも呼ばれ、アンダースコアと文字で始まり、アンダースコア、文字 (大文字と小文字が区別される)、数字で構成されます。これらは、PATH、HOSTNAME、LANG などのように、慣習的に使用される大文字です。
注: env コマンドを使用すると、多くの環境変数が画面に表示され、見にくいですが、grep を使用してフィルタリングできます。
env|grep 環境変数名
たとえば、名前に PATH が含まれる環境変数を確認します。
#env|grep PATH
echo $環境変数名
3.2.2 一般的に使用される環境変数
1) PATH
エコー $LANG
サーバーのホスト名。
echo $HOSTNAME
ユーザーが現在使用しているシェル パーサー。
echo $SHELL
保存された履歴コマンドの数。
現在ログインしているユーザーのユーザー名。
echo $USER
現在ログインしているユーザーのホーム ディレクトリ。
echo $HOME
現在の作業ディレクトリ。
echo $PWD
C/C 言語ダイナミック リンク ライブラリ ファイルの検索ディレクトリではありません。 Linux のデフォルトの環境変数ですが、C/C プログラマにとっては非常に重要です。具体的な使用方法については、この記事の後の章で詳しく説明します。
export 変数名='値'
環境変数の値がスペースやその他の特殊なシンボルは一重引用符なしで含めることができます。
例:
export PATH=$PATH:.
上記のコマンドは、現在のシェルの環境変数 PATH に .directory を追加します (はい)。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
上記のコマンドは、現在のシェルの環境変数 LD_LIBRARY_PATH に .directory を追加します。
3.3.1 システム環境変数
1) /etc/profile ファイルに設定します。
2) 環境変数スクリプト ファイルを /etc/profile.d ディレクトリに追加します。これは Linux で推奨される方法です。
/etc/profile.d ディレクトリには、多数のスクリプト ファイルがあります。例:
ls /etc/profile.d
#3) /etc/bashrc ファイルに環境変数を設定します。
3.3.2 ユーザー環境変数
ユーザーのホーム ディレクトリには、いくつかの特別なファイルがあります。これらは、
ls では表示されませんが、ls .bash*
では表示できます。
1).bash_profile (推奨)
2).bashrc
3).bash_logout
4).bash_history
3.4 重要な環境変数の詳細説明
ls /bin/ls
ls
コマンドが /bin ディレクトリにあることがわかります。
現時点では、コマンドを実行します export PATH=
PATH 変数をクリアしてから、ls
コマンドを実行します。システムは、ls
コマンドが見つからないことを示すプロンプトを表示します。
/bin ディレクトリを環境に追加した後は、絶対パス /bin/ls
を使用できます。変数 PATH 、 ls
も実行できます。
例:
例のコマンドを現在のディレクトリで実行すると、実行できないことを示すメッセージが表示されます。
環境変数 PATH に dot. を追加すると実行できるようになります。
export PATH=$PATH:.
C/ C 言語のダイナミック リンク ライブラリ ファイルが検索されるディレクトリ。これは Linux のデフォルトの環境変数ではありませんが、C/C プログラマにとっては非常に重要です。
LD_LIBRARY_PATH 環境変数にはディレクトリのリストも格納されます。ディレクトリはコロン: で区切られ、最後のドット . は現在のディレクトリを示し、PATH と同じ形式になります。
export LD_LIBRARY_PATH=ディレクトリ 1: ディレクトリ 2: ディレクトリ 3:... ディレクトリ n:.
この環境変数は、次回このレッスンで使用します。 Linux の静的ライブラリと動的ライブラリを詳しく紹介します。
1) シェルでは、エクスポートで設定された環境変数は現在のシェルですぐに有効になり、シェルの終了後は無効になります。出る。
2) スクリプト ファイルに設定された環境変数は、すぐには有効になりません。シェルを終了して再度ログインした後でのみ有効になります。または、たとえば、source コマンドを使用してすぐに有効になります。 :
source /etc/profile
環境変数を設定する方法はたくさんありますが、システム環境変数を /etc/profile に設定することをお勧めします。 .d ディレクトリに設定し、ユーザー環境変数はユーザーの .bash_profile に設定します。他のスクリプト ファイルで環境変数を設定することは推奨されません。システムの運用や保守に手間がかかり、エラーが発生しやすくなります。
関連する推奨事項: 「Linux ビデオ チュートリアル 」
以上がLinux オペレーティング システムの一般的なコマンドと環境変数について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。