Backup of Linux/Commands(No. 2)


基本的なLinux(UNIX)コマンド

 

Linuxを使いこなすにはある程度コマンドを知らないといけません.使いながら覚えていきましょう.

 

ssh

他のマシンにリモートログインするときに使う.例:

$ ssh ocean
$ ssh myname@mymachine.sea.ac.jp
  • オプション「-i」
    公開鍵認証(RSA)つきSSH.例:
    $ ssh -i ~/.ssh/rsa_key username@mymachine.somewhere.gov|
  • オプション「-X」
    X windowを有効にしてログイン。 MacからLinuxにアクセスする際には必要.

scp

SSHプロトコルを用いたファイル転送を行う.リモートマシンにファイルを送る時に使う.例:

$ scp filename myname@somewhere.edu
$ scp file ocean:~/
  • オプション「-p」
    ファイルの属性(作成した日付など)を保持したままSCP転送する.例:
    $ scp -p file ocean:~/
  • オプション「-r」
    ディレクトリ構造を保持したままSCP転送する.例:
    $ scp -r /home/foo ocean:/home
  • オプション「-pvr」
    上記の合わせ技,+verbose(オプション-v:メッセージを色々と表示させる)モード.例:
    $ scp -pvr /home/foo ocean:/home

ls

今いるディレクトリのファイルをリスト表示する.例: $ ls

  • オプション「-l」(エル)
    より詳細なファイル情報(日付や属性など)を一緒にリスト表示させる.例:
    $ ls -l
  • オプション「-al」
    隠しディレクトリや隠しファイル(例えば「.」のついたファイル,.cshrcなど)もリスト表示させる.例:
    $ ls -al
  • オプション「-alrt」
    "r"はreverse, "t"はtime.つまり新しいファイルほど下に表示されるようにリスト表示させる.例:
    $ ls -alrt

ps

現在実行中のプロセスの情報を表示させる.類似コマンド:top

  • オプション「-aux」
    実行中のプロセスを全部表示させる. 例:
    $ ps -aux あるいは,
    $ ps aux
  • オプション「-aux | grep hoge」
    パイプ「|」を使ってpsコマンドを実行する.この例の場合,プロセス情報に「hoge」が含まれるものだけを抽出して表示させるという意味.例:
    $ ps aux | grep hoge

例えば,firefoxが固まってしまった場合,アイコンをクリックしたり,コンソールで「firefox」とタイプしても起動しないことがある.その場合は,

$ ps aux | grep firefox

とすると,firefoxのプロセス情報が表示される.出力例は,

$ tuna:/home/shota 22> ps aux | grep firefox
shota    17181  0.0  1.0 1047396 86752 ?       Sl   Jun03   2:52 /usr/bin/firefox

このときのプロセス番号は17181であり,次の「kill」コマンドでプロセスを強制終了させると,新たにfirefoxが起動できるようになる・

kill -9 proc_id

上記のpsコマンド,あるいはtopコマンドで目的のプロセス番号(proc_id)を得たら,それを強制終了させる.例:

$ kill -9 17181

pwd

現在いるディレクトリを調べる.例:

$ cd /usr/etc  --> ディレクトリ「/usr/etc」に移動.
$ pwd     --> $ /usr/etc と表示される.

cd

ディレクトリを移動する.単に「cd」と入力した場合は,自分のホームディレクトリ(/home/hoge:hogeはユーザー名)に移動する.例:

$ cd  ---> 結果は /home/hogeへの移動.
$ cd target ---> ディレクトリ「target」に移動する.

例:

$ cd /home/hoge/research
$ cd ~/target

チルダ「~」はホームディレクトリの短縮形.つまり,「cd ~」と「cd」は等価.例:

$ cd ~/target  ---> $ cd /home/hoge/targetと等価.
$ cd -

マイナス「-」は,さっきまでいたディレクトリへ戻る場合に使える便利な短縮形.例:

$ cd /usr/local     --> ディレクトリ/usr/localに移動.
$ cd /home/hoge --> ディレクトリ/home/hogeに移動.
$ cd -       --> ディレクトリ/usr/localに戻る.

du

ファイルサイズを調べる。例:

$ du -h

df

マウントしているパーティションごとのサイズを調べる。例:

$ df -h
$ df -k

cp

ファイルやディレクトリをコピーする.

  • オプション「-r」
    ディレクトリのコピー.例:
    $cp -r mydirectory /home/someone/dest
  • オプション「-pv」
    属性を保持したままコピー(ファイル作成時刻など.推奨).例:
    $ cp -pv file ../

mv

ファイルやディレクトリを移動する.日付や属性は自動的に保持される.例:

$ mv /home/hoge/hoge.dat /usr/local/

ファイル名を変更したい時にも使える.例:

$ mv file1 file2

rm

ファイルやディレクトリを消去する.ゴミ箱と違って復活不能なので要注意

  • オプション「-f」
    強制的に消去.書き込み禁止であろうと消してしまう.例:
    $ rm -f filename
  • オプション「-r」
    ディレクトリ強制消去.ディレクトリ内にファイルが残っていても消す.
    $ rm -r my_directory

mkdir

ディレクトリの作成.例:

$ mkdir newdir
$ mkdir /home/foo/newdir

rmdir

ディレクトリの消去.例:

$ rmdir my_directory

ファイルやサブディレクトリがあると消せない.

rsync

sshを使ったリモート同期.ディレクトリ構造などを保持したままコピーできる.例:

$ rsync -av --progress myname@mymachine.edu:~/orgdir .
 
 

その他の便利なコマンド・TIPS

ログイン名を変更する

$ su  --> rootになる。
$ su username  --> usernameでログインする。

パスワードを変える

$ passwd
$ Changing password for user yourname.  

古いパスワードを聞かれるので、入力する。
新しいパスワード(2回)入力する。
終わり。

ログイン時の設定を変える

/home/username/の下に、.cshrcファイルをおき、それを編集する。
サンプルは、例えば

sardine:/home/takao/.cshrc

を参照のこと。
編集した後は以下のようにタイプし、反映させる。

$ source ~/.cshrc

自分のネットワークの設定を簡単に確認する

rootになる。

$ su
$ ifconfig

出力例:

[root@mymachine myname]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1B:21:AA:BB:CC 
          inet addr:133.30.xxx.yyy  Bcast:133.30.aaa.zzz  Mask:255.255.254.0    --> inet addrが自分のIPアドレス
          inet6 addr: fe80::21b:ffff:ffff:971/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4286785 errors:0 dropped:0 overruns:0 frame:0
          TX packets:442575 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1445575214 (1.3 GiB)  TX bytes:38119094 (36.3 MiB)
lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:642315 errors:0 dropped:0 overruns:0 frame:0
          TX packets:642315 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:35947870 (34.2 MiB)  TX bytes:35947870 (34.2 MiB)

注:個人情報保護法に基づき一部改変しています.

自分が誰だか調べる.別名でログインしているときに便利.

$ whoami

目的のコマンドの場所を調べる.

$ which command
$ which vim
  /bin/vim

この「which」はmatlabのコンソールでも使えるので,スクリプトファイルを探すときにも便利.

tarファイルの作成と展開

tarファイル(tarボール)を作る(非圧縮)

tar cvf filename.tar * (現ディレクトリ内の全てのファイルを書庫化)
tar cvf filename.tar file1 file2 file3 file4 (file1-4の4ファイルを書庫化)

圧縮(gzipによる)tarファイルを作るとき

tar cvfz filename.tgz * 

のように「z」を足すだけ。

tarファイル(tarボール)を展開する

tar xvf filename.tar → これで同じディレクトリに書庫内ファイルが展開される。
tar xvfz filename.tar → 圧縮ファイルを展開する場合。

networkを再起動させる.LANカード(NIC)の調子が悪いときなどに有用.

su
/etc/init.d/network restart

パーティション,ディレクトリをマウントする(Linuxシステムからアクセスできるようにする)

mount /mnt/ocean

など.あるいは,

su
mount -a

/etc/fstabに書かれているボリュームを全てマウントする.起動時に自動的に実行されている.