Linux Install

Android

Linux Tools

Linux AV

Linux Memo

WINDOWS

PROGRAM

動画 Memo

音楽 Memo

モバイルアプリ Memo

FILE FORMAT

PROTOCOL

DEVICE

BookMark

その他


cygwin   

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

とりあえず起動するとそのユーザでディレクトリが作成されるので

下記をコピー

  • .bashrc
  • .bash_profile
    alias ls='ls -F --show-control-chars'
    alias open=cygstart
    alias pwd=/bin/pwd
    alias ps=/usr/bin/procps
  • .inputrc
    set input-meta on
    set convert-meta off
    set meta-flag on
    set output-meta on

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 に追記する
 意味はないけど。

ネットワークドライブの使用

  • cron起動の batファイル中では「ネットワークドライブの割り当て」→「ログオン時に再接続する」で登録した ドライブ名は使えない。
    たとえば n: を \\192.168.0.1\net に割り当ててるとしたら
    perlスクリプト中では chdir("//192.168.0.1/net/");
    のように書く

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