★はじめに!!
はじめまして!新入社員のクッキーパンチと申します。
この記事では新人社員研修のうちの一つで取り扱われたサーバ研修でのLinuxの基本操作についてまとめたいと思います。
・ Linuxとは
オープンソース(※商用サポートは有料)で、幅広い用途で使用されているOSです。主にサーバ用途で世界中で使用されていて、信用度が高いソフトウェアです。
サーバ用途の場合CUI操作が必須で、私が受けた研修では「TeraTerm」というソフトを使用してLunuxを立ち上げ、実際に操作する実習を行いました。
※OSとは?
OS… Operating System(オペレーティングシステム)の略。パソコンの操作やアプリなどを使うために必要なソフトウェアのこと。[参考] https://school.dhw.co.jp/course/3dcg/contents/w_os.html
・ 実習で行ったこと
実習で学んだLinux操作の内容は以下の通りです。
この記事でもこの順番通りお話しできたらと思います。
・シェルの使用
・ディレクトリ操作
・テキストエディタの使用(vi操作)
・ファイル操作
・検索機能
★シェル
まずは、シェルについてです。
シェルはCUI画面を表示してくれるもので、受付のような役割を持つそうです。
例えばこちらが"date"と入力するとシェルがdateコマンドを呼び出してくれるというように、ユーザーとコマンドの仲介をしてくれているんです。我々はこのシェルさんがいないと何も操作できないんですね。
ちなみにシェルにはたくさん種類があるそうなのですが、基本的に「bash」
というシェルが使われるそうです。
理由としては、Linux以外の環境でも利用できることや利用者が多いため情報を集めやすいなどのメリットがあるようです。
ゲームでもなんでも、マイナーなものは情報が少なくて攻略に困ったりしますよね…。仕事で利用するうえでは使いやすいものを使うに越したことはないでしょう!!
★ディレクトリ操作
Linuxではファイルを保存する場所がディレクトリという単位で分かれていて、ツリー構成(階層構造)になっています。
個人的にファイルとディレクトリって同じでは…?と思い、少し調べたのですが、ファイルとはデータの実体(書類)で、ディレクトリはそれを収納する箱と例えられていました。
つまり、データを保存する場所が箱ごとに分かれていて、それが木のように枝分かれした階層構造になっているんですね。
実習では実際にこのディレクトリ操作を行いました!
ディレクトリ操作においてよく使われるコマンドは以下の通りです。
| コマンド | 用途 | 構文 |
|---|---|---|
pwd |
カレントディレクトリ表示 | pwd |
cd |
ディレクトリ移動 | cd▴<移動したいディレクトリ名> |
ls |
ディレクトリ内のファイル/ディレクトリ一覧表示 | ls▴[オプション]▴<確認したいディレクトリ名> |
カレントディレクトリ(もしくはワーキングディレクトリ)とは、自分が現在開いているディレクトリのことです。
"cd"コマンドでディレクトリを移動して、"pwd"コマンドでカレントディレクトリを確認します。
直接絵になった形で見れるGUIと違ってCUIでは文字の羅列でしか見れないので、今自分がどこで操作しているのか分からなくなってしまいますよね。
うっかり間違った場所で操作してしまうようなことも十分起こりえてしまいます。それを防ぐためにも積極的に"pwd"コマンドを使用して現在地を確認し、現在地を良く意識しながら作業することが大切です。
また、"ls"には以下のようなコマンドオプションがあります。
・-a
・-l
・-la
"-a"は隠しコマンドも合わせて表示するオプションで、"-l"はリストを縦に表示するオプションです。
"-la"はその二つを組み合わせたものです。他にもコマンドによって様々なオプションがあり、現場によって多用するものも違うようです。
・絶対パスと相対パス
ディレクトリ操作を行うにあたってこの二つの違いは覚えておくべきでしょう。
まず、パスとは「場所、道筋、経路」などの意味合いがあるようで、ここではディレクトリの階層構造におけるファイルの場所を、特定するための情報といえるようです。
その中で「絶対パス」と「相対パス」というものが存在していて、「相対パス」は今いる場所(カレントディレクトリ)から階層構造の末端までの経路を指し、「絶対パス」は階層構造の頭から末端までの経路を指しています。
表記の違いは以下の通り。
相対パス: ./folder01/file.txt
絶対パス: /home/any-plusXX/folder01/file.txt
相対パスは短くて見やすいですが、情報が少ないため経路がよく似た別のファイルと間違えるリスクがあります。
例えば同じ「folder01」でも、「any-plusXX」区に住む「folder01」さんの可能性もあれば「cookie-punchXX」区の「folder01」さんかもしれないですからね…。
それに対して絶対パスは住所を日本から書いているようなもので、表記は長くなりがちですが、丁寧でミスも防ぎやすいです。
※パスとは....参考
[参考]https://lpi.or.jp/lpic_all/linux/intro/intro08.shtml
https://kanda-it-school-kensyu.com/linux-basic1-contents/linux-basic1_04/linux-basic1_0402/
★ テキストエディタの基本操作
テキストエディタでは、Linuxのシステム内にあるアプリケーションやLinux自体の設定ファイルなどを編集することができます。
vi▴<任意のファイル名>というようにコマンドを打つと、雰囲気がガラッと変わり、vim画面になります。
左下に先ほど記入した<任意のファイル名>が表示されていれば、今そのファイルの編集画面を開いていることになります。
その状態で「i」を押すとテキストを打ち込めるようになります。
書き込み終わったらEscキーで書き込みモードを終えて、「:w」を入力すれば内容を保存できます。
そこから「:q」を入力すると、vim画面から通常の画面に戻ることが出来ます。
ちなみに、「:wq」と入力すれば、保存と画面移行を同時に行えますよ!
このvim画面では、内容を記入する際に使える便利な操作が他にもたくさんあるのですが、特に覚えておきたいのは間違った記入や削除をしてしまった際にひとつ前の状態に戻せるuキーとひとつ後の状態にやり直せるCtl+rですね。
(※この操作を行う際は一度Escキーで書き込みモードを終える必要があります)
長いコードを書くこともあると思うので、この2つは失敗した時に使うと便利そうです。
もし、「書いていてよくわからなくなってしまったので今回の編集を無かったことにしたい!」というときは書き込みモードを終えた状態で「:q!」と記入すれば編集内容を保存せずに終了できますよ。
★ ファイル操作の基本
以下では、基本的なファイル操作のコマンドを載せています。
| コマンド | 用途 | 構成 |
|---|---|---|
mkdir |
ディレクトリ作成 | mkdir▲ <オプション>▴<作成するディレクトリ> |
touch |
ファイル作成 | touch▴<新しいファイル名1>▴<新しいファイル名2> |
rm |
ファイル/ディレクトリ削除 | rm▴<オプション>▴<削除するファイル名/ディレクトリ> |
cat |
ファイル内容表示 | cat▴<オプション>▴<ファイル名> |
less |
スクロール表示 | less▴<オプション>▴<ファイル名> |
cp |
ファイル/ディレクトリコピー | cp▴<オプション>▴<コピー元>▴<コピー先> |
mv |
ファイルを移動 | mv▴<オプション>▴<移動元>▴<移動先> |
ファイル操作はGUIでの操作とリンクするものが多いのでイメージがしやすいですね。ただ、 「rm」 はGUIの時と違って「ごみ箱」機能がなく、1度実行すると 本当に存在を抹消されてしまう ので、細心の注意を払って使う必要があります!!
★ ディレクトリツリーからファイルを探す
findコマンド では、検索条件を指定してファイルの検索を行うことが出来ます。
find▴<検索開始ディレクトリ>▴<検索条件>▴<アクション>
検索条件 は「-name」 「-iname」 「-type」 の3つがあります。
・-name/-iname
「-name」 は、検索時にファイル名の大文字、小文字を区別するという設定。
「-iname」 はファイル名の大文字、小文字を区別しないという設定です。
find▴.▴-name▴'*.txt'▴-print
検索したい文字の部分には*(シングルコーテーション)を付けます。
これをつけ忘れるとシェルがコマンドとして受け取ってくれません!
・-type
「-type」は、ファイルを種別にしてより検索条件を絞り込む設定です。
find▴.▴-type▴d▴-print
ファイルの種類は以下のように指定します。
| 条件の詳細指定 | |
|---|---|
type▴f |
通常ファイル |
type▴d |
ディレクトリ |
type▴l |
シンボリックリンク |
現場では多くのファイルを管理することになるので、検索機能は必須ですよね。
使用する際、*(シングルコーテーション)の付け忘れには気をつけたいです!
★ ファイルの中から文字を探す
findコマンドはディレクトリの中から指名されたファイルを検索しますが、grepはファイルの中の文字を検索してくれます。
grep▴<探したい文字列>▴<ファイル名>
このコマンドを入力すると以下のように<探したい文字列>と一致する文字がある行だけ表示してくれます。
grep “user-name” crontab
# * * * * * user-name command to be executed
ファイルの内容を読み取って検索してくれるなんてとても便利ですよね!!
講師の方の話ではこのgrepコマンドは良く使われるそうです。Linuxを使用する際にはとてもお世話になりそうですね…。
★ おわりに
以上、Linuxの基本操作の紹介でした。
私は文系出身で、今回の研修でほとんど初めてCUI画面に触れましたが、GUI画面で普段行っている操作と結びつけて考えられる部分もあり、意外とイメージしやすい操作もあるなと感じました。
なにより、文字を入力して操作する感覚は、パソコンと会話しているようで面白いです。
まだまだ基礎的な内容ではありますが、今後の業務や学習を通して少しずつ知識と技術を身につけていきたいと思います。
最後までお読みいただきありがとうございました!