My First Post      My Facebook Profile      My MeOnShow Profile      W3LC Facebook Page      Learners Consortium Group      Job Portal      Shopping @Yeyhi.com

Pages










Showing posts with label Terminal. Show all posts
Showing posts with label Terminal. Show all posts

Monday, November 23, 2020

Update Variables using BAsh_Profile in MAC/LInux

Sometimes you need to update the environment variables permanently. I have found setting JAVA_HOME and M2_HOME as an important and recurring requirement while working in Adobe, Symantec and even at Expedia Group. I am listing the steps here. Its simple :)


Steps:

  1. Open Bash profile: vi ~/.bash_profile
  2. Append: export M2_HOME=/Users/mfaiz/Projects/apache-maven-3.6.0/bin
  3. export PATH=$PATH:$M2_HOME
  4. export JAVA_HOME=/Users/mfaiz/my-jdk/Mac
  5. On terminal run: source ~/.bash_profile
  6. You can verify the install using: mvn - - version (This will show you version eg 3.6.0 in my case)


Wednesday, May 13, 2020

How to update git password on terminal: Command line utility to reset github password / access credentials

On macOS, you can use

git config --global credential.helper osxkeychain

A username and password prompt will appear on your next Git action (pull, clone, push, etc.).
Eg: If you do git clone: gttps://mfaiz@www.repository.git .

As soon as you press Enter key, you will be prompted for a password.
You can use the updated password here. And, you will be able to access and password also gets updated automatically!


For Windows, it's the same command with a different argument:

git config --global credential.helper wincred


Isn't this simple :)
Cheers.

Thursday, November 14, 2019

How to show full working directory in mac terminal on every command


Problem description:
You can obviously use a pwd command to see the present working directory. For eg:

prompt$ pwd
/Users/mfaiz/myDir

But sometimes you want to show the full directory path every time. Its a common ask for eg:
/Users/mfaiz/myDir$ pwd


Or, better still you want the directory path to be displayed on top before each command. All such issues can be handled using your bash profile file:


vi ~/.bash_profile


Solution: 
You can add this line -
export PS1='\u@\H:\w$'

or, if you like having a space between the $ and the command, then - 
export PS1='\u@\H:\w$ '



Shown following are two more complex examples that include coloring as well:




Command used to achieve this is:

export PS1="\n$C_LIGHTGREEN\u$C_DARKGRAY@$C_BLUE\h $C_DARKGRAY: $C_LIGHTYELLOW\w\n$C_DARKGRAY\$$C_DEFAULT "




Wednesday, July 6, 2011

Terminal (Shell) on Mac OSX or Unix continues to show a folder even if it is deleted or renamed

I have logged this defect with Apple. But since then I have only been told it is legacy Unix behavior. And Unix is supposed to behave that way. In any case, I find it valuable to share this now.

-------------------------------------------------------------
This is already present on Apple Website since 19th March 2010 and has one response in addition to the emails. Read Further Apple Mac OSX Bug By Anwar Faiz.
-------------------------------------------------------------
Make a folder, let us say "xyz" on desktop and cd to this location on a terminal using 'cd' command.
Now rename that folder to "abc".
Now type 'ls' command on Terminal to see the content of folder "xyz", it still shows.
In addition if you use 'pwd' command, it still shows that you are in directory "xyz"
Worse is that even if you delete the folder "xyz" and empty trash. Even then using 'pwd' command would show your present working directory as "xyz" folder.
--------------------------------------------------------------


I got a detailed response for this. The same can be read over at same Apple Official website also. I am thankful to Mr. Bob Harris from New England, USA, who took time to explain.:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
All expected behavior.

The 'cd' command makes a chdir() system service call, which opens the target directory and stores the open file descriptor in the process.

When you rename the folder, that just changes the directory entry in its parent folder, it does not change the file system inode for the directory nor does it affect already open file descriptors to the directory.

So when you do an 'ls' with no path, the 'ls' command will ask the file system for the '.' (current directory), which the file systems knows to use the current working directory it already has saved in the process.

This is how Unix has worked forever.

'cd' and 'pwd' are bash built-in commands, so bash has cached the last 'cd' path, and when you issue 'pwd', bash just echos the cached path information. It does not verify anything before displaying the path.

If you want to see the real current path, then try using

/bin/pwd

this will do the more complex reverse path reconstruction, which can have some unexpected responses, because of symbolic and hard links that may have been used to navigate down to the current directory location.
Worse is that even if you delete the folder "xyz" and empty trash. Even then using 'pwd' command would show your present working directory as "xyz" folder.

Again, bash is just echoing the cached path that bash last knew about.

Also since the process still has an open file descriptor to the directory open in the process as the current working directory, the file system will defer the actual directory delete until after that file descriptor is closed.

The fact that a file or directory will not be truely deleted if it is still open, allows an application to continue to use a file if it has it open, even when some other process deletes the file. This can be good for the application, but if that was a huge file and you were trying to free up space, you would not see the space returned until after the process that has the file open, closes the file.

You can use the 'lsof' command to find what processes have what files/directories open.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In addition, it was advised that, if I have additional Unix or Terminal related questions it would be best to post them in the Mac OS X Technologies > Unix Forum. So, one place where you can also redirect yourself for taking other unix Vodka Shots is Apple Unix Discussions