Difference between revisions of "Mac Commandline Tools"

From FreekiWiki
Jump to navigation Jump to search
Line 1: Line 1:
 
=System Management=
 
=System Management=
  
'''systemsetup'''
+
==systemsetup==
  
 
Manage a variety of configuration stuff.
 
Manage a variety of configuration stuff.
Line 10: Line 10:
  
 
----
 
----
'''softwareupdate'''
+
==softwareupdate==
  
 
Execute Apple Software update from the commandline
 
Execute Apple Software update from the commandline
Line 19: Line 19:
  
 
----
 
----
'''networksetup'''
+
==networksetup==
  
 
Manage the network configuration
 
Manage the network configuration
Line 28: Line 28:
  
 
----
 
----
'''dscl'''
+
==dscl==
  
 
Directory service management, for example users, groups etc. – complex stuff, mostly for use on OSX server
 
Directory service management, for example users, groups etc. – complex stuff, mostly for use on OSX server
 +
 +
*''See also [[Mac_OSX_adduser_script| adduser script]].''
  
 
  dscl localhost -list /Local/Default/Users    # list all local users
 
  dscl localhost -list /Local/Default/Users    # list all local users
Line 60: Line 62:
 
  passwd username
 
  passwd username
  
But all of this is simplified by our in-house [[Mac_OSX_adduser_script| adduser script]].
+
But all of this is simplified by our in-house adduser script:
 +
 
 +
===[[Mac_OSX_adduser_script| adduser script]]===
 +
This is a shell script designed to do all of the above ''dscl'' commands automatically, asking only for the user's input.  
  
 
----
 
----
'''dscacheutil'''
+
==dscacheutil==
  
 
Manage DNS cache
 
Manage DNS cache
Line 70: Line 75:
  
 
----
 
----
'''system_profiler'''
+
==system_profiler==
  
 
View system information (Like SystemProfiler.app in Utilities)
 
View system information (Like SystemProfiler.app in Utilities)
Line 85: Line 90:
  
 
----
 
----
'''sysctl'''
+
==sysctl==
  
 
Display or set the kernel state. Commonly used to retrieve information on the system such as
 
Display or set the kernel state. Commonly used to retrieve information on the system such as
Line 96: Line 101:
 
=File Management=
 
=File Management=
  
'''chflags'''
+
==chflags==
  
 
Change file flags, like “hidden”, “archived”..
 
Change file flags, like “hidden”, “archived”..
Line 105: Line 110:
  
 
----
 
----
'''GetFileInfo'''
+
==GetFileInfo==
  
 
View extended file attributes, like icon, creator and so on. To write these attributes use SetFileInfo
 
View extended file attributes, like icon, creator and so on. To write these attributes use SetFileInfo
Line 112: Line 117:
  
 
----
 
----
'''mdutil/mdfind'''
+
==mdutil/mdfind==
  
 
Manage Spotlight and search it's cache
 
Manage Spotlight and search it's cache
Line 123: Line 128:
 
=Storage Management=
 
=Storage Management=
  
'''diskutil'''
+
==diskutil==
  
 
Manage local disks
 
Manage local disks
Line 140: Line 145:
  
 
----
 
----
'''hdiutil'''
+
==hdiutil==
  
 
Manage disk images
 
Manage disk images
Line 149: Line 154:
  
 
----
 
----
'''drutil'''
+
==drutil==
  
 
Interact with CD/DVD drives
 
Interact with CD/DVD drives
Line 160: Line 165:
 
=Misc=
 
=Misc=
  
'''open'''
+
==open==
  
 
Open a file with a given application in the gui.
 
Open a file with a given application in the gui.
Line 171: Line 176:
  
 
----
 
----
'''pbcopy/pbpaste'''
+
==pbcopy/pbpaste==
  
 
Access OSX clipboard
 
Access OSX clipboard
Line 178: Line 183:
  
 
----
 
----
'''periodic'''
+
==periodic==
  
 
Run periodic system jobs
 
Run periodic system jobs
Line 187: Line 192:
  
 
----
 
----
'''say'''
+
==say==
  
 
Have the local machine speak to you.
 
Have the local machine speak to you.

Revision as of 02:21, 10 April 2012

System Management

systemsetup

Manage a variety of configuration stuff.

sudo systemsetup -getdate     # view system date

systemsetup -getcomputername     # display computer name

softwareupdate

Execute Apple Software update from the commandline

softwareupdate -l     # list available updates

sudo softwareupdate -i -a     # install all available updates

networksetup

Manage the network configuration

sudo networksetup -listallhardwareports     # list all network interfaces with MAC addresses

sudo networksetup -switchtolocation home     # switch network locations

dscl

Directory service management, for example users, groups etc. – complex stuff, mostly for use on OSX server

dscl localhost -list /Local/Default/Users     # list all local users

Users are added from the command line with dscl. In OSX, it is done as such:

dscl . -create /Users/username     # creates the new user entry. The "." specifies the local machine and "-create" is the verb which directs the command.

dscl . -create /Users/username UserShell /bin/bash     # sets the default shell for said user

dscl . -create /Users/username Realname "user name"     # the alternative name used optionally by OSX to log in

dscl . -create /Users/username UniqueID 503     # set a unique number id for the user

dscl . -create /Users/username PrimaryGroupID 1000     # sets the primary group id. In OSX the admin groups are usually either administrator or staff.

dscl . -create /Users/username NFSHomeDirectory /Local/Users/username     # sets the user's home directory

dscl . -passwd /Users/username password     # sets the user's password

dscl . -append /Groups/admin GroupMembership username

As a note, to list all available groups and their ids, you can type

dscacheutil -q group

And passwords can be set or changed in the traditional linux way with

passwd username

But all of this is simplified by our in-house adduser script:

adduser script

This is a shell script designed to do all of the above dscl commands automatically, asking only for the user's input.


dscacheutil

Manage DNS cache

dscacheutil -flushcache # clear local DNS cache

system_profiler

View system information (Like SystemProfiler.app in Utilities)

system_profiler     # list all information on system available. It is A LOT OF INFO!!

system_profiler -detaillevel basic     # lists only hardware and network information

system_profiler SPHardwareDataType     # lists a hardware overview of the local system

system_profiler SPSoftwareDataType     # lists a software overview of the local system

system_profiler -xml filename >/Users/username/Documents/sys-info.xml     # generates an xml file rather than plain text output.

sysctl

Display or set the kernel state. Commonly used to retrieve information on the system such as

sysctl -n machdep.cpu.brand_string     # display information on the processor

sysctl -a | grep hw.memsize     # list the amount of memory in the system

File Management

chflags

Change file flags, like “hidden”, “archived”..

chflags -R -V hidden /some/file.txt     # hides the specified file from the gui

ls -l0      # View flags in the current directory

GetFileInfo

View extended file attributes, like icon, creator and so on. To write these attributes use SetFileInfo

GetFileInfo any.txt # list the attributes of a specified file


mdutil/mdfind

Manage Spotlight and search it's cache

mdutil -s /     # show indexing status on root drive

mdfind -name "filename"     # similar to find, check the cache for a specified file or directory

Storage Management

diskutil

Manage local disks

diskutil list    # list local drives and partitions

diskutil activity     # monitor activity on the local disk

diskutil repairvolume disk0s1     # attempt to repair the specified partition
 
diskutil checkraid     # display status of local RAID arrays

diskutil appleRAID update AutoRebuild 1 disk0     # set the specified disk path to automatically be rebuild if the array is broken

sudo diskutil repairPermissions /     # repair any improper permissions caused by third-party software or updates

hdiutil

Manage disk images

hdiutil burn animage.dmg     # burn imagefile to cd/dvd

hdiutil create -srcfolder path any.dmg     # create dmg-image from folder

drutil

Interact with CD/DVD drives

drutil eject     # eject media

drutil status     # show detailed information about drives and media

Misc

open

Open a file with a given application in the gui.

open example.txt     # opens the file in the default text editor

open .     # opens a new finder window with the current commandline path

open -a Safari     # opens Safari

pbcopy/pbpaste

Access OSX clipboard

ls | pbcopy     # copy dir listing to clipboard

periodic

Run periodic system jobs

sudo periodic daily     # run daily stuff

However, any such tasks can be done traditionally with cron as well.


say

Have the local machine speak to you.

say "I am way cool"

say -v Bruce "Zip zop zoo bitty bop"