Author Topic: Un-obvious Linux tricks  (Read 13788 times)

Offline Smurf Hunter

  • Survival Veteran
  • ********
  • Posts: 7006
  • Karma: 329
Re: Un-obvious Linux tricks
« Reply #30 on: January 23, 2013, 04:14:42 PM »
good point.  I guess it's a habit, since I could have something beside find at the left of the |

Code: [Select]
ls -1 *.foo | xargs rm

Offline archer

  • Administrator
  • Ultimate Survival Veteran
  • *******
  • Posts: 17037
  • Karma: 379
  • #ImissAmerica
    • Journey to Greener Pastures
Re: Un-obvious Linux tricks
« Reply #31 on: January 23, 2013, 05:49:24 PM »
good point.  I guess it's a habit, since I could have something beside find at the left of the |

Code: [Select]
ls -1 *.foo | xargs rm
that is true, there are soo many different ways to do things in *nix

Online Mr. Bill

  • Like a hot cocoa mojito
  • Administrator
  • Forum Veteran
  • *******
  • Posts: 14016
  • Karma: 1849
  • Trained Attack Sheepdog/Troll hunter
    • Website Maintenance and Online Presence Management by Mr. Bill
Re: Un-obvious Linux tricks
« Reply #32 on: March 07, 2013, 12:49:07 PM »
HOW TO CHANGE AN ENVIRONMENT VARIABLE FROM THE COMMAND LINE:
[edited to add: This is for bash, ksh, and similar shells; not for csh.]

export NAME=value

Example: change the default text-pager used by man and other programs:

export PAGER=/bin/less

Okay, yes, I feel like a complete "Where's the ANY key?" newbie at the moment.  The last time I changed an environment variable from the command line was maybe 5 years ago.  I had no memory of how to do it, and it took me forever to find it in the gigantic and mind-numbing man bash documentation.

I had to do this on my web host because for some reason $PAGER was pointing at an incorrect location, and I couldn't even get man to work without adding -P /bin/less to the command line every single time.

Anyway, I scrawled out some notes to myself on a piece of paper, under the heading
Getting man to use less
which at least geve me a laugh when I saw what I'd written. ;D
« Last Edit: March 07, 2013, 07:54:14 PM by Mr. Bill »

Offline archer

  • Administrator
  • Ultimate Survival Veteran
  • *******
  • Posts: 17037
  • Karma: 379
  • #ImissAmerica
    • Journey to Greener Pastures
Re: Un-obvious Linux tricks
« Reply #33 on: March 07, 2013, 02:45:03 PM »
give me a call next time if you get stuck and need help. my phone is always (groan) on.

Offline BillP38

  • Prepper
  • **
  • Posts: 36
  • Karma: 4
  • Gardening is cheaper than Therapy & you get Tomato
Re: Un-obvious Linux tricks
« Reply #34 on: March 07, 2013, 04:35:38 PM »
  I've used Linux on all my personal machines for the last few years and have found the following web page helpful. The site is makeuseof.com, I've never had a problem with the site or any of the files downloaded.
 
  http://www.makeuseof.com/tag/an-a-z-of-linux-40-essential-commands-you-should-know/

d3nni5

  • Guest
Re: Un-obvious Linux tricks
« Reply #35 on: March 07, 2013, 05:19:09 PM »
HOW TO CHANGE AN ENVIRONMENT VARIABLE FROM THE COMMAND LINE:

export NAME=value

Example: change the default text-pager used by man and other programs:

export PAGER=/bin/less

Okay, yes, I feel like a complete "Where's the ANY key?" newbie at the moment.  The last time I changed an environment variable from the command line was maybe 5 years ago.  I had no memory of how to do it, and it took me forever to find it in the gigantic and mind-numbing man bash documentation.

I had to do this on my web host because for some reason $PAGER was pointing at an incorrect location, and I couldn't even get man to work without adding -P /bin/less to the command line every single time.

Anyway, I scrawled out some notes to myself on a piece of paper, under the heading
Getting man to use less
which at least geve me a laugh when I saw what I'd written. ;D


Mr Bill,

You can also set these up in a .profile in your $HOME directory, if you are using bash or ksh or similar shell.  Those using tcsh or csh can look at the set and setenv    commands.

Example

$ cd $HOME
$ cat .profile
EDITOR=vi
PATH=$PATH:/my/extra/path/dirs
ORACLE_HOME=/my/oracle/home
ORACLE_BASE=/my/oracle/base
export EDITOR PATH ORACLE_HOME ORACLE_BASE
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH

Online Bradbn4

  • Dedicated Contributor
  • ******
  • Posts: 1216
  • Karma: 38
Re: Un-obvious Linux tricks
« Reply #36 on: March 07, 2013, 05:20:16 PM »
HOW TO CHANGE AN ENVIRONMENT VARIABLE FROM THE COMMAND LINE:

export NAME=value

Example: change the default text-pager used by man and other programs:

export PAGER=/bin/less

Okay, yes, I feel like a complete "Where's the ANY key?" newbie at the moment.  The last time I changed an environment variable from the command line was maybe 5 years ago.  I had no memory of how to do it, and it took me forever to find it in the gigantic and mind-numbing man bash documentation.

I had to do this on my web host because for some reason $PAGER was pointing at an incorrect location, and I couldn't even get man to work without adding -P /bin/less to the command line every single time.

Anyway, I scrawled out some notes to myself on a piece of paper, under the heading
Getting man to use less
which at least geve me a laugh when I saw what I'd written. ;D

Also note:  the method used to export from a terminal window changes based on your shell type.  I know that method works for ksh and I believe it also works for bash.  I also know it will fail for csh shell types.

often the ~/.profile ~/.cshrc file tweak your enthronement.  On other boxes the /etc/profile or /etc/.login  type files can be used to load system wide defaults.


man ksh
man bash
man csh

will give you the common interfaces to a shell

many man pages also support the key word search as in

man -k login

if the index needs to be rebuild due to s/w installation on some boxes a
catman -w
command might be necessary to access the man pages defined in the MANPATH statement.

set
and
env
command will dump out the environment you are running with.
if you have "short cuts defined" the
alias
command will help you figure out why typing "vi" runs "vim" (sometimes)
also a "which vi" can help you figure out where a program is located. (Mostly)

« Last Edit: March 07, 2013, 05:26:23 PM by Bradbn4 »

Offline fritz_monroe

  • The Defenestrator
  • Global Moderator
  • Survival Veteran
  • ******
  • Posts: 8181
  • Karma: 145
    • The Homestead Fritz
Re: Un-obvious Linux tricks
« Reply #37 on: March 07, 2013, 07:25:04 PM »
For anyone looking to go a little geeky on a podcast, I really like the Going Linux Podcast.  Great for anyone.

A bonus is that if you run into a problem in Linux and e-mail them, the hose if pretty quick to respond.

Online Mr. Bill

  • Like a hot cocoa mojito
  • Administrator
  • Forum Veteran
  • *******
  • Posts: 14016
  • Karma: 1849
  • Trained Attack Sheepdog/Troll hunter
    • Website Maintenance and Online Presence Management by Mr. Bill
Re: Un-obvious Linux tricks
« Reply #38 on: March 07, 2013, 07:51:47 PM »
give me a call next time if you get stuck and need help. my phone is always (groan) on.

Thanks.  I almost did that, but I was able to have a better temper tantrum doing it myself. ;D

...Those using tcsh or csh can look at the set and setenv    commands. ...

Yeah, that was my other problem, and thank you for making me realize what the issue was.

I was using csh.  I have a scrawled note to myself from a few months ago listing the set and setenv commands.  Yesterday I used chsh to change my shell from csh to bash (thanks for telling me how to do this, Archer!).  Today I tried using set and setenv and they didn't work.  Well, duh.

Offline Smurf Hunter

  • Survival Veteran
  • ********
  • Posts: 7006
  • Karma: 329
Re: Un-obvious Linux tricks
« Reply #39 on: March 07, 2013, 10:26:14 PM »
In the early days of my career we had to worry about the different *nixes:  SunOS, BSD, PC-UX, Linux

That forced us to learn common denominator skills, like plain old "vi" (not vim), and universal commands that worked in all shells.
Today, 99% of unix environments I encountered are linux, and the world is a far simpler place.

Online Mr. Bill

  • Like a hot cocoa mojito
  • Administrator
  • Forum Veteran
  • *******
  • Posts: 14016
  • Karma: 1849
  • Trained Attack Sheepdog/Troll hunter
    • Website Maintenance and Online Presence Management by Mr. Bill
Re: Un-obvious Linux tricks
« Reply #40 on: April 07, 2013, 06:06:02 PM »
I just had to haul this out of my ~/bin directory yesterday: it's a very simple script that tries to contact a site over and over, and beeps when it succeeds.

Code: [Select]
#!/bin/bash

# pingring
# by WSS
# version 2, 2013-04-07
# Pings a site until it responds, then plays a tone.
# Requires package "sox" for tone generation.
# Usage:  pingring [site]
#   where site = an IP address (111.22.333.44) or site name (abc.example.com)

# default site to ping, if not specified on command line [CHANGE THIS FOR YOUR SITUATION]:
DEFAULTSITE="192.168.1.1"
# time to wait for ping response before giving up (seconds):
WAITTIME=3
# sleep time before trying again (seconds):
SLEEPTIME=17

if [ "$1" == "" ]
then
  SITE=$DEFAULTSITE
else
  SITE=$1
fi

while ! ping -c 1 -w $WAITTIME $SITE ; do
  date
  sleep $SLEEPTIME
done

echo "PING RESPONSE RECEIVED"
date
# play a short synthesized tone
play -q -n -c1 synth sin %-24 sin %-9 sin %-5 sin %-2 fade q 0.2 1 0.5

exit 0

To use this:
  • Paste it into a text editor, and change
    DEFAULTSITE="192.168.1.1"
    to whatever you want.
  • Save, and make it executable.
  • To check your default site:
    pingring
  • Or to check a different site:
    pingring 174.36.118.25
    or
    pingring thesurvivalpodcast.com
  • It'll send a ping to the site every 20 seconds, and play a cheerful bleep when it finally succeeds.  (You'll need the play command to make the tone.  It's part of the package sox.  You can change this line to some other attention-getting program, or just delete it if you don't want it.)

What is this for?  Obviously you can use it to check if a website is alive or dead.  For those of us with erratic Internet service, it's a good tool to check whether your own Internet connection is up-and-running.  For this purpose I suggest playing around with tracepath (or traceroute or similar tool) to map out the nearby part of your Internet connection to the rest of the world.  Find some nearby branch point through which all your traffic appears to pass, and use that as your DEFAULTSITE.  Then, next time your Internet service goes down, you can just type pingring and go do something else until you hear the bleep.

Offline archer

  • Administrator
  • Ultimate Survival Veteran
  • *******
  • Posts: 17037
  • Karma: 379
  • #ImissAmerica
    • Journey to Greener Pastures
Re: Un-obvious Linux tricks
« Reply #41 on: April 07, 2013, 08:07:28 PM »
neat little tool

Offline AverageDude

  • Senior Survivalist
  • ****
  • Posts: 206
  • Karma: 2
  • Trying to live that better life
Re: Un-obvious Linux tricks
« Reply #42 on: April 08, 2013, 05:34:18 AM »

Why not just use the ping "-a" option or the wget audible options?

Online Mr. Bill

  • Like a hot cocoa mojito
  • Administrator
  • Forum Veteran
  • *******
  • Posts: 14016
  • Karma: 1849
  • Trained Attack Sheepdog/Troll hunter
    • Website Maintenance and Online Presence Management by Mr. Bill
Re: Un-obvious Linux tricks
« Reply #43 on: April 08, 2013, 12:48:55 PM »
Why not just use the ping "-a" option or the wget audible options?

Thre's always umpteen ways to do anything in Linux.  I never noticed ping -a, but I just tried it and I don't get anything audible on my machine, so that won't work for me.

I'm not sure that wget does what I want here.  I just want a response from Computer X at a particular IP address; I don't want to download a file, or even be dependent on whether Computer X has an http or ftp server running.  (Also I don't see any audible options in man wget, at least for the version I've got installed here.)

Also, part of my goal when I wrote Version 1 several years ago was just to get practice in writing a simple shell script.  I posted it here partly to help out people who have never done anything like that.  Even if you've never seen any computer program in your entire life, you can probably work out what it does just by reading it.  (Well, except for that play command at the end, but I just got that by stealing someone else's "bleep" and fiddling with the parameters until I liked the sound.)

Offline Smurf Hunter

  • Survival Veteran
  • ********
  • Posts: 7006
  • Karma: 329
Re: Un-obvious Linux tricks
« Reply #44 on: April 08, 2013, 01:51:03 PM »
when wget doesn't do it, I use curl.

http://curl.haxx.se/docs/manpage.html

Offline ChEng

  • Survivalist Mentor
  • *****
  • Posts: 330
  • Karma: 24
  • Chief Engineer
Re: Un-obvious Linux tricks
« Reply #45 on: April 09, 2013, 05:54:32 PM »
The hard core original "vi" almost cost me a computer.  I got so disgusted by it's user unfriendliness I almost pushed the monitor off the work area. While vim is a fantastic improvement over vi, and the gvim version provides a worth while gui interface that beats the crap out of xemac's interface.  BTW: - vim sucks, but sucks less and still works well over very small 56k lines. This why I pronounce "vi" as in evil.   

...

I never took the time to get familiar with vi, just never worked out.  Having gotten my start with CP/M, TRS-DOS and then MS-DOS, I got used to some simple text editors (never liked line-oriented editors, like ed.)  In that vain, I quickly picked up on nano (and pico, which is much like it) for simple text editing.  It reminds me of simpler stuff like MS-DOS' edit.  If your *nix doesn't have one or the other, they are available in most repositories.

Offline Smurf Hunter

  • Survival Veteran
  • ********
  • Posts: 7006
  • Karma: 329
Re: Un-obvious Linux tricks
« Reply #46 on: April 09, 2013, 09:45:53 PM »
I'm not a vi wizard, well perhaps compared to folks today I am :)

I kind of view mastery of the editor to be on par with driving a manual transmission.  You can certainly get by fine without knowing it, but as an old mentor used to say "it gets you closer to the machine".

Online Bradbn4

  • Dedicated Contributor
  • ******
  • Posts: 1216
  • Karma: 38
Re: Un-obvious Linux tricks
« Reply #47 on: April 09, 2013, 10:17:52 PM »
I never took the time to get familiar with vi, just never worked out.  Having gotten my start with CP/M, TRS-DOS and then MS-DOS, I got used to some simple text editors (never liked line-oriented editors, like ed.)  In that vain, I quickly picked up on nano (and pico, which is much like it) for simple text editing.  It reminds me of simpler stuff like MS-DOS' edit.  If your *nix doesn't have one or the other, they are available in most repositories.

I used programs like "edt", teco,  - I have built pico, pine, and others for working on my shell account when I signed up for the intrenet. 

I have also boot strapped my own compiler and tool set without root on various Unix boxes.

gnu.org is a fine site to obtain the source code so you can tweak / twiddle the program to do exactly just what you want.

Tip - use gvimdiff <file 1> < file 2> to show a side by side difference between two files and the editor will highlight which character(s) are different.

Tip #2 - if you need to print out some text files - locate and use a2ps (ASCII 2 postscript) and it can reformat source code any which way you want.  It can add line / page numbers, it can also pretty print out support many programming different languages. 

Tip #3 - if you want a good free editor for program development - look at netbeans


Offline archer

  • Administrator
  • Ultimate Survival Veteran
  • *******
  • Posts: 17037
  • Karma: 379
  • #ImissAmerica
    • Journey to Greener Pastures
Re: Un-obvious Linux tricks
« Reply #48 on: April 09, 2013, 10:31:42 PM »
instead of gvimdiff, i use sdiff. it displays a side by side comparision and can show only differences if needed

Online Bradbn4

  • Dedicated Contributor
  • ******
  • Posts: 1216
  • Karma: 38
Re: Un-obvious Linux tricks
« Reply #49 on: April 10, 2013, 07:01:52 PM »
instead of gvimdiff, i use sdiff. it displays a side by side comparison and can show only differences if needed

true - often I use "sdiff -w 180  <file 1> < file 2>  the "sdiff" truncate the line length so you may not always see what really changed. 

sometimes I just use "diff" will provide you a bare minimum data - and "dircmp" is useful for looking at a whole lot of files.


if you are working in "large" programming env - consider creating a tag file - global might be one of the tools that can make a different types of tag files depending on your development environment.   

Note: A tag file is useful to cross reference program calls, data structures, etc

Today I used the basic script below to re-parse a configuration file to test directory structures.  I will often use this brute force method over awk, sed, naw, etc because it is easy to modify.  I will use the "cut command" to part out parts of the line.

#!/bin/ksh
file="/path/to/file.txt"
# while loop
while read line
do
        # display line or do something on $line
   echo "$line"
done <"$file"

to see a ksh script run in full "debug mode" I will often type
set -x
<program>
set +x

and if the output is large I will use

script /tmp/mylogfile

<commands here>
ctrl-d

then I issue dos2unix command like

cd /tmp
dos2unix mylogfile > mylogfile.txt
to rip off the end of line characters.

If you hare trying to communicate with another box using "ssh" and having issues.  I find that doing the "ssh -v myid@unixbox2" provides good level of debugging.

If you are tried blowing you budget on high end communications programs like exceed; look at putty.


Offline Smurf Hunter

  • Survival Veteran
  • ********
  • Posts: 7006
  • Karma: 329
Re: Un-obvious Linux tricks
« Reply #50 on: April 10, 2013, 10:49:59 PM »
Nice!

Though I always expect sed and awk to impress chicks.

Here's same Unix cat humor:

Code: [Select]
$ cat "door: paws too slippery"
  cat: cannot open door: paws too slippery
 
$ cat "food in tin cans"
  cat: cannot open food in tin cans

d3nni5

  • Guest
Re: Un-obvious Linux tricks
« Reply #51 on: April 11, 2013, 04:37:00 AM »
Nice!

Though I always expect sed and awk to impress chicks.

Here's same Unix cat humor:

Code: [Select]
$ cat "door: paws too slippery"
  cat: cannot open door: paws too slippery
 
$ cat "food in tin cans"
  cat: cannot open food in tin cans


An oldie but a goodie...

Code: [Select]

$  cd /pub
$  more beer
$  more beer
$  more beer
$  cd /home
$  sleep 28800


there is also a t-shirt out there that says "I read your email" I always found comical. :)

Offline archer

  • Administrator
  • Ultimate Survival Veteran
  • *******
  • Posts: 17037
  • Karma: 379
  • #ImissAmerica
    • Journey to Greener Pastures
Re: Un-obvious Linux tricks
« Reply #52 on: April 11, 2013, 12:40:50 PM »
and another oldy by goody

Unix SEX :{ look; gawk; find; sed; talk; grep; touch; finger; find; flex; unzip; head; tail; mount; workbone; fsck; yes; gasp; fsck; more; yes; yes; eject; umount; makeclean; zip; split; done; exit:xargs!!;)} (source: someone’s signature in the Debian mailing lists).


Offline ChEng

  • Survivalist Mentor
  • *****
  • Posts: 330
  • Karma: 24
  • Chief Engineer
Re: Un-obvious Linux tricks
« Reply #53 on: April 11, 2013, 05:08:23 PM »

An oldie but a goodie...

Code: [Select]

$  cd /pub
$  more beer
$  more beer
$  more beer
$  cd /home
$  sleep 28800


there is also a t-shirt out there that says "I read your email" I always found comical. :)

LOL, with me, though, that much beer would require more like:

Code: [Select]
sleep 86400

Can't handle it like I did when I was younger.  ;D

Online Mr. Bill

  • Like a hot cocoa mojito
  • Administrator
  • Forum Veteran
  • *******
  • Posts: 14016
  • Karma: 1849
  • Trained Attack Sheepdog/Troll hunter
    • Website Maintenance and Online Presence Management by Mr. Bill
Re: Un-obvious Linux tricks
« Reply #54 on: August 10, 2018, 10:48:37 AM »
Well, I think this qualifies as an un-obvious Linux trick.  But it's pretty nerdy, so consider yourselves warned.

Format a USB flash drive with UDF, and preserve Linux file ownership, permissions, and attributes

Quote
Scenario:
  • You're a Linux user, trying to prepare for disaster. So you want to copy all your files to a USB flash drive or other portable external drive.
  • After the disaster, you'll want to rebuild a Linux system. Which means you'll want all those files to have their original owner, group, permissions, and attributes. Which means you can't use FAT32/VFAT (the format of all commercial flash drives), because it's unable to store that data with the files.
  • But you also want your flash drive to be readable, and preferably writable, on Windows and Macintosh systems, since in your post-disaster world, you may not have access to a Linux system for a while. Which means you can't (easily) use a Linux format like EXT4, because this is unreadable on Windows/Mac unless you install additional software.
UDF (Universal Disk Format) provides a mostly-satisfactory solution. ...

...<SNIP many pages of technical how-to>...

So, is this worth the effort?

Maybe.

In our household, we have a specific use scenario. Both my wife and I use Linux on our main desktop computers. If one computer dies, we could share a computer for a while. We've already set up both our machines with two users, just in case. So a UDF backup flash drive would give us a quick recovery.

But we're also planning for other disasters, like our house burning down, or a sudden need to visit a sick relative. In this situation, we'd be able to carry all our files with us. And if we only have access to non-Linux computers, we'll still be able to retrieve a copy of our household inventory for the insurance company, or whatever. ...

Online Bradbn4

  • Dedicated Contributor
  • ******
  • Posts: 1216
  • Karma: 38
Re: Un-obvious Linux tricks
« Reply #55 on: August 10, 2018, 08:12:45 PM »
For Linux I started to use VM type software - easy to just save the whole environment. 
I use to run bare metal linux - but I figured it was easier to play with VM and all.  Back then I had removable drive kits so I just cloned the boot drive when I needed it.

But good option for backup -

 

Offline surfivor

  • Survival Veteran
  • ********
  • Posts: 6695
  • Karma: 85
Re: Un-obvious Linux tricks
« Reply #56 on: August 11, 2018, 02:42:27 AM »
 I think I missed this thread ..

Anyway, I have used vi and vim. vi is kind of primitive. I have also used emacs, but I currently use sublime:
https://www.sublimetext.com/

linux is an ideal development environment.

 Here is a type of command I have often used. Here I am searching source files for the string 'back-button', but I do not want it to search in the node_modules directory as those are modules brought in by webpack and are not my code. I want to search all files named either *.js, *.jsx, *.slim, *.coffee, or *.erb. Some files are compressed .js files with no new lines. These are generated files. I don't want to search them and they mess up the search by printing massive output when matched.
This part says ignore all lines that are more than 299 characters and takes care of that. That means a line that big without a newline character
Quote
awk 'length<300'

full command:
Quote
find . \( -type d -name 'node_modules' -prune  -o -name "*.js" -o -name "*.jsx" -o -name "*.slim" -o -name "*.erb" -o -name "*.coffee" \) -exec grep 'back-button' {} \; -print | awk 'length<300'


find large use of space:

Quote
du -h -d 5 / 2>/dev/null | sort -hr | head -n 50

du -h / 2>/dev/null | grep -P '^[0-9\.]+G'

kill various processes based on their name:

Quote

ps -ef | grep massruby | egrep 'node|webpack' | awk '{ print $2 }' | xargs kill -9


ps -ef | egrep 'rails server|react_on_rails|redis-server|status_job:runner|sidekiq' | awk '{ print $2 }' | xargs kill -9


========

other stuff from notes, what does this do ? I forget, I guess my notes here were lacking as I copied down stuff I tried but forgot to put in my notes what they do.

Quote
find . \( -name "*.rb" -or -name "*.slim" -or -name "*.js" -or -name "*.jsx" -or -name "*.scss" -or -name "*.erb" -or -name "*.css" \) -o  -path './db' -prune -o -path './shared/uploads' -prune -o -path './client/node_modules' -prune -o -path './.git' -prune -o -path './log' -prune -o -path './tmp' -prune

find . \( -name "*.rb" -or -name "*.slim" -or -name "*.js" -or -name "*.jsx" -or -name "*.scss" -or -name "*.erb" -or -name "*.css" \) -o -not \( -path './db' -prune \) -not \( -path './shared' -prune \)  -not \( -path './client/node_modules' -prune \) -not \( -path './shared/uploads' -prune \) -not \( -path './.git' -prune \) -not \( -path './log' -prune \) -not \( -path './tmp' -prune \) -not \( -path './.Trash-1000' -prune \) -not \( -path './public' -prune \) -not \( -path './lib' -prune \)


 I also use git a great deal, and have been on linux mint but was on ubuntu previously. Another good one is egrep:
 
 find either red_apples or yellow_pairs
Quote
egrep 'red_apples|yellow_pairs' *.js
« Last Edit: August 11, 2018, 02:54:34 AM by surfivor »

Offline surfivor

  • Survival Veteran
  • ********
  • Posts: 6695
  • Karma: 85
Re: Un-obvious Linux tricks
« Reply #57 on: August 11, 2018, 03:04:28 AM »

Cygwin is a cool way to get a Linux shell on Microsoft Windows
http://www.cygwin.com