1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
|
Unix shell equivalents
----------------------
StepTalk is not meant to be used for tasks that can be done using ordinary Unix
shells. But this does not mean, that it cannot be used for such tasks. In this
file you may find list of unix commands and tasks and their Smalltalk
equivalents.
Contents:
File Manipulation
Output
Paths and filenames
Network
Math
Date and Time
File manipulation
-----------------
> fm := NSFileManager defaultManager
ls
> (fm directoryContentsAtPath: '.') sortedArrayUsingSelector:#compare:
pwd
> fm currentDirectoryPath
cd path
> fm changeCurrentDirectoryPath: 'path'
ln -s path other
> fm createSymbolicLinkAtPath:'path' pathContent:'other'
cp src dest
> fm copyPath:'src' toPath:'dest' handler: nil
cp file_list dest
> file_list do: [ :file | fm copyPath:file toPath:'dest' handler: nil ]
mv - as cp, movePath:toPath:handler:
ln - as cp, linkPath:toPath:handler:
rm - removeFileAtPath:handler:
mkdir dir
> fm createDirectoryAtPath:'dir' attributes:nil
df path
> fm fileSystemAttributesAtPath:'path'
Output
------
echo 'string'
> Transcript show:'string'
cat file
> Transcript show: (NSString stringWithContentsOfFile:'file')
"write a string to a file"
> ('string' writeToFile:'file' atomically:YES)
"create a string from a file"
> str := NSString stringWithContentsOfFile:'file'
Paths and filenames
--------------------------------
For more information, refer to the NSString documentation.
NSString methods for path manipulation:
- fileSystemRepresentation
- isAbsolutePath
- pathComponents
- lastPathComponent
- pathExtension
- stringByAbbreviatingWithTildeInPath
- stringByAppendingPathComponent:
- stringByAppendingPathExtension:
- stringByDeletingLastPathComponent
- stringByDeletingPathExtension
- stringByExpandingTildeInPath
- stringByResolvingSymlinksInPath
- stringByStandardizingPath
- stringsByAppendingPaths:
Examples:
> path := '/usr/GNUstep/System/Applications/Ink.app'
> path pathComponents
(?) GSArray
0 /
1 usr
2 GNUstep
3 System
4 Applications
5 Ink.app
> path lastPathComponent
(?) Ink.app
> path pathExtension
(?) app
In Smalltalk there is a symbolic selector '/' for NSString that is equivalent to
the 'stringByAppendingPathComponent:'.
> path := 'somePath'
> filename := 'someFilename'
> fullPath := path / filename
Network
-------
localhost
> NSHost currentHost name
nslookup host_name
> (NSHost hostWithName:'host_name') addresses
nslookup host_address
> (NSHost hostWithAddress:'host_address') names
"download a file from the web"
> data := NSData dataWithContentsOfURL:'url'
> data writeToFile:'file' atomically:YES
"read a file from the web"
> string := NSString stringWithContentsOfURL:'url'
Math
----
Just like in:
> 1 + 1
or in:
> a := b * c
Date and Time
-------------
date
> NSDate date
...or...
date
> NSCalendarDate date
For more information read the NSDate and NSCalendarDate documentation
NSCalendarDate methods:
Creating a date
+ calendarDate
+ dateWithString:calendarFormat:
+ dateWithString:calendarFormat:locale:
+ dateWithYear:month:day:hour:minute:second:timeZone:
Retrieving date elements
- dayOfCommonEra
- dayOfMonth
- dayOfWeek
- dayOfYear
- hourOfDay
- minuteOfHour
- monthOfYear
- secondOfMinute
- yearOfCommonEra
Adjusting a date
- dateByAddingYears:months:days:hours:minutes:seconds:
|