Because /etc/profile (and ~/.profile) are read by login shells only, aliases and functions defined there are not available to non-login shells, e.g. when using screen or tmux. If the ENV environment variable exists (exported by /etc/profile or ~/.profile) and references an existing file, then all interactive shells (login or non-login) will read that file as well. This sets the ENV environment variable in /etc/profile, pointing to /etc/shinit. This also adds /etc/shinit, which: * Contains alias and function definitions originally in /etc/profile * Sources /etc/mkshrc if the user is using mksh (also originally in /etc/profile), as /etc/mkshrc is meant for all interactive shells * Sources ~/.mkshrc if the user is using mksh, to compensate for the fact that mksh will not read ~/.mkshrc if ENV is set * Sources ~/.shinit if the user is not using mksh This also removes the shebang from /etc/profile, as the file is sourced, not executed. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
		
			
				
	
	
		
			12 lines
		
	
	
		
			170 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			12 lines
		
	
	
		
			170 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# Essential files that will be always kept
 | 
						|
/etc/hosts
 | 
						|
/etc/inittab
 | 
						|
/etc/group
 | 
						|
/etc/passwd
 | 
						|
/etc/profile
 | 
						|
/etc/shadow
 | 
						|
/etc/shells
 | 
						|
/etc/shinit
 | 
						|
/etc/sysctl.conf
 | 
						|
/etc/rc.local
 |