Showing posts with label unix. Show all posts
Showing posts with label unix. Show all posts

TMUX Scrolling with Mouse

TMUX Scrolling with Mouse



# Add these in ~/.tmux.conf
set -g mouse on    #For tmux version 2.1 and up  
set -g @scroll-down-exit-copy-mode "off"
set -g terminal-overrides 'xterm*:smcup@:rmcup@' # Sane scrolling


# RELOAD the conf file:  
# tmux source-file ~/.tmux.conf

# If you get Error: protocol version mismatch (client 8, server 7)
# sudo killall -9 tmux

# If conf error, make sure you have tmux version >2.1
# tmux -V
# Update tmux. Ex: sudo yum install tmux

Connecting to Ubuntu Remote Desktop from Mac OS

Connecting to Ubuntu or any linux server via Mac OS:
-- Access the "Spotlight" by hitting CMD + Space-bar
-- Within the Spotlight field, enter vnc://your_server_ip:5900

If you get an error when connecting to Ubuntu from Mac OS using VNC screen sharing:
"The software on the remote computer appears to be incompatible with this version of Screen Sharing."
On Ubuntu 18.04:
$ gsettings set org.gnome.Vino require-encryption false
Verify the setting with
$ gsettings list-recursively org.gnome.Vino | grep encrypt

How to fix error Requires: libva.so.1(VA_API_0.33.0)(64bit)

If you get the following error while installing FFMPEG or other packages on CentOS 7.

Requires: libva.so.1(VA_API_0.33.0)(64bit)

Follow the following steps to install libva

sudo yum install libwayland-client    

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libva-1.8.3-1.el7.x86_64.rpm 

sudo rpm -i libva-1.8.3-1.el7.x86_64.rpm          


Sample error log when installing FFMPEG:

Error: Package: ffmpeg-libs-3.4.7-1.el7.x86_64 (rpmfusion-free-updates)
           Requires: libva.so.1(VA_API_0.33.0)(64bit)
Error: Package: ffmpeg-libs-3.4.7-1.el7.x86_64 (rpmfusion-free-updates)
           Requires: libva-x11.so.1()(64bit)
Error: Package: libmfx-1.21-2.el7.x86_64 (epel)
           Requires: libva-x11.so.1()(64bit)
Error: Package: libmfx-1.21-2.el7.x86_64 (epel)
           Requires: libva-drm.so.1()(64bit)
Error: Package: ffmpeg-libs-3.4.7-1.el7.x86_64 (rpmfusion-free-updates)
           Requires: libva-drm.so.1()(64bit)
Error: Package: ffmpeg-libs-3.4.7-1.el7.x86_64 (rpmfusion-free-updates)
           Requires: libva.so.1()(64bit)
Error: Package: libmfx-1.21-2.el7.x86_64 (epel)
           Requires: libva.so.1()(64bit)

Azure VM --os-disk-size-gb partition, format and mount

If you are using Azure VM --os-disk-size-gb parameter to increase the size of the OS disk, you need to partition, format and mount to use it.

Check the current status with
 fdisk -l


 df -Th 


Step 1: Create a partition (See sample output below)
 sudo fdisk /dev/sda
(use n to create new partition, and follow prompts)

Step 2: Refresh partition table
 sudo partprobe

Step 3: Format the new partition, get the name from step 1 or use fdisk -l 
 mkfs.xfs /dev/sda3 

Step 4: Mount 
 mkdir /mnt/shared
 mount /dev/sda3 /mnt/shared/  

Step 5: Verify  
 df -Th 

Step 6: Edit the /etc/fstab to automatically mount when restarted 


 vi  /etc/fstab
Append line /dev/sda3 /mnt/shared xfs defaults 0 0  . Please note the filesystem type "xfs" is used as it was formatted in "xfs" in Step 3. You could use other formats as well based on your requirements .
                                                                                                                               
#                                                                                                                              
# /etc/fstab                                                                                                                   
# Created by anaconda on Wed Dec 19 23:06:16 2018                                                                              
#                                                                                                                              
# Accessible filesystems, by reference, are maintained under '/dev/disk'                                                       
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info                                                    
#                                                                                                                              
UUID=fdb125e2-1ce5-4b7a-98db-88c0f66a86ee /                       xfs     defaults        0 0                                  
UUID=d4c5a046-3513-4ff0-a955-621311869210 /boot                   xfs     defaults        0 0                                  
/dev/sda3 /mnt/shared xfs defaults 0 0     


Sample Output:

[root@azvm azureusr]# fdisk /dev/sda

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): 
Using default response p
Partition number (3,4, default 3): 
First sector (62914560-125829119, default 62914560): 
Using default value 62914560
Last sector, +sectors or +size{K,M,G} (62914560-125829119, default 125829119): 
Using default value 125829119
Partition 3 of type Linux and of size 30 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@azvm azureusr]# partprobe
[root@azvm azureusr]# fdisk -l

Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x000eba6a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    62914559    30944256   83  Linux
/dev/sda3        62914560   125829119    31457280   83  Linux

Disk /dev/sdb: 751.6 GB, 751619276800 bytes, 1468006400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x3fde6d89

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1             128  1468004351   734002112   83  Linux

[root@azvm azureusr]# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda2      xfs        32G  5.8G   26G  19% /
devtmpfs       devtmpfs  186G     0  186G   0% /dev
tmpfs          tmpfs     186G     0  186G   0% /dev/shm
tmpfs          tmpfs     186G  9.5M  186G   1% /run
tmpfs          tmpfs     186G     0  186G   0% /sys/fs/cgroup
/dev/sda1      xfs       521M   68M  454M  13% /boot
/dev/sdb1      ext4      740G   76M  703G   1% /mnt/resource
tmpfs          tmpfs      38G     0   38G   0% /run/user/1000

[root@azvm azureusr]# mkfs.xfs /dev/sda3 
meta-data=/dev/sda3              isize=512    agcount=4, agsize=1966080 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=7864320, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=3840, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@azvm azureusr]# mkdir /mnt/shared

[root@azvm azureusr]# mount /dev/sda3 /mnt/shared/ 

[root@azvm azureusr]# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda2      xfs        30G  5.4G   25G  19% /
devtmpfs       devtmpfs  174G     0  174G   0% /dev
tmpfs          tmpfs     174G     0  174G   0% /dev/shm
tmpfs          tmpfs     174G  9.1M  174G   1% /run
tmpfs          tmpfs     174G     0  174G   0% /sys/fs/cgroup
/dev/sda1      xfs       497M   65M  433M  13% /boot
/dev/sdb1      ext4      689G   73M  654G   1% /mnt/resource
tmpfs          tmpfs      35G     0   35G   0% /run/user/1000
/dev/sda3      xfs        30G   33M   30G   1% /mnt/shared



Generate 2048 CSR using openssl


openssl req -new -nodes -subj "/C=US/ST=Florida/L=Tampa/O=My Org Pvt Limited/OU=Some Dept/CN=abc.xyz.com" -keyout private.txt -out certreq.txt -newkey rsa:2048

UNIX: Bash Keyboard shortcuts

Very useful neat shortcuts for traversing in Bash command line :)

Command Editing Shortcuts

  • Ctrl + a – go to the start of the command line
  • Ctrl + e – go to the end of the command line
  • Ctrl + k – delete from cursor to the end of the command line
  • Ctrl + u – delete from cursor to the start of the command line
  • Ctrl + w – delete from cursor to start of word (i.e. delete backwards one word)
  • Ctrl + y – paste word or text that was cut using one of the deletion shortcuts (such as the one above) after the cursor
  • Ctrl + xx – move between start of command line and current cursor position (and back again)
  • Alt + b – move backward one word (or go to start of word the cursor is currently on)
  • Alt + f – move forward one word (or go to end of word the cursor is currently on)
  • Alt + d – delete to end of word starting at cursor (whole word if cursor is at the beginning of word)
  • Alt + c – capitalize to end of word starting at cursor (whole word if cursor is at the beginning of word)
  • Alt + u – make uppercase from cursor to end of word
  • Alt + l – make lowercase from cursor to end of word
  • Alt + t – swap current word with previous
  • Ctrl + f – move forward one character
  • Ctrl + b – move backward one character
  • Ctrl + d – delete character under the cursor
  • Ctrl + h – delete character before the cursor
  • Ctrl + t – swap character under cursor with the previous one

Command Recall Shortcuts

  • Ctrl + r – search the history backwards
  • Ctrl + g – escape from history searching mode
  • Ctrl + p – previous command in history (i.e. walk back through the command history)
  • Ctrl + n – next command in history (i.e. walk forward through the command history)
  • Alt + . – use the last word of the previous command

Command Control Shortcuts

  • Ctrl + l – clear the screen
  • Ctrl + s – stops the output to the screen (for long running verbose command)
  • Ctrl + q – allow output to the screen (if previously stopped using command above)
  • Ctrl + c – terminate the command
  • Ctrl + z – suspend/stop the command

Bash Bang (!) Commands

  • !! - run last command
  • !blah – run the most recent command that starts with ‘blah’ (e.g. !ls)
  • !blah:p – print out the command that !blah would run (also adds it as the latest command in the command history)
  • !$ – the last word of the previous command (same as Alt + .)
  • !$:p – print out the word that !$ would substitute
  • !* – the previous command except for the last word (e.g. if you type ‘find some_file.txt /‘, then !* would give you ‘find some_file.txt‘)
  • !*:p – print out what !* would substitute
Source: http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/ http://www.ice2o.com/bash_quick_ref.html

Unix: Get total size of mutliple folders or files

The following command gives the total size of the folders you have selected at the end of the list.
 $ du -sch foo/ dummy/ data/ booger/  
 3G     foo/  
 2G     dummy/  
 9G     data/  
 5G     booger/  
 19G    total  

Unix: Check unix/linux machine hardware configurations


$ uname -a
Linux comp0.abc.xyz.org 2.6.18-164.11.1.el5 #1 SMP Wed Jan 20 07:32:21 EST 2010 x86_64 x86_64 x86_64 GNU/Linux


$ cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model  : 65
model name : Dual-Core AMD Opteron(tm) Processor 2220
stepping : 3
cpu MHz  : 2800.098
cache size : 1024 KB
physical id : 0
siblings : 2
core id  : 0
cpu cores : 2
apicid  : 0
fpu  : yes
fpu_exception : yes
cpuid level : 1
wp  : yes
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy
bogomips : 5600.19
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc


Unix: Running processes in parallel in unix shell

By using the ampersand '&' , we can run processes in parallel. Example 1: Consider the following script

for i=0; i<10;i++
do
 cat inp$i.txt;
done

The above script would run sequentially executing cat inp1.txt; cat inp2.txt; cat inp3.txt' ..... We can issue these processes in parallel by using '&' instead ';'

for i=0; i<10;i++
do
 cat inp$i.txt &
done

Example 2:

$ runprog1; runprog2; runprog2;

Above statement would execute sequentially.

$ runprog1&runprog2&runprog2&

Above statement would execute all in parallel

$ (runprog1; runprog2; runprog2;)&

Above statement would start processes sequentially and then execution is parallel.

Change permissions for ALL the files/subfolders within a directory

Change permissions for all the files/subfolders within a directory Option to use is 'do it recursively', the -R option . Example in unix based machines

chmod 777 -R directoryname

Python contextlib for Timing Python code

If you've ever found yourself needing to measure the execution time of specific portions of your Python code, the `contextlib` module o...