37
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

エニプラAdvent Calendar 2023

Day 9

【Linux】よく使うコマンドとオプション備忘録

Last updated at Posted at 2023-12-08

はじめに

現場でLinuxを使うことが多いのですが、よく忘れてしまうコマンドやオプションがあるので困ったときに見返せるようまとめておきます。
※基本的なコマンドの説明等は割愛しています。

ls

ls -t:更新時間の新しい順に表示
ls -r:表示結果を逆順にする

ls -lt:(新しい順に表示)
ls -ltr:(古い順に表示)

下記のように使用すると、新しいファイルを10件取得できます。
ls -lt | head
ls -ltr | tail
取得したいファイルが最新ファイルだけの場合、そのままlsすると表示結果が多くなってしまうことがあるのでこのオプションを使用します。
ls -lt | head -5 のように表示件数を指定することもできます(省略値は10)。

mkdir

mkdir -m:パーミッションも同時に指定する
例:mkdir -m 775 /dir1/dir2

mkdir -p:必要に応じて上位ディレクトリも同時に作成する
例... /home/user/ 配下にディレクトリがないとき、mkdir -p /home/user/dir1/dir2 とすると、dir1もdir2と一緒に作成してくれる
※-pがない場合は上位ディレクトリがないためエラーが発生する

シェルの実行

sh test.sh
bash test.sh
source test.sh
./test.sh
※sh / bash なしで実行する場合はディレクトリから指定する

それぞれのコマンドの違いについては説明できるほど理解ができていないため割愛します。代わりに参考になりそうなサイトを紹介しておきます。
シェルスクリプトの実行方法4つの違いメモ【Linux】

sh -x:実行コマンドを表示する
実行履歴をログに残したいとき、エラー箇所を特定したいときに有効。

view

ls -l でファイルを確認すると
-rwxrwxr-x. 3 root root 212 Jan 1 2023 test.txt
のような表示が出ると思います。
このroot rootのあとの「212」の部分がファイルサイズです。
サイズの大きいファイルをうっかりcatしてしまうと、ctrl+Cを連打する羽目になったり、最悪一度ターミナルを閉じることになってしまいます。
そのようなときはcatではなくviewを使って、1画面ずつファイル内容を表示します。

:q:view画面から抜ける

vi

i:編集モード
ESC:編集モードからコマンドモードに戻る
:wq:保存して終了
:q!:保存せずに終了

cp

cp -p:パーミッション、所有者、タイムスタンプを保持してコピー
cp -r:サブディレクトリもコピーする
cp -f:強制コピー(重複する場合も警告なしで上書きコピーする)

rm

rm -i:削除前に確認メッセージを表示(y/nで回答)
rm -r:ディレクトリを削除

zip

zip -r:ディレクトリを圧縮

find

find ディレクトリ -type f -print
ディレクトリ配下(サブディレクトリ含む)のファイル一覧出力
-type d に変えるとディレクトリ一覧を出力できる

reset

バイナリファイルなどを開いてしまいターミナル上の文字が文字化けした際には、resetコマンドでリセットできます。
入力したコマンドも文字化けしてしまうことがありますが、そのまま実行してOKです。
参考:Linux: 画面が文字化けしてしまった時にはRESETコマンド

crontab

-l:閲覧
-e:編集

* * * * * 実行コマンドで設定する。
*の部分は左から順に「分」「時」「日」「月」「曜日」
*を設定すると毎分/毎時などその単位ごとに実行される
*/nのように書くとn分ごとなどの指定ができる

■使用例
0/5 * * * * sh /home/user/test.sh:5分おきにtest.shを実行
0 21 * * sun sh /home/user/test.sh:毎週日曜日の21時にtest.shを実行

grep

-v:一致しないものを検索

chmod / chown

chown:所有者の変更、root権限/sudo権限が必要
chmod:権限の変更、所有者なら一般ユーザでも実行可(所有グループはNG)

curl

参考
curlコマンドでPOSTする, 様々な形式別メモ
知っておくとちょっと便利!curl コマンドの使い方をご紹介
curlの-dやら-Fやらがよく分からない


-d:POSTリクエストとしてフォームを送信
-H "Content-Type: XXX":送信するデータ形式を明示

■使用例
$ curl -X POST -H "Content-Type: application/json" -d '{"id","000", "name", "テストユーザ"} ' https://XXX

■使用例2:ファイルを送りたい場合は@ファイル名を指定
$ curl -X POST -H "Content-Type: application/json" -d '@request.json' https://XXX

-H "Content-Type: application/json"はあ送信するデータがJson形式であることを明示している

-v:コンテンツを取得した際の詳細なログ(レスポンスヘッダの内容やHTTPステータスコード等)を表示

-X:HTTPメソッド(GET POST PUTなど)の指定
-H:HTTPヘッダにHEADERを追加or変更

-s:進捗情報やエラーを非表示
-s -S:進捗情報を非表示、エラーは表示


■おまけ
Note:Unnecessary use of -request, POST is already infreed.
-dや-Fを指定した場合はデフォルトのHTTPリクエストメソッドがPOSTになるので、-X POSTの指定はしなくてよいという警告

おまけ1:コマンドプロンプト操作

Windowsのコマンドプロンプトの基本的なコマンドです。
たまに使うのでおまけとしてメモしておきます。

cd:ディレクトリ移動
dir:ディレクトリ表示(Linuxのlsと同じ)
@cd:カレントディレクトリ表示(Linuxのpwdと同じ)

おまけ2:psql関連

参考
psqlを使ったPostgreSQLへの接続
【PostgreSQL-0011】サーチパス(search_path)の設定

接続
psql -h ホスト名 -p ポート番号 -U ロール名 -d データベース名

¥d:テーブル ビュー シーケンスの一覧表示
¥dt:テーブル一覧表示

SQL文も普通に流せます。
SELECT * FROM test_table WHERE id = '001';


サーチパス設定
ALTER USER ユーザ名 search_path TO スキーマ名;

補足:サーチパスとは
スキーマ検索パスのこと。スキーマ名の入力を省略できる。
ALTER USER user0000 search_path TO sample;
と設定した状態でuser0000が
SELECT * FROM table;
のようなSQLを実行すると、
SELECT * FROM sample.table;
として解釈される。

最後に

今回は現場でよく使うコマンドを一覧にしてまとめてみました!
Linuxには他にも便利なコマンドがたくさんあるので、使いこなせるように今後も頑張ります。

参考

記事内にも記載しましたが、改めて参考記事をまとめておきます。

シェルスクリプトの実行方法4つの違いメモ【Linux】
Linux: 画面が文字化けしてしまった時にはRESETコマンド
curlコマンドでPOSTする, 様々な形式別メモ
知っておくとちょっと便利!curl コマンドの使い方をご紹介
curlの-dやら-Fやらがよく分からない
psqlを使ったPostgreSQLへの接続
【PostgreSQL-0011】サーチパス(search_path)の設定

37
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?