読者です 読者をやめる 読者になる 読者になる

CentOS7(Minimal)のインストール

1.cdbootを行い、「Install CentOS 7 」を選択

 

2.言語およびキーボードの選択

 

3.インストール概要→インストール先(D)を選択

 

4.デバイスの選択 今回はパーテーション変更しないので、そのまま[完了(D)]を押して、前のインストール概要画面から[インストール開始]ボタンを押す

 

5.インストール開始 rootパスワード(R)とユーザ作成(U)を行う

 

6.rootパスワードを入力し、[完了]ボタンを押す 短いパスワードなどの場合は、[完了]ボタンを2回押す

 

7.ユーザ作成 よきにはからえ

 

8.インストール完了したら設定画面で、[再起動]ボタンを押す

cal 09 1752の出力が変

9月の出力が変
$ cal 09 1752

   September 1752   
Su Mo Tu We Th Fr Sa
       1  2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

9月14日 - 北米の13植民地を含むイギリス帝国でユリウス暦からグレゴリオ暦に切替。そのため当該地域のカレンダーには1752/9/3 ~ 1752/9/13 が無い。
1752年 - Wikipediaより


なるほど。

curlよく使うメモ

下部のおまけのほうがメインかも

■ダウンロード(プロトコル無指定の場合はhttp)
$ curl http://domain/
$ curl domain

■ダウンロードファイル保存
$ curl -O http://www.google.com/index.html

■ダウンロードファイル保存(ファイル名指定)
$ curl -o index.html www.google.com

■ヘッダーの取得
$ curl -Is www.google.com

ftpでファイル取得
$ curl ftp://domain:port/full/path/to/file

■ftpsでファイル取得
$ curl --ssl ftp://domain:port/full/path/to/file

ftpでファイル取得 ログインして取得(:passwordなしだと、実行後パスワードを求められる)
$ curl -u username:password ftp://domain:port/full/path/to/file

ftpでアップロード(-全データ、filename指定/-u IDとPW、-aを加えると追記)
$ curl -T - ftp://domain:port/myfile
$ curl -T filename ftp://domain:port/myfile
$ curl -T filename -u username:password ftp://domain:port/myfile
$ curl -T filename -u username:password -a ftp://domain:port/myfile

■キーファイルを使った取得
$ curl -u username: --key ~/.ssh/id_rsa scp://domain/~/file.txt

■プロキシを使った取得(プロキシに認証が必要な場合は -U を使う。接続先の認証は-uを使い同時に使用)
$ curl -x proxyserver:port ftp://domain/
$ curl -U username:password -x proxyserver:port ftp://domain/

■プロキシを使わない場合
$ curl --noproxy ftp://domain/

■ヘッダー取得(Iはヘッダーだけ。iはヘッダーと本文)
$ curl -I domain
curl -i domain

リファラ、ユーザエージェント
$ curl -e domainname http://domain
curl -A 'UserAgent' http://domain

■速度制限 例1秒間に1000byte以下
$ curl -Y 1000 -y 1 domain
$ curl --limit-rate 1K domainm

■ダウンロード再開(-C -)
$ curl -o file ftp://domain/path/file
$ curl -C - -o file ftp://domain/path/file

■更新されている場合ダウンロード
$ curl -z local.html http://domain/remote.html

■デバックモード(vヘッダーつき 他は詳細でファイル保存される
$ curl -v domain
$ curl --trace trace.txt domain
$ curl --trace-ascii trace.txt domain
$ curl --dump-header headers.txt domain

■出力制御(s進捗とエラーメッセージなし,sS進捗なし,f通常終了コード0になる400番台を異常終了にする,kSSLエラー無視)
$ curl -s domain
$ curl -sS domain
$ curl -f domain
$ curl -k domain



■おまけ

■使用中のグローバルIPアドレスの確認
$ curl ifconfig.me

他に以下のようなものがあり
http://ifconfig.me

$ curl ifconfig.me
$ curl ifconfig.me/ip
$ curl ifconfig.me/host
$ curl ifconfig.me/ua
$ curl ifconfig.me/port
$ curl ifconfig.me/lang
$ curl ifconfig.me/keepalive
$ curl ifconfig.me/connection
$ curl ifconfig.me/encoding
$ curl ifconfig.me/mime
$ curl ifconfig.me/charset
$ curl ifconfig.me/via
$ curl ifconfig.me/forwarded
$ curl ifconfig.me/all
$ curl ifconfig.me/all.xml
$ curl ifconfig.me/all.json

■10秒毎に計測
URL=http://www.google.com; while true; do echo $(curl -L --w %{speed_download} -o/dev/null -s $URL) >> bps.log; sleep 10;done &

■天気
$ weather(){ curl -s "http://api.wunderground.com/auto/wui/geo/ForecastXML/index.xml?query=${@:-}"|perl -ne '/\([^<]+)/&&printf "\x1B[0;34m%s\x1B[0m: ",$1;/\([^<]+)/&&print $1,"\n"';}
$ weather tokyo

April 12, 2015: Clear. High 15&amp;deg;C (59&amp;deg;F). Winds 21 kph ENE
April 13, 2015: Rain. High 12&amp;deg;C (53&amp;deg;F). Winds 28 kph NE
April 14, 2015: Rain. High 15&amp;deg;C (59&amp;deg;F). Winds 10 kph North
April 15, 2015: Clear. High 18&amp;deg;C (64&amp;deg;F). Winds 46 kph SSW
April 16, 2015: Clear. High 18&amp;deg;C (64&amp;deg;F). Winds 21 kph SSW
April 17, 2015: Clear. High 19&amp;deg;C (66&amp;deg;F). Winds 54 kph SSW

ステータスコードを得るだけ
$ urls=('google.com' 'yahoo.co.jp'); for i in ${urls[@]}; do http_code=$(curl -I -s $i -w %{http_code}); echo $i status: ${http_code:9:3}; done

google.com status: 302
yahoo.co.jp status: 301

短縮URLのURLをチェック
$ check(){ curl -sI $1 | sed -n 's/Location: *//p';}
$ check htn.to/sVVDym

http://dy.hateblo.jp/

gmail取得
にusername@gmail.comのアカウント名
にusername@gmail.comのパスワード

$ curl -u : --silent "https://mail.google.com/mail/feed/atom" | perl -ne 'print "\t" if //; print "$2\n" if /<(title|name)>(.*)<\/\1>/;'


curl時のレスポンス詳細確認(curl-format.txt作成後、実行)
$ vi curl-format.txt

\n
            time_namelookup:  %{time_namelookup}\n
               time_connect:  %{time_connect}\n
            time_appconnect:  %{time_appconnect}\n
           time_pretransfer:  %{time_pretransfer}\n
              time_redirect:  %{time_redirect}\n
         time_starttransfer:  %{time_starttransfer}\n
                            ----------\n
                 time_total:  %{time_total}\n
\n

$ curl -w "@curl-format.txt" -o /dev/null -s http://www.google.com/

            time_namelookup:  0.151
               time_connect:  0.165
            time_appconnect:  0.000
           time_pretransfer:  0.165
              time_redirect:  0.000
         time_starttransfer:  0.179
                            ----------
                 time_total:  0.179

こちらがもっと詳しい
curlでボトルネック調査をする - 256bitの殺人メニュー

■辞書検索(mで探して、dで表示)

$ curl dict://dict.org/m:nslookup

220 pan.alephnull.com dictd 1.12.1/rf on Linux 3.14-1-amd64 <auth.mime> <16312396.29353.1428900068@pan.alephnull.com>
250 ok
152 1 matches found
foldoc "nslookup"
.
250 ok [d/m/c = 0/1/78074; 0.000r 0.000u 0.000s]
221 bye [d/m/c = 0/0/0; 0.000r 0.000u 0.000s]

$ curl dict://dict.org/d:nslookup

220 pan.alephnull.com dictd 1.12.1/rf on Linux 3.14-1-amd64 <auth.mime> <16312399.29362.1428900071@pan.alephnull.com>
250 ok
150 1 definitions retrieved
151 "nslookup" foldoc "The Free On-line Dictionary of Computing (20 July 2014)"
nslookup

   <networking> A {Unix} {utility program}, originally by Andrew
   Cherenson, for querying {Internet} {domain name servers}.  The
   basic use is to find the {IP address} corresponding to a
   given {hostname} (or vice versa).  By changing the query type
   (e.g. "set type=CNAME") other types of information can be
   obtained including CNAME - the {canonical name} for an alias;
   HINFO - the host {CPU} and {operating system} type; MINFO -
   mailbox or mail list information; {MX} - {mail exchanger}
   information; NS - the {name server} for the named zone; PTR -
   the hostname if the query is an IP address, otherwise
   the pointer to other information; SOA the domain's
   start-of-authority information; TXT - text information; UINFO
   - user information; WKS - supported {well-known services}.
   Other types (ANY, AXFR, MB, MD, MF, NULL) are described in
   {RFC 1035}.

   
{(ftp://src.doc.ic.ac.uk/computing/operating-systems/unix/bsd-sources/usr.sbin/named/tools/nslookup/)}.

   (1994-10-27)

.
250 ok [d/m/c = 1/0/72; 0.000r 0.000u 0.000s]
221 bye [d/m/c = 0/0/0; 0.000r 0.000u 0.000s]

.bashrc(history)の編集

.bashrc

HISTTIMEFORMAT='%F %T '
HISTSIZE=10000
HISTFILESIZE=10000
HISTIGNORE="history*"
HISTCONTROL=ignoreboth
shopt -s cmdhist
shopt -s histverify
shopt -s histreedit

HISTTIMEFORMAT='strftime形式' #詳細はman strftime
HISTSIZE=履歴保持数
HISTFILESIZE=履歴ファイル保持 #0にすると再度ログインした時に履歴が消えている
HISTIGNORE="history*:ls" #記録しないコマンドの指定、:で複数指定

HISTCONTROL=ignorespace #半角スペースで始まるコマンドは記録しない
HISTCONTROL=ignoredups #連続した重複は履歴に記録しない
HISTCONTROL=ignoreboth #ignorespaceとignoredupsの両方
HISTCONTROL=erasedups #重複した古い履歴は消える

shopt -s cmdhist #改行いりのコマンドを1行に記録してくれる
shopt -s histreedit #履歴置換を実行前に、置換後のコマンドを教えてくれる
shopt -s histverify #履歴置換で失敗した時、もう一度やり直せるだけ


履歴置換とhistreeditとhistverify

# echo 1
1
# ^1^2←履歴置換を入力し実行
# echo 2←実際に実行するコマンドが表示されるので、ENTERキー
2
# ^22^1←履歴置換を間違えると
-bash: :s^22^1: substitution failed
# ^22^1←履歴置換入力直後に戻る

履歴メモ
# !! #直近のコマンド
$ sudo !! #地味に便利
# !ls #直近に使ったlsコマンド)
# history | grep ls

    1  ls
    2  ls -l

# !2 #historyの2番目のコマンド(ls -l)

# [CTRL+r]
(reverse-i-search)`': #履歴探索モード



カレントディレクトリも履歴に表示したいのだが、これだと移動してもディレクトリ名が変わらない。
HISTTIMEFORMAT="%h %d %H:%M:%S $(pwd)> "

NICの名前をeno16777736からeth0に変更(CentOS7)

GRUB_CMDLINE_LINUXに「net.ifnames=0 biosdevname=0」を追加
# cp /etc/sysconfig/grub{,.old}
# vi /etc/sysconfig/grub
# diff /etc/sysconfig/grub{,.old}

5c5
< GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0"
---
> GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet"


grub2-mkconfigで設定ファイルの生成
# grub2-mkconfig -o /boot/grub2/grub.cfg

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-229.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-14915b50c1bc40d5b650d0480e4cc780
Found initrd image: /boot/initramfs-0-rescue-14915b50c1bc40d5b650d0480e4cc780.img
done


ネットワークインターフェイス設定ファイルの名前変更
# mv /etc/sysconfig/network-scripts/ifcfg-eno16777736 /etc/sysconfig/network-scripts/ifcfg-eth0
# sed 's/\(DEVICE=\).*/\1eth0/g' /etc/sysconfig/network-scripts/ifcfg-eth0 -i


OS再起動
# reboot


再起動後ネットワークインターフェイス確認
# ip a s

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:d1:6e:6a brd ff:ff:ff:ff:ff:ff
    inet 192.168.137.130/24 brd 192.168.137.255 scope global dynamic eth0
       valid_lft 88176sec preferred_lft 88176sec
    inet6 fe80::20c:29ff:fed1:6e6a/64 scope link 
       valid_lft forever preferred_lft forever

GoogleTrendでディストリビューションを比較してみた

とりあえずディストリビューション+nginxで比較してみた。
色々比較した結果、Debian,ubuntu,CentOSが圧倒的だったので3つに絞ってグラフ。

参考:Linux distribution - Wikipedia, the free encyclopedia


これにディストリビューションapacheを加えてみた。
グラフでは「debianApache」を「ubuntuapache」が食ってるように見えるが、グラフに書かれていない「OpenSUSE+Apache」とか今は衰退した有名ディストリビューションも食いまくってる。

ちなみにnginx は当初、Rambler(ロシアで最大級のポータルサイト)が運営する各種ウェブサイトのニーズを満たすために開発された。(wikipediaより)
地域別人気度を見るとロシアが上位。あとウクライナと中国。
centos nginx」で日本がランクイン。中国はここでも上位。
やっぱり日本人ならCentOSです!


CentOS+Apache」って上位が東アジアすぎて笑ってしまう。


おまけ
最後にOSをで比較して、地域別人気度を比較すると、ubuntuCentOSDebian GNU/Linux
キューバがすべて1位謎すぎる。

http://www.google.co.jp/trends/explore#q=%2Fm%2F03x5qm%2C%20%2Fm%2F03x_8t%2C%20%2Fm%2F02996&cmpt=q&tz=

CentOS7でyum update(kernel update)後、再起動したら画面が真っ黒

GUIがうまくいっていないので、レスキューモードで(CD挿して「linux rescue」)ランレベルの変更

# cd /mnt/sysimage/etc/systemd/system/
# ln -s /usr/lib/systemd/system/multi-user.target ./default.target

reboot


CUIで起動した後、
yum update」を実行後、「init 5」。GUIが問題無く立ち上がる。

ランレベルを元に戻す
#ln -s /usr/lib/systemd/system/graphical.target /etc/systemd/system/default.target

# reboot