install†
http://cygwin.com/setup-x86_64.exe
一時保存先を desktop などに聞かれるが
c:/cygwin64/setup
などにしておいたほうがよいかも
admin/cron
admin/shutdown
archive/zip
archive/unzip
devel/gcc-core
devel/gcc-g++
devel/make
devel/patch
devel/gettext-devel
devel/git
editor/vim
editor/emacs
libs/libreadline-devel
libs/libncurses-devel
libs/zlib
libs/zlib-devel
net/curl
net/inetutils
net/ncftp
net/openssh
perl
system/ping
system/procps-ng
system/psmisc
text/jq
web/wget
install†
setup-x86_64.exe ^
--root c:\cygwin64 ^
--site http://ftp.iij.ad.jp/pub/cygwin/ ^
--local-package-dir c:\cygwin64\download ^
--packages cron,shutdown,zip,unzip,gcc-core,gcc-g++,make,patch,gettext-devel,git,vim,emacs,libreadline-devel,libncurses-devel,zlib,zlib-devel,curl,inetutils,ncftp,openssh,ping,procps-ng,psmisc,jq,wget ^
--quiet-mode
bash†
.bashrc
export PS1="\n<\u@\h>\n[\w]: "
export PATH=/usr/bin:/usr/local/bin:/sbin:/usr/sbin:$PATH:$HOME/bin
# primitive command
alias ls='ls -F'
alias .='cd `/bin/pwd`'
alias ..='cd `/bin/pwd`; cd ..'
alias rm='rm -f'
alias mv='mv -i'
alias pwd='/bin/pwd'
alias less='lv'
alias c:='cd /cygdrive/c'
alias open=cygstart
alias pwd=/bin/pwd
alias ifconfig='ipconfig /all | nkf -w'
complete -d cd
function emacs(){
/cygdrive/c/Program\ Files/xyzzy/xyzzy.exe $1 &
}
#alias ls='ls -F --show-control-chars'
# java
export _JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true"
# postgres
export PGHOST='localhost'
export PATH=/usr/local/pgsql/bin:$PATH
# mvn
export PATH=/usr/apache-maven-3.3.3/bin:$PATH
# play2.4
function activator(){
/usr/local/play24/activator $@
stty sane
}
function activatordebug(){
/usr/local/play24/activator -jvm-debug 9999 run
stty sane
}
function playkill(){
ps aux |grep java |uniq | head -1 |awk '{print $1;}' |xargs kill
}
nkf†
cd /usr/src
wget "http://sourceforge.jp/frs/redir.php?m=iij&f=%2Fnkf%2F59912%2Fnkf-2.1.3.tar.gz" -O nkf-2.1.3.tar.gz
tar xzfp nk*.tar.gz
cd nkf-2.1.3
make
make install
psql†
cd /usr/src
wget https://ftp.postgresql.org/pub/source/v12.3/postgresql-12.3.tar.gz
tar xzfp postgres*.tar.gz
cd postgresql-*
./configure
make
make install
文字化ける時は psql 実行後に下記コマンドを入力する
set lc_messages='ja_JP.UTF-8';
あるいは conf に書いても良い
環境変数†
マイコンピュータ右クリック -> プロパティ -> 詳細設定 -> 環境変数
path に c:\cygwin64\bin\ を加える
bash†
とりあえず起動するとそのユーザでディレクトリが作成されるので
下記をコピー
maven†
http://maven.apache.org/download.cgi
cd /usr
wget http://ftp.riken.jp/net/apache/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz
tar xzfp apache-maven*.tar.gz
teraterm/cygwin 連携†
cygterm+-x86_64 の cygterm.exe を teraterm ディレクトリのものに上書きコピー
cygterm.exe へのショートカットをコピーし、プロパティで作業ディレクトリを
c:\cygwin64\home\【username】\ に変更
cygterm.cfg
TERM = c:\program files\teraterm\ttermpro.exe %s %d /KR=SJIS /KT=SJIS /nossh
TERM_TYPE = vt100
PORT_START = 20000
PORT_RANGE = 40
SHELL = /bin/bash -rcfile /home/【ユーザ名】/.bash_profile
ENV_1 = MAKE_MODE=unix
ENV_2 = HOME=/home/【ユーザ名】
ENV_3 = LANG=ja_JP.SJIS
ENV_4 = CYGWIN=codepage:932
ENV_5 = TERM=cygwin
cygterm の64bit版
tar xzfp cygterm+.tar.gz
make
出来上がったもので teraterm 内のものを上書き
teraterm.ini
KanjiReceive=SJIS
KanjiSend=SJIS
http://weierstrass.is.tokushima-u.ac.jp/ir/cygwin/
shutdown†
shutdown --force -h now
cron をいれたい†
$ cygrunsrv -I cron -p /usr/sbin/cron -a -n
$ cygrunsrv -Q cron
$ cygrunsrv -S cron
$ passwd
$ cron-config
crontab -e
* * * * date >> /tmp/hoge.txt†
ssh などが動いている場合は事前に停止しておくこと
cygrunsrv -E sshd
setup.exe にて下記を入れる
admin/cygrunsvr
cygterm を管理者として実行
cygrunsrv -I cron -p /usr/sbin/cron -a -n 2>&1 |nkf -w
cygrunsrv --start cron
crontab -e
* * * * * date >> /tmp/cron.txt
以下過去情報†
cygrunsrv -I cron -p /usr/sbin/cron.exe -a '-D'
この後、マイコンピュータ(右)-> 管理 -> サービス
cron のプロパティ -> ログオン
アカウントをチェックし、「参照」-> 「詳細設定」-> 「今すぐ検索」
自分のアカウントを選択
パスワードを入力
全般タブに戻り、サービス開始
(ユーザとパスワードを入れないと //192.168.0.10/c といった
ネットワークパスが使えないケースがある)
よく失敗する。
1062 はユーザアカウントエラー
1067 はファイルアクセスエラー
(/var/run/cron.pid と /var/log/cron.log を消すこと)
1069 はユーザパスワードエラー(パスワード未設定)
何回やってもだめなときは cygwin をフル削除する
c:\cygwin 削除
レジストリも cygwin と cron で検索してフル削除して
最初からやり直すとうまくいった
$ ps -eaf
で cron が動いていればOK
(または net start |grep cron)でも可
$ crontab -e
vi で編集。
下手に環境変数の EDITORを emacs などにかえるとはまる
0 * * * * date >> /cygdrive/c/tmp.txt
これで毎時 0時に日付データを tmp.txt に追記する
意味はないけど。
ネットワークドライブの使用†
sshd†
cygwin.bat を管理者で実行する
mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group
ssh-host-config -y
sshd のオーナーのパスワードを設定(使用しない)
cd /etc
emacs sshd_config
PasswordAuthentication no
ChallengeResponseAuthentication no
cygrunsrv -S cygsshd
(cygrunsrv -E cygsshd とめる場合)
後は通常の ssh のように .ssh 中に適切なファイルを作成する
firewall を開ける†
control panel -> ネットワークとインターネット -> windows ファイアーウォール
-> 詳細設定 -> 受信の規則+右ペイン「新しい規則」→ ポート -> TCP
-> 特定のローカルポート 22 → 接続を許可する → すべて選択
SJIS でターミナルを開きたい†
cygterm.cfg に以下を追記
ENV_3 = LANG=ja_JP.SJIS
ENV_4 = CYGWIN=codepage:932
ENV_5 = TERM=cygwin
コマンドラインの場合
export LANG=ja_JP.SJIS
export CYGWIN=codepage:932
export TERM=cygwin
apt-cyg†
wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg
chmod +x apt-cyg
mv apt-cyg /usr/local/bin/
pip†
apt-cyg install python3-pip