ユーザ用ツール

サイト用ツール


ターミナル:shellコマンド

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
ターミナル:shellコマンド [2024/10/03 22:10]
kawaue
ターミナル:shellコマンド [2025/04/22 13:07] (現在)
kawaue
行 8: 行 8:
 |h|容量に接頭辞をつける(human-readable)| |h|容量に接頭辞をつける(human-readable)|
 |--color|ファイル・ディレクトリの種類ごとに色を変える| |--color|ファイル・ディレクトリの種類ごとに色を変える|
 +|t|更新時順で表示(time)|
 +|v|数字順で表示(version)|
 +|S|ファイルサイズ順で表示(Size)|
  
 ====head, tail==== ====head, tail====
行 13: 行 16:
 ^オプション^意味^ ^オプション^意味^
 |n|出力する行数を指定| |n|出力する行数を指定|
 +
 +====grep====
 +文字列の検索
 +^オプション^意味^
 +|r|再帰的に行う(recursive)|
 +|i|大文字と小文字を区別しない(ignore-case)|
  
 ====du==== ====du====
行 67: 行 76:
 例:file内のhogeを全てfugaに置換する場合 例:file内のhogeを全てfugaに置換する場合
 <code> <code>
-sed -i s/hoge/fuga/g file+sed -i s/hoge/fuga/g file
 </code> </code>
  
行 82: 行 91:
 ファイル名の置換。置換前・置換後・対象のファイルの順に書く。カレントディレクトリ以下のファイル名のうちhogeをfugaに置換したい場合: ファイル名の置換。置換前・置換後・対象のファイルの順に書く。カレントディレクトリ以下のファイル名のうちhogeをfugaに置換したい場合:
 <code> <code>
-rename hoge huga ./*+rename hoge huga ./*
 </code> </code>
  
行 118: 行 127:
 解凍はunzip。 解凍はunzip。
 <code> <code>
-zip -r アーカイブ名 圧縮する対象+zip -r アーカイブ名 圧縮する対象
 </code> </code>
 |< 400px 100px - >| |< 400px 100px - >|
行 148: 行 157:
  
 ====ssh-keygen==== ====ssh-keygen====
-ssh用の鍵を作る。 とりあえずという名前のed25519の鍵を作りたいときは以下のコマンド+ssh用の鍵を作る。 とりあえずkeynameという名前のed25519の鍵を作りたいときは以下のコマンド
 <code> <code>
-cd ~/.ssh +cd ~/.ssh 
-ssh-keygen -f keyname -t ed25519 -N ""+ssh-keygen -f keyname -t ed25519 -N ""
 </code> </code>
 でkeyname(秘密鍵)とkeyname.pub(公開鍵)ができる でkeyname(秘密鍵)とkeyname.pub(公開鍵)ができる
行 161: 行 170:
 |C|コメントを設定(Comment)| |C|コメントを設定(Comment)|
 |N|新しいパスフレーズを設定(new pass phrase)| |N|新しいパスフレーズを設定(new pass phrase)|
 +
 +====screen====
 +screenを作成してセッションを保存できる。\\
 +例 : ssh先で何かのscriptを回しているが、sshが切れてしまうと実行が止まってしまうとき。screen上で実行して一時的にセッションを離脱することでscriptを回し続けられる。\\
 +screenの作成
 +<code>
 +$ screen
 +</code>
 +これでscreenの中に入れる。
 +^入力^意味^
 +|Ctr + a|今のscreenを終了|
 +|Ctr + a → Ctr + d|screenから一時的に出る(デタッチ)|
 +存在するscreenの確認
 +<code>
 +$ screen -ls
 +</code>
 +screenに入る(アタッチ)。KEKCCの環境ではidはtab補完が効いた。
 +<code>
 +$ screen -r hoge(screen id)
 +</code>
 +外側からデタッチ(?)
 +<code>
 +$ screen -d hoge(screen id)
 +</code>
 +screen (id:hoge)を削除
 +<code>
 +$ screen -X quit  # screen hogeの中にいる場合
 +$ screen -S hoge -X quit # screenの外にいる場合
 +</code>
  
 =====ワンライナーのわざ===== =====ワンライナーのわざ=====
 ====ファイル数のカウント==== ====ファイル数のカウント====
 <code> <code>
-ls -1 | wc -l+ls -1 | wc -l
 </code> </code>
 +ls listで1行に1ファイルを表示、その行数を数える。
 ====ディレクトリ構造のみコピー==== ====ディレクトリ構造のみコピー====
 <code> <code>
-cp -sr hoge fuga+cp -sr hoge fuga
 </code> </code>
 ファイルの相対的なシンボリックリンクが貼れないことを利用 ファイルの相対的なシンボリックリンクが貼れないことを利用
行 176: 行 214:
 ====ディレクトリ構造は残して中のファイルのみ削除==== ====ディレクトリ構造は残して中のファイルのみ削除====
 <code> <code>
-find /path/to/hoge -type f | xargs rm -f+find /path/to/hoge -type f | xargs rm -f
 </code> </code>
 ファイル名を探索してrmに渡す。 ファイル名を探索してrmに渡す。
 +
 +=====リダイレクト=====
 +''>''でリダイレクト。コマンドの出力を利用したいときに使う(ログなど)。\\
 +例1:
 +<code>
 +$ hoge.exe 2>&1 | tee log.txt
 +</code>
 +正直何が起こっているのかあまりわかっていない。
 +''&''は複製を意味する。標準出力が複製されて標準エラー出力になっているらしい。結果、標準出力と標準エラー出力が同じ場所に出力される。''tee''コマンドは出力をファイルとターミナルの両方に出力するコマンド。
 +^ファイルディスクリプタ^意味^
 +|0|標準入力|
 +|1|標準出力|
 +|2|標準エラー出力|
 +
 +例2:
 +<code>
 +$ hoge.exe > /dev/null
 +</code>
 +''/dev/null''にリダイレクトすることで出力を捨てられる。つまりブラックホールみたいなもの(by D.H.)
  
 =====Shellスクリプト===== =====Shellスクリプト=====
行 195: 行 252:
 done done
 </file> </file>
 +
 +====計算====
 +変数で受ける方法\\
 +計算式を<nowiki>(())</nowiki>で囲む。
 +<file bash hoge.sh>
 +#!/bin/bash
 +input=${1}
 +((output=${input}+1))
 +echo ${output}
 +</file>
 +上のscriptの出力結果は
 +<code>
 +$ source hoge.sh 1
 +2
 +</code>
  
 ====コメントアウト==== ====コメントアウト====
行 215: 行 287:
 cd `dirname $0` cd `dirname $0`
 </code> </code>
-と書いておく。''$0''は自分の名前を出力し、''dirname''はディレクトリ部分を抽出する。ちなみに''basename''はファイル名部分を抽出する。+と書いておく。''$0''は自分の名前(フルパス)を出力し、''dirname''はディレクトリ部分を抽出する。ちなみに''basename''はファイル名部分を抽出する。
  
ターミナル/shellコマンド.1727993457.txt.gz · 最終更新: 2024/10/03 22:10 by kawaue