基本的なBashの使い方¶
はじめに¶
ここでは基本的なbashコマンドとbash関連の設定等を解説します。
大抵の場合 コマンド名 linux
で検索すると出てきます。
ここに書いていないコマンドがあった場合は調べながら試してみるとよいでしょう。
Linuxコマンドに関しては調べながら試してみるのが一番だと思います。
基本的なコマンド¶
ls¶
ファイルやディレクトリの内容を表示する。
# カレントディレクトリの内容を表示する
ls
# 指定したディレクトリの内容を表示する
ls dir_name
# 対象のディレクトリのすべてのフォルダ、ファイル(隠しフォルダ等を含む)を表示する
ls -a
# 対象のディレクトリの内容をより詳細に表示する
ls -l
# オプションは同時に指定することもできる
ls -la
mkdir¶
ディレクトリを作成する。
# ディレクトリを作成する
mkdir dir_name
# 指定したディレクトリをサブディレクトリまで作成する
mkdir -p parent_dir/dir_name
rm¶
ファイル、ディレクトリを削除する。
# ファイルを削除する
rm file_name
# 複数ファイルを削除する
rm file1 file2
# ディレクトリを中身ごと削除する
rm -r dir_name
# 警告メッセージを表示しない
rm -f file_name
cp¶
ファイル・ディレクトリをコピーする。
# ファイルをコピーする
cp src_file_name dest_file_name
# ディレクトリを中身ごとコピーする
cp -r src_dir_name dest_dir_name
mv¶
ファイル・ディレクトリを移動・改名する
# ファイルを改名する
mv src_file_name dest_file_name
# dest_dir_nameが存在する場合はdest_dir_name以下に移動する
# 存在しない場合はディレクトリを改名する
mv src_dir_name dest_dir_name
# ファイルをディレクトリ内に移動する
mv src_file_name dest_dir_name
# 複数ファイルを移動する
mv file1 file2 dest_dir_name
ssh¶
リモートマシンに接続する。
# 現在のユーザー名で指定したIPアドレスのマシンに接続する
ssh xxx.xxx.xxx.xxx
# ユーザー名user_nameで指定したIPアドレスのマシンに接続する
ssh user_name@xxx.xxx.xxx.xxx
scp¶
リモートマシンとファイルをやり取りする。
# ローカルマシンのfile_nameファイルを指定したIPアドレスのマシンの
# user_nameユーザーの指定したディレクトリ以下にコピーする
scp file_name user_name@xxx.xxx.xxx.xxx:dir_name
# 指定したIPアドレスのマシンのuser_nameユーザーのマシンのfile_nameファイルを
# ローカルマシンのホームディレクトリに保存する
scp user_name@xxx.xxx.xxx.xxx:file_name ~/file_name
# ファイルを再帰的にコピーする
scp -r user_name@xxx.xxx.xxx.xxx:dir_name ~/dir_name
export¶
環境変数やシェル変数を変更する。
# 環境変数ENV_VARにvalueを設定する
export ENV_VAR=value
# 環境変数ENV_VARにvalueを追加する
# 環境変数は:(コロン)で区切られている
export ENV_VAR=$ENV_VAR:value
alias¶
コマンドの別名(エイリアス)を定義する。
# エイリアスを定義する
alias command=another_command
# スペースを含むエイリアスを定義する
alias command_opt="command -option"
リダイレクト¶
Linuxでは、リダイレクトを使ってコマンドの出力先や入力先をターミナルからファイルへ変更したりできます。
# カレントディレクトリのファイル一覧をファイルに書き出す(上書き)
ls > file_name
# カレントディレクトリのファイル一覧をファイルに書き出す(末尾に追加)
# 存在しない場合は新たに作られる
ls >> file_name
# コマンドの実行結果とエラー内容をファイルに書き出す
ls not_existing_dir >& file_name
# コマンドのエラー内容だけをファイルに書き出す
ls not_existing_dir 2> file_name
# ファイルの内容を表示する
cat < file_name
>
はファイルを上書きするので使用する際は注意すること。
.bashrc¶
.bashrcはBashの設定スクリプトで、bashを起動した際に毎回内容が実行されます。 ターミナルの設定などはこのファイルに書くことが多いです。
Tips¶
set -o noclobber¶
以下のコマンドを実行すれば、 >
を使ったリダイレクトでファイルが上書きされなくなります。
>|
を使えば強制的に上書きできる。
また、 set +o noclobber
で上書き禁止を解除できる。
set -o noclobber
cm, cs, cw¶
catkin関連のコマンドのエイリアスを以下のように定義すると便利です。
# catkin_wsに移動してビルドしてから元のディレクトリに戻る
alias cm="cd ~/catkin_ws && catkin build && cd -"
# catkin_ws/srcに移動する
alias cs="cd ~/catkin_ws/src"
# catkin_wsに移動する
alias cw="cd ~/catkin_ws/"
Git¶
Gitはバージョン管理ソフトウェアの一種で、インストール済みであれば git
コマンドから利用することができます。
gitコマンドの使い方¶
GitHub上にあるリポジトリは git
コマンドを使ってローカルにクローン(複製)することができます。
例えば、このチュートリアルのリポジトリであれば、
git clone https://github.com/uenota/dronedoc.git
GitHub上のROSパッケージを使う¶
ROSパッケージはワークスペース以下の src
ディレクトリにクローンしてビルドすれば通常のROSパッケージと同様に使用することができます。
cd ~/catkin_ws/src
git clone https://github.com/uenota/dronedoc.git
cd ..
catkin_make