私的AI研究会 > コマンド操作
モード/モード切替 | キー | 動作 |
入力モードにする | i | 現在のカーソルから文字入力 |
a | 現在のカーソルの次に文字を入力 | |
A | 現在行の末尾から文字入力 | |
O | 現在行の前に文字入力 | |
コマンドモードに戻る | 「ESC」 | コマンドモードに戻る |
コマンドモード時 | :w | データ保存 |
:wq | データを保存して終了 | |
:q! | データを保存しないで終了 | |
コマンドモード時の操作 | 「←」 h | カーソルを1文字左 |
「→」 l | カーソルを1文字右 | |
「↑」 j | カーソルを1文字上 | |
「↓」 l | カーソルを1文字下 | |
G | カーソルを文末へ | |
nG | カーソルをn行目へ(1Gで文頭へ) | |
x | 1文字カット | |
dd | 1行カット | |
yy | 1行コピー | |
p | ペースト | |
/[検索文字(正規表現)] | 検索 |
※ キー操作がうまくいかない場合は vi の初期設定を参照
電源を切る
$ sudo poweroff
または
$ sudo shutdown -h now
$ sudo reboot
現在のディレクトリの全ファイルの名前のみを表示
$ ls
現在のディレクトリの全ファイルの詳細情報を表示
$ ls -l
隠しファイルを表示する
$ ls -a
python_gamesというディレクトリに移動
$ cd python_games
1つ上のディレクトリに移動
$ cd ..
ホームへ戻る
$ cd ~
"test" という名前のフォルダを作成
$ mkdir test
ファイル "file1" をルートディレクトの下のetcへ移動
$ mv file1 /etc
ファイル "file1" の名前を変えて "file2" に変更
$ mv file1 file2
"file1" を "file2" というファイルとして複製
$ cp file1 file2
ディレクトリ "pictures1" の内容をすべて "pictures2" にコピー
$ cp -r pictures1 pictures2
※ [ディレクトリ名2]が実在する場合は、[ディレクトリ名2]以下に[ディレクトリ名1]が作成されてそのディレクトリ構造がコピーされる。
[ディレクトリ名2]が実在しない場合は、[ディレクトリ名2]が作成され[ディレクトリ名1]以下のディレクトリ構造がコピーされる。この場合、[ディレクトリ名1]と[ディレクトリ名2]は同じである必要はない。
"file1" を削除
$ rm file1
ディレクトリ "pictures" を削除
$ rm -r pictures
ファイル名 "filename.sh" の中身をテキスト表示
$ cat filename.sh
"/home/pi/screen.sh"の権限を"全ユーザー実行可能"に変更
$ sudo chmod 755 /home/pi/screen.sh
ディスクの空き容量を表示する
$ df
読みやすいサイズ表記で表示する
$ df -h
空き領域の合計も併せて表示する
$ df -h --total Filesystem Size Used Avail Use% Mounted on udev 3.7G 0 3.7G 0% /dev tmpfs 757M 3.0M 754M 1% /run /dev/sda2 457G 30G 405G 7% / tmpfs 3.7G 0 3.7G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 3.7G 0 3.7G 0% /sys/fs/cgroup /dev/sda1 511M 6.1M 505M 2% /boot/efi /dev/loop0 97M 97M 0 100% /snap/core/9804 /dev/loop1 98M 98M 0 100% /snap/core/9993 tmpfs 757M 0 757M 0% /run/user/1000 total 471G 30G 418G 7% -
"culator" というアプリを強制終了 (-fの後に"アプリケーション名"を指定)
$ pkill -KILL -f culator
$ ps [aux] [aux] a:自分以外のユーザーのプロセスも表示 u:ユーザー名と開始時刻を表示 x:制御端末のないプロセスの情報も表示
$ ps aux | grep eclipse
$ kill 978
ホスト名の表示
$ hostname
$ hostname -I $ ifconfig
最新パッケージのリストをサーバーから入手
$ sudo aptget update
パッケージをインストール
$ sudo aptget install
インストールされているパッケージをアップデート
$ sudo aptget upgrade
システムにPython2系とPython3系の両方の環境がある場合の例
$ sudo pip install python-vlc
$ sudo pip3 install python-vlc
URL の下にある "file.tar.gz" をダウンロード
$ wget http://jellyware.jp/file.tar.gz
"file.tar.gz" を解凍する(gzip を展開して、TARを展開する&途中経過出力)
$ tar zxvf file.tar.gz
tar -zcvf xxxx.tar.gz directory
tar -zxvf xxxx.tar.gz
tar -jcvf xxxx.tar.bz2 directory
tar -jxvf xxxx.tar.bz2
tar -Jcvf xxxx.tar.xz directory
tar -Jxvf xxxx.tar.xz
zip -r xxxx.zip directory
unzip xxxx.zip
option | description |
c | 新しいtarファイルを作る (create) |
v | 圧縮・解凍状況を表示(基本的にvは指定しなくてもいいが状況がわからないので精神衛生上良くない)(verbose) |
f | 圧縮ファイル名指定 (filename) |
x | 解凍 (extract) |
z | gz |
j | bz2 |
J | xz |
"MMDAgent_Example-1.7.zip" を解凍する
$ unzip MMDAgent_Example-1.7.zip
処理は Makefile に書かれた内容
$ make
$ sudo make install
root のパスワードを変更する
$ sudo passwd root
-name で特定の文字列を指定できる。以下はディレクトリ "/usr/share/sounds/" を対象とした例)
$ find /usr/share/sounds/ -name "*Left*"
$ find /usr/share/sounds/ -name "*.wav"
ファイルの中で指定した文字列が含まれている行を表示 拡張子 py のファイルで、"import" という文字が含まれている行を検索
$ grep "import" *.py
$ kill [オプション] プロセスID・オプション
-シグナル | 指定したシグナル名またはシグナル番号を送信する |
-l | シグナル名とシグナル番号の対応を表示する |
1 | SIGHUP | 再起動 |
6 | SIGABRT | 中断 |
9 | SIGKILL | 強制終了 |
15 | SIGTERM | 終了 |
17 | SIGSTOP | 停止 |
18 | SIGCONT | 再開 |
$ ps ax |grep プロセス名
$ kill -KILL プロセスIDまたは
$ kill -9 プロセス名ID
$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
Raspbian のバージョンを表示
$ lsb_release -a
Linux カーネルのバージョンを表示
$ uname -a
画面の解像度表示 -s を付けるとステータス表示
$ tvservice -s
設定画面を開く(Raspbian 特有コマンド)
$ sudo raspi-config
シェルスクリプトの中で echo $1 などと記述すれば、実行時に渡された引数などを表示できる
$ echo $LANG
$ echo $aaa
複数のコマンドの組み合わせ (command1 | command2 で command1 の出力を command2 に入力としてパイプで送るという意味)
リスト表示した内容を "filename.txt" に出力する (teeは標準入力から読み込んだ内容を標準出力とファイルに書き込むコマンド)
$ ls | tee filename.txt
$ export [オプション] [変数名(または変数代入式)]
$ export FOO="bar"追加された環境変数を次回のターミナル実行時にも有効にしておきたい場合は、~/.bashrc に記述。
$ FOO="bar" $ export FOO
$ export -p declare -x FOO="bar"
$ export -n FOO
長いコマンドを打つ場合、途中まで打ち込んでからTabキーを押すことで自動補完できる場合がある
キーボードで Ctrl キー と C キー を同時に押すと実行しているプログラムを強制終了させることができる
キーボードで Ctrl キー と Z キー を同時に押すと実行しているプログラムを強制停止させることができる
以下のコマンド入力でプログラム再開可能
$ fg
$ tree -d . ├── googlesamples │ └── grpc │ └── __pycache__ ├── image └── sound
$ sed -n l ^[OP \033OP$ ←「F1」キー ^[OQ \033OQ$ ←「F2」キー ^[OR \033OR$ ←「F3」キー ^[OS \033OS$ ←「F4」キー ^[[15~ \033[15~$ ←「F5」キー ^C ←「Ctrl+C」で終了
$ exit ログアウト 停止しているジョブがあります。
$ jobs [1]+ 停止 mysql -u root -p
$ fg 1 mysql -u root -p mysql>
$ sudo kill 1