Linux tips
From silico.biotoul.fr
(Difference between revisions)
m (→Linux filesystem organization) |
m (→archive) |
||
Line 171: | Line 171: | ||
variables, test, $?, for, if, function, $(cmd), && || | variables, test, $?, for, if, function, $(cmd), && || | ||
- | = | + | = Archive = |
tar, bzip, gzip, rsync | tar, bzip, gzip, rsync | ||
+ | |||
+ | = Network = | ||
+ | ssh, scp, nslookup, wget, nmap, ping | ||
+ | |||
+ | = Misc = | ||
+ | diff, diffuse, mount, df, du, alternatives, lsof |
Revision as of 14:39, 5 March 2013
Contents |
Paths & I/O & files
Linux filesystem organization
/ | The root directory. |
/boot | Boot directory (kernel and boot loader) |
/etc | Configuration files for the system. e.g. /etc/fstab specifies which drives to mount where. /etc/hosts lists network hosts and IP addresses. |
/bin /usr/bin | The /bin directory has the essential programs that the system requires to operate, while /usr/bin contains applications for the system's users. |
/sbin /usr/sbin | The sbin directories contain programs for system administration, mostly for use by the superuser (root). |
/usr | contains things that support user applications. |
/usr/local | /usr/local and its subdirectories (bin, lib, share, ...) are used for the installation of software and other files for use on the local machine i.e., not part of the official distribution. |
/var | contains files that change as the system is running. This includes: log (logs!), spool (files that are queued for some process, such as mail messages and print jobs) |
/lib /lib64 | shared libraries (similar to DLLs of windows) |
/home | users personal directories |
/root | System administrator's home directory |
/tmp | holds temporary files (anybody/program can write) |
/dev | In linux, devices are represented by files under that directory (e.g. disks are block devices such as /dev/sda or /dev/hda usually for the 1st hard drive) |
/proc | virtual directory giving access to the running kernel and system. e.g. /proc/cpuinfo /proc/meminfo /proc/uptime |
/media /run/media /mnt | removable devices (usb sticks, usb drives, ...) are usually mounted in one of those when plugged |
Paths & directories: pwd, mkdir, rmdir, rm
- pwd returns current directory
- relative to current directory: e.g. ls subdir/subsubdir or ls ../whatever/
- absolute ls ~user/path or ls /home/user/path
- mkdir: create directory. e.g. mkdir ~/newdir or with subdirs mkdir -p ~/new/newsub/newsubsub
- rmdir dirname or if not empty rm -fr dirname
Permissions: chown, chgrp, chmod
$ ls -l /home drwxr-x--- 69 barriot gsi 4.0K Mar 5 12:09 barriot drwx------ 2 root root 16K Jul 12 2010 lost+found drwxr-xr-x 36 micas stage 4.0K Jul 31 2012 micas ... [barriot@gamborimbo ~]$ ls -lh Documents/TEACHING/2012-2013/M1-MABS/Graph/TP3-igraph.layout/ total 80K drwxr-xr-x 1 barriot gsi 4.0K Mar 14 2012 HDE.old -rw-r--r-- 1 barriot gsi 24K Mar 14 2012 91347.nwk -rw-r--r-- 1 barriot gsi 942 Mar 1 16:02 Cleandb_Luca_1_S_1_1_65_Iso_Tr_1-CC1.cod -rw-r--r-- 1 barriot gsi 28K Sep 7 2010 Cleandb_Luca_1_S_1_1_65_Iso_Tr_1-CC1.gr -rw-r--r-- 1 barriot gsi 2.3K Sep 7 2010 Cleandb_Luca_1_S_1_1_65_Iso_Tr_1-CC1.tgr -rw-r--r-- 1 barriot gsi 4.7K Mar 5 11:42 cmds.R -rw-r--r-- 1 barriot gsi 871 Mar 14 2012 sample_tree_with_branchlengths.nwk -rwxr-xr-x 1 barriot gsi 670 Mar 14 2012 drawTree.py -rw-r--r-- 1 barriot gsi 5.6K Feb 27 16:57 Tree.py
First character corresponds to file type. d for directory, - for a regular file, ... Then by 3 for the owner (user), the group and the others.
For a regular file :
- r for permission to read
- w for permission to modify
- x for being able to execute the file (binary executable or script)
For a directory :
- r to be able to read the content (list files in the directory)
- w to be able to add or remove files
- x to be able to pass through that directory, i.e. cd to that dir or a subdir
Modify ownership of a file or directory :
# change owner chown newuser file # recursive chown -R newuser directory # change group chgrp newgroup filename # change both chown newuser.newgroup filename
Modify permissions:
# numeric notation: r=4, w=2, x=1, thus for rwx-r-x--- chmod 760 file # recursively on a sub directory chmod -R 760 dirname # symbolic notation: chmod u=rwx,g=rx,o= filename # add execute permission for all: chmod a+x filename # revoke write permission for others: chmod o-w filename
File info & type: stat, file
[barriot@gamborimbo ~]$ stat /home/barriot File: `/home/barriot' Size: 12288 Blocks: 24 IO Block: 4096 directory Device: fd02h/64770d Inode: 1048577 Links: 119 Access: (0755/drwxr-xr-x) Uid: ( 500/ barriot) Gid: ( 501/ gsi) Access: 2013-03-05 10:39:08.927051453 +0100 Modify: 2013-03-05 10:39:00.240074369 +0100 Change: 2013-03-05 10:39:00.240074369 +0100 Birth: -
[barriot@gamborimbo ~]$ stat .bashrc File: `.bashrc' Size: 517 Blocks: 8 IO Block: 4096 regular file Device: fd02h/64770d Inode: 1052239 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 500/ barriot) Gid: ( 501/ gsi) Access: 2013-03-02 16:04:19.268619379 +0100 Modify: 2012-10-12 17:24:24.818899216 +0200 Change: 2012-11-18 23:25:18.869870338 +0100 Birth: -
[barriot@gamborimbo ~]$ file /home/barriot /home/barriot: directory
[barriot@gamborimbo ~]$ file .bashrc .bashrc: ASCII text
File content, concatenation, split, ... and redirections: cat, split, head, tail, more, less, tac
# display content cat somefile.txt # concatenate 2 or more files cat file_1.txt file_2.txt cat *.txt # redirect to a file (if file exists it will be overwritten otherwise it gets created) cat file_1.txt file_2.txt > result.txt # redirect to a file (if file exists it will be appended at the end otherwise it gets created) cat others*.txt >> result.txt # split a file into smaller parts ## by file size (1kb) split --bytes 1024 big.file split -b 1024 big.file ## by number of lines per output files split --lines 100 big.text.file.txt split -l 100 big.text.file.txt ## by number of output files split --number 10 big.file split -n 10 big.file ## specify output files prefix and numbered numerically (3 digits) split -n 100 -a 3 -d big.file part_ split -n 100 --suffix-length 3 --numeric-suffixes big.file part_
redirection, head, tail, more, less, tac, sed, grep, cut, find, wc, sort
Processes
ps, jobs, Ctrl-C/Z/D, top, kill, killall, nohup, disown, &
shell
variables, test, $?, for, if, function, $(cmd), && ||
Archive
tar, bzip, gzip, rsync
Network
ssh, scp, nslookup, wget, nmap, ping
Misc
diff, diffuse, mount, df, du, alternatives, lsof