* ������Υѥ���Ÿ���ǥ�����ץȼ��ȤΥե�����̾���������
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [bash] [�����륹����ץ�]
2006-02-22 �˽��֥����륹����ץȼ��ȤΥե�����̾������Ǥ����ü��ѿ� $0�פˤĤ��ƥ��ǻ�Ŧ��ĺ���������꤬�Ȥ��������ޤ���
��ϥ���å���ʤɤΥѥ�����ʸ��������뤿��� basename ���ޥ�ɤ�ȤäƤ����Τ������������ʤ��Ƥ�Ѥ���ˡ������ȤΤ��ȡ�
��Ƥߤ�ȡ��Τ��� ${0##*/} �ǥ�����ץȼ��Ȥ�̾��������Ǥ�����
�嵭�� get_script_name.sh �Ȥ���̾������¸�������Хѥ�����Ǽ¹Ԥ�����̡�
1���ܤ� $0 �Τߤ���ꤷ����ΰʳ��ϡ������˥ե�����̾������Ǥ��Ƥ��롣
���ˡ��ե�ѥ��ǥ�����ץȥե��������ꤷ�Ƽ¹Ԥ��Ƥߤ롣
��Ŧ���̤ꡢ3���ܤ� ${0##*/} �ϸ����˥ե�����̾����������Ǥ��Ƥ��뤬��4���ܤ˽� ${0#*/} ����;�פ�ʸ�������äƤ��ޤäƤ��롣
�嵭������ɤ�Ǥ⤹���ˤ�����Ǥ��ʤ��ä������֤��ɤ�Ǥ�����
��word �˻��ꤵ�줿��ΤˤĤ��ơ��ѥ�̾Ÿ����Ʊ���褦��Ÿ�����ʤ���ƥѥ�������롣
���ѥ����� parameter ����Ƭ�ȥޥå������硢��������ѥ�����������롣
��word ������ ## �ξ��Ϻ�Ĺ���ס�# �ξ��Ϻ�û���ס�
�狼�äƤ��������Ȥϥѥ�̾Ÿ���������Ĵ�٤Ƥ�������
�Ȥ������Ȥϡ�*/ �ϡֶ�ʸ����ޤ�Ǥ�դ�ʸ����˥���å��夬³���פȤ���ʸ�����Ÿ�������Ȥ������Ȥ����ǡ�����ʸ����Ĺ���פ� parameter ����Ƭ�ȥޥå������Ȥ��� parameter ���������������ʡ��ʤ�ۤɡ���äȤ狼�ä�������������̣���ä��Τ����ٶ��ˤʤä��ʤ���
��ϥ���å���ʤɤΥѥ�����ʸ��������뤿��� basename ���ޥ�ɤ�ȤäƤ����Τ������������ʤ��Ƥ�Ѥ���ˡ������ȤΤ��ȡ�
http://sonic64.com/2006-02-22.html
�Ǹ��ڤ��Ƥ��� ��basename ���ޥ�ɤ�Ȥ�ʤ��Ƥ�Ѥ��ü��ѿ��פǤ�����
echo "This script name is ${0##*/}" �Ǥ�˾�ߤ�ư��ˤʤ�Ϥ��Ǥ���
�������˸¤äƤ� ${0#*/} �Ǥ��ɤ��Ǥ�����Full Path ����ꤷ�Ƽ¹Ԥ������˰տޤ��ʤ���̤ˤʤ�Ȼפ��ޤ���
man bash ��� ${parameter##word}�Ǹ������ƤߤƤ���������
��Ƥߤ�ȡ��Τ��� ${0##*/} �ǥ�����ץȼ��Ȥ�̾��������Ǥ�����
#!/bin/sh
echo "This script name is $0"
echo "This script name is `basename $0`"
echo "This script name is ${0##*/}"
echo "This script name is ${0#*/}"
�嵭�� get_script_name.sh �Ȥ���̾������¸�������Хѥ�����Ǽ¹Ԥ�����̡�
$ ./get_script_name.sh
This script name is ./get_script_name.sh
This script name is get_script_name.sh
This script name is get_script_name.sh
This script name is get_script_name.sh.
1���ܤ� $0 �Τߤ���ꤷ����ΰʳ��ϡ������˥ե�����̾������Ǥ��Ƥ��롣
���ˡ��ե�ѥ��ǥ�����ץȥե��������ꤷ�Ƽ¹Ԥ��Ƥߤ롣
$ /home/sonic64/tmp/get_script_name.sh
This script name is /home/sonic64/tmp/get_script_name.sh
This script name is get_script_name.sh
This script name is get_script_name.sh
This script name is home/sonic64/tmp/get_script_name.sh
��Ŧ���̤ꡢ3���ܤ� ${0##*/} �ϸ����˥ե�����̾����������Ǥ��Ƥ��뤬��4���ܤ˽� ${0#*/} ����;�פ�ʸ�������äƤ��ޤäƤ��롣
- ${parameter##word} �ΰ�̣��Ĵ�٤�
���ơ�${parameter##word} �äƤɤ�������̣������? man bash ���� ${parameter##word} �����Ƥߤ롣���ä���${parameter##word}
word ��Ÿ�����졢�ѥ�̾Ÿ���ξ���Ʊ���褦�ʥѥ��������ޤ������Υѥ����� parameter ���ͤ���Ƭ��ʬ�ȥޥå������硢Ÿ�������������ͤ� parameter ��Ÿ�������ͤ����û���ץѥ����� (``#''�ξ��) �ޤ��Ϻ�Ĺ���ץѥ����� (``##'' �ξ��) �����������Τˤʤ�ޤ��� parameter �� @ �ޤ��� * �Ǥ����硢�ѥ�������������������Ƥΰ��֥ѥ����˽��֤�Ŭ�Ѥ��졢Ÿ����̤ϥꥹ�ȤȤ��������ޤ��� parameter �� @ �ޤ��� * ��ź���ˤʤäƤ��������ѿ��Ǥ����硢�ѥ������������������������Ƥ����Ǥ˽��֤�Ŭ�Ѥ��졢Ÿ����̤ϥꥹ�ȤȤ��������ޤ���
�嵭������ɤ�Ǥ⤹���ˤ�����Ǥ��ʤ��ä������֤��ɤ�Ǥ�����
��word �˻��ꤵ�줿��ΤˤĤ��ơ��ѥ�̾Ÿ����Ʊ���褦��Ÿ�����ʤ���ƥѥ�������롣
���ѥ����� parameter ����Ƭ�ȥޥå������硢��������ѥ�����������롣
��word ������ ## �ξ��Ϻ�Ĺ���ס�# �ξ��Ϻ�û���ס�
�狼�äƤ��������Ȥϥѥ�̾Ÿ���������Ĵ�٤Ƥ�������
�ѥ�̾Ÿ��
* ��ʸ�����ޤࡢǤ�դ�ʸ����˥ޥå����ޤ���
�Ȥ������Ȥϡ�*/ �ϡֶ�ʸ����ޤ�Ǥ�դ�ʸ����˥���å��夬³���פȤ���ʸ�����Ÿ�������Ȥ������Ȥ����ǡ�����ʸ����Ĺ���פ� parameter ����Ƭ�ȥޥå������Ȥ��� parameter ���������������ʡ��ʤ�ۤɡ���äȤ狼�ä�������������̣���ä��Τ����ٶ��ˤʤä��ʤ���
* �����륹����ץȼ��ȤΥե�����̾������Ǥ����ü��ѿ� $0
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [bash] [�����륹����ץ�]
�ѥ��� $0 �ǥ����륹����ץȼ��Ȥ�̾��������Ǥ��롣
�嵭������ץȤ� get_script_name.sh �Ȥ����ե�����̾����¸�����¹ԡ�
������ץȤθƤӽФ����ˤ�äƤϥѥ�����ʸ�������äƤ��ޤ��Τǡ�����ܤǤ� basename ���ޥ�ɤǥե�����̾��ʬ��������Ф��Ƥ��롣basename ���ޥ�ɤ�Ȥ�ʤ��Ƥ�Ѥ��ü��ѿ��ä�̵���Τ���? man bash ���Ƥߤ����ɸ��Ĥ����ʤ��ä���
�ɵ���
2006-02-27 �ˡ֥�����Υѥ���Ÿ���ǥ�����ץȼ��ȤΥե�����̾���������פȤ������������
basename ���ޥ�ɤ�Ȥ�ʤ��Ƥ⡢${0##*/} �ǥ�����ץȼ��Ȥ�̾��������Ǥ��롣
#!/bin/sh
echo "This script name is $0"
echo "This script name is `basename $0`"
�嵭������ץȤ� get_script_name.sh �Ȥ����ե�����̾����¸�����¹ԡ�
$ ./get_script_name.sh
This script name is ./get_script_name.sh
This script name is get_script_name.sh
������ץȤθƤӽФ����ˤ�äƤϥѥ�����ʸ�������äƤ��ޤ��Τǡ�����ܤǤ� basename ���ޥ�ɤǥե�����̾��ʬ��������Ф��Ƥ��롣basename ���ޥ�ɤ�Ȥ�ʤ��Ƥ�Ѥ��ü��ѿ��ä�̵���Τ���? man bash ���Ƥߤ����ɸ��Ĥ����ʤ��ä���
�ɵ���
2006-02-27 �ˡ֥�����Υѥ���Ÿ���ǥ�����ץȼ��ȤΥե�����̾���������פȤ������������
basename ���ޥ�ɤ�Ȥ�ʤ��Ƥ⡢${0##*/} �ǥ�����ץȼ��Ȥ�̾��������Ǥ��롣
.bash_profile �ε��Ҥ��ѹ����ưʲ��Τ褦�ˤ����ץ���ץȤ˻��郎ɽ�������褦�ˤ������ץ���ץȤ˻��郎���äƤ���ȡ����ޥ�ɤμ¹ԤϤ��������褽�λ��֤��狼��Τ�������
�����ɽ�����Ƥ���Ƥ���Τ� [\t] ����ʬ��\u �ϥ桼��̾��\h �ϥۥ���̾�����ʤߤ���Ƭ�� \[\033[1;32m\] �� ������ [\033[0m\] �ϡ��ץ���ץȤ��п��ˤ��뤿������ꡣ���ü�����طʿ�����ˤ��Ƥ���Τǡ��п����Ǥ��롣����ˡ��ץ���ץȤο����Ϥ�ʸ�ο����Ѥ��Ƥ����ȡ�Ĺ�����Ϥ����ä���˥���������С������ƥץ���ץȤ�õ�����Ȥ����Ȥ��˸��Ĥ��䤹����
�ºݤΥץ���ץȤϰʲ��Τ褦��ɽ������롣
export PS1="\[\033[1;32m\][\t][\u@\h \w]$\[\033[0m\] "
�����ɽ�����Ƥ���Ƥ���Τ� [\t] ����ʬ��\u �ϥ桼��̾��\h �ϥۥ���̾�����ʤߤ���Ƭ�� \[\033[1;32m\] �� ������ [\033[0m\] �ϡ��ץ���ץȤ��п��ˤ��뤿������ꡣ���ü�����طʿ�����ˤ��Ƥ���Τǡ��п����Ǥ��롣����ˡ��ץ���ץȤο����Ϥ�ʸ�ο����Ѥ��Ƥ����ȡ�Ĺ�����Ϥ����ä���˥���������С������ƥץ���ץȤ�õ�����Ȥ����Ȥ��˸��Ĥ��䤹����
�ºݤΥץ���ץȤϰʲ��Τ褦��ɽ������롣
[23:06:33][hiroaki@sonic64 ~]$
* n ʬ��1�γ�Ψ�Dz����륹����ץ�
���ε�����ľ���URL: Permlink | ���ε�����°���륫�ƥ���: [bash] [�����륹����ץ�]
cron ����ʬ������ץȤ������������γ�Ψ�Dz��⤷�ʤ��Ǥ��Τޤ�λ����褦�ˤ�������
�Ȥ��륹����ץȤˡ�������˻Ż��ʤ����դ���褦�ʵ�ǽ���ɲä������������Ȥ��Ф����Τ�������������륳�ޥ�ɤäƤ��ä�����? Perl �Υ��饤�ʡ��� rand() ��Ƥ٤ФǤ��뤱�ɡ�����ϺǸ�μ��ʤ���
Manpage of BASH
http://www.linux.or.jp/JM/html/GNU_bash/man1/bash.1.html
�Ȥ��륹����ץȤˡ�������˻Ż��ʤ����դ���褦�ʵ�ǽ���ɲä������������Ȥ��Ф����Τ�������������륳�ޥ�ɤäƤ��ä�����? Perl �Υ��饤�ʡ��� rand() ��Ƥ٤ФǤ��뤱�ɡ�����ϺǸ�μ��ʤ���
- �������ѿ� RANDOM
bash �� man page ���ɤ�Ǥߤ롣�������ѿ� RANDOM ���Ȥ���������Manpage of BASH
http://www.linux.or.jp/JM/html/GNU_bash/man1/bash.1.html
RANDOM
���Υѥ��������Ȥ�����٤ˡ� 0 ���� 32767 �ޤǤΥ��������������������ޤ��� RANDOM ���ͤ���������ȡ��������������Ǥ��ޤ��� RANDOM �� unset ����ȡ������ѿ����ü��������̵���ʤ�ޤ�����ǺƤ� set ���Ƥ⸵�ˤ����ޤ���
- ����� n �dz�ä�;�꤬0���ä��鲿�⤷�ʤ�
����� n �dz�ä�;����ᡢ0���ä��鲿�⤻���˽�λ���롣����ǡ�n ʬ��1�γ�Ψ�Dz��⤷�ʤ��פȤ����������Ǥ��롣��������ӤˤϤ���ǽ�ʬ����# ��Ψ3ʬ��1�Dz��⤻���˽�λ����
probability=3
if [ `expr $RANDOM % $probability` -eq 0 ]; then
echo unlucky!
exit
fi
/cygdrive �ǥ��쥯�ȥ���äƤ����С�bash �� TAB ���������Ȥ��� /cygdrive ���䴰�оݤˤʤ롣
/cygdrive �ϻ�� cygwin �Ǥ��䴰����������������Ϥ��Ƥ�����������cyg �Ȥ������ڥ�ϻ�λؤ������������餷����cgy ���Ǥ��ְ㤨�뤳�Ȥ�¿���ä������Τ��Ӥ��䴰�Ǥ�����ɤ��Τˤʤ��ȻפäƤ������ɡ�����ʴ�ñ�ʲ��ˡ������ȤϤ͡��ǥ��쥯�ȥ꤬�ʤ��ʤ��äƤ�����Ф������¤���������
[linux-users:103268] Re: cygwin������ˤĤ���
http://search.luky.org/linux-users.a/msg03218.html
����� d �����Ϥ��� TAB ��������
/cygdrive �ϻ�� cygwin �Ǥ��䴰����������������Ϥ��Ƥ�����������cyg �Ȥ������ڥ�ϻ�λؤ������������餷����cgy ���Ǥ��ְ㤨�뤳�Ȥ�¿���ä������Τ��Ӥ��䴰�Ǥ�����ɤ��Τˤʤ��ȻפäƤ������ɡ�����ʴ�ñ�ʲ��ˡ������ȤϤ͡��ǥ��쥯�ȥ꤬�ʤ��ʤ��äƤ�����Ф������¤���������
[linux-users:103268] Re: cygwin������ˤĤ���
http://search.luky.org/linux-users.a/msg03218.html
> > $ cd /c/cygdrive
> > BASH: cd: /c/cygdrive: No such file or directory
>
> /cygdrive/c/ �δ��㤤�Ǥ��͡����äȡ�
���ΤȤθߴ����ǡ�c:/��ɽ����Ȥ����Ȼפ��ޤ�����cygdrive��
����ʬ��ʸ��������꼡����ѹ���ǽ�Ǥ������������ɽ���Ǥ���
�дĶ��˰�¸�������ѤǤ��͡�
�����⤽�� /cygdrive ���Ȥ� /proc ���Ȥ��� pseudo directory
�� / �� readdir() �����ݤ� fetch ����ʤ��Ȥ�������Ⱦü����
����θ��Τ褦�ʵ������ޤ���
��bash �� pathname �䴰�Τ�������� /cygdrive �� /proc ��
���ƺ������Ƥ����ͤ⾯�ʤ��ʤ��餷���Ǥ��͡�
- �䴰����������̣�浪��
�������䴰����������̣��äƤߤ褦��/cygdrive/c/Program Files/ �˥����ȥǥ��쥯�ȥ���ư�������Ȥ��롣$ cd /c�����ޤ����Ϥ����顢�������� TAB ��������!
$ cd /cygyg ���䴰���줿����Ũ������2�� TAB �������ȡ����䤬ɽ������롣�䴰�����ʤ�����ɽ��������ɬ�פϤʤ�������ɡ���������̣�臘����ä�������ǽ��ȤäƤ��������Τ�äƤ�����
$ cd /cyg
cygdrive cygwin.bat cygwin.ico
����� d �����Ϥ��� TAB ��������
$ cd /cygdrive/�����ڤ���cgywin �ʤɤȴְ�ä����Ϥ��뤳�Ȥ�ʤ������줬�䴰�����̣��
- cygwin.bat �� cygwin.bat cygwin.ico cygwin.bat ����Фä����䤬�ä� �����ä� �����Ĥ������ʤ���!! ����������� ��꤯�����Τˤ� ������ ���ϤϤ� �ϤϤϤ� �ϤϤϤ� �ɤ��ޤǤ��ä� �ɤ��Ĥ�Ƥä� �ä��Ƥ���!! �ʤ��ͤ���
��������cygwin.bat �� cygwin.ico �ϼ�����ʡ������Υե����뤬̵����С�/c �����Ϥ��� TAB ���� /cygdrive �ޤ��䴰���Ƥ���������ɤʡ����ä��Ƥ��ޤ���! �������Ȼפä����ɡ������Υե�����ä� cygwin ��ư�����Ȥ��˻Ȥ���ե�����ʤΤ͡����硼�ȥ��åȤΥ����� cygwin.bat ����Ȥ������Ƥ���¾�Υѥ��˰�ư���Ƥ�����פ��⤷��ʤ����Ǥ�ѥå������Υ��åץǡ��Ȼ��ʤɤ˲������꤬���ä��麤��Τǡ�����Ϥ��Τޤޤˤ��Ƥ�����cygwin.bat ��̿���������ʡ�������Υ�����쥯�ȤˤĤ��Ƥ������Խ�ʬ�ʤ���ˤ�äƤ��ޤä����ԡ�
ɸ����Ϥ�ɸ�२�顼���Ϥ� /dev/null �˼ΤƤ����Ȥ����ְ㤨�ưʲ��Τ褦�ˤ��Ƥ��ޤ����Ȥ��Ȥ��ɤ����ä����Ƕ�Ϥ��ʤ��ʤä�����
�������ϰʲ��Τ褦�˵��Ҥ��롣�������뤳�Ȥǡ�ξ���Ȥ� /dev/null �˸������롣
����������ʤΤϡ�2>&1 ��ֹ�ή�פȹͤ��Ƥ��ޤäƤ��뤳�Ȥ�������ˡ���2�֤�1�֤˹�ή�����Ƥ��������顢1�֤������쥯�Ȥ����ξ�ԤȤ�˽����褬�Ѥ��פȹͤ��Ƥ��ޤäƤ��뤳�Ȥ����ºݤΥ�����쥯�ȤϤ������ä������Ϥ��Ƥ��ʤ���
������Υե�����ǥ�������ץ����
http://home.catv.ne.jp/pp/ginoue/memo/sh-fd.html
�ޤ����������㡣
���ˡ��䤬�ְ�ä��㡣
��ή�Ȥ�����������ΤǤϤʤ���������ե�����ǥ�������ץ��Υ����ץ�ȥ����������Ԥ��Ƥ��뤳�Ȥ��狼�롣
ɸ�२�顼���Ϥ�1�֤Υե�����ǥ�������ץ��˸����褦�Ȥ����Τ��������ε��Ҥ��Ȥ�ꤿ���ä����ȤȤϤޤä����㤦��̤ˤʤ롣�ޤ���& �����ꤵ��Ƥ��뤿�ᥳ�ޥ�ɤϥХå����饦��ɤǼ¹Ԥ���롣������2�֤�ɸ�२�顼���Ϥ� 1 �Ȥ����ե�����˸������롣
���̤ʤ�С֥Хå����饦��ɼ¹Ԥ��줿��פȤ����ݤΥ�å�������ɽ������뤿�ᡢ�����˴ְ㤤�˵��Ť������������������Ȥˤ���� crontab �˽Ƥ������ᡢȯ�����٤�Ƥ��ޤä���cron �η�̤��ǧ���褦�Ȥ����Ȥ������ʤ��� 1 �Ȥ����ե����뤬�Ǥ��Ƥ��ꡢ���ΤȤ��ˤʤäƽ��Ƶ��Ť����Τ��ä���
ɸ����Ϥ�ɸ�२�顼���Ϥ� /dev/null �˼ΤƤ����Ȥ����ְ㤨�ưʲ��Τ褦�ˤ��Ƥ��ޤ����Ȥ��Ȥ��ɤ����ä����Ƕ�Ϥ��ʤ��ʤä�����
# �ְ㤤������� command ��ɸ����Ϥ� /dev/null �˸������뤬��command ��ɸ�२�顼���Ϥϲ��̤˸����Ƥ��ޤ���
$ command 2>&1 >/dev/null
�������ϰʲ��Τ褦�˵��Ҥ��롣�������뤳�Ȥǡ�ξ���Ȥ� /dev/null �˸������롣
# ������
$ command >/dev/null 2>&1
- �ʤ��ְ�äƤ��ޤ��Τ�?
�ְ�ä����ҤƤ��ޤ���ͳ�ϡ�������쥯�Ȥ���Ƥ��뤫��������ΤȤ��λ�λͤϰʲ��Τ褦�ʤ�Τ���ɸ�२�顼���Ϥ�2�֤����顢�ޤ�2�֤�1�֤��ؤ��Ƥ�����˹�ή�����뤿��� 2>&1 �Ȥ��롣
�ǡ�1�֤� >/dev/null �Ȥ��� /dev/null �˸�����С�ξ���Ȥ� /dev/null �˸�����
����������ʤΤϡ�2>&1 ��ֹ�ή�פȹͤ��Ƥ��ޤäƤ��뤳�Ȥ�������ˡ���2�֤�1�֤˹�ή�����Ƥ��������顢1�֤������쥯�Ȥ����ξ�ԤȤ�˽����褬�Ѥ��פȹͤ��Ƥ��ޤäƤ��뤳�Ȥ����ºݤΥ�����쥯�ȤϤ������ä������Ϥ��Ƥ��ʤ���
- �ºݤΥ�����쥯�Ƚ���
�ºݤΥ�����쥯�Ȥν����ϡ����ޥ�ɥ饤��κ����鱦�ء��ե�����ǥ�������ץ����ץ�/�����������ʤ���ʤ���롣�ʲ��Υ����Ȥ��������ɤ�������ᤤ��������Υե�����ǥ�������ץ����
http://home.catv.ne.jp/pp/ginoue/memo/sh-fd.html
�ޤ����������㡣
ls >outfile.txt 2>&1
�ޤ������㤫�鼨���ޤ���
fd = open("outfile.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666);
dup2(fd, 1);
close(fd);
dup2(1, 2);
��ls >outfile.txt 2>&1�פ��������������Ƥ����������ɤ��ޤ�����>outfile.txt�פϾ��Ʊ���ǡ��ե������ؤ�fd�����줿�塢1�֤���ö�������������fd��ʣ���Ȥ��ƺ������졢�Ĥ��Ǥ�fd��������������ޤ�����2>&1�פϡ�2�֤���ö�������������1�֤�ʣ���Ȥ��ƺ�������ޤ���
1�� => [screen]
2�� => [screen]
|
| fd = open();
| dup2(fd, 1);��ö1�֤�������
| 1�֤�fd��ʣ���Ȥ��ƺ�������롣
| close(fd);
V
1�� => [file]
2�� => [screen]
|
| dup2(1, 2);��ö2�֤�������
| 2�֤�1�֤�ʣ���Ȥ��ƺ�������롣
V
1�� => [file]
2�� => [file]
��ɡ�1�֤�2�֤�ե�����(outfile.txt)��ؤ����Ȥˤʤ�ޤ����Ĥޤꡢls��ɸ����Ϥ�ɸ�२�顼���Ϥ�ե�����˽��Ϥ���ޤ���
���ˡ��䤬�ְ�ä��㡣
ls 2>&1 >outfile.txt
���Ĥ�Τ褦�˼����㤫�顣
dup2(1, 2);
fd = open("outfile.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666);
dup2(fd, 1);
close(fd);
��2>&1�פ��>outfile.txt�פ⡢������������Ȥ����ư��ޤ���������������ʤ�Τǡ������ν��֤��ۤʤ�����Ǥ������ǽ����֤�ۤʤ�ޤ���
1�� => [screen]
2�� => [screen]
|
| dup2(1, 2);��ö2�֤�������
| 2�֤�1�֤�ʣ���Ȥ��ƺ��������(��ɡ����̤Τޤ�)��
V
1�� => [screen]
2�� => [screen]
|
| fd = open();
| dup2(fd, 1);��ö1�֤�������
| 1�֤�fd��ʣ���Ȥ��ƺ�������롣
| close(fd);
V
1�� => [file]
2�� => [screen]
(fd => [file])
��ɡ�1�֤��ե������ؤ��ơ�2�֤ϲ��̤ΤޤޤǤ���
��ή�Ȥ�����������ΤǤϤʤ���������ե�����ǥ�������ץ��Υ����ץ�ȥ����������Ԥ��Ƥ��뤳�Ȥ��狼�롣
- ����ˤ������ְ㤤
�䤬��ä����Ԥ�⤦��ġ�$ command >/dev/null &2>1
ɸ�२�顼���Ϥ�1�֤Υե�����ǥ�������ץ��˸����褦�Ȥ����Τ��������ε��Ҥ��Ȥ�ꤿ���ä����ȤȤϤޤä����㤦��̤ˤʤ롣�ޤ���& �����ꤵ��Ƥ��뤿�ᥳ�ޥ�ɤϥХå����饦��ɤǼ¹Ԥ���롣������2�֤�ɸ�२�顼���Ϥ� 1 �Ȥ����ե�����˸������롣
���̤ʤ�С֥Хå����饦��ɼ¹Ԥ��줿��פȤ����ݤΥ�å�������ɽ������뤿�ᡢ�����˴ְ㤤�˵��Ť������������������Ȥˤ���� crontab �˽Ƥ������ᡢȯ�����٤�Ƥ��ޤä���cron �η�̤��ǧ���褦�Ȥ����Ȥ������ʤ��� 1 �Ȥ����ե����뤬�Ǥ��Ƥ��ꡢ���ΤȤ��ˤʤäƽ��Ƶ��Ť����Τ��ä���
������Υե�����ǥ�������ץ���� Shell file descriptor manipulation
http://home.catv.ne.jp/pp/ginoue/memo/sh-fd.html
������쥯�Ȥ�ѥ��פ��ɤ�ʻ��Ȥߤ�����Ω�äƤ���Τ����Ĥ��Dz��⡣���ʤ���ݲ����줿�����ϥ饤�֥������ä���ǥե�����ǥ�������ץ��ޤ�ռ����Ƥ��ʤ��������ˤ狼��䤹���ä���
http://home.catv.ne.jp/pp/ginoue/memo/sh-fd.html
������쥯�Ȥ�ѥ��פ��ɤ�ʻ��Ȥߤ�����Ω�äƤ���Τ����Ĥ��Dz��⡣���ʤ���ݲ����줿�����ϥ饤�֥������ä���ǥե�����ǥ�������ץ��ޤ�ռ����Ƥ��ʤ��������ˤ狼��䤹���ä���
�����ȥǥ��쥯�ȥ�ˤ���ե�����ȥǥ��쥯�ȥ�ؤΥ���ܥ�å����/tmp/lntest �˺������륷���륹����ץȡ��礷�����Ȥ��äƤ�櫓����ʤ��ơ�for ʸ�ǥ롼�פ����Ƥ�������¤�����ȡ�ñ�� bash �Ǥ� for ʸ�λȤ������Τꤿ���ä���������
�������������Ƥ�������
$ for i in *; do ln -s "`pwd`/$i" "/tmp/lntest/$i"; done���֥륯�����Ȥ��Ƥ����ȡ��ե�����̾�˥��ڡ��������äƤ��Ƥ�����ס�
�������������Ƥ�������
$ for i in /tmp/lntest/*; do rm -f "$i"; done
grep ������̤�ɽ���������ꡢ�������ä�������ɽ���������ꤹ��ȡ�
�����ߥʥ�Τɤ��˥ץ���ץȤ�����Τ��狼��Ť餤��
���Τ��ᡢ�ɤ�����ɽ�����Ϥޤꡢ�ɤ��ǽ���ä��Τ���ֻ����İ��Ǥ��ʤ��ʤ롣
�ץ���ץȤ˿����դ���С����ܤǤ狼�롣
Bash Prompt HOWTO http://www.linux.or.jp/JF/JFdocs/Bash-Prompt-HOWTO.htm
�����ߥʥ�Τɤ��˥ץ���ץȤ�����Τ��狼��Ť餤��
���Τ��ᡢ�ɤ�����ɽ�����Ϥޤꡢ�ɤ��ǽ���ä��Τ���ֻ����İ��Ǥ��ʤ��ʤ롣
�ץ���ץȤ˿����դ���С����ܤǤ狼�롣
PS1="\[\033[1;32m\][\u@\h \w]$\[\033[0m\] "����ǥ饤�ȥ����ˤʤ롣
Bash Prompt HOWTO http://www.linux.or.jp/JF/JFdocs/Bash-Prompt-HOWTO.htm
- 2003-03-31 �˽� bash ���䴰��Ǻ�ࡣ
chown �� ��2�����˥ե�����̾��Ȥ�Τ�����complete -u {su,finger,chown}���Ȱ����ΰ��֤ˤ�����餺�桼��̾�����䴰���Ƥ���ʤ���
- tcsh �ʤ�а������֤ˤ���䴰�оݤ����Ǥ���褦������bash �Ǥϻ���Ǥ��ʤ��褦����
- Working more productively with bash 2.x
http://www.caliban.org/bash/index.shtml#completion�ǤϤɤ���äƤ�Τ��ʡ��ȸ��Ƥߤ���������äƤ뤫�ɤ��狼���
�ʲ��� bash-completion-20030419.tar.gz �����ȴ�衣
# chown(1) completion
#
_chown()
{
local cur prev user group i
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
prev=${COMP_WORDS[COMP_CWORD-1]}
# options completion
if "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-c -h -f -R -v --changes \
--dereference --no-dereference --from= --silent --quiet \
--reference= --recursive --verbose --help --version' -- $cur ) )
return 0
fi
# first parameter on line or first since an option?
if [ $COMP_CWORD -eq 1 ]; then
if [[ "$cur" == [a-zA-Z]*[.:]* ]] && \
[[ ${BASH_VERSINFO[1]} > 04 ]]; then
user=${cur%%?(\\)[.:]*}
group=${cur#*[.:]}
COMPREPLY=( $( compgen -P $user':' \
-g -- $group 2>/dev/null) )
else
COMPREPLY=( $( compgen -S ':' -u $cur ) )
fi
else
_filedir
fi
return 0
}
complete -F _chown $filenames chown
���ä��ɤ���¤�Ǥϡ�_chown() �Ȥ����ؿ����ꡢ�����chown ���䴰�оݤȤ��ƸƤӽФ��褦�ˤ��Ƥ��롣_chwon() ����Ⱦ�� chwon �Υ��ץ������䴰����Ⱦ�ϰ������䴰���������������ɤ�����Ƚ�ꤷ�����������ä���桼��̾�������Ǥʤ��ä���ե�����̾���䴰���Ƥ���褦����
�ʤ����ݤ��ʤ���zsh �˾�괹���������ɤ��Τ��ʤ���
bash �˸¤餺��������ϥ������ޥ�������ǻȤ����꤬�礭���Ѥ�롣
http://pc.2ch.net/test/read.cgi/unix/1013019416/
Working more productively with bash 2.x
http://www.caliban.org/bash/index.shtml#completion
�ʲ���������
����Ʊ�����ޥ�ɤϽ�ʣ���Ƶ�Ͽ���ʤ��褦�� ignoredups �����ꡣ
- ���ͤˤʤ�ڡ���
bash ���䴰����http://pc.2ch.net/test/read.cgi/unix/1013019416/
Working more productively with bash 2.x
http://www.caliban.org/bash/index.shtml#completion
- ��� /etc/profile �����
HISTSIZE=10000
HISTFILESIZE=10000
HISTCONTROL=ignoredups
export HISTSIZE HISTFILESIZE HISTCONTROL
PS1='[\u@\h \W]\$ '
PS2='> '
PS4='+ '
alias ll='ls -l'
alias la='ls -aF'
alias lla='ls -al'
alias top='nice -10 top -d 2'
complete -d cd
complete -u {su,finger,chown}
complete -c man
complete -A stopped -P '%' bg
complete -j -P '%' fg jobs disown
complete -c command type which
PATH="$PATH":/usr/local/pgsql/bin
PG=/usr/local/pgsql
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":$PG/lib
export PGLIB=$PG/lib
export PGDATA=$PG/data
export http_proxy=http://10.241.4.1:10241/
export ftp_proxy=http://10.241.4.1:10241/
export https_proxy=http://10.241.4.1:10241/
�ʲ���������
- ����ȥץ���ץ�
��ʬ�ʿ��Υ��ޥ���������¸�������Τǡ������ޤǥҥ��ȥ���ĥ������Ʊ�����ޥ�ɤϽ�ʣ���Ƶ�Ͽ���ʤ��褦�� ignoredups �����ꡣ
HISTSIZE=10000
HISTFILESIZE=10000
HISTCONTROL=ignoredups
export HISTSIZE HISTFILESIZE HISTCONTROL
PS1='[\u@\h \W]\$ '
PS2='> '
PS4='+ '
- �����ꥢ���䥳�ޥ���䴰
complete ��Ȥ��Ⱦ����˱������䴰�����оݤ����Ǥ��롣���Ȥ��С�complete -d cd ���� cd ���ޥ�ɤ� �����ˤϡ��ե������ cd ���뤳�ȤϤ������ʤ��Τǥǥ��쥯�ȥ�Τ�ɽ�����롢�ʤɡ�alias ll='ls -l'
alias la='ls -aF'
alias lla='ls -al'
alias top='nice -10 top -d 2'
complete -d cd
complete -u {su,finger,chown}
complete -c man
complete -A stopped -P '%' bg
complete -j -P '%' fg jobs disown
complete -c command type which
- PostgreSQL ������
�ۤȤ�ɤΥ桼���� DB �����Ѥ���Τ��ɲá�PATH="$PATH":/usr/local/pgsql/bin
PG=/usr/local/pgsql
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":$PG/lib
export PGLIB=$PG/lib
export PGDATA=$PG/data
- wget �� proxy ����
export http_proxy=http://10.241.4.1:10241/
export ftp_proxy=http://10.241.4.1:10241/
export https_proxy=http://10.241.4.1:10241/
bash �����ޥ������ƻȤ��䤹�����롣
http://www.atmarkit.co.jp/flinux/rensai/theory09/theory09b.h ...
history �θĿ������ꤹ��ˤϡ�HISTFILESIZE �� HISTSIZE �����ꤹ�롣
- @IT ���ý�������
Windows�桼�����˶�����Linux�ξQ ��9�� bash�������ʵ�ǽ��Ȥ����ʤ���http://www.atmarkit.co.jp/flinux/rensai/theory09/theory09b.h ...
history �θĿ������ꤹ��ˤϡ�HISTFILESIZE �� HISTSIZE �����ꤹ�롣
- �乥�ߤΥҥ��ȥ����
���Υ��ޥ�ɤ�����Ѥ��䤹���褦�ˡ�history �η���Ͻ�ʬ�˳��ݤ��롣HISTSIZE=100000
HISTFILESIZE=100000
HISTCONTROL=ignoredups