A side note: avoid dd. Not only it has zero benefits for most operations, but its behavior is misunderstood and leads to unexpected outcomes. It’s also too easy to misuse, which led to its alternative name: disk destroyer. cat and head are more than enough, possibly supplemented with tee.
While DD was highly recommended, I got suggestions about DD variations, along with using different commands.
...and just to be clear...when having a question it's better to come out and ask it, "after some googling"
Unless you're hoping to get a job as a Linux/Unix administrator you don't need to learn all of the commands. 99% of normal use involves maybe 5-10 commands that get used frequently, then there is a lot of other stuff that is used internally by the system, or that get used for various edge cases. If you don't know how to accomplish a specific task that's when you can look for the command to do it.
$ awk '{print $1}' ~/.bash_history | sort | uniq -c | sort -n -k1 -r
659 cd
600 git
564 l
489 sudo
419 riscv64-unknown-elf-gcc
388 ssh
386 gcc
344 man
332 scp
280 riscv64-unknown-elf-objdump
246 cat
242 rm
219 less
210 time
192 arm-linux-gnueabihf-gcc
159 clang
144 find
141 make
136 mv
120 echo
113 mkdir
104 emacs
92 spike
86 cal
82 du
81 objdump
73 file
72 ls
70 cp
69 top
69 for
65 arm-linux-gnueabihf-objdump
63 pushd
62 grep
50 perl
48 qemu-riscv64
48 df
41 which
41 tar
39 ifconfig
38 riscv64-unknown-elf-ld
37 riscv64-unknown-elf-as
36 riscv64-unknown-elf-objcopy
34 avr-gcc
32 riscv32-unknown-elf-gcc
31 qemu-riscv32
30 llc
30 ./configure
28 export
26 uptime
26 cmake
23 kill
22 aarch64-linux-gnu-gcc
21 seq
21 dos2unix
20 size
20 /home/bruce/software/arduino-1.8.10/hardware/tools/avr/bin/avrdude
19 ping
18 cut
18 avr-objdump
16 tail
16 python
16 opt
15 perf
15 minicom
15 lsblk
14 uname
14 popd
14 aarch64-linux-gnu-objdump
13 while
12 zcat
12 rmdir
12 ln
11 sort
11 ../configure
10 unzip
10 mtr
10 killall
10 gunzip
10 apt
9 wc
9 nslookup
9 lsb_release
9 chmod
8 diff
7 wget
7 set
7 pgrep
7 awk
7 apt-get
6 sync
6 asciidoc
5 stty
5 strings
5 riscv64-unknown-linux-gnu-gcc
5 curl
5 crontab
4 vi
4 pwd
4 lsusb
4 date
4 cmp
3 unix2dos
3 touch
3 shasum
3 screen
2 su
2 strip
Quote...and just to be clear...when having a question it's better to come out and ask it, "after some googling"
I believe my question was clearly asked, however, I asked a question regarding confusion, so maybe it wasn't clear enough for you (and possibly others).
My question was somewhat simple: DOS vs. Linux and basically why is DOS easy to navigate while Linux seems to have an endless (and confusing) number of command options.
My last sentence in my previous post did inquire about whether anyone know a good reference book I can buy to have as a reference to avoid having to ask (or Google).
In DOS, if you want to 'copy' something, you use 'copy', but it seems in Linux a plethora of commands exist to do the same thing. My confusion comes from how do I know which commands exist, how to determine the best one, and just plan confusion over (to use as an example) the apt-get blah blah
what is your basis of saying that?
i dont see any KiCAD nor Linux specific/specialized EDA/CAD taking a big chunk in the stats.. all point to softwares in Windows. are you saying..
1) engineers using Wine/VMware in Linux just to run few professional and expensive Windows softwares?
2) engineers/scientists that work from home, government or non profitable agencies? that never see the light in those statistics?
or am i missing something? show me some facts please.
When you want to wander through the file system and save some typing, look up the push and pop commands. If I do something like $ push /etc, I actually change to the /etc directory just as though I used $ cd /etc. But to get back to where I came from, all I have to do is $ pop
My question was somewhat simple: DOS vs. Linux and basically why is DOS easy to navigate while Linux seems to have an endless (and confusing) number of command options.
Which shell has push/pop rather than the usual pushd/popd?

Which shell has push/pop rather than the usual pushd/popd?Anyone who has
alias push=pushd
alias pop=popd
in their profile? After all, you yourself have something like
alias l='ls -laF --color=auto'
don't you?
Me, I even have alias dir='ls -laF --color=auto' myself. Some habits die hard, let's not be too judgy!
Personal aliases are one thing, telling a newbie struggling with Linux to "look up" personal aliases is a little different :-)
Habits .. yes, I had to unlearn "dir" and use "ls", but I think forgetting "pip" and using "cp" took my fingers longer.
One big difference is due to privilege separation. DOS has none, Linux has full user-group model and independent capabilities models.

Another is device support. DOS supports parallel and serial port, floppy drives, hard drives, and a NUL: device (IIRC), but Linux supports a lot of different devices, down to GPIO pins if your computer or device has those.

One big difference is due to privilege separation. DOS has none, Linux has full user-group model and independent capabilities models.
BeOS v4 and v5 is (somehow) UNIX-like OS, but it never had any user-group model, multi-users and privileges. You have a bash shell, gcc, and a subset of the UNIX programs (dd was banned and not includes in the install for some reason, I had to compile it myself), and are always logged as "root".
Insanely great, ain't it?

A thing I loved about BeOS which I miss in Linux: the network-class of devices (ethernet, FC, AFDX, etc) doesn't have a devname.
#!/bin/bash
exec 3<>/dev/tcp/duckduckgo.com/80
printf 'GET / HTTP/1.0\r\nHost: duckduckgo.com\r\nConnection: close\r\n\r\n' >&3
cat <&3
to do your own HTTP client. This is ages old, and was/is used in e.g. aforementioned LinuxFromScratch to obtain the IANA Service registry (human-readable version; the file that tells which TCP or UDP port number each service name uses), without an existing HTTP client, early enough in the build process.

Haiku is UNIX-like and it's much simpler than Linux (even if more limited, and with less applications), maybe a good dialectical experience for those who come from DOS/Windows.

The IBM 1130, for which I have an FPGA version, uses 321 16-bit words per sector times some number of sectors per track times some number of tracks. I want to map that to a Compact Flash with 512 bytes per sector. (…)
'dd' is the entire reason I bothered to learn about Linux way back a long time ago.

The command line is king. If you don't want to use it, just run Windows. Even with PowerShell, Windows doesn't come close to mirroring *nix. And the Bash shell on Win 10? Try to print a file or exchange a file with the Windows filesystem. It's a mess! I have it on all my Win 10 boxes and never use it.
As predicted, I got lots of (and more than expected) input.

Just to clarify on a few points. I'm not "comparing" Linux to DOS. My question was based on them both being similar since they run command lines and have option (?) such as a forward slash and a letter after a command.
The IBM 1130, for which I have an FPGA version, uses 321 16-bit words per sector times some number of sectors per track times some number of tracks. I want to map that to a Compact Flash with 512 bytes per sector. (…)I just hope you know that dd may randomly fill some sectors with garbage and shift data to others. Unless you use GNU Coreutils version of dd, which offers a non-standard fullblock input flag to control that — but then you must remember to always specify it. However, I said “most”. Yes, there are some situations in which dd may be useful. For this particular one, I would still write a separate program.
'dd' is the entire reason I bothered to learn about Linux way back a long time ago.But… you can use dd on Windows too. Cygwin or MSYS, and I think one should be available through WSL.
Or “a long time ago” was more than 15 years ago?
Very true, but because of muscle memory, it is too easy to forget the Bash built-ins are pushd and popd instead of just push and pop. (I'd like to give rstofer a little slack here, because I too make that sort of errors regularly.)
It is good to point out the correct commands, though.
$ push /etc
bash: push: command not found
$Habits .. yes, I had to unlearn "dir" and use "ls", but I think forgetting "pip" and using "cp" took my fingers longer.pip was from CP/M, wasn't it? Oops, no, originally from DEC PDP-6!
Also, the file specification strings part of the Wikipedia article on PIP shines interesting light on DOS device naming as well.
I recommend taking a look at Linux From Scratch. It is basically an online book by Gerard Beekmans, Matthew Burgess, Bruce Dubbs, and others, for how to build a Linux system directly from sources.
