Normally I’m OS agnostic and just go with whatever is easiest. I’m lazy, it’s why I use UNIX and it’s open source derivatives. But… Recently I’ve been asked to use Linux on a project at work, that’s not a bad thing, learning new stuff is fine and all. I haven’t used Linux in quite a few years as I had found an easier to deal with alternative or two for home use, and normally I use whatever UNIX my employer or customer has on hand.
1.
# tail -100 !$
tail -100 messages
tail: `-100′ option is obsolete; use `-n 100′ since this will be removed in the future
Now why the fuck would you add two characters to a command? WELCOME TO LINUX! UNIX is about simplicity and small elegant solutions, Linux is about de-evolving
2. “the nslookup gentoo linux go fuckyourselfintheass rant”
2.1
$ nslookup
-bash: nslookup: command not found
2.2
$ su -
password:
# emerge nslookup
Calculating dependencies
emerge: there are no ebuilds to satisfy “nslookup”.
2.3
# emerge -s nslookup
Searching…
[ Results for search key : nslookup ]
[ Applications found : 0 }
2.4
# emerge -s bind
….
….
….
* net-dns/bind-tools
Latest version available: 9.2.5
Latest version installed: [ Not Installed ]
Size of downloaded files: 4,398 kB
Homepage: http://www.isc.org/products/BIND/bind9.html
Description: bind tools: dig, nslookup, and host
License: as-is
# emerge bind-tools
blah blah blah…
#^D
Lets look closely at that ‘Description’ see how it has…fucking ‘nslookup’ in that field? Would it be resonable for a search on the term ‘nslookup’ to respond that that might just fucking possibly be relevent? The worst fucking package manager ever… besides rpm in 1996.
2.5
$ nslookup fthe.net
Note: nslookup is deprecated and may be removed from future releases.
Consider using the `dig’ or `host’ programs instead. Run nslookup with
the `-sil[ent]’ option to prevent this message from appearing.
Server: 208.201.224.11
Address: 208.201.224.11#53
Non-authoritative answer:
Name: fthe.net
Address: 68.124.237.50
$
Ok, I just wanted to know the fucking IP, but lets see what dig gives us…
2.6
$ dig !$
dig fthe.net
; <<>> DiG 9.3.1 <<>> fthe.net
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36105
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;fthe.net. IN A
;; ANSWER SECTION:
fthe.net. 3600 IN A 68.124.237.50
;; AUTHORITY SECTION:
fthe.net. 2936 IN NS PARK12.SECURESERVER.net.
fthe.net. 2936 IN NS PARK11.SECURESERVER.net.
;; ADDITIONAL SECTION:
PARK11.SECURESERVER.net. 771 IN A 64.202.165.115
PARK12.SECURESERVER.net. 771 IN A 68.178.211.110
;; Query time: 86 msec
;; SERVER: 208.201.224.11#53(208.201.224.11)
;; WHEN: Tue Feb 7 13:06:08 2006
;; MSG SIZE rcvd: 129
Woah there Tex…I didn’t ask it what the authoritative servers were, global options, the header, or how many fucking milliseconds the query took. I just wanted the IP addrdess. nslookup has been there for many years, and is the most common way to look up hostnames on the command line in UNIX, but you have had this dumb fucking “Note” in there for 5 years now, maybe longer??
3. Elf KING
portage/games-rpg
Need I say more?
4. nanot
livecd etc # vi fstab
bash: vi: command not found
livecd etc # ed
bash: ed: command not found
livecd etc # ex
bash: ex: command not found
Fuck you gentoo and the child safe nano you rode in on.
5. Let’s pretend
# emerge midas-nms
Calculating dependencies …done!
!!! Error: the dev-lang/php package conflicts with another package.
!!! both can’t be installed on the same system together.
!!! Please use ‘emerge –pretend’ to determine blockers.
Why don’t you just fucking tell me which package instead of making me “pretend”? Why?
6. Superfluous typing..again
# route add -net 10.11.11.0/24 10.10.10.1
SIOCADDRT: No such device
huh?
# route add -net 10.11.11.0/24 gw 10.10.10.1
#
Oh, I see, I need to add two letters to the command that don’t add anything to the meaning, and arn’t used on other operating systems, like windows…
7. Why bother to give the same information every other OS gives?
Linux:
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:F0:71:30:C6:7F
inet addr:172.16.2.4 Bcast:172.16.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:270408393 errors:0 dropped:0 overruns:1403806 frame:1403806
TX packets:1652802 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:46889091080 (44716.9 Mb) TX bytes:398207813 (379.7 Mb)
#
FreeBSD (or any other modern OS):
# ifconfig
rl0: flags=8843>UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet6 fe80::210:b5ff:fe0d:8df5%rl0 prefixlen 64 scopeid 0×1
inet 69.12.144.65 netmask 0xffffff00 broadcast 69.12.144.255
ether 00:10:b5:0d:8d:f5
media: Ethernet autoselect (100baseTX )
status: active
#
Two things here that piss me off, first of all every UNIX today with the exception of Linux shows what media it is displaying, and the driver that is attached to it. Why does Linux go out of it’s way to omit important data? I want to know what speed and duplex the fucking interface is at! Statistics are not what belongs in the output here!
Secondly, hard to show an example here, but the interface can actually change from eth0 to eth1 if you have more than one card in the system between reboots! So you have a script that refers to eth0? It might not fucking work next time you reboot! wtf were they thinking?
8. Bits and Bytes B and b
eth2 Link encap:Ethernet HWaddr 00:E0:81:30:D4:FD
inet addr:192.168.10.2 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5554923 errors:0 dropped:0 overruns:0 frame:0
TX packets:35198355 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:388845594 (370.8 Mb) TX bytes:53062548876 (50604.3 Mb)
Interrupt:193
NoTiCe AnYtHiNg WrOnG?
9. Every real *NIX vendor has a mail daemon running as default, has a mail program for sending mail as they are a basic system functions, not Linux!
# mail
-bash: mail: command not found
# mailx
-bash: mailx: command not found
-id