Kuangshen が Linux ノートについて語ります。Linux ノートをゼロから学びましょう。

1. 導入概要

ビデオリンク: Notes ビデオリンク

1.1. なぜ Linux を学ぶ必要があるのでしょうか?

Linux は何年も前から存在しています。以前は、Linux が Windows システムにどのように置き換わるかについてまだ叫ばれていました。今では、このスローガンははるかに小さくなりました。どんなものの開発にも限界と限界があります。中国でテンセントに代わる別のソーシャルソフトウェアを構築するのと同じように、ユーザーはコミュニケーションにWeChatを使用することにすでに慣れているため、それを考えることは基本的に不可能です。技術的な実装を理解していないのではなく、人々がすでに慣れているからですたとえ親戚や友人が使わないとしても、あなたは使わなければなりません。

Windows オペレーティング システムに慣れている人が他のオペレーティング システムに切り替えることは基本的に不可能であり、その人が身に付けた習慣を変えるのはあまりにも困難です。一般の人々の生活に浸透する方法はありませんが、Linux に活躍の場がないわけではありません。サーバーサイドでは、開発分野で Linux の人気が高まっています。多くのプログラマは Linux について何も知らないと恥ずかしいと感じています。オープンソース コミュニティにおける Linux の地位は変わっていません。

特にバックエンド プログラマーとして Linux をマスターする必要があります。Linux は仕事を見つけるための基本的な基準になっているため、習得する必要があります。

1.2. Linux の概要

Linux カーネルは、もともとフィンランド人の Linus Torvalds がヘルシンキ大学の学生だったときに趣味として作成したものです。

Linux は、無料で使用でき、自由に配布されている Unix に似たオペレーティング システムであり、POSIX (ポータブル オペレーティング システム インターフェイス) と UNIX をベースにしたマルチユーザー、マルチタスク、マルチスレッド、およびマルチ CPU オペレーティング システムです。

Linux は、主要な UNIX ソフトウェア ツール、アプリケーション、およびネットワーク プロトコルを実行できます。32 ビットおよび 64 ビットのハードウェアをサポートします。Linux は、Unix のネットワーク中心の設計哲学を継承しており、安定したパフォーマンスを備えたマルチユーザー ネットワーク オペレーティング システムです。

1.3. Linux ディストリビューション

簡単に言うと、Linux ディストリビューションは、Linux カーネルとアプリケーション ソフトウェアのパッケージです。

画像

Kali linux: セキュリティ侵入テストに使用されます。

現在市場に出ているよく知られたディストリビューションには、Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS などがあります。

画像

1.4. Linux アプリケーション領域

現在、組み込み機器からスーパーコンピュータに至るまで、さまざまなLinuxディストリビューションがさまざまな場面で利用され、サーバー分野での地位を確立していますが、通常サーバーではLAMP(Linux + Apache + MySQL + PHP)またはLNMP(Linux + Nginx + MySQL + PHP)が使用されます。 )の組み合わせ。

Linux は現在、家庭や企業で使用されているだけでなく、政府機関でも非常に普及しています。

  • ブラジル連邦政府は Linux のサポートで世界的に有名です。
  • ロシア軍独自の Linux ディストリビューションが GHOST プロジェクトとして実現したというニュースが流れています。
  • インドのケーララ州連盟は、連盟全体の高校での Linux の使用を促進することを計画しています。
  • 技術的な独立性を達成するために、中華人民共和国は Loongson プロセッサで Linux を独占的に使用しています。
  • スペインの一部の地域では独自の Linux ディストリビューションを開発しており、エストレマドゥーラ州の gnuLinEx やアンダルシア州の Guadalinex など、政府や教育分野で広く使用されています。
  • ポルトガルも、マガリェスのラップトップと e-escola 政府ソフトウェアに独自の Linux ディストリビューションである Caixa Mágica を使用しています。
  • フランスやドイツも徐々にLinuxを導入し始めている。

1.5、Linux と Windows の比較

画像

2. 環境構築

Linux のインストール手順は比較的複雑です (オペレーティング システム自体もソフトウェアです)。現在、クラウド サーバーは実際に非常に一般的で、価格も安価です。直接構築したくない場合は、サーバーを購入するだけで済みます。学ぶ!

CentOS をインストールします (ローカルにインストールすることはお勧めしません。経済的なリソースがない場合は、ローカルに構築することを検討できます)

Linux はオペレーティング システムであり、コンピュータにデュアル システムをインストールすることもできます。

仮想マシン (VMware ダウンロード (有料、登録コード!)

公式ウェブサイトのダウンロード:

インストールが完了したら、ソフトウェアを開くと、次のインターフェイスが表示されます。

[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムが備わっている可能性があります。画像を保存して直接アップロードすることをお勧めします (img-n6aW3SOc-1680868916280) (E:\notes\typora-user-images\image) -20230401173750029.png)]

仮想マシンに CentOS7 をインストールする

1.ミラーリングで設置可能!ダウンロードアドレス: [http://mirrors.aliyun.com/centos/7/isos/x86_64/, ダウンロードが完了したらインストールしてください。オペレーティング システムのインストールはソフトウェアのインストールと同じです 注: Linux ディスクをパーティション分割するときは、パーティション名に注意する必要があります。/ブート/ホーム!

2.私が作った画像を使っても大丈夫です!(狂った神は自分の鏡を作りました!) Baidu Cloud リンクを使用してダウンロードしてください。

リンク: https://pan.baidu.com/s/1e0YEzN3BW0DDXFtMscvvVA抽出コード: 716m このコンテンツをコピーした後、Baidu Netdisk モバイル アプリを開いて操作をより便利にします。

3. VMware 仮想マシン ソフトウェアをインストールし、イメージを開いて使用します。

開封後の様子:

[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムが備わっている可能性があります。画像を保存して直接アップロードすることをお勧めします (img-pcinIzSq-1680868916280) (E:\Notes\typora-user-images\image) -20230401173732870.png)]

VMware の使用方法:

画面をクリックして仮想マシンに入ります。Ctrl + Alt は仮想マシンの終了に重点を置きます。

3. Linux システムに近づく

3.1. 電源投入後のログイン

起動時に多くのプログラムが起動します。これらは、Windows では「サービス」、Linux では「デーモン」と呼ばれます。

起動に成功すると、よく見るログイン インターフェイスであるテキスト ログイン インターフェイスが表示されます。このログイン インターフェイスでは、ユーザーはユーザー名の入力を求められ、ユーザーが入力したユーザーがパラメーターとして渡されます。ユーザーを確認するためにログイン プログラムにアクセスします。ID とパスワードは表示されません。入力後に Enter を押すだけです。

一般に、ユーザーがログインするには次の 3 つの方法があります。

コマンドラインログイン、sshログイン、グラフィカルインターフェースログイン、そして最高権限のアカウントはrootであり、すべてを操作できます。

3.2. シャットダウン

Linux 分野では主にサーバーで使用されており、シャットダウン操作が発生することはほとんどありません。結局のところ、サーバー上でサービスを実行することに終わりはなく、特別な状況がない限り、最後の手段としてサービスはシャットダウンされます。

シャットダウン コマンドは次のとおりです。

sync # 将数据由内存同步到硬盘中。
shutdown # 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:
shutdown –h 10 # 这个命令告诉大家,计算机将在10分钟后关机
shutdown –h now # 立马关机
shutdown –h 20:25 # 系统会在今天20:25关机
shutdown –h +10 # 十分钟后关机
shutdown –r now # 系统立马重启
shutdown –r +10 # 系统十分钟后重启
reboot # 就是重启,等同于 shutdown –r now
halt # 关闭系统,等同于shutdown –h now 和 poweroff

最後に、システムを再起動するかシャットダウンするかに関係なく、まず sync コマンドを実行してメモリ内のデータをディスクに書き込む必要があります。

3.3. システムのディレクトリ構造

1. すべてがファイルです 2. ルート ディレクトリ /、すべてのファイルはこのノードの下にマウントされます

システムにログインした後、現在のコマンド ウィンドウにコマンドを入力します。

ls /

次のようなものが表示されます。

[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムが備わっている可能性があります。画像を保存して直接アップロードすることをお勧めします (img-9MGTXjXW-1680868916281) (E:\notes\typora-user-images\image) -20230401174038032.png)]

ツリーディレクトリ構造:

これらのディレクトリについては次のとおりです。

  • /bin: bin は Binary の略で、このディレクトリには最も頻繁に使用されるコマンドが格納されます。
  • /boot: Linux の起動時に使用されるいくつかのコア ファイル (接続ファイルやイメージ ファイルなど) がここに保存されます。(移動しない)
  • /dev: dev は Linux の外部デバイスを格納する Device の略称で、Linux でデバイスにアクセスする方法はファイルにアクセスする方法と同じです。
  • /etc:このディレクトリは、システム管理に必要なすべての構成ファイルとサブディレクトリを保存するために使用されます。
  • /home: ユーザーのホーム ディレクトリ。Linux では、各ユーザーが独自のディレクトリを持ちます。通常、ディレクトリ名はユーザーのアカウントにちなんで付けられます。/lib: このディレクトリには、システムの最も基本的なダイナミック リンク共有ライブラリが格納されており、その機能は Windows の DLL ファイルに似ています。(移動しないでください) /lost+found: このディレクトリは通常は空ですが、システムが不正にシャットダウンされた場合、いくつかのファイルがここに保存されます。(突然シャットダウンされたいくつかのファイルを保存しています)
  • /media: Linux システムは、U ディスク、CD-ROM ドライブなどの一部のデバイスを自動的に認識します。認識後、Linux は、認識されたデバイスをこのディレクトリにマウントします。
  • /mnt: システムは、ユーザーが他のファイル システムを一時的にマウントできるようにするためにこのディレクトリを提供します。光学式ドライブを /mnt/ にマウントし、このディレクトリに入って光学式ドライブの内容を表示できます。(後でこのディレクトリにいくつかのローカル ファイルをマウントします)
  • /opt: これは、ホスト用の追加ソフトウェアがインストールされるディレクトリです。たとえば、ORACLE データベースをインストールする場合は、このディレクトリに配置できます。デフォルトは空です。
  • /proc: このディレクトリはシステムメモリをマッピングした仮想ディレクトリであり、このディレクトリに直接アクセスすることでシステム情報を取得できます。(気にしない)
  • /root: このディレクトリは、システム管理者 (超特権者とも呼ばれます) のユーザー ホーム ディレクトリです。
  • /sbin: s はスーパーユーザーを意味し、システム管理者が使用するシステム管理プログラムが格納されます。/srv: このディレクトリには、サービスの開始後に抽出する必要があるデータが保存されます。
  • /sys: これは Linux 2.6 カーネルにおける大きな変更です。2.6 カーネルに登場した新しいファイル システム sysfs がこのディレクトリにインストールされます。
  • /tmp: このディレクトリは、いくつかの一時ファイルを保存するために使用されます。使用後に破棄されるファイルをこのディレクトリに配置してパッケージをインストールできます。 /usr: これは非常に重要なディレクトリであり、Windows のプログラム ファイル ディレクトリと同様に、多くのユーザー アプリケーションとファイルがこのディレクトリに配置されます。/usr/bin: システム ユーザーが使用するアプリケーション。
  • /usr/sbin: スーパー ユーザーが使用する、より高度な管理プログラムとシステム デーモン。
  • Super /usr/src: カーネル ソース コードのデフォルトの配置ディレクトリ。
  • /var: このディレクトリには、常に拡張するものが保存されます。私たちは、頻繁に変更されるディレクトリをこのディレクトリに配置することに慣れています。さまざまなログ ファイルが含まれます。
  • /run: は、システムの起動以降の情報を保存する一時ファイル システムです。システムが再起動したら、このディレクトリ内のファイルを削除またはクリアする必要があります。/www: サーバー Web サイト関連のリソース、環境、Web サイト プロジェクトを保存します。

4.よく使われる基本コマンド

4.1. ディレクトリ管理

4.1.1. 絶対パス、相対パス

絶対パスの完全名: C:\ProgramData\360safe\xxx.xx

たとえば、360safe ディレクトリでは、xxx.xx ファイルは相対構成 /xxx.xx に対応します。

cd: ディレクトリ切り替えコマンド! ./: 現在のディレクトリ cd...: 前のディレクトリに戻ります (cd の前に英語のピリオドが 2 つ付きます)

4.1.2、ls (ディレクトリのリスト!)

ls はおそらく Linux で最も一般的に使用されます。

-a パラメータ: all、隠しファイルを含むすべてのファイルを表示します。 -l パラメータは、ファイル属性とアクセス許可を含むすべてのファイルをリストします。隠しファイルのないすべての Linux を組み合わせて使用​​できます。

4.1.3. ディレクトリを切り替える cd コマンド

cd ディレクトリ名 (/ で始まる絶対パス、相対パス、現在のディレクトリの見つけ方.../.../)

4.1.4. mkdir はディレクトリを作成します

mkdir xxx: ディレクトリを作成します。 mkdir -p test2/test3/test4: 複数レベルのディレクトリを作成します。

[root@kuangshen home]# mkdir test1 # 创建目录
[root@kuangshen home]# ls
install.sh kuangshen kuangstudy test1 www
[root@kuangshen home]# cd test1
[root@kuangshen test1]# cd ..
[root@kuangshen home]# mkdir test2/test3/test4 # 创建多级目录
mkdir: cannot create directory ‘test2/test3/test4’: No such file or directory
[root@kuangshen home]# mkdir -p test2/test3/test4
[root@kuangshen home]# ls
install.sh kuangshen kuangstudy test1 test2 www
[root@kuangshen home]# cd test2
[root@kuangshen test2]# ls
test3
[root@kuangshen test2]# cd test3
[root@kuangshen test3]# ls
test4
4.1.5. rmdir ディレクトリの削除

rmdir xxx: 空でないディレクトリを削除します rmdir -p test2/test3/test4: ディレクトリを強制的に削除します

[root@kuangshen test3]# cd /home
[root@kuangshen home]# ls
install.sh kuangshen kuangstudy test1 test2 www
[root@kuangshen home]# rmdir test1
[root@kuangshen home]# ls
install.sh kuangshen kuangstudy test2 www
[root@kuangshen home]# rmdir test2
rmdir: failed to remove ‘test2’: Directory not empty
[root@kuangshen home]# rmdir -p test2
rmdir: failed to remove ‘test2’: Directory not empty
[root@kuangshen home]# rmdir -p test2/test3/test4
[root@kuangshen home]# mkdir -p test2/test3/test4
[root@kuangshen home]# rmdir test2/test3/test4
[root@kuangshen home]# ls
install.sh kuangshen kuangstudy test2 www
[root@kuangshen home]# mkdir -p test2/test3/test4
[root@kuangshen home]# ls
install.sh kuangshen kuangstudy test2 www
[root@kuangshen home]# rmdir -p test2/test3/test4
[root@kuangshen home]# ls
install.sh kuangshen kuangstudy www

rmdir は空のディレクトリしか削除できません。以下のファイルがある場合は、まずファイルを削除し、-p パラメータを使用して複数のディレクトリを再帰的に削除する必要があります。

4.1.6、cpコピーファイルディレクトリ

cp 元の場所 新しい場所 ファイルが重複している場合は、上書き (y) または破棄 (n) を選択します

[root@kuangshen home]# cp install.sh kuangstudy # 拷贝文件至目录
[root@kuangshen home]# ls
install.sh kuangshen kuangstudy www
[root@kuangshen home]# cd kuangstudy/
[root@kuangshen kuangstudy]# ls
install.sh
[root@kuangshen kuangstudy]# cd ..
[root@kuangshen home]# cp install.sh kuangstudy # 如果文件重复,就选则覆盖(y)或者 放弃(n)
cp: overwrite ‘kuangstudy/install.sh’? y
[root@aubin aubin]# cd /
[root@aubin /]# cd home 
[root@aubin home]# ls
aubin  test  test2
[root@aubin home]# cd test 
[root@aubin test]# touch test.txt
[root@aubin test]# ls
test.txt
[root@aubin home]# cp test/test.txt test2 
[root@aubin home]# cd test2
[root@aubin test2]# ls
test.txt
4.1.7、rm はファイルディレクトリを削除します

-f は存在しないファイルを無視し、警告は表示されず、強制的に削除されます。-r ディレクトリを再帰的に削除します。-i 対話型で削除し、削除するかどうかを尋ねます rm -rf / ライブラリを削除して逃走します rm -rf / # システム内のすべてのファイルが削除されます ライブラリを削除して逃亡する方法はこれです!

[aubin@aubin /]$ su
密码:
[root@aubin /]# cd /
[root@aubin /]# cd  home
[root@aubin home]# ls
aubin  test  test2
[root@aubin home]# cd test
[root@aubin test]# ls
test2  test.txt
[root@aubin test]# rm -rf test.txt
[root@aubin test]# ls
test2
[root@aubin test]# 

-f は存在しないファイルを無視し、警告は表示されず、強制的に削除されます。

-r ディレクトリを再帰的に削除します。

-i 対話型、削除し、削除するかどうかを尋ねます

4.1.8、mv ファイルディレクトリの移動

フォルダーの名前を変更することもできます

-f 更新されたファイルのみを -u に強制的に置き換えます mv install.sh kuangstudy ファイルを移動します mv kuangstudy kuangstudy2 フォルダーの名前を変更します

[root@aubin test]# cd ..
[root@aubin home]# ls
aubin  test  test2
[root@aubin home]# cd test2
[root@aubin test2]# ls
test.txt
[root@aubin test2]# cd ..
[root@aubin home]# mkdir test3
[root@aubin home]# ls
aubin  test  test2  test3
[root@aubin home]# mv test2/test.txt test3
[root@aubin home]# cd test3
[root@aubin test3]# ls
test.txt
[root@aubin test3]# cd ..
[root@aubin home]# mv test3 test4
[root@aubin home]# ls
aubin  test  test2  test4
[root@aubin home]# 

4.2. 基本属性

10文字1種類

4.2.1. ファイル属性を理解する

Linux システムは典型的なマルチユーザー システムであり、ユーザーが異なれば、立場も権限も異なります。システムのセキュリティを保護するために、Linux システムでは、異なるユーザーが同じファイル (ディレクトリ ファイルを含む) にアクセスする権限について、異なる規制が設けられています。

Linux では、ll または ls -l コマンドを使用して、次のようなファイルの属性と、ファイルが属するユーザーおよびグループを表示できます。

[root@aubin home]# ls -ll
总用量 4
drwx------. 16 aubin aubin 4096 3月  22 18:20 aubin
drwxr-xr-x.  2 root  root    35 3月  22 18:31 test
drwxr-xr-x.  2 root  root     6 3月  22 18:33 test2
drwxr-xr-x.  2 root  root    22 3月  22 18:33 test4

この例では、ルート ファイルの最初の属性は「d」で表されます。Linux の「d」は、ファイルがディレクトリ ファイルであることを意味します。

Linux では、最初の文字は、ファイルがディレクトリ、ファイル、リンク ファイルなどであるかどうかを示します。

  1. [d]の場合はディレクトリです
  2. [-]の場合はファイルです
  3. [l]の場合はリンク(リンクファイル)で表現します
  4. [b]の場合、デバイスファイルに格納可能なインターフェースデバイス(ランダムアクセスデバイス)であることを意味します。
  5. [c]の場合は、デバイスファイル内のキーボードやマウスなどのシリアルポートデバイス(ワンタイム読み取りデバイス)を意味します。

各ファイルの属性は、左側の最初の部分の 10 文字によって決まります (以下を参照)。

画像

それらは左から右に 0 ~ 9 の数字で表されます。

ビット 0 はファイルの種類を決定し、ビット 1 ~ 3 はファイルに対するアクセス許可を持つ所有者 (ファイルの所有者) を決定します。ビット 4 ~ 6 は、グループ (所有者と同じグループ内のユーザー) がファイルに対するアクセス許可を持っていることを決定し、ビット 7 ~ 9 は他のユーザーがファイルに対するアクセス許可を持っていることを決定します。

で:

ビット 1、4、7 は読み取り許可を示します。「r」文字で表されている場合は読み取り許可があり、「-」文字で表されている場合は読み取り許可がありません。

2ビット目、5ビット目、8ビット目は書き込み許可を示し、「w」の場合は書き込み許可あり、「-」の場合は書き込み許可なし、「-」の場合は書き込み許可なしを示します。

3桁目、6桁目、9桁目は実行権限を表しており、「×」文字で表されている場合は実行権限あり、「-」文字で表されている場合は実行権限がありません。

ファイルには特定の所有者があり、それはファイルを所有するユーザーです。

同時に、Linux システムでは、ユーザーはグループによって分類され、ユーザーは 1 つ以上のグループに属します。

ファイル所有者以外のユーザーは、ファイル所有者と同じグループ内のユーザーとそれ以外のユーザーに分けることができます。

したがって、Linux システムでは、ファイル所有者、ファイル所有者のグループ内のユーザー、およびその他のユーザーに基づいて、さまざまなファイル アクセス許可が規定されています。

上記の例では、テスト ファイルはディレクトリ ファイルであり、所有者とグループは両方とも root です。

4.2.2. ファイル属性の変更

1. chgrp: ファイルグループを変更します。

chgrp [-R] 属组名 文件名

-R: ファイル グループを再帰的に変更します。つまり、ディレクトリ ファイルのグループ所有権を変更する場合、-R パラメータを追加すると、ディレクトリ内のすべてのファイルのグループ所有権が変更されます。

2. chown: ファイルの所有者を変更します。同時にファイル グループも変更できます。

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

3. chmod: ファイルの 9 つの属性を変更します (マスターする必要があります)

このファイルを操作する権限がありません。

chmod [-R] xyz 文件或目录

Linux ファイルの属性を設定するには 2 つの方法があります。1 つは数字 (数字が一般的に使用されます) で、もう 1 つは記号です。

Linux ファイルには 9 つの基本的な権限があり、所有者、グループ、その他の 3 つの ID にはそれぞれ独自の読み取り/書き込み/実行権限があります。

上で述べたデータを確認してみましょう。ファイルのパーミッション文字は「-rwxrwxrwx」です。これら 9 つのパーミッションは 3 つのグループに分かれています。このうち、各権限を数値で表すことができ、各権限のスコア比較表は以下のとおりです。

r:4    w:2    x:1   #对应数值

可读可写不可执行 rw- 6
可读可写不课执行 rwx 7

chomd  777  文件赋予所有用户可读可执行!

各 ID (所有者/グループ/その他) の 3 つの権限 (r/w/x) スコアを蓄積する必要があります。たとえば、権限が [-rwxrwx—] の場合、スコアは次のようになります。

所有者 = rwx = 4+2+1 = 7 グループ = rwx = 4+2+1 = 7 その他 = — = 0+0+0 = 0

chmod 770 filename
4.2.3. ファイルの内容を表示する

ファイル表示を頻繁に使用します。

Linux システムで次のコマンドを使用して、ファイルの内容を表示します。

cat はファイルの内容を 1 行目から表示します。記事の読み取りや設定ファイルの読み取りに使用されます。cat 名が使用されます。

tacは最終行から表示されており、tacはcatを逆から書いたものであることがわかります。

[root@aubin test]# echo 'hwt' >> test.txt
[root@aubin test]# cat test.txt
hwt
[root@aubin test]# echo 'aa' >> test.txt
[root@aubin test]# cat test.txt
hwt
aa
[root@aubin test]# tac test.txt
hwt
aa

nl表示の場合は行番号を出力します!コードを見るときに行番号を表示したい!よく使われる

[root@aubin test]# nl test.txt
     1	hwt
     2	aa

more は、残りのコンテンツとともにファイルのコンテンツをページごとに表示します (スペースはページをめくるという意味、Enter は 1 行下に見ることを意味します、:f 行番号)

「less」は「more」に似ていますが、「more」よりも優れているのは、ページを進めることができることです。(スペースはページをめくるのに使用され、pageDown キーと pageUp キーはページをめくるのを表します。q コマンドを終了し、照会する文字列/文字を検索し、下方向に検索します。照会する文字列には ? を使用し、検索するには n を使用します。次は N で検索してください!)

head は最初の数行のみを参照し、-n パラメータを使用して表示する行数を制御します。

[root@aubin test]# head -n 1 test.txt
hwt

tail は、末尾行の -n パラメータだけを見て、行数を確認します。

[root@aubin test]# tail -n 1 test.txt
aa

man [command] を使用すると、man cp などの各コマンドの使用法に関するドキュメントを表示できます。

ネットワーク構成ディレクトリ: cd /etc/sysconfig/network-scripts

ifconfig コマンドを使用してネットワーク構成を表示します。

4.2.4、Linuxリンク

拡張: Linux リンクの概念 (理解するだけ!)

Linux には、ハード リンクとソフト リンクという 2 種類のリンクがあります。

**ハード リンク:**A-B、B が A へのハード リンクであると仮定すると、両方とも同じファイルを指します。ファイルは複数のパスを持つことができます。ユーザーはこのメカニズムを使用して、重要なファイルへのハード リンクを確立し、誤って削除されることを防ぐことができます。

ソフトリンク: Windows のショートカットと同様に、削除されたソース ファイルにはショートカットからアクセスできません。

ln コマンドで接続を作成してください!

touch コマンドでファイルが作成されます。

入力文字列をエコーし​​、ファイルに入力することもできます。

[root@kuangshen home]# touch f1 # 创建一个f1文件
[root@kuangshen home]# ls
f1 install.sh kuangshen www
[root@kuangshen home]# ln f1 f2 # 创建一个硬链接 f2
[root@kuangshen home]# ls
f1 f2 install.sh kuangshen www
[root@kuangshen home]# ln -s f1 f3 # 创建一个软链接(符号连接) f3
[root@kuangshen home]# ls
f1 f2 f3 install.sh kuangshen www
[root@kuangshen home]# ll
total 28
-rw-r--r-- 2 root root 0 Mar 24 20:17 f1
-rw-r--r-- 2 root root 0 Mar 24 20:17 f2
lrwxrwxrwx 1 root root 2 Mar 24 20:18 f3 -> f1
-rw-r--r-- 1 root root 20078 Mar 4 16:48 install.sh
drwxr-xr-x 2 root root 4096 Mar 23 21:25 kuangshen
drwxrw---x 2 www www 4096 Mar 23 12:46 www
[root@kuangshen home]# echo "i love kuangshen" >>f1 # 给f1文件中写入一些字符串!
[root@kuangshen home]# ls
f1 f2 f3 install.sh kuangshen www
[root@kuangshen home]# clear
[root@kuangshen home]# ll
total 36
-rw-r--r-- 2 root root 17 Mar 24 20:19 f1
-rw-r--r-- 2 root root 17 Mar 24 20:19 f2
lrwxrwxrwx 1 root root 2 Mar 24 20:18 f3 -> f1
-rw-r--r-- 1 root root 20078 Mar 4 16:48 install.sh
drwxr-xr-x 2 root root 4096 Mar 23 21:25 kuangshen
drwxrw---x 2 www www 4096 Mar 23 12:46 www
[root@kuangshen home]# cat f1 # 查看f1
i love kuangshen
[root@kuangshen home]# cat f2 # 查看f2
i love kuangshen
[root@kuangshen home]# cat f3 # 查看f3
i love kuangshen

f1を削除した後、f2とf3の違いを確認してください

f1を削除した後、f2とf3の違いを確認してください

[root@kuangshen home]# rm -rf f1
[root@kuangshen home]# ls
f2 f3 install.sh kuangshen www
[root@kuangshen home]# cat f2 # f2 硬链接还在
i love kuangshen
[root@kuangshen home]# cat f3 # f3(软连接、符号连接)快捷方式失效!
cat: f3: No such file or directory

4.3. Vim エディター

4.3.1. Vimエディタとは

いくつかのプラグインを使用することで IDE と同じ機能を実現できます。

Vimはviから開発されたテキストエディタです。特にコード補完、コンパイル、エラージャンプなどプログラミングを容易にする機能が豊富で、プログラマーの間で広く使われています。特に Linux では、Vim を使用できる必要があります (コンテンツの表示、コンテンツの編集、コンテンツの保存!)。

vi は一言で言えば昔ながらのワープロですが、機能はすでに非常に完成されていますが、まだまだ改善の余地があります。

vimはプログラム開発者にとって非常に便利なツールと言えます。

すべての Unix 類似システムには vi ドキュメント エディタが組み込まれていますが、他のドキュメント エディタが存在しない場合があります。

vim の公式 Web サイト ( http://www.vim.org ) 自体でも、vim はワードプロセッサ ソフトウェアではなくプログラム開発ツールであると述べています。

vim キーボード図:

画像

4.3.2. 3 つの使用モード

基本的に vi/vim はコマンド モード(Command モード)、入力モード(Insert モード)、ボトムライン コマンド モード(Last line モード)の 3 つのモードに分かれています。これら 3 つのモードの機能は次のとおりです。

**コマンド モード:** ユーザーは vi/vim を起動し、コマンド モードに入ったところです。

この状態のキーストロークは、文字を入力するのではなく、Vim によってコマンドとして認識されます。たとえば、このとき i を押しても文字は入力されず、コマンドとして扱われます。

一般的に使用されるコマンドの一部を次に示します。

i 入力モードに切り替えて文字を入力します。x 現在のカーソル位置の文字を削除します。: 最下行コマンドモードに切り替えて、最下行にコマンドを入力します。編集モードの場合は、まず編集モードを終了する必要があります。ESC テキストを編集する場合: Vim を起動し、コマンド モードに入り、i を押して入力モードに切り替えます。

コマンド モードには最も基本的なコマンドの一部しかないため、さらに多くのコマンドを入力するには、依然として最下位のコマンド モードに依存する必要があります。

**入力モード:** コマンド モードで i を押して入力モードに入ります。

入力モードでは、次のキーが使用できます。

文字キーとShiftの組み合わせ、文字入力 ENTER、キャリッジリターンキー、ラインフィード BACK SPACE、バックスペースキー、カーソル前の文字を削除 DEL、削除キー、カーソル後の文字を削除 方向キー、テキスト内のカーソルを移動 HOME/ END、カーソルを Page Up/Page Down で行頭/行末に移動、Insert でページを上下に移動、カーソルを入力/置換モードに切り替え、カーソルが縦棒/下線になります ESC、終了入力モードの場合は、コマンド モードに切り替えます ボトムライン コマンド モード: コマンド モードで、: (英語のコロン) を押してボトムライン コマンド モードに入ります。カーソルが一番下に移動したので、ここにいくつかの最終行のコマンドを入力できます。

**最下行コマンド モード:** 単一文字または複数文字のコマンドを入力でき、使用可能なコマンドが多数あります。

ボトムラインコマンドモードでは、基本的なコマンドは次のとおりです (コロンは省略されています): wq

  • q プログラムを終了します w ファイルを保存します
  • ESC キーを押すと、いつでもボトムライン コマンド モードを終了できます。
  • 簡単に言えば、これら 3 つのモードは以下のアイコンとして考えることができます。

画像

4.3.3. 完全なデモンストレーション手順

ファイルを作成または編集するには、i を押して編集モードに入り、内容を書き込み、書き込み後に編集モードを終了し、esc キーを押して、終了後に最下行コマンド モードに入ります。 wq 保存して終了します。

[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムが備わっている可能性があります。画像を保存して直接アップロードすることをお勧めします (img-J9OvL1C1-1680868916282) (E:\notes\typora-user-images\image) -20230401234420160.png)]

[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムが備わっている可能性があります。画像を保存して直接アップロードすることをお勧めします (img-WmSORGQX-1680868916282) (E:\notes\typora-user-images\image) -20230401234437350.png)]

4.3.4. Vim ボタンの説明

上記の簡単な例の i、Esc、:wq に加えて、vim では実際に使用できるキーが多数あります。

その1:一般モードで利用可能なカーソル移動、コピー&ペースト、検索&置換など

カーソルの移動方法
h または左矢印キー (←) カーソルを 1 文字左に移動します
j または下矢印キー (↓) カーソルを 1 文字下に移動します
k または上矢印キー (↑) カーソルを 1 文字上に移動します
l または右矢印キー (→) カーソルを 1 文字右に移動します
[Ctrl] + [f] 画面を 1 ページ下に移動します。[Page Down] ボタンに相当します (よく使用されます)。
[Ctrl] + [b] 画面を「上」に 1 ページ移動します。[Page Up] ボタンに相当します (よく使用されます)。
[Ctrl] + [d] 画面を半ページ「下」に移動します
[Ctrl] + [u] 画面を半ページ「上」に移動します
+ カーソルをスペース以外の文字の次の行に移動します。
- カーソルをスペース以外の文字の前の行に移動します
n<スペース> n は 20 などの「数値」を表します。数字を押してからスペースバーを押すと、カーソルがこの行の n 文字分右に移動します。
0またはファンクションキー[ホーム] これは数字「0」です: この行の先頭の文字に移動します (一般的に使用されます)
$またはファンクションキー[終了] この行の最後の文字に移動 (よく使用されます)
H カーソルを画面の最上行の最初の文字に移動します
M カーソルを画面中央の行の最初の文字に移動します
L カーソルを画面の最下行の最初の文字に移動します
G このファイルの最終行に移動 (一般的に使用されます)
nは数値です。このファイルの n 行目に移動します。たとえば、20G はこのファイルの 20 行目に移動されます (:set nu とともに使用できます)。
ぐぐ このファイルの先頭行への移動は 1G に相当します。(よく使われる)
n<Enter> nは数値です。カーソルを n 行下に移動します (一般的に使用されます)
検索と置換
/言葉 カーソルの下で word という名前の文字列を探します。たとえば、ファイル内で文字列 vbird を検索する場合は、「/vbird!」と入力するだけです。(よく使われる)
?言葉 カーソルの上にある word という名前の文字列を検索します。
n このnは英語ボタンです。前回の検索を繰り返すアクションを表します。たとえば、/vbird を実行して文字列 vbird を下方向に検索した場合、n を押した後、vbird という名前の次の文字列を下方向に検索が続行されます。?vbird が実行されている場合、n を押すと vbird! という名前の文字列が上方向に検索され続けます。
N このNが英語ボタンです。n の逆で、前の検索アクションを「逆」に実行します。たとえば、/vbird の後に N を押すと、vbird を検索する「上」を意味します。
削除、コピー&ペースト
×、× 単語行内で、x は後ろに 1 文字削除([del] キーに相当)、X は前に 1 文字削除([backspace]、つまりバックスペースキーに相当)(よく使われます)
nx n は数字で、n 文字を後ろに連続して削除します。例えば「10x」という10文字を連続して削除したいとします。
DD カーソルが置かれている行全体を削除します (一般的に使用されます)
ND nは数値です。カーソルの位置から下方向に n 行を削除します。たとえば、20dd は 20 行を削除します (一般的に使用されます)。
d1G カーソル位置から先頭行までのデータをすべて削除します
dG カーソル位置から最終行までのデータをすべて削除します
d$ カーソル位置から行の最後の文字までを削除
d0 それは数字の 0 です。カーソルがある場所から行の最初の文字までを削除します。
やあ カーソルのある行をコピーします(よく使われます)
ニューヨーク nは数値です。カーソルが置かれている下方向に n 行コピーします。たとえば、20yy は 20 行をコピーすることを意味します (一般的に使用されます)
y1G カーソル行のすべてのデータを最初の行にコピーします
yG カーソル行から最終行まですべてのデータをコピーします
y0 カーソルのある文字を行頭の全データにコピーします
y$ カーソルのある文字から行末までの全データをコピーします。
p、P p はコピーしたデータをカーソルの下の行に貼り付けることを意味し、P はカーソルの上の行に貼り付けることを意味します。たとえば、カーソルは現在 20 行目にあり、10 行のデータがコピーされています。p を押すと、元の 20 行の後ろ、つまり 21 行目から 10 行のデータが貼り付けられます。しかし、P を押したらどうなるでしょうか? その後、元の行 20 が行 30 にプッシュされます。(よく使われる)
J カーソル行と次の行のデータを同じ行に結合します
c 複数のデータを繰り返し削除します。たとえば、10 行下を削除する [10cj]
あなた 前の操作を元に戻します。(よく使われる)
[Ctrl]+r 前のアクションをやり直します。(よく使われる)

パート 2: 一般モードから編集モードに切り替えるために使用できるボタンの説明

入力または置換のために編集モードに入ります
私、私 入力モードに入る (挿入モード): i は「現在のカーソル位置から入力」を意味し、I は「現在の行の最初の非スペース文字から入力を開始する」を意味します。(よく使われる)
あ、あ 入力モード(挿入モード)に入ります。 a は「現在カーソルがある次の文字から入力を開始する」を意味し、A は「カーソルが位置している行の最後の文字から入力を開始する」を意味します。(よく使われる)
その、、 入力モードに入る (挿入モード): これは、英語の文字 o の大文字と小文字のバージョンです。o は「現在のカーソルがある次の行に新しい行を入力する」を意味し、O は現在のカーソルの上の行に新しい行を入力することを意味します。(よく使われる)
r、R 置換モードに入る: r はカーソルの位置にある文字を 1 回だけ置換します。R は ESC が押されるまで常にカーソルの位置のテキストを置換します。(一般的に使用されます)
[ESC] 編集モードを終了し、通常モードに戻ります(一般的に使用されます)

パート 3: 一般モードからコマンド ライン モードに切り替えるために使用できるボタンの説明

コマンドラインストレージ、終了およびその他のコマンド
:w 編集データをハードディスクファイルに書き出す(共用)
:w! ファイル属性が「読み取り専用」の場合、ファイルは強制的に書き込まれます。ただし、書き込みできるかどうかは、そのファイルに対するファイル権限に依存します。
:q vi を終了します (一般的に使用されます)
:q! ファイルを変更した後で保存したくない場合は、! を使用してファイルを保存せずに強制終了します。
vi の感嘆符 (!) は「力」を意味することが多いので注意してください~
:wq 保存して放置します。wq! の場合、強制的に保存して放置します(よく使われます)
グーグー これは大文字のZです!ファイルが変更されていない場合は保存せずに終了し、ファイルが変更されている場合は保存して終了してください。
:w [ファイル名] 編集したデータを別ファイルとして保存(名前を付けて保存と同様)
:r [ファイル名] 編集したデータに、別のファイルからデータを読み込みます。つまり、カーソルが置かれている行の末尾にファイルの内容「ファイル名」を追加します。
:n1,n2 w [ファイル名] n1~n2の内容をファイルfilenameに格納します。
:! 指示 一時的に vi を終了し、コマンド ライン モードでコマンドを実行して結果を表示します。たとえば、「:! ls /home」を使用すると、vi の /home にある ls によって出力されたファイル情報を表示できます。
:いいえを設定します 行番号を表示する 設定後、各行の先頭にその行の行番号が表示されます。
:セット9 set nuとは逆に、行番号をキャンセルします。

4.4. アカウント管理

通常、会社にいるときは root アカウントを使用すべきではありません。

4.4.1. はじめに

Linux システムは、マルチユーザー、マルチタスク、タイムシェアリング オペレーティング システムです。システム リソースを使用したいユーザーは、まずシステム管理者にアカウントを申請し、そのアカウントとしてシステムに入る必要があります。

ユーザーのアカウントは、システム管理者がシステムを使用しているユーザーを追跡し、システム リソースへのアクセスを制御するのに役立つ一方で、ユーザーがファイルを整理し、ユーザーにセキュリティ保護を提供するのにも役立ちます。

各ユーザー アカウントには一意のユーザー名とそれぞれのパスワードがあります。

ユーザーがログイン時に正しいユーザー名とパスワードを入力すると、システムと自分のホーム ディレクトリに入ることができます。

ユーザー アカウントの管理を実現するには、主に次のような作業が必要です。

ユーザーアカウントを追加、削除、変更します。ユーザーのパスワードの管理。ユーザーグループの管理。

4.4.2. ユーザーアカウントの管理

ユーザーアカウントの管理には、主にユーザーアカウントの追加、変更、削除が含まれます。

ユーザー アカウントの追加とは、システムに新しいアカウントを作成し、ユーザー番号、ユーザー グループ、ホーム ディレクトリ、ログイン シェルなどのリソースを新しいアカウントに割り当てることを意味します。

オーナー、グループ

4.4.3. ユーザー useradd の追加

useradd - オプションのユーザー名

パラメータの説明:

  • オプション:

    • -c comment コメントの説明を指定します。

    • -d ディレクトリはユーザーのホーム ディレクトリを指定します。このディレクトリが存在しない場合は、-m オプションを同時に使用してホーム ディレクトリを作成します。

    • -g usergroup は、ユーザーが属するユーザー グループを指定します。

    • -G ユーザー グループ、ユーザー グループは、ユーザーが属する追加のグループを指定します。

    • -m ユーザーディレクトリが存在しない場合は、自動的に作成されます。

    • -s シェル ファイルは、ユーザーのログイン シェルを指定します。

    • -u ユーザー番号はユーザーのユーザー番号を指定します。-o オプションも指定すると、他のユーザーの識別番号を再利用できます。

  • ユーザー名 :

    • 新しいアカウントのログイン名を指定します。
[root@centos7 home]# useradd -m hwt2
[root@centos7 home]# ls
hwt  hwt2  hwt.txt

本質を理解してください: Linux ではすべてがファイルです。ここでユーザーを追加するとは、ユーザーの情報を特定のファイルに書き込むことです。

/etc/パスワード

4.4.4. ユーザー userdel の削除

userdel -r qinjiang ユーザーを削除するときは、そのユーザーのディレクトリ ページも一緒に削除してください。

[root@centos7 home]# userdel -r hwt2
4.4.5. ユーザー usermod を変更する

ユーザーusermodを変更し、変更内容に応じたユーザーを変更します。

[root@centos7 home]# usermod -d /home/233 qinjiang
修改完毕之后查看配置文件即可!

変更が完了したら、設定ファイルを確認してください。

4.4.6. ユーザーの切り替え

ルートユーザー

  1. ユーザーを切り替えるコマンドは次のとおりです: su username [username はあなたのユーザー名です]

  2. 通常のユーザーから root ユーザーに切り替えるには、次のコマンドを使用することもできます: sudo su

  3. ターミナルで exit または logout と入力するか、ショートカット ctrl+d を使用して元のユーザーに戻ります。実際、ctrl+d は実行される exit コマンドでもあります。

[root@centos7 home]# su hwt
[hwt@centos7 home]$ 
  1. ユーザーを切り替えるときに、ユーザーを切り替えた後に新しいユーザーの作業環境を使用したい場合は、su とユーザー名の間に - を追加できます。例: [su - root]

$ は通常のユーザー # はスーパー ユーザー、つまり root ユーザーを意味します 何人かの友人が Alibaba Cloud でサーバーを購入した後、ホスト名はランダムな文字列になります。

4.4.7. ユーザーパスワードの設定

通常、ユーザーは root を通じて作成します。パスワードを設定する必要があります!

Linux で入力したパスワードは表示されませんが、システム上の問題ではなく、通常どおり入力してください。

会社では通常、会社のサーバーに対する root 権限はなく、すべてのサーバーにアカウントが割り当てられています。

スーパーユーザーの場合:

passwd username:
new password:
re password:

通常のユーザーの場合:

passwd
(current) UNIX password:   # 输当前用用户密码
new password: # 密码不能太过于简单!
re password:
4.4.8. ユーザーのパスワード管理

たとえば、ルート、張三氏は辞任しました!このアカウントを凍結します。凍結されると、この人はシステムにログインできなくなります。

コマンドの形式は次のとおりです。

passwd 选项 用户名

利用可能なオプション:

  • -l はパスワードをロックします。つまり、アカウントを無効にします。
  • -u パスワードのロックを解除します。
  • -d を指定すると、アカウントにパスワードが設定されなくなります。
  • -f を指定すると、ユーザーは次回ログインするときにパスワードの変更を強制されます。

デフォルトのユーザー名が使用されている場合は、現在のユーザーのパスワードを変更します。

passwd -l qinjiang # 锁定之后这个用户就不能登录了!
passwd -d qinjiang # 没有密码也不能登录!

会社では、通常、root ユーザーにアクセスすることはできません。開発者としては、通常はそれを理解することはできません。

誰もがこれらの基本的なコマンドをマスターする必要があります。しかし、自分でプレイすると学習に使用できます。Linux はマルチユーザー システムです。

4.5. ユーザーグループの管理

オーナー、グループ

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理(开发、测试、运维、root)。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

4.5.1、创建用户组

groupadd

创建完用户组后可以得到一个组的id,这个id是可以指定的! -g 520, 如果不指定就是自增1

[root@centos7 home]# groupadd hwt2
[root@centos7 home]# cat /etc/group
4.5.2、删除用户组

groupdel

[root@centos7 home]# groupdel hwt2
[root@centos7 home]# cat /etc/group
4.5.3、修改用户组

修改用户组的权限信息和名字 groupmod -g -n

常用的选项有:

  • -g GID 为用户组指定新的组标识号。
  • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
  • -n新用户组 将用户组的名字改为新名字
# 此命令将组hwt的组标识号修改为102。
[root@centos7 home]# groupmod -g 102 hwt
# 将组hwt的标识号改为10000,组名修改为hwt2。
[root@centos7 home]# groupmod -g 10000 -n hwt2  hwt
4.5.4、切换用户组

如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。

用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:

登录当前用户 qinjiang
$ newgrp root
4.5.5、文件的查看
/etc/passwd

4.5.5、拓展:文件的查看!(了解即可) /etc/passwd

用户名:口令(登录密码,我们不可见):用户标识号:组标识号:注释性描述:主目录:登录Shell
这个文件中的每一行都代表这一个用户,我们可以从这里看出这个用户的主目录在哪里,可以看到属于哪一个组!

登录口令:把真正的加密后的用户口令字存放到**/etc/shadow**文件中,保证我们密码的安全性!

用户组的所有信息都存放在**/etc/group**文件中。

拓展:用户文件解析
/etc/passwd 用户文件
/etc/shadow 用户密码文件

4.6、磁盘管理

4.6.1、磁盘空间使用量

Linux磁盘管理好坏直接关系到整个系统的性能问题。

Linux磁盘管理常用命令为 df、du。

  • df (列出文件系统整体的磁盘使用量)

  • du(检查磁盘空间使用量!)

df

df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

语法:

df [-ahikHTm] [目录或文件名]

选项与参数:

  • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
  • -k :以 KBytes 的容量显示各文件系统;
  • -m :以 MBytes 的容量显示各文件系统;
  • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
  • -H :以 M=1000K 取代 M=1024K 的进位方式;
  • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
  • -i :不用硬盘容量,而以 inode 的数量来显示

测试:

# 将系统内所有的文件系统列出来!
# 在 Linux 底下如果 df 没有加任何选项
# 那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来!
[root@centos7 home]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
devtmpfs                  914568       0   914568    0% /dev
tmpfs                     931496       0   931496    0% /dev/shm
tmpfs                     931496   10668   920828    2% /run
tmpfs                     931496       0   931496    0% /sys/fs/cgroup
/dev/mapper/centos-root 49250820 6341956 42908864   13% /
/dev/sda1                1038336  173488   864848   17% /boot
tmpfs                     186300      44   186256    1% /run/user/0

# 将容量结果以易读的容量格式显示出来
[root@centos7 home]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 894M     0  894M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M   11M  900M    2% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root   47G  6.1G   41G   13% /
/dev/sda1               1014M  170M  845M   17% /boot
tmpfs                    182M   44K  182M    1% /run/user/0

# 将系统内的所有特殊文件格式及名称都列出来
[root@centos7 home]# df -aT
文件系统                类型               1K-块    已用     可用 已用% 挂载点
sysfs                   sysfs                  0       0        0     - /sys
proc                    proc                   0       0        0     - /proc
devtmpfs                devtmpfs          914568       0   914568    0% /dev
securityfs              securityfs             0       0        0     - /sys/kernel/security

# 将 /etc 底下的可用的磁盘容量以易读的容量格式显示
[root@centos7 home]# df -h /etc
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   47G  6.1G   41G   13% /

du

Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍Linux du命令。

语法:

du [-ahskm] 文件或目录名称

选项与参数:

  • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
  • -h :以人们较易读的容量格式 (G/M) 显示;
  • -s :列出总量而已,而不列出每个各别的目录占用容量;
  • -S :不包括子目录下的总计,与 -s 有点差别。
  • -k :以 KBytes 列出容量显示;
  • -m :以 MBytes 列出容量显示;

测试:

# 只列出当前目录下的所有文件夹容量(包括隐藏文件夹):
# 直接输入 du 没有加任何选项时,则 du 会分析当前所在目录的文件与目录所占用的硬盘空间。
[root@centos7 home]# du
0	./hwt/.mozilla/extensions/{
    
    ec8030f7-c20a-464f-9b0e-13a3a9e97384}
0	./hwt/.mozilla/extensions
0	./hwt/.mozilla/plugins
0	./hwt/.mozilla/firefox/mgoelv6b.default-default/storage/permanent/chrome/idb/3870112724rsegmnoittet-es.files
0	./hwt/.mozilla/firefox/mgoelv6b.default-default/storage/permanent/chrome/idb/3561288849sdhlie.files
4.6.2、挂载磁盘或文件

Mac 或者想使用Linux 挂载我们的一些本地磁盘或者文件!

挂载:mount

mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点

测试:

# 将 /dev/hdc6 挂载到 /mnt/hdc6 上面!
[root@centos7 home]# mkdir /mnt/hdc6
[root@centos7 home]# mount /dev/hdc6 /mnt/hdc6
[root@centos7 home]# df
Filesystem           1K-blocks     Used Available Use% Mounted on
/dev/hdc6              1976312     42072   1833836   3% /mnt/hdc6

卸载:umount -f [挂载位置] 强制卸载

umount [-fn] 装置文件名或挂载点

选项与参数:

  • -f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
  • -n :不升级 /etc/mtab 情况下卸除。

卸载/dev/hdc6

[root@www ~]# umount /dev/hdc6

除了这个之外,以后我们安装了JDK ,其实可以使用java中的一些命令来查看信息!

4.7、进程管理

Linux中一切皆文件

(文件:读写执行(查看,创建,删除,移动,复制,编辑),权限(用户、用户组)。系统:(磁盘,进程))

对于我们开发人员来说,其实Linux更多偏向于使用即可!

4.7.1、基本概念

1、在Linux中,每一个程序都是有自己的一个进程,每一个进程都有一个id号! 2、每一个进程呢,都会有一个父进程! 3、进程可以有两种存在方式:前台!后台运行! 4、一般的话服务都是后台运行的,基本的程序都是前台运行的!

4.7.2、命令

ps 查看当前系统中正在执行的各种进程的信息!

ps -xx :

-a 显示当前终端运行的所有的进程信息(当前的进程一个) -u 以用户的信息显示进程 -x 显示后台运行进程的参数!

ps -aux 查看所有的进程
ps -aux|grep mysql
| 在Linux这个叫做管道符 A|B
grep 查找文件中符合条件的字符串!

对于我们来说,这里目前只需要记住一个命令即可 ps -xx|grep 进程名字! 过滤进程信息!

ps -ef:可以查看到父进程的信息

ps -ef|grep mysql # 看父进程我们一般可以通过目录树结构来查看!
进程树!
pstree -pu
-p 显示父id
-u 显示用户组
[root@centos7 home]# ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.3 193980  7140 ?        Ss   4月01   0:08 /usr/lib/systemd/sys
root          2  0.0  0.0      0     0 ?        S    4月01   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   4月01   0:00 [kworker/0:0H]
root          6  0.0  0.0      0     0 ?        S    4月01   0:00 [ksoftirqd/0]

结束进程:杀掉进程,等价于window结束任务!

kill -9 进程的id

但是啊,我们平时写的一个Java代码死循环了,可以选择结束进程!杀进程

kill -9 进程的id

表示强制结束该进程!

将Java程序打包发布的时候讲解! nohup ,代表后台执行程序

5、环境安装

安装软件一般有三种方式:

rpm(Jdk:在线发布一个SringBoot项目!) 解压缩(tomcat,启动并通过外网访问,发布网站) yum在线安装(docker:直接安装运行跑起来docker就可以!)!

5.1、JDK安装

我们开发java程序必须要的环境! 1、下载JDK rpm。去oralce 官网下载即可! 2、安装java环境

# 检测当前系统是否存在java环境! java -version
# 如果有的话就需要卸载
# rpm -qa|grep jdk # 检测JDK版本信息
# rpm -e --nodeps jdk_
# 卸载完毕后即可安装jdk
# rpm -ivh rpm包
# 配置环境变量!

如果存在可以提前卸载:

安装:

配置环境变量: /etc/profile 在文件的最后面增加java的配置和 window安装环境变量一样!

JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
CLASSPATH=%JAVA_HOME%/lib;%JAVA_HOME%/jre/lib
#PATH=$JAVA_HOME/bin;$JAVA_HOME/jre/bin   这行和下面的PATH不需要
export PATH CLASSPATH JAVA_HOME

让这个配置文件生效! source /etc/profile 我们来发布一个项目试试!

# 开启防火墙端口

firewall-cmd --zone=public --add-port=9000/tcp --permanent

# 重启防火墙

systemctl restart firewalld.service

# 查看所有开启的端口,如果是阿里云,需要配置安全组规则!

firewall-cmd --list-ports

5.2、Tomcat 安装

ssm war 就需要放到tomcat 中运行!

1、下载tomcat。官网下载即可 tomcat9 apache-tomcat-9.0.22.tar.gz

2、解压这个文件

tar -zxvf apache-tomcat-9.0.22.tar.gz

3、启动tomcat测试! ./xxx.sh 脚本即可运行

# 执行 ./startup.sh
# 停止 ./shotdown.sh

如果防火墙8080 端口开了并且阿里云安全组也开放了这个时候就可以直接访问远程了!

# 查看firewall服务状态

systemctl status firewalld

# 开启、重启、关闭、firewalld.service服务

# 开启

service firewalld start

# 重启

service firewalld restart

# 关闭

service firewalld stop

# 查看防火墙规则

firewall-cmd --list-all # 查看全部信息
firewall-cmd --list-ports # 只看端口信息

# 开启端口

开端口命令:firewall-cmd --zone=public --add-port=8080/tcp --permanent
重启防火墙:systemctl restart firewalld.service
命令含义:
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议

--permanent #永久生效,没有此参数重启后失效

上传完毕的项目直接购买自己的域名,备案解析过去即可!1年级都会做!

域名解析后,如果端口是80 - http 或者 443-https 可以直接访问,如果是 9000 8080,就需要通过Apcahe或者Nginx做一下反向代理即可,配置文件即可,十分之简单,大家如果想要上线自己的网站,到目前为止,那么你可以如愿以偿了!

5.3、Docker(yum安装)

联网的情况下 yum install -y yum 源

官网安装参考手册:[https://docs.docker.com/engine/install/centos/]

我们现在是在Linu下执行,一定要联网 ,yum 在线安装!

  1. 检测CentOS 7

    [root@root home]# cat /etc/redhat-release
    CentOS Linux release 7.9.2009 (Core)
    
  2. 云安装gcc相关

    yum -y install gcc
    yum -y install gcc-c++
    
  3. 卸载旧版本

    yum -y remove docker docker-common docker-selinux docker-engine
    # 官网版本
    yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine
    
  4. 安装需要的软件包

    yum install -y yum-utils device-mapper-persistent-data lvm2
    
  5. 设置stable镜像仓库

    # 错误
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    ## 报错
    [Errno 14] curl#35 - TCP connection reset by peer
    [Errno 12] curl#35 - Timeout
     
    # 正确推荐使用国内的
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  6. 更新yum软件包索引

    yum makecache fast
    
  7. 安装Docker CE

    yum -y install docker-ce docker-ce-cli containerd.io
    
  8. 启动docker

    systemctl start docker
    
  9. 测试

    docker version
     
    docker run hello-world
    

宝塔面板安装:【【狂神说Java】服务器购买及宝塔部署环境说明】https://www.bilibili.com/video/BV177411K7bH?vd_source=fc3cd85ae71adf3029479673754f6dff

docker-engine

官网版本

yum 削除 docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine




4. 安装需要的软件包

```bash
yum install -y yum-utils device-mapper-persistent-data lvm2
```

5. 设置stable镜像仓库

```bash
# 错误
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
## 报错
[Errno 14] curl#35 - TCP connection reset by peer
[Errno 12] curl#35 - Timeout
 
# 正确推荐使用国内的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
```

6. 更新yum软件包索引

```bash
yum makecache fast
```

7. 安装Docker CE

```bash
yum -y install docker-ce docker-ce-cli containerd.io
```

8. 启动docker

```dockerfile
systemctl start docker
```

9. 测试

```dockerfile
docker version
 
docker run hello-world
```





宝塔面板安装:【【狂神说Java】服务器购买及宝塔部署环境说明】https://www.bilibili.com/video/BV177411K7bH?vd_source=fc3cd85ae71adf3029479673754f6dff

おすすめ

転載: blog.csdn.net/qq_44624801/article/details/130019571