よく忘れるLinuxとMacのターミナル(Terminal)コマンドのメモ

置換

//ファイル名を一斉に置換
$ find . -type f | sed 'p;s/FROM_TEXT/TO_TEXT/' | xargs -n2 mv

ネットワーク関係

//ipv6のアドレス(type=AAAAをセットしてから)
$ nslookup 
> set type=AAAA
> youtube.com
//ipv6の経路(traceroute6を使う)
$ traceroute6 2404:6800:4004:80d::200e
//ping -sはsize (mac OSX 10.12.6環境)
$ ping -s 500 yama-lab.com
$ ping6 -s 500 yama-lab.com
//traceroute
$ traceroute yama-lab.com

Windowsで作成したzipファイルを文字化けせずに解凍

$ unar ファイル名

(unarをHomeBrewでインストールしています。)

標準出力をクリップボードに取得する(Mac)

$ pwd | pbcopy

Macでパスワード作成(pwgen)

$ pwgen //普通
$ pwgen -y 12 // symbolをまぜて12文字作成

サービスの状態確認

$ service postfix status

現在使われているMTA確認

$ alternatives --display mta

ContOSのバージョン確認

$ cat /etc/redhat-release
CentOS release 6.9 (Final)

Macの不要ファイル削除

$ find ./ -name ".DS_Store" | xargs rm

ディスク容量

$ du -h --max-depth 1 /

パッケージの概要

$ rpm -qi nginx

パッケージ内のファイル

$ rpm -ql nginx

シンボリックリンク

$ ln -s {target} {new link directory or file}

firewalldでのサービス追加・削除

//ようにhttp,httpsを設定を許可
# firewall-cmd --permanent --zone=public --add-service=http 
# firewall-cmd --permanent --zone=public --add-service=https  
//とすると設定ファイル(xml)が変更される(削除の場合は--remove-service='http'など)
# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="dhcpv6-client"/>
  <service name="http"/>
  <service name="ssh"/>
  <service name="https"/>
</zone>
//リロードして完了
$ firewall-cmd --reload

firewalldでポート追加・削除

//ポートとプロトコル指定
 # firewall-cmd --add-port=8888/tcp --zone=public --permanent
 // 確認
# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="dhcpv6-client"/>
  <service name="http"/>
  <service name="ssh"/>
  <service name="https"/>
  <port protocol="tcp" port="8888"/>
</zone>

firewalldでの許可を確認する方法

#  firewall-cmd --list-all --zone=public
# firewall-cmd --list-services --zone=public
# firewall-cmd --list-ports --zone=public