lwc:programming:bash

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lwc:programming:bash [2020/11/28 18:16] John Harrisonlwc:programming:bash [2024/09/27 12:48] (current) – [Superuser] John Harrison
Line 1: Line 1:
-**Comments:**+==== Comments: ====
  
-Put: : <'COMMENTBLOCK_ORWHATEVERYOUWANTTOCALLME'+Put: : ''<'COMMENTBLOCK_ORWHATEVERYOUWANTTOCALLME'''
  
 before the block and put: before the block and put:
  
-COMMENTBLOCK_ORWHATEVERYOUWANTTOCALLME+''COMMENTBLOCK_ORWHATEVERYOUWANTTOCALLME''
  
  
 after the block after the block
  
-**DISPLAY SETTINGS:** +==== DISPLAY SETTINGS: ====
   * xrandr example: xrandr --output HDMI1 --mode 1280x1024 --right-of eDP1   * xrandr example: xrandr --output HDMI1 --mode 1280x1024 --right-of eDP1
   * change 1280x1024 display to 1600x1280:xrandr --output DP-1 --scale 1.25x1.25 --panning 1600x1280   * change 1280x1024 display to 1600x1280:xrandr --output DP-1 --scale 1.25x1.25 --panning 1600x1280
   * shift display down 1280 pixels: xrandr --output eDP-1 --mode 1920x1080 --pos 0x1280   * shift display down 1280 pixels: xrandr --output eDP-1 --mode 1920x1080 --pos 0x1280
  
-**FILE MANAGEMENT**+==== FILE MANAGEMENT ====
  
 Count # of files in a directory (recursively): Count # of files in a directory (recursively):
Line 54: Line 53:
 find -type f -exec chmod 664 {} \; find -type f -exec chmod 664 {} \;
 </code> </code>
- 
  
 copy files recursively, keeping permissions: copy files recursively, keeping permissions:
Line 63: Line 61:
 </code> </code>
  
-**Rip Audio from application using Pulseaudio (no Jack):** +==== Rip Audio from application using Pulseaudio (no Jack): ====
 get index number of application audio: get index number of application audio:
- 
   * pacmd   * pacmd
   * list-sink-inputs   * list-sink-inputs
- 
  
 assuming index is $INDEX: assuming index is $INDEX:
  
-  * pactl load-module module-null-sink sink_name=steam +  * ''pactl load-module module-null-sink sink_name=steam'' 
-  * pactl move-sink-input $INDEX steam +  * ''pactl move-sink-input $INDEX steam'' 
-  * parec -d steam.monitor | sox -t raw -r 44k -sLb 16 -c 2 - /tmp/testme.wav  +  * ''parec -d steam.monitor | sox -t raw -r 44k -sLb 16 -c 2 - /tmp/testme.wav'' 
- +=== Alternative: With ffmpeg === 
-**VIDEO**+  ''pactl list short sources'' and copy the one that has the word ''monitor'' in it 
 +    example: ''alsa_output.pci-0000_00_1f.3.analog-stereo.monitor'' 
 +  example cmd: ''ffmpeg -f pulse -i alsa_output.pci-0000_00_1f.3.analog-stereo.monitor -ac 2 recording.m4a'' 
 +==== VIDEO ====
  
 **transcode a video file so it is playable through Windows Media Player (Windows) and Quicktime (MacOS):** **transcode a video file so it is playable through Windows Media Player (Windows) and Quicktime (MacOS):**
Line 85: Line 83:
 </code> </code>
  
-**Record Desktop as Video:**+==== Record Desktop as Video: ====
  
 The easy way is to use gtk-RecordMyDesktop,but functionality with gtk-RecordMyDesktopusing jackappears to be broken. So another way if you need jackis ffmpegwith x11grab: The easy way is to use gtk-RecordMyDesktop,but functionality with gtk-RecordMyDesktopusing jackappears to be broken. So another way if you need jackis ffmpegwith x11grab:
Line 100: Line 98:
   * if the output file exists, ffmpeg will ask you if you want to overwrite the old file. That's nice, but somehow this throws off the synchronization between the audio and the video. So if you want to overwrite an existing file, delete it first.   * if the output file exists, ffmpeg will ask you if you want to overwrite the old file. That's nice, but somehow this throws off the synchronization between the audio and the video. So if you want to overwrite an existing file, delete it first.
  
-**Position of Mouse Cursor:**+==== Position of Mouse Cursor: ====
  
 <code> <code>
Line 106: Line 104:
 </code> </code>
  
-**PRINTING**+==== PRINTING ====
  
 add PDF printer to ubuntu intrepid or jaunty (source): add PDF printer to ubuntu intrepid or jaunty (source):
Line 116: Line 114:
 bmeps seems to be the only way to make a transparent PDF from a PNG file. Directions for building here. bmeps seems to be the only way to make a transparent PDF from a PNG file. Directions for building here.
  
-**PDF**+==== PDF ====
  
 convert a grayscale PDF to B&W with Imagemagick: convert a grayscale PDF to B&W with Imagemagick:
Line 123: Line 121:
 convert -threshold 75% input.pdf output.pdf convert -threshold 75% input.pdf output.pdf
 </code> </code>
-**INTERNET** 
  
-**ssh no password:** follow [[http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/|these]] instructions +determine resolution of images inside a pdf''pdfimages -list EXAMPLE.pdf'' 
- +==== INTERNET ====
-**vpn on Linux 64 bit**: follow [[http://kb.mit.edu/confluence/display/istcontrib/Cisco+AnyConnect+Certificate+Error+on+Linux|these]] instructions +
- +
-**Remote Desktop (VNC through SSH tunnel)** +
- +
-  * ssh -L 5901:localhost:5900 UserName@host.com +
-  * (in a separate terminal): xtightvncviewer -encodings tight localhost:1+
  
 +  * **ssh no password:** follow [[http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/|these]] instructions
 +  * **vpn on Linux 64 bit**: follow [[http://kb.mit.edu/confluence/display/istcontrib/Cisco+AnyConnect+Certificate+Error+on+Linux|these]] instructions
 +  * **Remote Desktop (VNC through SSH tunnel)**
 +    * ssh -L 5901:localhost:5900 UserName@host.com
 +    * (in a separate terminal): xtightvncviewer -encodings tight localhost:1
 +  * ssh to a host through another (jump) host
 +    * use ''-J'' i.e. ''ssh -J user@jumphost user@host''
 +    * also works for scp i.e. ''scp -J user@jumphost file user@host'' 
  
 **DHCP Server and Firestarter (on 12.04)** **DHCP Server and Firestarter (on 12.04)**
- 
   * sudo apt-get install dhcp3-server   * sudo apt-get install dhcp3-server
   * sudo ln -s /etc/dhcp/dhcpd.conf /etc/dhcpd.conf   * sudo ln -s /etc/dhcp/dhcpd.conf /etc/dhcpd.conf
Line 146: Line 144:
  
 **Assign card a specific name:** **Assign card a specific name:**
- 
  
 <code> <code>
Line 184: Line 181:
  
 <code>sudo lsof -i:8078</code> <code>sudo lsof -i:8078</code>
 +==== Superuser ====
 +=== Execute sudo cmd without needing to type password ===
 +== Staying Safe ==
 +  - backup ''/etc/sudoers'' file i.e. copy to somewhere safe
 +  - leave at least one terminal window open as root
 +  - edit ''/etc/sudoers'' with ''visudo'' not ''sudo''. It's a wrapper for your already configured editor (not necessarily vi)
 +== The Magic ==
 +  * create a wrapper script that does all your magic for you. Don't add sudo to the cmds in the wrapper script
 +  * using ''visudo'' add to the end of your ''/etc/sudoers'' file ''USERNAME ALL=(ALL:ALL) NOPASSWD: FULL_PATH_TO_SCRIPT'' substituting in USERNAME and FULL_PATH_TO_SCRIPT as necessary
 +  * to execute the cmd without password type ''sudo FULL_PATH_TO_THE_SCRIPT''
 +===== Misc =====
 +   * write to dmesg: ''echo Some message > /dev/kmsg''
 +   * add timestamp to log entries that are piped. Add to pipe: ''gawk '{ print strftime(), $0; fflush() }' ''
 +     * ''awk'' is supposed to do this but at least when then piping to ''grep'' only ''gawk'' worked.
 +   * remove package with all its dependencies. As root: ''apt-get purge `apt-get -s purge <PKG> | grep '^ ' | tr -d '*'`''
 +   * [[https://tldp.org/LDP/abs/html/tabexpansion.html|autocomplete parameters in bash script]]
 +   * traverse through to see what is using disk space: ''du -cha --max-depth=1 /var | grep -E "M|G"''
 +   * find out what app is on a particular port: ''netstat -anpe | grep "1234" | grep "LISTEN"''
  
  • lwc/programming/bash.1606608983.txt.gz
  • Last modified: 2020/11/28 18:16
  • by John Harrison