Linuxとコマンドラインの基礎
Linuxのディレクトリ構成とパス、ハードリンクとシンボリックリンク、ワイルドカード、パーミッションと chmod・umask、sudo と setuid、リダイレクトとパイプ、grep と正規表現、sort・uniq・cut・sed・awk・find、シグナルとジョブの操作、終了ステータスと && ・ ||、シェルスクリプトの引用符・引数・条件・繰り返し、PATH と環境変数、パッケージ管理、systemd、cron、df と du、SSH の公開鍵認証、tar、Gitの基本の操作を3択問題で学べます。
Linuxとコマンドラインの基礎の要点
サーバやクラウドの多くはLinuxで動いていて、論理合成や回路シミュレーションなどのEDAツールも、ふつうはLinuxのサーバの上で使います。そこでは画面のボタンではなく、シェルにコマンドを打ち込み、ファイルを調べ、ログを絞り込み、長い処理を走らせたまま接続を切る、といった作業が毎日の仕事になります。
ここでは、ディレクトリの構成と絶対パス・相対パス、隠しファイル、ハードリンクとシンボリックリンク、ワイルドカード、パーミッションの rwx と8進数の表記、umask、ディレクトリの実行の権限、sudo と setuid を学びます。続いて、リダイレクトとパイプ、grep と正規表現、sort と uniq を組み合わせた集計、tail -f、cut、sed、awk、find、kill とシグナル、Ctrl+Z と bg・fg、nohup、終了ステータスと && ・ ||、引用符と変数の展開、スクリプトの引数と条件と繰り返し、PATH と export を扱い、最後にパッケージ管理、systemctl、cron、df と du、SSH の鍵、tar、Gitの add・commit・push と .gitignore を確かめます。コマンドの動きは bash と GNU のコマンド(coreutils、grep、sed、findutils、tar)を基準にしていて、問題の出力は、Linuxの上で実際に実行して確かめています。プロセスや仮想記憶のしくみは「OSとハードウェア」、ポート番号やDNSは「ネットワークの基礎」、アクセス制御の考え方は「情報セキュリティの基礎」、Gitのマージや開発の進め方は「ソフトウェア開発とプロジェクト管理」の分野で扱います。
Linuxとコマンドラインの基礎の問題一覧(40問)
- Linuxの標準的なディレクトリと、そこに置かれるものの組み合わせとして、正しいものはどれか。
- Linuxの /proc ディレクトリの説明として、正しいものはどれか。
- ディレクトリ /home/alice/data があり、カレントディレクトリは /home/alice/work である。「cd ../data」を実行してから「pwd」を実行したときに表示されるディレクトリとして、正しいものはどれか。
- ホームディレクトリで「ls」を実行すると notes.txt だけが表示され、「ls -a」を実行すると「.」「..」「.bashrc」「notes.txt」が表示された。この結果の説明として、正しいものはどれか。
- 上のコマンドを順に実行したとき、最後の2つの cat の結果として、正しいものはどれか。
- あるディレクトリに a1.txt、a2.txt、a10.txt、b1.txt、c1.txt、a1.csv の6つのファイルがある。このディレクトリで「ls [ab]?.txt」を実行したときに表示されるファイルの数として、正しいものはどれか。
- ファイル run.sh に「chmod 754 run.sh」を実行した後、「ls -l run.sh」の行の先頭に表示される権限の表記として、正しいものはどれか。
- touch は新しいファイルを 666 から、mkdir は新しいディレクトリを 777 から、umask のビットを取り除いた権限で作る。umask が 027 のシェルで新しいファイルと新しいディレクトリを作ったときの、それぞれの権限の組み合わせとして、正しいものはどれか。
- ディレクトリ d の権限が rwx--x--x(711)で、その中のファイル f.txt の権限が rw-r--r--(644)である。所有者でもスーパーユーザでもない利用者が「ls d」と「cat d/f.txt」を実行したときの結果として、正しいものはどれか。
- Linuxの sudo コマンドの説明として、正しいものはどれか。
- 多くのLinuxで「ls -l /usr/bin/passwd」を実行すると「-rwsr-xr-x 1 root root ...」と表示される。所有者の実行の位置にある「s」の意味として、正しいものはどれか。
- 上のコマンドを順に実行したとき、最後の cat で表示される内容として、正しいものはどれか。
- 上のように、a.txt はあり nofile はないディレクトリで、最後のコマンドを実行した。結果として、正しいものはどれか。
- 上の操作で、最後のコマンドが出力する値として、正しいものはどれか。
- 上の操作で、最後の grep が出力する行として、正しいものはどれか。
- 選択肢では、行の先頭の空白を除いて示す。上の操作で、最後のパイプラインが出力する行として、正しいものはどれか。
- サーバのログファイル /var/log/app.log に後から追記される行を、追記されるたびに画面に表示し続けたい。適切なコマンドはどれか。
- カンマ区切りの行から列を取り出す上のコマンドの出力として、正しいものはどれか。
- 文字を置き換える上の sed のコマンドの出力として、正しいものはどれか。
- 上の操作で、最後の awk が出力する内容として、正しいものはどれか。
- GNU の find で「find /data -name "*.log" -mtime +7 -size +100M」を実行したときに見つかるファイルの説明として、正しいものはどれか。
- 応答しなくなったプロセスを止めるとき、まず「kill プロセスID」を使い、それでも終わらないときだけ「kill -9 プロセスID」を使うのがよいとされる。その理由として、正しいものはどれか。
- 端末で時間のかかる ./sim.sh を実行している途中で、同じ端末でほかのコマンドを使いたくなった。Ctrl+Z を押した後に bg を実行したときの動作として、正しいものはどれか。
- SSH で接続したサーバで、時間のかかる処理を「./run.sh &」で起動してから接続を切ったところ、処理も止まってしまった。接続を切った後も処理を続けさせる起動のしかたとして、最も適切なものはどれか。
- 上の2行をシェルで実行したとき、表示される文字として、正しいものはどれか。
- 上のコマンドを順に実行したときの、2つの echo の出力として、正しいものはどれか。
- 上のように、スクリプト s.sh を引数を付けて実行したときの出力として、正しいものはどれか。
- シェルスクリプトで、上の if の条件が真になる場合として、正しいものはどれか。
- 上の操作の後で、ディレクトリにあるファイルとして、正しいものはどれか。
- カレントディレクトリにある実行の権限が付いたスクリプト run.sh を、「run.sh」と入力して実行しようとすると「command not found」になり、「./run.sh」と入力すると実行できた。理由として、正しいものはどれか。
- 上のコマンドを順に実行したときの、2つの bash -c の出力の組み合わせとして、正しいものはどれか。
- Linuxのパッケージ管理システム(Debian系の apt、Red Hat系の dnf など)の主な働きとして、正しいものはどれか。
- systemd を使うLinuxで、サービス license.service に対する「systemctl start license.service」と「systemctl enable license.service」の違いとして、正しいものはどれか。
- cron に「30 2 * * 1 /home/alice/backup.sh」と登録した。backup.sh が実行されるタイミングとして、正しいものはどれか。
- Linuxのサーバで「ディスクの空きが少ない」という警告が出た。ファイルシステムごとの使用量と空き容量を調べるコマンドと、ディレクトリの中のファイルが使っている容量を合計して調べるコマンドの組み合わせとして、正しいものはどれか。
- 手元のPCで ssh-keygen を使って公開鍵認証の鍵の組を作り、サーバ server1 にパスワードなしで ssh で接続できるようにしたい。鍵の置き方として、正しいものはどれか。
- 「tar -czf proj.tar.gz proj/」を実行したときの動作として、正しいものはどれか。
- Gitで管理しているファイル main.c を編集した後、「git commit -m "fix"」だけを実行したところ、「no changes added to commit」と表示されてコミットされなかった。理由として、正しいものはどれか。
- Gitで git commit を実行したが、チームで共有している GitHub のリポジトリには、そのコミットがまだ表示されていない。理由として、正しいものはどれか。
- Gitで管理しているプロジェクトの .gitignore に「build/」と書いたが、以前にコミットした build/out.log の変更が、git status に表示され続ける。理由として、正しいものはどれか。
Linuxとコマンドラインの基礎の参考書を探す PR
Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。
コンピュータシステムのほかの分野
- 計算機算術 IEEE 754・固定小数点・丸め誤差
- 確率・統計と待ち行列 場合の数・確率分布・推定と検定・M/M/1
- 命令セット・アセンブリ RISC-V・アドレッシング・呼び出し規約
- コンパイラ 構文解析・SSA・最適化・レジスタ割り当て
- リンカ・ローダと実行形式 ELF・シンボル解決・再配置・動的リンク
- OSとハードウェア 割り込み・システムコール・ページフォールト
- メモリ階層と性能 キャッシュ・置き換え方式・ミスの3分類
- マルチコアと同期 MESI・アトミック命令・メモリバリア
- GPUプログラミング ワープ・共有メモリ・合体アクセス・占有率
- AIハードウェアとソフトウェアスタック 推論と学習・量子化・Rooflineモデル
- 機械学習の基礎 学習の種類・評価指標・ニューラルネットワーク
- 組込み・ファームウェア GPIO・UART/SPI/I2C・RTOS
- ハードウェア記述言語と検証 Verilog・ラッチ・状態機械・テストベンチ
- インターフェース・バス規格 PCIe・USB・SerDes・CXL
- ネットワークの基礎 TCP/IP・サブネット計算・DNS・TLS
- Web技術の基礎 HTTP・Cookie・REST・CORS・キャッシュ
- 無線通信の基礎 変調・OFDM・MIMO・RF回路
- 情報セキュリティの基礎 暗号・認証・Web攻撃と対策
- データベースの基礎 SQL・正規化・トランザクション
- データ構造とアルゴリズム 計算量・探索・ソート・グラフ
- プログラミングの基礎(擬似言語のトレース) 擬似言語・トレース・配列・再帰
- C言語の基礎 ポインタ・メモリ・未定義動作
- ソフトウェア開発とプロジェクト管理 開発プロセス・テスト・日程とコストの管理
- 経営戦略と会計の基礎(ストラテジ系) 会計・損益分岐点・経営戦略・マーケティング
- サービスマネジメントとシステム監査 SLA・インシデントと問題・監査と内部統制
- システム構成と信頼性設計 冗長化・RAID・バックアップ・クラウド
- クラウドとコンテナの基礎 Docker・Kubernetes・責任共有モデル・IaC
- 性能評価・プロファイリング アムダールの法則・CPI・ボトルネック
- ハードウェアセキュリティ サイドチャネル・セキュアブート・TEE・PUF
- 電力管理(ソフトウェア制御) DVFS・パワーゲーティング・スリープ状態