10  Using Linux

10.1 General Short Cuts

  • super+tab switches between windows
  • super+left/right arrow fits active window to left or right of screen
  • ctrl+alt+t opens a new terminal window
  • ctrl+shift+t opens a new tab in terminal window
  • alt-number switches between tabs in terminal window
  • ctrl+d closes a terminal window

10.2 Terminal Short Cuts

  • tab autocompletes from what you have started to type
  • ctrl+c breaks out of a command or process
  • ctrl+d logs out of current terminal
  • c clears screen (my alias)
  • ctrl+a moves cursor to begining of line
  • ctrl+e moves cursor to the end of line
  • ctrl+u clears the current line
  • ctrl+p or up arrow scrolls through previous commands
  • ctrl_n or down arrow scrolls forward through commands
  • ctrl+shift+c copies highlighted text
  • ctrl+shift+v pastes copied text
  • alt-tab switches between open windows within an app
  • super-tab switches between apps

10.3 Control processes

  • command & to launch program in background of terminal
  • fg %1 to move program to foreground
  • bg %1 to move to background
  • kill %1 (see chap 10 in linux book)

10.4 Pdf manipulation

We use evince [filename.pdf] to view pdfs

we use qpdf --empty --pages infile.pdf 1-5 -- outfile.pdf to extract pages from a pdf

10.5 Browsers

chrome [filename]s opens a file in chrome. You can view an html file in firefox from terminal using firefox [filename]

10.6 Common Commands

  • wc, uniq, head, tail, |, >, >>, less, sort, grep, cat, man, help, –help, type, which, echo, history

  • ls -lSr to list files sorted by size (with larger sizes later: r). Useful to find the non-zero error files. Can have issues when applied to large numbers of files (> 60K). See use of find and xargs below if needed.

  • cd - changes to previous directory

  • mv to move files between directories. can use .. as target to move file to home directory. e.g., mv results_* ..

  • > redirect standard output to a new file (creates file if does not exist; writes over file contents if it does exist). >> redirect standard output to append to a file

  • rm to remove file(s). rm -r to remove non-empty directory

  • cat filename_* > all_files.csv to concatenate all files into one file.

  • less views file contents

  • | is pipe operator

  • wc is word count. wc -l counts lines

  • chmod +x get_missing_jobs.sh to change permissions on get_missing_jobs.sh to run it. ./get_missing_jobs.sh to run it.

  • find -maxdepth 1 -name "results_*.csv" | wc -l will find results_*.csv in local folder (maxdepth 1) and pipe them into a word count that counts lines (-l)

  • cat job_nums.csv | wc -l reads contents of job_nums.csv and pipes to a word count that counts lines (-l)

  • find -maxdepth 1 -name "results_*.csv" | ls -lSr gets around the too many arguments issue. Find searches recursively by default (override with maxdepth if needed), whereas ls searches just . or the specified directory (e.g., ./results)

  • See tutorial on awk to understand its use for simple programming. See a tutorial on the use of xargs.

  • printf to send formatted text to standard output or to a file

    • printf "John is %s\n" "nice"
    • printf "John is %d years old" 54
    • printf "hello world\nIt is John!" > out.txt)
  • man [command] to open manual for command

  • sdiff file1 file2 - Compare two files side by side.

  • vimdiff file1 file2 - Highlight the differences between two files in the vim editor.

  • tar [-] c|x|t f tarfile [pattern] - Create, extract or list contents of a tar archive using pattern, if supplied.

  • du -h - Display sizes in human readable format. For example, 1.2M, 3.7G, etc.

    • du -shc - Display size of directory and its subdirectories
  • head, tail, and sort work as expected. Remember to use -n with sort if you want to do a numeric (rather than text) sort. Sort also takes -r for reverse. Use pipe to pipe in a vector of numbers or text. Use -1 with head or tail to get the first (or last) value in series.

  • cd- switches back to previous directory

10.7 Compressing and archiving files

  • `gzip foo.txt - Compress foo.txt. The resulting compressed file is named file.txt.gz. -r to compress subdirectories when compressing a directory rather than file.
  • gunzip foo.txt - Uncompress foo.txt.gz (no need to append .gz).
  • gunzip foo.txt -c | less to view contents of foo.txt without decompressing it
  • tar cf playground.tar playground make archive of playground directory. r rather than c to append rather than create new archive.
  • tar czf playground.tgz playground to archive and compress (could also name playground.tar.gz)
  • tar xf playground2.tar to extract files from archive
  • see linux book, chapter 18 for more details

10.8 FTP

  • use sftp at command line. e.g., sftp submit-1.chtc.wisc.edu
  • can use command line to review local and remote computers.
  • For local lls, lcd, lpwd are the three most useful commands
  • For remote ls, cd, pwd
  • Use get foo.txt to copy foo.txt from remote to local director
  • Use put foo.txt to copy foo.txt from local directory to remote directory
  • exit when done
  • Can set up a ssh key to log in without credentials to CHTC.

10.9 SSH

  • use ssh at command line. e.g., ssh submit-1.chtc.wisc.edu
  • Can set up a ssh key to log in without credentials to CHTC, Github, etc.

10.10 Kill a frozen app

Press Alt + F2 . Type xkill and hit Enter. The cursor will turn into a small ‘x’. Left click any window to kill the process associated with that window.