コース内容#
vim 基本使用#
- クイックジャンプ
- 行の先頭:0 [^ 有効行首]
- 行の末尾:$
- ファイルの開始:gg
- ファイルの末尾:G
- 任意の行:12G——12 行にジャンプ
- コピー
- コピー
- カット
- 複数行操作
- 削除
- x:1 文字削除
- d
- 2dd:現在の行から 2 行削除
- d2G:2 行目から現在の行まで削除
Linux の歴史#
- C 言語:どのように生まれたのか?システムとの結びつきは?
- Linux の本質 [Linux は通常 Linux カーネル、Linux オペレーティングシステムを指す]
- Linux と Windows の違い [Linux 初期のユーザーに対する態度:できる人は良いと言い、できない人は自由]
- Unix [MacOS;Google がクラウドコンピューティングを提案した後、Unix システムのメーカーはほぼ Apple だけになった]
Shell#
- zsh
- 関連ファイル
- 環境変数の概念:シェルプロセス内に存在
- コマンド実行の本質:ほとんどがファイルを実行し、子プロセスを開く [コマンド間の干渉を防ぐ]、子プロセスが終了すると結果を返す
- man
- 簡略版:tldr
- 英語の感覚
- 検索:前後移動 ——N/n
- C 言語の低レベルライブラリ関数
- 検索エンジン [Google 英語検索]:自分の情報処理能力を向上させる
- コマンドの検索方法
- tab [zsh が提供]
- man -k [-f:明確な単語に基づいて検索]
- apt search [apt-cache search]
Linux の具体的な使用#
- ファイルとディレクトリ
- リモートコピー
- scp [ssh ベース ->tcp ベース]
- sshfs [ssh ベース、リモートファイルシステム]:リモートサーバーのディレクトリをローカルにマウントできる
- 組み込み開発プロセスに適用可能
- ファイルの参照
- cat
- head
- tail
- -f:動的に更新されるファイルを表示でき、ファイルの末尾を常に読み続け、ログを監視する [ブロックされる]
- more
- less [more よりもフレンドリー]
- 後で見ることができる
- 検索時にハイライト表示
- 移動、コピー
- cp、mv
- ln
- ハードリンク
- ソフトリンク:ソフトリンクを削除する際は注意が必要、名前の後に / を追加しないこと [ディレクトリに入る]
- [PS] Python が 2 のサポートを終了;Python のバージョン切り替えはソフトリンクを変更するだけで済む
- rm:mv + 定期的なクリーニングにラップできる
- ファイルタイプと権限
- 7 種類
- 通常のファイル
- ディレクトリ:サイズは一般的に 4K、十分
- 文字:ネットワーク、シリアル→キーボード、マウス
- ブロック:ストレージデバイス
- パイプ [多くの場合、親プロセスが 2 つの子を生成し、その間にパイプを作成]
- リンク
- ソケット
- 権限
- rwx
- x はディレクトリに対しては入ることができることを示す
- ユーザーグループ:u、g、o
- コマンド
- chmod、chgrp、chown
- usermod:ユーザーに対して
- 特殊権限
- set uid:特権を持つ者は権利を持つ
- set gid:特定の場所に行くと特定の身分を持つ
- sbit:粘着ビット、ファイルの所有者のみが削除権限を持つ
- 隠し属性
- rwx
- 7 種類
- ファイルの時間
- atime [アクセス]:更新が頻繁すぎるのは良くない、隠し属性を設定して更新しないことができる
- ctime [権限の変更]
- mtime [内容の変更]:ls がデフォルトで表示する
- touch
- 高い位置にいるほど、ディスクの寿命を考慮する必要がある [損耗、電気代]
- ファイルの位置
- 特殊ファイルの位置
- which
- whereis
- 通常のファイル
- locate:データベース db に基づく、リアルタイムで updatedb が必要 [使用シーンは少ない]
- find
- 特殊ファイルの位置
- リモートコピー
- データ処理[将来の仕事に適している]
- cut、tr、sort、uniq、grep、head、tail
- リダイレクト:>、>>、<
- read:データを読み込む [入力データの形式に注意]
- プロセス管理
- ctrl + z
- fg
- bg
- jobs
- crontab -e/-l [タスクの形式を見るべき]*
- システム情報の取得[試してみてください]
- uname、top、free、dstat、htop、nmon、uptime
Shell プログラミング#
- 変数
- コマンド置換子:``
- 特殊変数:$0、$#、$?、$@、$*
- ❗ = 両側にスペースがない
- 入出力
- read
- echo
- printf
- 分岐
- test 式
- man test
- 整数判断:整数計算 $[] (expr、let もあるが、一つだけ覚えれば良い)
- 文字列:== 🆒
- if:[[ ]] 🆒
- case
- test 式
- ループ
- for
- for i in `seq 1 100` --> seq はシステムによって繰り返し呼び出される必要がある
- for ((i=1; i<=100; i++)) 🆒効率が高い
- while [一般的に while 1 を使用]
- until [一般的には使用しない]
- for
- 関数 [簡単なプログラムでは一般的に必要ない]
- 配列⭐
- 配列の初期化 [あってもなくても良い;初期化されていない場合は空;初期化には時間がかかる]
- unset
- 繰り返し
- $ 変数
ヒント#
- 試験には全て英語の問題が含まれます
付録:マインドマップ#
【宿船長出品】