■ Linux(リナックス)の小技! - Linux Tips - ちょっと自慢できるLinux(リナックス)技をあなたに





このページでは、Linux(リナックス)を使うときに知っていると、とても便利な小技を紹介しています。
ちょっとしたことなんですが、それが便利!というものばかりです。
これを知っているのと、Linux(リナックス)を使う時とても重宝しますよ。

ぜひ、ここにあるLinux技を覚えてもっと、もっとLinux(リナックス)を使いこなしてください!

これからも、どんどん追加していきますよ♪
■ 目次 ■

001.[ Linux(リナックス)サーバーの時間を正確に合わせる ]
002.[ rootパスワードがわからない!ログインできない!のときの対処法 ]
003.[ 定期的にコマンドやプログラムを動かしたい ]
004.[ コマンドやファイル名入力を楽にしてくれる小技 ]
005.[ コマンドライン画面の表示行数・桁数を変更する ]
006.[ ホスト名からIPアドレスを調べる ] 
007.[ Linuxサーバーのホスト名を変えてみよう! ]
008.[ LinuxサーバーのIPアドレスを変えよう! ]
009.[ 再起動しても変わらないIPアドレスの変更方法 ] 
010.[ これは便利♪複数のコマンドを連続で実行しよう! ] 
011.[ Fedora Coreの文字化けを直す ]
012.[ rpmパッケージバージョンを最新バージョンにアップデートしよう! ]
013.[ 日時をファイル名に付けよう! ] New!
014.[ 日時をファイル名に付けよう!2 - [ profile変更編 ] ] New!

脱Linux(リナックス)初心者を一番に・・・Linux(リナックス)をはじめめるためのきっかけをお届けします。Linuxサーバーのスキルをあなたに! 未経験でもLinux・IT業界へ転職できる!

未経験から最短5週間でIT業界への転職を実現する。日本初の「Linux」「Java」の専門スクールです。

未経験から即戦力のエンジニアを育成することを目的に少人数のクラス担任制を採用し、 Linuxの資格取得者は600名を超える実績があります。(LPIC合格率 96.3%)

その理由は、Linuxスキルを身に付けるだけじゃなく、就職カウンセリングまでするスクールの体制にあります。

「まったくの未経験だけど・・・Linuxの仕事をしたい!」というあなたは、講座の詳しい資料を請求できますので、申し込んでみてください。

資料請求はいますぐ!
脱Linux初心者を一番に・・・Linuxをはじめめるためのきっかけをお届けします。Linuxサーバーのスキルをあなたに! リナックスアカデミー。Linux&Javaの専門校で未経験からIT就職

受講料の一部を国が負担する教育訓練給付制度も利用できます。★資料請求は無料







■Linuxサーバーの時間を正確に合わせる

Linuxサーバーとか、パソコンの時間って、気づくと5分や10分すぐにずれますよね。
そうゆう時に時刻合わせをしますが、Linuxはコマンド一つで正確に時間を
合わせることができます。

ぜひ、つかってみてください。

# date  ←サーバーに設定されている日付、時刻を表示する
2000年 2月 12日 土曜日 12:02:02 JST

# ntpdate sutns.sut.ac.jp ←「ntpdate」コマンドを使って、タイムサーバーと時刻
               あわせをする

12 Dec 01:31:03 ntpdate[17063]: step time server 133.31.30.8
offset 120835737.178893 sec

# date  ←正しい時刻になっているか確認する
2003年 12月 12日 金曜日 01:31:07 JST

これで、あなたのLinuxサーバーも1秒の狂いもなく、時間を刻むことができます。

タイムサーバーリスト
---------------------------------------------------------------------------
東大 eric.nc.u-tokyo.ac.jp
東京理科大 sutns.sut.ac.jp
豊橋技術科学大 ntp.tut.ac.jp
大坂府立大 eagle.center.osakafu-u.ac.jp
和歌山大 narumi.eco.wakayama-u.ac.jp
広島大 ns.hiroshima-u.ac.jp
---------------------------------------------------------------------------

[ topへもどる ]




■rootパスワードがわからない!ログインできない!のときの対処法

最近、2台目のLinuxサーバーにRedhat Linux9をインストールしました。
インストール終了後、起動してみると、ログインユーザ、パスワードを
一切受け付けてくれません。

設定はインストールの時にちゃんとしたはずなのに。rootでもログイン
できませんでした。きっとどこかで、パスワードを入力し間違ったのでしょう。
仕方ないので、再インストール・・・。

。。。なんてことはしません。

そんな時のために

      「rootパスワードがわからなくなった時の対処法」

をご紹介します。

---------------------------------------------------------------------------
■シングルユーザーモードでログインすれば、rootパスワードを設定できます。

1. Linuxサーバーを再起動します。

2.「boot:」プロンプトが表示されます。
 (グラフィカル起動画面場合には Ctrl-Xキーを押して、
  テキストログインへ変更してください。)

3.「boot:」プロンプトで「linux single」と入力してください。

4. Linux起動後しばらくすると「bash#」プロンプトが表示されます。

5.「bash#」プロンプトで「passwd root」と入力してrootのパスワードを
  設定します。
6.「/sbin/shutdown -r now」と入力し、サーバーを再起動します。
---------------------------------------------------------------------------

再起動後、無事rootでログインすることができました。パスワードは忘れたり、
入力ミスをしてしまうと、いろいろ面倒なことがでてきます。
扱いには、十分に注意する必要があります。
rootでのログインができなくなった場合は、この手順でLinuxサーバーを再設定しましょう!
間違っても、すぐにLinuxの再インストールなんかはしないでくださいね(笑)

[ topへもどる ]




■定期的にコマンドやプログラムを動かしたい

Linuxサーバーを構築していると、どうしても定期的に実行したいコマンドや
プログラムが出てきます。でも、いちいち手で実行させるなんてめんどくさい
ですよね?そんなとき便利なのが今回紹介する

        「crontab」

です。

これは、自動で決められた日にち、時間に、あなたが設定したコマンドや
プログラムを実行してくれるとても便利な機能です。
root権限で次のコマンドを入力してください。

#crontab -e

ファイルの内容が表示されるされると思います。初めての場合は何も書かれ
ていません。このファイルに次の順の形式で設定内容を書き込みます。

分 時間 日 月 曜日 コマンド

★設定する値★
分   0-59
時間 0-23
日  1-31
月  1-12
曜日 0-6 (0:Sun to 6:Sat)



例) 50 * * * * /usr/bin/ntpdate -s -b 133.100.9.2

この例の場合、毎時間50分になると133.100.9.2へ時刻合わせを
する処理をします。

例)
0 20 * * * /home/pakira/backup.sh

これだと、毎日20時なるとbackup.shを実行するように
設定されます。

この機能は本当に便利です。私の場合は、例に紹介した時刻合わせ
と、ホームページのログを保存する処理を毎朝7時に実行するよう設定
しています。

コンピュータは人が実行するめんどい部分を変わりに自動でしてくれる
とても、便利な道具です。是非活用しましょう!!

[ topへもどる ]




■コマンドやファイル名入力を楽にしてくれる小技

コマンドや、ファイル名の入力って結構めんどくさいときってないですか?
Windowsと違ってテキスト入力がほとんどだから、少しでも楽できたらいい
ですよね。

Linuxにもそうゆう楽をできる小技があるんです。

専門的な言葉で言うと「補完」っていいます。

■補完方法

$ pwd
/etc
$                     ←「tab」キーを連続2回押します。

Display all 3618 possibilities? (y or n) ←すると補完一覧を表意するか聞いてき
                      ますので、ここで「y」を入力してく
                      ださい。




mail-files zonetab2pot.py
mail.local zsh    ←リストが表示されます。
mailq zsoelim
mailq.postfix {
mailq.sendmail

$ zone   ←たとえばココで「zone」とだけ入力して「tab」キーを1回押してみて
       ください。

$ zonetab2pot.py ←他の文字が補完されて完全に表示されます。
            ※ただし他にも「zone」を含む文字があると補完されませ
             んので注意してください。


---------------------------------------------------------------------------
■コマンドでの使用

他にもコマンドでもこの補完は使えます。

たとえば、上と同じように途中まで文字を入力して「tab」キーを2回押すと
その文字を含むコマンドが候補として表示されます。

$ ta        ←「tab」キーを連続2回押します。
tac tack tail talk tangle tar  ←「ta」を含むコマンドが表示さ
                         れます。


★この補完を使えば、入力の手間を省くだけでなく、入力の間違いを防ぐ効果も
 ありますので、どんどん楽してしまいましょう!

[ topへもどる ]




■コマンドライン画面の表示行数・桁数を変更する

おそらく、このメルマガを見てくれているあなたは
コマンドラインでLinuxを操作しているとおもいます。

そのときコマンドライン画面の表示行数や桁数が自分
の好みで変更できたらいいなあ。
なんて思ったことないですか?

表示される文字数が多くて、中途半端に勝手に改行されて
画面が見にくくなるそんなことにイライラしたことはないですか?

そんな時はあなたの都合に合わせて、表示行数・桁数を変更しちゃいましょう!!

---------------------------------------------------------------------------
$ echo $LINES,$COLUMNS ←まず、最初にいまの行数・桁数を確認します
50,100         ←これが今の行数・桁数です(私は大目に設定しています♪)

$ export LINES=24    ←行数を24行に設定します
$ export COLUMNS=80   ←桁数を80桁に設定します

$ echo $LINES,$COLUMNS ←もう一回行数・桁数を確認すると行数を24行、桁数を80桁
24,80           に設定されています

---------------------------------------------------------------------------

■この技はあなたのLinuxの使い方によってこまめに切り替えたりすると
 結構便利です。カーネルのログなんかを見るときは、1行の文字数が多か
 ったりするので、桁数をおおめに設定したりすると見やすくなります。

■ここで、使ったexportは環境変数といわれるものを変更するときに
 使用するコマンドです。
 シェルスクリプトなんかを使うときにはよく登場します。

■ためにしに「export」とだけ入力して実行してみてください。

 わけのわからない文字がたくさん出てくると思います。
 ここに書いてある内容で、あなたがLinuxを使うときの
 環境の設定をしています。

 その中に、「COLUMNS=」と「LINES=」というのがありますよね?
 今回はその値を変更したんです。

[ topへもどる ]




■ホスト名からIPアドレスを調べる

■ホスト名からIPアドレスを調べることを「正引き名前解決」といいます。
 ホスト名とは「www.yahoo.co.jp」や「linux-topics.com」といった私た
 ちが 見て理解しやすいようにつれたけられた名前です。

■一方、IPアドレスとは、インターネットに接続されたコンピュータ1台1台に
 割り振れる識別番号です。この番号は世界で一つしかなく重複しない仕組み
 になっています。

■IPアドレスは「210.145.108.18」などのように、0から255までの10進数の数
 字を4つ並べて表現する「IPv4」が主流です。しかし、今後もコンピュータは
 増え、家電や色々なものにIPアドレスが割り当てられると、その数が足りな
 くなる恐れが出てきました。

 そこで、開発されたのが128ビットでアドレスを管理する「IPv6」です。
 この次世代技術により、IPアドレスが足りなくなるという心配は当分いらな
 くなります。


今回紹介する「Linuxの小技」は、ホスト名からIPアドレスを調べる方法です。

◆「linux-topics.com」 ⇒ 「219.163.200.73」


コマンド「dig」を実行します。

◆----------------------------------------------------------------◆
$ dig linux-topics.com  ←コマンドを実行します。

; <<>> DiG 9.1.3 <<>> linux-topics.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59806
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 7

;; QUESTION SECTION: ←ホスト名を管理しているサーバーへ問い合わせた内容
;linux-topics.com. IN A  

;; ANSWER SECTION: ←ホスト名を管理しているサーバーが返した答え
linux-topics.com. 291 IN A 219.163.200.73
                        ↑ここがIPアドレスになります。


Linuxでサーバーを構築していると、どうしてもネットワークの知識が必要になる時があります。
そんな時、この本を読んでいれば、Linuxでのネットワークの構築で困ることはまずありません。

本の大きさ、ボリュームの割りに、内容はわかり易く、丁寧に書かれています。
なにより、他のネットワーク書とは違い読みやすいです。
あなたの本棚に1冊おいて損はないでしょう。

マスタリングTCP/IP 入門編
[ topへもどる ]




■Linuxサーバーのホスト名を変えてみよう!

■Linuxサーバーのホスト名は、インストールする時に指定します。
 でも、ながくサーバーを使い続けているとホスト名を変更しなければ
 ならない時があります。

■たとえば、パソコンが増えてきてネットワークを組むときに、ある程度
 決まったルールで名前をつけたい(ネーミングルールの設定)

■サーバーが使っていたホスト名を別のパソコンやサーバーに付け直したい
 などです。

■そうゆう場合には、この手順を実行してください。
 まず、rootになってください。


 $ su -      ←「su -」でroot権限になります。
 Password:     ←rootパスワードを入力します。
 #

 # hostname    ←「hostname」コマンドを実行します
 snoopy      ←いまのホスト名が表示されます。

 # hostname kitty ←「hostname」に新しいホスト名をつけて実行します。
 # hostname    ←確認のためにもう一度「hostname」を実行します。
 kitty       ←「hostname」が新しくkittyに変更されました


■でも、これだけでは、サーバーを再起動した場合、
 ホスト名がもとのsnoopyにもどってしまいます。

■そうならないためには、「/etc/sysconfig/network」ファイルを編集する
 必要があります。

 # vi /etc/sysconfig/network ←networkファイルをviで編集します。

■私の場合、HOSTNAMEの箇所が前の「snoopy」のままです。
 ここの部分を「kitty」へ変更します。

     HOSTNAME=snoopy

        ↓

     HOSTNAME=kitty

■保存して、「vi」を終了してサーバーを再起動します。

 # shutdown -r now  ←サーバーを再起動します。


■再起動後にもう一度ホスト名を確認します。

 # hostname
 kitty        ←「kitty」に変更されています。

■気まぐれで、名前を変えたいなんて場合もありですね(*^^)v

[ topへもどる ]




■LinuxサーバーのIPアドレスを変えよう!

 サーバーを使い続けていると、設定していたIPアドレスを変えなきゃ
 いけない場面に遭遇する時があります。
 たとえば、サーバーを移動するときとか、家庭内LANのルータを買い換
えた時なんかです。

 そんな時は、この方法を使うと、LinuxサーバーのIPアドレスを
 簡単に変えることができます。


■1.いま設定されているIPアドレスを確認します。


$ /sbin/ifconfig     ←IPアドレスを確認します。
eth0 Link encap:Ethernet HWaddr 00:30:AB:01:AC:FD
inet addr:192.168.2.102 Bcast:192.168.2.255 Mask:255.255.255.0
            
         変更前IPアドレス


 IPアドレスを確認するためには、「/sbin/ifconfig」を実行します。
 これを実行するのは、一般ユーザ権限でもできます。

 設定されいるIPアドレスを確認するには、

 「inet addr:192.168.2.102」

 を見ます。

 ちなみに、 「eth0」とは、ネットワークデバイスのことを指します。
 LANカードと思ってもうと、わかりやすいと思います。


 結果としては、このサーバーのIPアドレスは

          「192.168.2.102」

 になります。


■2.IPアドレスを変更します。


$ su -   ←まずは、root権限になります
Password:

# ifconfig eth0 192.168.2.110 ←IPアドレスを変更します

# ifconfig eth0  ←再度、設定変更後のIPアドレスを表示します
eth0 Link encap:Ethernet HWaddr 00:30:AB:01:AC:FD
inet addr:192.168.2.110 Bcast:192.168.2.255 Mask:255.255.255.0
            
         変更後IPアドレス


 システムの設定を変更するときには、必ずroot権限になってください。

 そして、「ifconfig eth0 192.168.2.110」でIPアドレスの変更を実行します。

 文法としては、


       「ifconfig デバイス名 変更後IPアドレス」


 という形になります。

 でも、このままではまだ不十分です。

 このままの状態で、サーバーを再起動してしまうと、せっかく新しく設定した
 IPアドレスがもとに戻ってしまいます。

 サーバーを再起動しても、IPアドレスが変わらない方法は次回紹介します♪
 お楽しみに(^^

[ topへもどる ]




■再起動しても変わらないIPアドレスの変更方法

■前回は、LinuxサーバーのIPアドレスを変更する方法を紹介しました。
 でも、前回の方法だとサーバーを再起動してしまうと、せっかく設定した
IPアドレスが元に戻ってしまいます。
 今回は、サーバーを再起動しても、IPアドレスが変わらない方法を紹介します。



■1.いま設定されているIPアドレスを確認します。


最初に前回と同じように、IPアドレスを確認します。


$ /sbin/ifconfig     ←IPアドレスを確認します。
eth0 Link encap:Ethernet HWaddr 00:10:4B:C8:56:9F
inet addr:192.168.2.103 Bcast:192.168.2.255 Mask:255.255.255.0
            ↑
         変更前IPアドレス


上の例だと、今回のサーバーのIPアドレスは

 「inet addr:192.168.2.103」

 になります。


■2.IPアドレスを変更します。


$ su -   ←まずは、root権限になります
Password:

# cd /etc/sysconfig/network-scripts ←ディレクトリを移動します

# vi ifcfg-eth0 ←viエディッタで「ifcfg-eth0」を編集します

----------------------------------------------------------------------

# 3Com Corporation|3c905B 100BaseTX [Cyclone]
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.2.255
HWADDR=00:10:4B:C8:56:9F
IPADDR=192.168.2.103   ←変更箇所は「IPADDR」になります
NETMASK=255.255.255.0
NETWORK=192.168.2.0
ONBOOT=yes
TYPE=Ethernet

----------------------------------------------------------------------

 今回は、IPアドレスを「192.168.2.103」から「192.168.2.104」へ変更します。


 「IPADDR=192.168.2.103」⇒「IPADDR=192.168.2.104」


----------------------------------------------------------------------

# 3Com Corporation|3c905B 100BaseTX [Cyclone]
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.2.255
HWADDR=00:10:4B:C8:56:9F
IPADDR=192.168.2.104  ←変更後は「192.168.2.104」にします
NETMASK=255.255.255.0
NETWORK=192.168.2.0
ONBOOT=yes
TYPE=Ethernet

----------------------------------------------------------------------

 次にネットワークデバイス(LANカード)の再起動をします。


# ifdown eth0 ←ネットワークデバイスを無効にします
# ifup eth0  ←ネットワークデバイスを有効にします

# ifconfig eth0  ←IPアドレスを確認します。
eth0 Link encap:Ethernet HWaddr 00:10:4B:C8:56:9F
inet addr:192.168.2.104 Bcast:192.168.2.255 Mask:255.255.255.0
             
         変更後IPアドレス


 この設定をすれば、Linuxサーバーを再起動したあとも、IPアドレスは設定後の
 ままの状態になります。

 viエディッタなどをつかって、ファイルの編集をしなければならないので
 最初は大変だとおもいますが、是非挑戦してみてください。

 ※システムの設定を変更するときには、必ずroot権限になってください。


ifconfigについてはこちらでも紹介しています。
 

[ topへもどる ]




■これは便利♪複数のコマンドを連続で実行しよう!

■コマンド操作をしていて、一回ずつコマンドを入力することにイライラした
ことはありませんか?
たくさんのコマンドを入力しなければならない時なんて、面倒ですよね。

一行で実行したいすべてのコマンドを入力できれば、手間も省けるし、
時間の短縮にもなります。

今回は、そんな一行で複数のコマンドを実行できる便利な方法を紹介します。


■文法

コマンドA;コマンドB;コマンドC


実行したいコマンドを「;」(セミコロン)で区切ってコマンドを並べるだけです。


コマンドAの実行が終了したあとに、コマンドBを実行し、コマンドBが終了
した後にコマンドCを実行をします。


たとえば、ディレクトリを移動して、あるファイルの詳細情報を表示したい
場合は下のように入力します。

---------------------------------------------------------------------

$ pwd;cd /var/log;ls -l messages;pwd ←コマンド入力
/home/pakira             
-rw------- 1 root root 5083 Apr 4 22:17 messages
/var/log

---------------------------------------------------------------------

$pwd;cd /var/log;ls -l messages;pwd

「pwd」は現在のディレクトリを表示するためのコマンドです。
その結果が1行目の「/home/pakira」で表示されています。

 ■pwdコマンド
http://linux-topics.com/command/command/006-pwd.htm

 「cd /var/log」はディレクトリを移動するコマンドです。
 これを実行することで「/var/log」ディレクトリへ移動します。

 ■cdコマンド
http://linux-topics.com/command/command/009-cd.htm

「ls -l messages」はファイルの詳細情報を表示するコマンドです。
 結果として「messages」ファイルの権限や更新時間が表示されています。

 ■lsコマンド
http://linux-topics.com/command/command/001-ls.htm

最後にもう一度pwdコマンドを実行して、現在のディレクトリ
「/var/log」を表示しています。


この「;」は、使い方によって、大きくあなたのコマンド入力を便利な
ものにしてくれます。コマンドの組み合わせの分だけ幅が広がりますの
で、ぜひ色々試してみてください。


もし、「こんな便利な使い方を見つけたよ!」「こんな使い方があるよ」
というものがありましたら教えてもらえると嬉しいです。
是非、ここでで紹介させてもらいます。


コンピュータの世界は、自分が楽をすることは悪いことじゃありません。

コンピュータに仕事をさせて、自分が楽すれば、するほど褒められます(^^
この方法で、ジャンジャン楽してしまいましょう!


[ topへもどる ]




■Fedoraの文字化けを直す

Fedoraをインストールして、「man」コマンドを実行したら
文字化けしていた。という経験をしている方はいませんか?

これは、Redhatを使っていたパソコンにFrdoraをアップデートした時に起こります。

Redhatでは「EUC」という文字コード標準で使用していたのですが、
Fedoraになってからは「UTF-8」という文字コードが標準で使われる
ようになりました。
(いきなり変えるな!って気がしますが、、、)

Redhatの時の「EUC」コードのままで表示したために、文字化けが起こって
いるわけです。

そんな時はこれで、解決です。

-----------------------------------------------------------
$ export PAGER=lv
-----------------------------------------------------------

でも、このやり方だと、次にログインしたとき
また同じく文字化けしてしまいます。

そうならないために、Linuxの設定ファイルを変更して
今後、文字化けしないように対応します。

$ su -      ←root権限になります
Password:     ←rootパスワードを入力します
# vi /etc/man.config ←viエディッタで「man.config」ファイルを編集します

/PAGER      ←「/PAGER」と入力して、PAGERの行を検索します
-----------------------------------------------------------
PIC /usr/bin/gpic
VGRIND
GRAP
PAGER /usr/bin/less -isr  ←修正箇所はここです
CAT /bin/cat
-----------------------------------------------------------
                  
-----------------------------------------------------------
PIC /usr/bin/gpic
VGRIND
GRAP
PAGER /usr/bin/lv ←「less -isr」から「lv」へ変更します
CAT /bin/cat
-----------------------------------------------------------
:wq    ←「:wq」と入力して保存後viエディッタを終了します

-----------------------------------------------------------
PAGER /usr/bin/less -isr
       
PAGER /usr/bin/lv
-----------------------------------------------------------
上の箇所を変更するだけです。簡単でしょ!?


これで表示すると、ちゃんと、manコマンドの結果がみれます。


もし、今回紹介した箇所であなたが戸惑うとしたらviエディッタの操作
ではないでしょうか?


もし、自信がないのなら、一度ファイルのバックアップをとって
から編集すると良いですよ。

バックアップ

-----------------------------------------------------------
cp /etc/man.config /etc/man.config_bak
-----------------------------------------------------------

もし「/etc/man.config」ファイルの編集に失敗しても

-----------------------------------------------------------
rm /etc/man.config
mv /etc/man.config_bak /etc/man.config
-----------------------------------------------------------

と実行すれば、元にもどります(^^
これなら安心して変更できますね♪


■文字コードの種類

文字コードには、いくつか種類があって、OSによって
標準で使う文字コードが違います。

だから、業務なんかでは、違うOS同士でファイルのやり取りする場合は、
ファイルのデータが読めなくて、エラーになるなんてことが無いように、
文字コード変換処理をするのが普通です。


たとえば、WindowsとUNIXのファイルのやりとりや、
HOSTと呼ばれる汎用機とUNIXのファイルのやり取りなどです。


それぞれのOSで扱う文字コードが違うので、なにも処理をしないで
ファイルを連携すると、文字化けして何も読めなくなってしまいます。

これは憶えておくと良いですよ♪


代表的なものに下のような文字コードがあります。

■1バイト文字コード
 英数字を表示するのに使われ、256文字しか表現
 することができません。主に欧米で使われています。

  ASCII(世界標準)
  IBM汎用機      EBCDIC


■2バイト文字コード(日本語、韓国語など)
 日本語の漢字などを表示する為に使われ、 65536文字
 の表現ができ、主にアジア圏に多く使われています。

  UNIX/Linux(Redhat)    EUC
  Linux(Fedora) FTU-8
  windows/Mac シフトJIS

[ topへもどる ]





■rpmパッケージバージョンを最新バージョンにアップデートしよう!


たくさんあるrpmパッケージをコマンド一つでアップデートする方法を
紹介します。



▼設定はここからです

--------------------------------------------------------------------------


$ su -    ←「 su - 」コマンドでroot権限になります。
Password:

# rpm -qa | grep yum  ←「 yum 」コマンドがインストールされているか
yum-2.0.4-2        確認します。



--------------------------------------------------------------------------
■もし、何も表示されなかった場合
--------------------------------------------------------------------------

FedoraCore1のディスク1に「yum」パッケージが入っていますので、
CD-ROMにディスク1を入れて、下のコマンドでインストールしましょう!


# mount /mnt/cdrom
# rpm -ivh /mnt/cdrom/Fedora/RPMS/yum-2.0.4-2.noarch.rpm


これで、インストールできます。

終わったら、確認の為にもう一度


# rpm -qa | grep yum


を入力してみてください。

今度は、うまくいっていると思います。


--------------------------------------------------------------------------


■設定ファイルの変更

# vi /etc/yum.conf

--------------------------- yum.confの内容 -------------------------------

[base]
baseurl=http://fedora.redhat.com/releases/fedora-core-$releasever

[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=http://fedora.redhat.com/updates/released/fedora-core-$releasever

--------------------------------------------------------------------------

                ↓↓↓

------------------------ 変更後yum.confの内容 ----------------------------

[base]
name=Fedora Core $releasever - $basearch - Base
#baseurl=http://fedora.redhat.com/releases/fedora-core-$releasever
baseurl=ftp://ftp.riken.go.jp/pub/Linux/fedora/core/$releasever/$basearch/os

[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates
#baseurl=http://fedora.redhat.com/updates/released/fedora-core-$releasever
baseurl=ftp://ftp.riken.go.jp/pub/Linux/fedora/core/updates/$releasever/$basearch


--------------------------------------------------------------------------

↑アドレスの箇所を変更しています。



--------------------------------------------------------------------------
■なぜ設定のアドレスを変更するの?
--------------------------------------------------------------------------


そのままの設定だと、サーバーにつながりずらいからです(笑

実は試しに、そのままの設定でアップデートをしてみたんですけど
ぜんぜんダウンロードできませんでした。


ダウンロードが途中で止まったので、すぐに再開するだろうと思って
しばらくほっておいたのですが、それでもダウンロードできませんでした。

(ちなみに放置時間は2時間です。・・・忘れてた!? (^^; )


そこで、上で設定した通りにアドレスに変更すると、すぐにダウンロード
できてすぐにアップデートすることができました。


だから、あなたもここのアドレス設定は変えたほうが良いですよ。


ダウンロード先サーバーは下のページにアドレスが載っていますので、
好きなのを選んでください。


■ミラーサーバー一覧
http://fedora.redhat.com/download/mirrors.html


--------------------------------------------------------------------------


# yum check-update ←「 yum check-update 」で更新ファイル
            があるか確認します。


Gathering header information file(s) from server(s)
Server: Fedora Core 1 - i386 - Base
Server: Fedora Core 1 - i386 - Released Updates
Finding updated packages
Downloading needed headers


↑このように表示されたら、更新ファイルが存在しますので
下のコマンドを実行します。



# yum update ←「 yum update 」でパッケージをアップデートします。

Gathering header information file(s) from server(s)
Server: Fedora Core 1 - i386 - Base
Server: Fedora Core 1 - i386 - Released Updates
Finding updated packages
Downloading needed headers
Resolving dependencies
Dependencies resolved
I will do the following:
[install: kernel 2.4.22-1.2188.nptl.i686]

[update: hpijs 1.5-4.2.i386]
[update: foomatic 3.0.0-21.3.i386]
[update: gnome-panel 2.4.2-3.i386]
[update: php-ldap 4.3.6-1.3.i386]

Is this ok [y/N]: y     ←「y」を入力して[Enter]キーを押します。

Getting pango-1.2.5-4.i386.rpm
pango-1.2.5-4.i386.rpm 100% |=========================| 341 kB 00:03
Getting samba-client-3.0.2-7.FC1.i386.rpm
samba-client-3.0.2-7.FC1. 100% |=========================| 3.3 MB 00:13
Getting postgresql-libs-7.3.4-11.i386.rpm
postgresql-libs-7.3.4-11. 100% |=========================| 89 kB 00:00

Transaction(s) Complete  ←「 Transaction(s) Complete 」が表示されると完了です。


--------------------------------------------------------------------------

■アップデートを自動で実行する

アップデートは定期的に実施ないと意味がありません。
忘れっぽいあなたや、面倒くさがりな私にはとてもありがたい機能です。


自動で、アップデートさせたい場合には下のコマンドを実行する
だけです。


# chkconfig yum on  ←サーバーを起動したり再起動したときに、yumも起動します。
# service yum start ←「yum」を開始します。
v # service yum status
Nightly yum update is enabled. ←この様に表示されれば、自動更新してくれます。


--------------------------------------------------------------------------

■特定パッケージのみアップデート

今回、紹介したアップデートは、すべてのパッケージにたいして
アップデートをしています。
でも、ある特定のパッケージのみアップデートしたい場合には下のように指定
してください。


# yum update パッケージ名

--------------------------------------------------------------------------


■キャッシュをクリアする

アップデートをすると、古いバージョンのパッケージ用ヘッダファイルが、
「/var/cache/yum」ディレクトリ配下へそれぞれ保存されています。

アップデートを繰り返すと、どんどん溜まっていってしまうので定期的に
クリアすることをオススメします。


# yum clean

--------------------------------------------------------------------------


[ topへもどる ]



■ 日時をファイル名に付けよう!

Linuxサーバーを使っていると、ファイルをバックアップをする時や、
ファイル名を別名にするときに、いつ、その作業をしたのか、
わからなくなる時とかありませんか?

例えば、

「設定ファイルを変更したけど、いつ変更したっけ?」
「このファイルをバックアップしたのはいつだっけ?」

という具合にです。

Linuxを使っていると、1度や2度必ず、そうゆう場面に出くわします。

そこで、一目でいつ、そのファイルを変更したがかわかると、
とても便利ですよね?

実は、サーバー管理をするうえでファイルの日付管理はとても
大切な事なんですよ。

実際、私の働いている現場では、設定ファイルを変更すると、変更前の
ファイルは削除しないで、必ず保存しておくルールになっています。
それは、設定を変更した事によって、何かトラブルが起きても、すぐに
元に戻せるようにする為です。

その時の決まりとして、変更前の設定ファイルには、変更当日の日付
をつけて、管理するという決まりまであります。

具体的に言うと、


        『 ファイル名 + 日付 』


という形式で、ファイル名に日付をつけて、バックアップをするわけです。

だから、過去に何度も設定を変更しているファイルは、日付だけが違う
ファイルがいくつもあります(笑)

そのくらい、日付管理は大切ですので、今日のテクニックはぜひ覚えて
ください。きっと、この他の場面でも色々と役に立つと思いますよ。

でも、単純に「mv」コマンドで、直接自分でファイル名に日付をつけても
面白くないので、今日は、コマンドでファイル名に日付をつける方法を紹介
します。

■ mvコマンドが何?という方はこちら↓
mvコマンド


日付を表示するコマンドは「 date 」コマンドを使います。
試しに実行してみましょう!

---- 実行例 ---------------------------------------------------------

$ date
2004年 8月 26日 木曜日 21:01:35 JST

---------------------------------------------------------------------


日付が表示されました。
これを↓のように実行してください。

---- 実行例 ---------------------------------------------------------

$ date +%y%m%d
040826

---------------------------------------------------------------------

どうですか?「2004年 8月 26日」が「040826」になりましたか?
じゃあ、早速これをファイル名に付けてみましょう!

---- 実行例 ---------------------------------------------------------

$ touch file_test.txt ←touchコマンドで「file_test.txt」ファイルを作ります。
$ ls -l         ←ファイルの情報を表示します
-rw-r--r-- 1 pakira pakira 0 8月 26 05:50 file_test.txt

---------------------------------------------------------------------

---- 実行例 ---------------------------------------------------------

$ mv file_test.txt file_test.txt_`date +%y%m%d` ←コマンドを実行します

$ ls -l        ←ファイル名が変わっているか確認します
-rw-r--r-- 1 pakira pakira 0 8月 26 05:50 file_test.txt_040826

---------------------------------------------------------------------

どうです?

上の様にファイル名に、実行した当日の日付が追加されましたか?

「file_test.txt」ファイルが「file_test.txt_040826」のように
なれば成功です。

ファイル名の後ろに「`date +%y%m%d`」をつけると、日付をファイル名
に付けることができます。

でも、、、、。

コマンドの度に「`date +%y%m%d`」と入力していたら、かえって面倒ですよね(^^;;

「それなら、mvコマンドでやるよ」っていわれてしまいそうです(汗

大丈夫!もっと簡単に出来る方法を『 次回 』紹介しますので
楽しみにしていてくださいね!

[ topへもどる ]



■ 日時をファイル名に付けよう!2 - [ profile変更編 ]

コマンドで日付や時間を取得して、ファイル名にする方法を紹介します。

これができるようになると、ファイルの管理が日付単位で管理できたり、
バックアップした日が一目でわかるようになります。

ファイル名に日付を付ける場合

「mv file_test.txt file_test.txt_`date +%y%m%d`」

↑の様に、mvコマンドで、ファイル名の後ろに「 `date ++%y%m%d` 」
とすると、実行日当日の日付が付けられるというお話をしました。

でも、それだと毎回「`date +%y%m%d`」と記述しないといけないので、
かえって面倒です。

そんな時は、これから紹介するテクニックで、楽しちゃいましょう!

----------------------------------------------------------------------

Linuxにログインして、下に紹介しているコマンドを入力してください。

$ cd     ← 「cd」コマンドでホームディレクトリへ移動します。

$ pwd     ← 「pwd」コマンドで現在のディレクトリを確認します。
/home/pakira ←「/home/ユーザ名」になっていれば、OKです。

$ ls -la   ←「ls -la」で「.」ではじまる隠しファイルを表示させます。
合計 28
drwx------ 2 pakira pakira 4096 10月 7 19:26 .
drwxr-xr-x 7 root root 4096 10月 7 19:26 ..
-rw-r--r-- 1 pakira pakira 24 10月 7 19:26 .bash_logout
-rw-r--r-- 1 pakira pakira 191 10月 7 19:26 .bash_profile
-rw-r--r-- 1 pakira pakira 124 10月 7 19:26 .bashrc
-rw-r--r-- 1 pakira pakira 5531 10月 7 19:26 .canna


今回、編集するファイルは、「.bash_profile」ファイルです。
これは、Linuxで使用するユーザの環境を設定するファイルです。

では、早速編集してみましょう。
ファイルの編集には、「viエディッタ」を使用します。

↓viエディッタの使用方法については、こちらを参照してください。
viエディッタを使いこなそう!


$ vi .bash_profile

■ 変更前
------------------「.bash_profile」ファイルの内容 --------------------

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME

----------------------------------------------------------------------

↑多少、あなたのLinuxに、表示されている内容と違うかもしれませんが、
大体は同じだと思います。

このファイルに次の一行を追加してください。

『 export DAY=`date +%y%m%d` 』


■ 変更後
----------------------------------------------------------------------

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME

export DAY=`date +%y%m%d` ←ここへ追加します。

----------------------------------------------------------------------

ファイルを保存して、viエディッタを終了したら、引き続き下のコマンドを入
力してください。


$ source ~/.bash_profile ←「source」コマンドで設定を反映させます。


では、早速うまく設定できているか、確認してみましょう!


$ touch test.txt  ←「touch」コマンドでtest.txtを作成します。

$ ls -l       ←「ls -l」で作成されたファイルを確認します。
合計 0
-rw-rw-r-- 1 pakira pakira 0 10月 7 19:37 test.txt

$ mv test.txt test.txt_$DAY←「mv」コマンドで「test.txt」ファイルを
                リネームします。


$ ls -l  ←「ls -l」でリネームされたファイルを確認します。
合計 0
-rw-rw-r-- 1 pakira pakira 0 10月 7 19:37 test.txt_041007

↑のように、ファイル名の後ろに日付が表示されていれば、OKです。


「mv」コマンド実行時に、変更後のファイル名の後ろに「$DAY」という
ものを指定してます。これは、viエディッタで編集した「.bash_profile」
ファイルに設定した定義になります。

「export DAY=`date +%y%m%d`」に設定しましたが、意味としては


●「`date +%y%m%d`」の結果を「DAY」にいれなさい。


という事になります。もちろん、この「DAY」の部分は、あなたの
好きな文字にしても、ぜんぜん問題ありません。

たとえば、「D」であったり、「TODAY」であっても大丈夫です。

「export D=`date +%y%m%d`」
「export TODAY=`date +%y%m%d`」


ただ、注意してほしいのは、「.bash_profile」で設定した定義が「DAY」なら
コマンドを実行する場合は、「$DAY」という形で、頭に「$」を付けるのを
忘れないでください。
( DやTODAYでも同じです。)

これは、シェルスクリプトを知っている方ならわかるのですが、
Linux上、この「DAY」は、「変数」という扱いになっているために
「$」が必要になっています。

これは決まりですので、ぜひ、一緒に覚えておいてくださいね。


▼ 今日、登場したコマンドは↓のページにリファレンスがありますので
活用してください。

  Linuxコマンドリファレンス ⇒ http://linux-topics.com/command/index.htm

[ topへもどる ]