How 2 run same command across all open terminals


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How 2 run same command across all open terminals
# 1  
Old 05-09-2011
How 2 run same command across all open terminals

Hi folks. This has been bothering me for a while.

Among the 8 virtual desktops I'm using, I have 18 terminals open right now.

I change some of my user configuration (e.g. put a new alias into ~/.bashrc); but in order to use this new added alias, I have to source the config file:
Code:
. ~/.bashrc

That's all good, but the sourcing stays local to the current terminal. Is there a way to source my .bashrc on ALL open terminals, so that I can use it from any one of them?

I know I can echo into any terminal
Code:
echo Hello > /dev/pts/15

But is there a way to run a command like this?
Something like
Code:
$ echo . ~/.basrhc | /dev/pts/15
bash: /dev/pts/15: Permission denied
bash: echo: write error: Broken pipe

I'm running bash on CentOS box.
Thank you!
# 2  
Old 05-09-2011
It seems that every shell you run is a login shell. Bash reads and executes the ~/.bashrc file only if it is started as an interactive, but not login shell. When Bash starts as an interactive login shell, it reads and executes the ~/.bash_profile file. What you could do is to source the ~/.bashrc file from the ~/.bash_profile file. Something like this:

# .bash_profile
# sourcing .bashrc:

. ~/.bashrc

this way every interactive shell you start will read and execute the ~/.bashrc file, be it a loging shell or not.
# 3  
Old 05-09-2011
Thanks for the response.
But that is not my problem. I'd like to source the config file (.bashrc, .bash_profile, .myConfigFile, etc.) across all terminals that are already running. So that I don't have to close them, and restart (and lose history, kill programs tied to them etc.)
# 4  
Old 05-09-2011
To my knowledge you'll have to manually source the rc file in each running instance of the shell.

If you want to be clever, and anticipate doing this often enough, you could put the following command into your .bashrc file:

Code:
trap ". $HOME/.bashrc" 16

Once that is set in a running instance of bash, you then only need to send a SIGUSR1 (16) to the process and it will resource the .bashrc file. You could write a small script that susses out all of your running login/interactive shells and executes the necessary kill -16 command. You could pick another signal, but this seems just fine for this case.

Hope this helps some.

Last edited by agama; 05-09-2011 at 11:46 PM.. Reason: typo
These 2 Users Gave Thanks to agama For This Post:
# 5  
Old 05-10-2011
Thanks agama,

That's a slick solution there with SIGUSR1, that can be certainly put to use.

I also have had the feeling it cannot be done straightforward.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Open gnome-terminal with multi tabs and automatically run a script in each tab

Hi All , i am trying to create an alias to open a new gnome-terminal and run some commands in each tab & to have a specific name for each tab i am using csh , tried this command gnome-terminal --tab -t "s1" --tab -t "s2" --tab -t "s3" --tab -t "s4" it opened 4 tabs but the title didn't... (0 Replies)
Discussion started by: Assem
0 Replies

2. Shell Programming and Scripting

Script for telnet and run one command kill it and run another command using while loop

( sleep 3 echo ${LOGIN} sleep 2 echo ${PSWD} sleep 2 while read line do echo "$line" PID=$? sleep 2 kill -9 $PID done < temp sleep 5 echo "exit" ) | telnet ${HOST} while is executing only command and exits. (5 Replies)
Discussion started by: sooda
5 Replies

3. Shell Programming and Scripting

shell script to run commands in different terminals

hi, how to write shell script that runs different commands(like:ls,ps,ls-l) in differnt terminals(each command should run in different terminal). my main motive is to run different 'c' program exe's available in different locations in different terminals. thanks sai (2 Replies)
Discussion started by: saidopdf
2 Replies

4. Linux

How to open a gnome-terminal in specific workspace and run script within it automatically upon login

OK this is a bit messy. I run Fedora with gnome on a compiz desktop, I have a script (userstart) that opens my 'standard' environment for all my machines when I login. userstart flips to a specific workspace and then opens the required applications in that workspace then flips to the next... (2 Replies)
Discussion started by: Bashingaway
2 Replies

5. Shell Programming and Scripting

How run simple command in xterm, and leave open?

I have written a simple script to show battery life remaining. I would like to be able to quickly view it with a predefined keybinding or launcher. xterm -e scriptname should do the trick but the xterm closes when the script finishes, not giving me chance to read the output. How can I keep... (3 Replies)
Discussion started by: spoovy
3 Replies

6. AIX

How to open multiple virtual terminals to a single LPAR

I just wondering if there are ways to open multiple virtual terminal to a single LPAR. After I have use putty to login to the VIOS. I will use mkvt -id <LPAR id> to open console but if my friend want to open 2 second one, it will say, VT already connected. IS there a way to work this around ? ... (1 Reply)
Discussion started by: wingcross
1 Replies

7. Shell Programming and Scripting

open terminal to run cmd using shell script

i want the shell script to open the terminal and in that terminal i want to run a command specified in the script... how can it be done... (2 Replies)
Discussion started by: chandrabhushan
2 Replies

8. UNIX for Advanced & Expert Users

one command for all unix terminals

Hi, I am working in huge environment, I do type commands from my terminal window repeadly in all same setup unix environments. I am looking some kind of a terminal emulator or some simple program that will help me? basically if type command like 'ls' in one unix terminal window it should echo... (5 Replies)
Discussion started by: rgmekala
5 Replies

9. UNIX for Dummies Questions & Answers

what is the command to connect to remote terminals

what is the command to connect to remote terminals? (1 Reply)
Discussion started by: sendtorohitgupt
1 Replies
Login or Register to Ask a Question