今日は便利なLinuxコマンドを紹介します!

時間、日付およびカレンダー

日時を取得する

日時を取得するためにはdateコマンドを使用します。

 

~$date
Tue Apr  9 15:42:18 JST 2013

カレンダーを表示する

calコマンドで簡単に現在の月のカレンダーを表示できます。

 

~$cal 2016

2016年のカレンダーを表示します。ncalはcalの代替で、表示が異なります。

 

■ 履歴

コマンドの実行履歴を表示する

historyコマンドは非常に便利です。history,pipeとgrepというキーワードで、コマンドをより早く検索することができます。
例えば

 

~$history | grep ls
 1635  ls node_modules/
 1636  ls node_modules/express/
 1637  ls node_modules/express/bin/
 1638  ls -l
 1639  cd Downloads/android-sdk-linux/tools/
 1640  ls -l gaetan.png 

 

履歴の中でタイムスタンプを表示する

 

~$ export HISTTIMEFORMAT='%F %T '
~$ history
 1635  2013-04-09 10:40:51 ls node_modules/
 1636  2013-04-09 10:40:51 ls node_modules/express/
 1637  2013-04-09 10:40:51 ls node_modules/express/bin/
 1638  2013-04-09 10:40:51 ls -l
 1639  2013-04-09 10:40:53 cd Downloads/android-sdk-linux/tools/
 1640  2013-04-09 10:40:53 ls -l gaetan.png

 

履歴をクリアする

 

 ~$ history -c

 

■ 検索して見つける

名前でファイルのパスを見つける

 

~$ locate itt.png
  /home/gaetan/Documents/IT-Tokyo_logo/itt.png

 

コマンドがインストールされているdirectory・ダイレクトリを見つける

 

~$ which uname
  /bin/uname

 

コマンドの簡単な説明を表示する

 

~$ whatis ls
ls (1)               - list directory contents

 

再帰的にファイルの中でを検索

 

~$ grep -r <pattern> <directory>

 

ファイルまたはディレクトリのみへのchmodで再帰的にパーミッションを設定する

ファイルの場合

 

~$ find <directory> -type f -exec chmod 777 {} \;

 

ディレクトリの場合

 

~$ find <directory> -type d -exec chmod 777 {} \;

 

■ システム情報

システム情報を取得する。

lshwやdmidecodeなどでよくシステム情報が取得できます。

 

~$ sudo lshw
~$ sudo dmidecode

 

そしてunameがKernelのバーションを知るためには便利です。

 

~$ uname -a
  Linux gaetan-K53E 3.2.0-39-generic #62-Ubuntu SMP Thu Feb 28 00:28:53 UTC 2013 x86_64 GNU/Linux

 

空きディスク容量を表示

 

~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda5       187G  145G   33G  82% /
udev            3.8G  4.0K  3.8G   1% /dev
tmpfs           1.6G  1.1M  1.6G   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            3.8G  320K  3.8G   1% /run/shm

 

ファイルのディスク使用量を見積もる

 

~$ du -h

 

Mバイト単位でメモリーの使用状況を表示する

 

free -m
            total  used free shared  buffers cached
Mem:         7764   7412  351      0      602   3813
-/+ buffers/cache:  2997  4767 
Swap:        7967      0  7967

 

■ ネットワーク

パケットをネットワーク上のホストに送る

 

~$ ping google.jp 
 PING google.jp (173.194.38.119) 56(84) bytes of data.
 64 bytes from google.jp (173.194.38.119): icmp_req=1 ttl=53 time=2.96 ms
 64 bytes from google.jp (173.194.38.119): icmp_req=2 ttl=53 time=2.63 ms

 

ルーティングテーブルを表示する

 

~$ netstat -rn
  Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
  0.0.0.0         192.168.2.1     0.0.0.0         UG        0 0          0 eth0
  169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
  192.168.2.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

 

対象ホストまでのルートを調べて表示する

 

~$ traceroute google.jp

 

ネットワーク・インタフェースの設定を表示する

 

~$ ifconfig
  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:8 errors:0 dropped:0 overruns:0 frame:0
	    TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
	    collisions:0 txqueuelen:0 
	    RX bytes:480 (480.0 b)  TX bytes:480 (480.0 b)

  p2p1      Link encap:Ethernet  HWaddr 00:1C:C0:AE:B5:E6  
	    inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
	    inet6 addr: fe80::21c:c0ff:feae:b5e6/64 Scope:Link
	    UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
	    RX packets:41620 errors:0 dropped:0 overruns:0 frame:0
	    TX packets:40231 errors:0 dropped:0 overruns:0 carrier:0
	    collisions:0 txqueuelen:1000 
	    RX bytes:21601203 (20.6 MiB)  TX bytes:6145876 (5.8 MiB)
	    Interrupt:21 Base address:0xe000

 

ドメイン名問い合わせパケットをネームサーバに送る

 

~$ dig google.jp
  ; <<>> DiG 9.8.1-P1 <<>> google.jp
  ;; global options: +cmd
  ;; Got answer:
  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47511
  ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

  ;; QUESTION SECTION:
  ;google.jp.                     IN      A

  ;; ANSWER SECTION:
  google.jp.              12      IN      A       173.194.38.119
  google.jp.              12      IN      A       173.194.38.120
  google.jp.              12      IN      A       173.194.38.127

  ;; Query time: 8 msec
  ;; SERVER: 192.168.56.1#53(192.168.56.1)
  ;; WHEN: Tue Apr  9 17:49:52 2013
  ;; MSG SIZE  rcvd: 75

 

■ いろいろ

ランダムなパスワードを生成

 

~$ openssl rand -base64 9
  nj0QS7qXIMzD

最後のパラメータを変更してパスワードの長さを変えることができます。

 

コマンドラインからロック画面する方法

KDE 3.xのすべてのバージョンの場合

 

dcop kdesktop KScreensaverIface lock

 

KDE 4.xのすべてのバージョンの場合

 

qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock

 

GNOME

 

gnome-screensaver-command -l

 

XFCE

 

xscreensaver-command -lock

 

端末スクリーンをクリアする

 

~$ clear

 

電卓

bcコマンドでテキストモードの電卓が使えます。

 

~$ bc
(6+4)/5
2

電卓を終了するためにはquitを入力します。