Mac Commandline Tools

From FreekiWiki
Revision as of 16:57, 8 April 2012 by Mikem (talk | contribs) (Created page with "---- '''systemsetup''' Manage a variety of configuration stuff. sudo systemsetup -getdate # view system date systemsetup -getcomputername # display computer name -…")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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

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

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


diskutil

Manage local disks

diskutil list # list local drives and partitions
sudo diskutil repairPermissions / # repair permissions

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

open

Open a file with a given application.

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

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

pbcopy/pbpaste

Access OSX clipboard

ls | pbcopy # copy dir listing to clipboard

mdutil/mdfind

Manage Spotlight and search it's cache

mdutil -s / # show indexing status on root drive

mdfind -name "filename"

periodic

Run periodic system jobs

sudo periodic daily # run daily stuff

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