OS X의“비행기 모드”.`rfkill`에 대한 대체 명령? 열고 싶지 않습니다 . 커맨드

Mac OS X은 rfkill터미널에서 인식하지 못하며 비슷한 기능을 가진 다른 명령을 찾고 있습니다 ( “비행기 모드”전환).

참고 : .app토글 을 열고 싶지 않습니다 . 커맨드 라인이나 Bash (또는 이와 동등한 것)의 스크립트 내에서 명령을 실행하고 싶습니다.


“비행기 모드”, 나는 아이폰 OS 지원 페이지에서 용어를 빌려 의미 여기 . 시스템에서 모든 수신 / 발신 네트워크 통신을 비활성화하고 싶습니다.



답변

이름이 isolated있거나 airplane모든 네트워크 인터페이스 있고 꺼져 있는 임시 위치를 만듭니다 .

다음을 사용하여이 청각 장애인 위치로 전환하십시오 :

networksetup -switchtolocation isolated

rfkill모든 통신을들을 수있는 눈에 띄지 않는 이더넷 케이블로부터 보호 할 수 있기 때문에 더 흥미로울 수 있습니다. 모든 것이 실제로 꺼져 있는지 확인하려면 다음을 실행하십시오.

ifconfig -a | grep '[<,]UP[,>]' | grep -v '[<,]LOOPBACK[,>]'

이 명령이 아무 것도 표시하지 않으면 모든 인터페이스가 작동 중지 되고 모든 것이 정상입니다.

이 명령이 다음과 같이 아무것도 출력하면 :

en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

인터페이스 이름 (여기서는 en1이 Mac의 무선 이름 )은 사용하지 않아야 할 위치에 있음을 의미합니다. 이것은 구성이 실패했거나 일부 트로이 목마가 인터넷을 통해 제어 서버에 연결하도록 설정했음을 나타냅니다.


답변

목표에 따라 (데이터 인터페이스를 종료하는 데 관심이 있습니까?) 그에 따라 계획을 선택할 수 있습니다.

(1) 네트워크 인터페이스 및 (2) 데이터 인터페이스 계획 A

(1) 네트워크 인터페이스 계획 B


(계획 A # 1) 설치된 하드웨어 인터페이스 정보 (데이터 인터페이스 포함)를 가져옵니다.

먼저, 얼마나 많은 인터페이스를 사용해야하는지 알고 싶습니다.

$ networksetup -listallhardwareports

Hardware Port: Bluetooth DUN
Device: Bluetooth-Modem
Ethernet Address: N/A

Hardware Port: Ethernet
Device: en0
Ethernet Address: ff:ff:ff:ff:ff:ff

Hardware Port: FireWire
Device: fw0
Ethernet Address: ff:ff:ff:ff:ff:ff:ff:ff

Hardware Port: Wi-Fi
Device: en1
Ethernet Address: ff:ff:ff:ff:ff:f

(계획 A #?) (선택 사항) 네트워크 인터페이스 목록 만 가져옵니다.

이 단계를 통해 쉽게 수행 할 수 grep있습니다.

$ networksetup -listallnetworkservices

An asterisk (*) denotes that a network service is disabled.
Ethernet
FireWire
Wi-Fi

(계획 A # 2) 네트워크 인터페이스의 장치 이름을 가져옵니다.

어떤 네트워크 인터페이스가 활성화되어 있는지 알고 싶습니다.

$ ifconfig

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether ff:ff:ff:ff:ff:ff
    media: autoselect (none)
    status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether ff:ff:ff:ff:ff:ff
    inet6 ffff::ffff:ffff:ffff:ffff%en1 prefixlen 64 scopeid 0x5
    inet 192.168.1.fff netmask 0xffffff00 broadcast 192.168.1.fff
    media: autoselect
    status: active
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078
    lladdr ff:ff:ff:ff:ff:ff:ff:ff
    media: autoselect <full-duplex>
    status: inactive

(계획 B # 1) airport명령을 찾 거나 airport명령이 인식되지 않으면 명령의 별명을 설정하십시오 .

시스템에서 airport명령을 인식 할 수 없으므로 에 아래 줄을 추가해야했습니다 .bash_profile.

alias airport='/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport'

(계획 B # 2) 현재 AirPort 상태 확인 :

$ ./airport -I

     agrCtlRSSI: -10
     agrExtRSSI: 0
    agrCtlNoise: -10
    agrExtNoise: 0
          state: running
        op mode: station
     lastTxRate: 100
        maxRate: 100
lastAssocStatus: 0
    802.11 auth: open
      link auth: fffffffffffffffff
          BSSID: ff:ff:ff:ff:ff:ff
           SSID: MelvNetwork
            MCS: 15
        channel: 6 

(계획 A & B # 3) AirPort 켜기 / 끄기 :

# For OS X 10.7 and later
$ networksetup -setairportpower en1 on   # Turn on Airport
$ networksetup -setairportpower en1 off  # Turn off Airport

# for OS X 10.6 and below
$ networksetup -setairportpower on       # Turn on AirPort
$ networksetup -setairportpower off      # Turn off AirPort

(Plan A & B # 4) BlueTooth 켜기 / 끄기 :

blueutil 여기에서 다운로드 하십시오 .

$ blueutil status  # Check status of BlueTooth
Status: on

$ blueutil on      # Turn BlueTooth on

$ blueutil off     # Turn BlueTooth off

스크립트:

이제 모든 구성 요소를 갖추 었으므로 OS X 10.7 용 스크립트를 작성할 수 있습니다!


마지막 의견 :

(1) 일부 출력은 문자 ‘f’로 마스크됩니다.

(2)에 따르면 $ man networksetup프록시, TCP / IP, PPPoE (테스트되지 않음)도 구성 할 수 있습니다.

(3) @RichHomolka의 제안 networksetup --enableuserprofile은 OS X 10.7에서 더 이상 사용되지 않습니다 (다른 버전에서는 테스트되지 않음).

(4) 위의 절차를 따르는 사람이 문제를 겪는 경우 의견이나 별도의 답변으로 문제를 해결할 수 있습니까?