📕

【読書メモ】はじめてUNIXで仕事をする人が読む本

2023/11/01に公開

https://a.co/eqEmtqZ

メモ

  • UNIXとは、
    • UNIXは現存する最古のOSであり、MacOS、Linuxなど多くの派生OS・互換OSが存在する
  • telnetコマンド
    • UNIXの端末とホストの通信を、ネットワーク上でも可能にしたのがTelnetプロトコル
    • Telnetには、「通信を平文で行う」という致命的な弱点があ理、通信内容が筒抜けになってしまう
    • リモートホストを操作する際は安全にログインできる「SSH」を利用する機会が多くなった
    • それでも「Telnetコマンド」は利用価値があ流。TCPサーバの動作確認などができるため、実務を行う上で非常に重要かつ有益なコマンド
  • シェル、シェルスクリプト
    • シェルはOSのカーネルとユーザーの橋渡しをするプログラムでシェルスクリプトによって操作可能
    • シェルを活用するとOSの操作を自動化したり、データ抽出を効率化したりできるため便利
  • シンボリックリンク,ハードリンク
  • オンラインマニュアルを使いこなせ
    • manコマンド
    • infoコマンド
    • infoのコンテンツのほうが充実している傾向があるけど、みやすさはmanかも
    • オンラインマニュアルが付属していない場合は、コマンドの実行オプションとして--helpを指定
  • とりあえず sudo つけて実行すれば管理者権限で実行できると勘違いしていた
    • sudoersファイルで、このコマンドは実行しても良いですよと許可をもらっているだけ
  • ユーザーとグループ管理
    • ユーザー情報が格納されている場所:/etc/passwd
    • グループ情報が格納されている場所:/etc/group
    • idコマンド:ユーザー情報を確認する
    • useraddコマンド:ユーザーの設定を追加する。
    • usermodコマンド:ユーザーの設定を変更する。
    • userdelコマンド:ユーザーを削除する。
    • groupaddコマンド:グループを追加する。
    • groupmodコマンドグループの設定を変更する。
    • groupdelコマンド:グループを削除する。
    • chownコマンド:ディレクトリやファイルの所有者を変更する。
    • chgrpコマンド:ディレクトリやファイルにアクセスできるグループを変更する。
    • chmodコマンド:ディレクトリやファイルのアクセス権を変更する。
    • passwdコマンド:ユーザーのパスワードを設定、変更する。
    • whoamiコマンド:ログインしているユーザのユーザIDを取得する
    • groupsコマンド:ユーザーの所属しているグループ一覧を表示
  • aptコマンド:Debian系(Ubuntuとか)のLinuxでソフトウェアのインストールや管理、アンインストールに用いられるパッケージ管理コマンド(RedHat系Linuxのyum、dnfに相当する)
  • ifconfigコマンド,ipコマンド、netstatコマンド
    • ifconfig、netstatコマンドは古くて長くメンテナンスされていないので非推奨され、ipコマンドに移行
    • ipコマンドは、ネットワークデバイスやルーティング、ポリシーなどの表示と変更を行うコマンド
  • etc/hosts
    • 「/etc/hosts」ファイルは、ホスト名とIPアドレスを対応させるためのファイル
  • nslookup,dig,host
    • nslookupコマンド:IPアドレスからドメイン名を確認すること、ドメイン名からIPアドレスを確認することができるコマンド
    • nslookupコマンドと比べて機能が多いという特徴があり、Linuxでは、今後nslookupコマンドの廃止とdigコマンドへの移行
  • 名前解決をするコマンド
    • nslookup
    • host
    • dig
  • ネットワーク疎通確認コマンド
    • ping
    • traceroute
  • psコマンドをオプションなしで実行すると、自分が現在起動しているプロセスを表示できる
  • コンパイラ、インタプリンタ
    • コンパイラ:ソースコードを実行可能な形式に変換してくれるプログラム
    • インタプリンタ:ソースコードを読み込みながらその場で実行してくれるプログラム
  • Makefile
    • コンパイル、依存関係の管理、インストールなどのルールを記述しておくためのファイル
  • JDK
    • JDKにはJavaプログラムの言語処理系を構成するコンパイラ(javac)やデバッガ(jdb)、アーカイバ(jar)、Javaプログラムの実行環境(JVM)などが含まれる。
    • ほとんどのソフトウェアは実行可能形式のコマンドラインツールとして提供されており、シェルやコマンドプロンプトからコマンド名とオプション、自ら開発したプログラムのファイル名などの引数を指定して実行する。
  • pathが通っているかを確認追加
  • tcp/ipとosi参照モデルの比較
  • CSMA/CD
  • イーサネット
    • 有線接続のルール

Discussion