Posts tagged with "bash"

Helpful Linux commands

So this is just going to be a bit of knowledge dump of things I’ve picked up lately / don’t want to forget.

Bang Cash !$

If you are intending on running a few commands with the last argument of the command being the same this can be really helpful. For example:
ping 127.0.0.1
netmap !$
traceroute !$

Alternatively you can also do !* to use all the arguments of the previous command.

sudo !!

This one is pretty simple sudo !! takes the last command and re-runs with sudo.

Screen

screen is a great feature that allows you to do any of the following;
– Use multiple shells in a single SSH session.
– Run a long running process without maintaining an active shell or worrying about network disruptions.
– Disconnect and re-connect to a shell from multiple locations.

Using it is very simple, to start it you just use the command `screen`, from this point you are now inside of a window within screen.

Using screen requires remembering a few more commands (or noting them down in a blog post or something).

Start screen:
screen
To start a screen with a name, you can do the following screen -S 'name'

Create another window:
Ctrl-a c

Next window:
Ctrl-a n

Previous window:
Ctrl-a p

Detach window:
Ctrl-a d
This will detach your window and return you to your bash shell.

Re-attach screen:
screen -r
If you have multiple screens, this will display a list of them and you will have to use the name of the screen as a third parameter to reattach to it.

Searching through previous commands

So as you may know you can use Control + R on Linux to search through previous commands you’ve entered in the terminal. You can with a few modifications of your ~/.profile or ~/.bash_profile improve what is stored in the ~/.bash_history file, making this feature even more useful for remembering previous commands.

Ignore certain commands:
HISTIGNORE="pwd:df:du:cd:ls"

Increase how many commands are stored:
HISTFILESIZE=10000 (the default on most systems is 500)

Don’t save duplicate commands:
HISTCONTROL=ignoredups


Posted on January 22, 2018

Bash/Cygwin Terminal in PHPStorm

I’ve been meaning to post about this for a while, but it seems hard lately to make time to post here.

I personally hate windows shell, in my mind it is utterly useless. If I’m ever using it I’m probably not in a good mood. Powershell makes me laugh, like I’m sure it has some uses for people who for some insane reason run Windows servers, but for a sane developer; I think not.

Bash is where it’s at, probably the tool/language that saves me the most time on a day to day basis. Regex is a close second and guess what, Regex & Bash play very nicely together. Luckily I work with a company that exclusively uses Linux servers, because they make good decisions like that. 😉 So any server admin is painless, however for development, I still seem to be stuck in Windows land. I could make the leap over to just using Linux, however there are unfortunately a handful of programs keeping me on Windows and WINE still sucks.

So Bash on Windows, only one way to do that really. Cygwin. I’m not going to go into how to install that here, because it’s very simple, just download, run and press next.

Jetbrains make amazing products, PHPStorm is the editor I spend most of my time in, so I’ve shown how to do this here. However it should work for any Jetbrains IDE since they are all pretty consistent.

I liked the idea of a terminal window inside the IDE, mainly as just a quick way to grep or find things within projects. So I decided to figure out how to replace the windows terminal embedded in it with the cygwin terminal.

So it turns out it’s pretty simple, just go File -> Settings and hit Tools -> Terminal. You’ll want to change it’s default from cmd.exe to "C:\path_you_installed_cywin_to\bin\bash.exe" --login -i

Here is an image of what I have:

After this, when you relaunch your terminal inside PHPStorm it will be the Cygwin terminal rather than the Windows terminal. However there is just one issue left to deal with, it will default to your Cygwin home directory rather than the project directory. Fixing this is also pretty easy just navigate to C:\path_you_installed_cywin_to\etc\bash.bashrc at the bottom of that file just add

cd "$OLDPWD"

Here is another image for those still confused:

Well that’s it, enjoy Bash’ing away inside PHPStorm. 😉


Posted on March 14, 2017