Linux Tricks
This page contains various linux commands and tricks.
All these commands are tested in Ubuntu 12.04 LTS system. It may work on linux machines, but not verified.
Ubuntu 12.04 - Enable/Disable Laptop's Mousepad or Touchpad
To enable laptop mousepad execute
modprobe psmouse
To disable laptop mousepad execute
rmmod psmouse
Ubuntu 14.04 LTS FTP installation
To install ftp package and restart the service.
- sudo apt-get install vsftpd
- vi /etc/vsftpd.conf
# Uncomment this to enable any form of FTP write command.
write_enable=YES
local_enable=YES - sudo service vsftpd restart
Find out fingerprint of a certificate using different algorithm
- SHA-256
openssl x509 -noout -fingerprint -sha256 -inform pem -in [certificate.crt] - SHA-1
openssl x509 -noout -fingerprint -sha1 -inform pem -in [certificate.crt] - MD5
openssl x509 -noout -fingerprint -md5 -inform pem -in [certificate.crt] - Example: openssl x509 -noout -fingerprint -sha256 -inform pem -in ca-certificates.crt
Ubuntu 12.04 - Enable an user with root capability
To enable an user new_user with root capability you can execute
sudo usermod -aG sudo new_user
Ubuntu 12.04 - How to execute a command when system starts up
Goto init.d path rc.local file
vi /etc/init.d/rc.local
After line #! /bin/sh enter the command, save the file, reboot the system.
Ubuntu 12.04 - Kill several processes having same name
To kill several processes having same name (say apache) execute
kill -9 `ps -ef | grep apache | grep -v grep | awk '{print $2}'`
Ubuntu 12.04 - Increase maximum number of threads in system
To increase maximum number of threads in system execute
echo 500000 > /proc/sys/kernel/threads-max
This shall increase max thread counts to 500000.
Ubuntu 12.04 - Increase maximum number of memory map areas in system
To increase maximum number of memory map areas in system execute
echo 245530 > /proc/sys/vm/max_map_count
This will set maximum memory map areas to 245530
Ubuntu 12.04 - Increase maximum number of semaphores in system
To increase maximum number of semaphores in system execute
printf '500 64000 64 256' > /proc/sys/kernel/sem
Above integer parameter corresponds max_sem_per_id max_sem_total max_ops_sem_call max_sem_ids
Ubuntu 12.04 - Increase shared memory in system
To increase shared memory in system execute
printf '20096' > /proc/sys/kernel/shmmni
Though many places people have recomonded to increase shaed memory count in /proc/sys/kernel/shmmax or in /proc/sys/kernel/shmall files, what we have found is, increasing shared memory count in /proc/sys/kernel/shmmni is quite effective.
Ubuntu 12.04 - Increase stack size in system
To increase stack size in system execute
ulimit -s 4096
This limits stack size to 4MB.
Ubuntu 12.04 - Check free memory in system
Execute
free -m
The output comes as
total used free shared buffers cached
Mem: 490 419 70 0 8 48
-/+ buffers/cache: 362 127
Swap: 2047 139 1908
Mem: 490 419 70 0 8 48
-/+ buffers/cache: 362 127
Swap: 2047 139 1908
See the line -/+ buffers/cache: 362 127.
So used memory is 362MB and remaining free memory (in RAM) is 127MB.
Also you can see Swap: line, it looks 139MB of swap memory is used. So what it means, at one point RAM was not sufficient (as it is just 512 MB), so swap memory was used by system for some applications.
Ubuntu 12.04 - Completely remove a package from machine
To completely remove a package from system execute
apt-get --purge remove package-name
For example to remove kamailio completely from your system
apt-get --purge remove kamailio
This will completely remove the kamailio package, delete the associated configuration files from your system.
Ubuntu 12.04 - How to generate core file
Normally core will not be generated in the working directory, to enable this please follow the below steps.
- Go to file /etc/security/limits.conf
- Add/Modify one line in /etc/security/limits.conf* soft core unlimited
- Execute below commands in a terminalsudo ulimit -c unlimited
sudo echo "1" /proc/sys/kernel/core_uses_pid
Thats all, you have successfully enabled the core settings. Typically core file is generated in working directory where your executables are located.
Linux - How to modify a word to a new word throughout directory and subdirectory
- Executefind ./ -type f -exec sed -i 's/192.168.1.194/100.100.100.100/g' {} \;
Above command modifies all files present in current path. It searches 192.168.1.194 and modifies it to 100.100.100.100.
Please note type -f is required as it applies only to files.
Linux - How to all files containing a specific string from source path to destination path
Lets say you want to move all files that contains a particular string "Host: google" from source to destination path. You can do so using below command.
grep -lir 'Host: google' /home/lm/source/* | xargs mv -t /home/lm/destination/
Ubuntu 12.04 - How to add few lines of code to *.c files recursively in a directory
Create script file with below content
ALL_FILES=`find . -type f -name "*.c"`
for id in $ALL_FILES; do
sed -i '1s/^/#ifdef _MEM_LEAK\n#include "MemoryManagerHeader.h"\n#endif\n/' $id
done
for id in $ALL_FILES; do
sed -i '1s/^/#ifdef _MEM_LEAK\n#include "MemoryManagerHeader.h"\n#endif\n/' $id
done
When you execute just created script file, it will add below code to all .c files recursively in directory.
#ifdef _MEM_LEAK
#include "MemoryManagerHeader.h
#endif
#include "MemoryManagerHeader.h
#endif
Steps to increase file descriptors and port range in the Linux (Ubuntu 12.04 LTS)
This section contains kernel settings for increasing file descriptors and port range. Thereby it helps to have maximum socket connections with remote servers.
- Go to file /etc/sysctl.conf
- Add one line at the end of file /etc/sysctl.conf for permanent changes.fs.file-max = 100000
- Go to file /etc/security/limits.conf
- Add the below lines at the end of file /etc/security/limits.conf for permanent changes.* hard nofile 500000
* soft nofile 500000
root hard nofile 500000
root soft nofile 500000 - Go to file /etc/sysctl.conf
- Add the below line in /etc/sysctl.conf file for permanent changes.net.ipv4.ip_local_port_range=1024 65000
- Reboot your system.
Thats all, you have successfully enabled the network settings.
Find total number of thread
ps -eo nlwp | tail -n +2 | awk '{ num_threads += $1 } END { print num_threads }'
Steps to specify location of .so file in Linux (Ubuntu 14 LTS)
This section explains steps involved to specify location of a .so file.
- Go to /etc/ld.so.conf. It contains include line as below.include /etc/ld.so.conf.d/*.conf
So it contains all .conf files from path /etc/ld.so.conf.d/.
- Next go to path /etc/ld.so.conf.d/. You will see few .conf files. You add your own .conf file say loadmultiplier.conf file is added. Add below line in loadmultiplier.conf file.#LM Tools default so file paths
/usr/local/mypath/You can put the path as you want.Now you have to add the loadmultiplier.conf in the top of the file /etc/ld.so.conf as given below.
include /etc/ld.so.conf.d/loadmultiplier.conf
include /etc/ld.so.conf.d/*.confNow if you will build the project then your API will link to the .so file as per loadmultiplier.conf since it will include first.It will not link to the system's .so file.
- Next save the file and execute command ldconfig as root.
Thats all. Now path /usr/local/mypath/ is one of the default library path. You can keep your .so files here and while linking/executing this path will be referred by system in addition to other default paths as mentioned in other .conf files in /etc/ld.so.conf.d/.
Ubuntu 14 - Reduce SSH connect time
This section explains steps involved to reduce SSH connect time to SSH server.
- In SSH server machine, go to /etc/update-motd.d directory
- Make a temporary folder say tmp
- Move 90-updates-available file to temporary folder tmp
That's it. Now you can do SSH quite fast.
Ubuntu 14 - Steps to correct broken system (Ubuntu 14 LTS)
sudo apt-get update
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get update && sudo apt-get upgrade
sudo dpkg --configure -a
sudo apt-get install -f
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get update && sudo apt-get upgrade
sudo dpkg --configure -a
sudo apt-get install -f