Difference between revisions of "Mac Commandline Tools"
Line 1: | Line 1: | ||
=System Management= | =System Management= | ||
− | + | ==systemsetup== | |
Manage a variety of configuration stuff. | Manage a variety of configuration stuff. | ||
Line 10: | Line 10: | ||
---- | ---- | ||
− | + | ==softwareupdate== | |
Execute Apple Software update from the commandline | Execute Apple Software update from the commandline | ||
Line 19: | Line 19: | ||
---- | ---- | ||
− | + | ==networksetup== | |
Manage the network configuration | Manage the network configuration | ||
Line 28: | Line 28: | ||
---- | ---- | ||
− | + | ==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== | |
Manage DNS cache | Manage DNS cache | ||
Line 70: | Line 75: | ||
---- | ---- | ||
− | + | ==system_profiler== | |
View system information (Like SystemProfiler.app in Utilities) | View system information (Like SystemProfiler.app in Utilities) | ||
Line 85: | Line 90: | ||
---- | ---- | ||
− | + | ==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== | |
Change file flags, like “hidden”, “archived”.. | Change file flags, like “hidden”, “archived”.. | ||
Line 105: | Line 110: | ||
---- | ---- | ||
− | + | ==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== | |
Manage Spotlight and search it's cache | Manage Spotlight and search it's cache | ||
Line 123: | Line 128: | ||
=Storage Management= | =Storage Management= | ||
− | + | ==diskutil== | |
Manage local disks | Manage local disks | ||
Line 140: | Line 145: | ||
---- | ---- | ||
− | + | ==hdiutil== | |
Manage disk images | Manage disk images | ||
Line 149: | Line 154: | ||
---- | ---- | ||
− | + | ==drutil== | |
Interact with CD/DVD drives | Interact with CD/DVD drives | ||
Line 160: | Line 165: | ||
=Misc= | =Misc= | ||
− | + | ==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== | |
Access OSX clipboard | Access OSX clipboard | ||
Line 178: | Line 183: | ||
---- | ---- | ||
− | + | ==periodic== | |
Run periodic system jobs | Run periodic system jobs | ||
Line 187: | Line 192: | ||
---- | ---- | ||
− | + | ==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
- See also adduser script.
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"