Liste des commandes de base Linux
Voici une liste des commandes de base sous Linux: (source: http://www.pixelbeat.org/cmdline.html)
Command Description
apropos whatis Show commands pertinent
to string. See also
threadsafe
man -t ascii \| ps2pdf - \> ascii.pdf make a pdf of a manual
page
which command Show full path name of
command
time command See how long a command
takes
time cat Start stopwatch. Ctrl-d
to stop. See also sw
dir navigation
cd - Go to previous directory
cd Go to \$HOME directory
(cd dir && command) Go to dir, execute
command and return to
current dir
pushd **.** Put current dir on stack
so you can **popd** back
to it
file searching
alias l=\'ls -l \--color=auto\' quick dir listing
ls -lrt List files by date. See
also newest and
find_mm_yyyy
ls /usr/bin \| pr -T9 -W\$COLUMNS Print in 9 columns to
width of terminal
find -name \'\*.\[ch\]\' \| xargs grep -E Search \'expr\' in this
\'expr\' dir and below. See also
findrepo
find -type f -print0 \| xargs -r0 grep -F Search all regular files
\'example\' for \'example\' in this
dir and below
find -maxdepth 1 -type f \| xargs grep -F Search all regular files
\'example\' for \'example\' in this
dir
find -maxdepth 1 -type d \| while read dir; do Process each item with
echo \$dir; echo cmd2; done multiple commands (in
while loop)
find -type f ! -perm -444 Find files not readable
by all (useful for web
site)
find -type d ! -perm -111 Find dirs not accessible
by all (useful for web
site)
locate -r \'file\[\^/\]\*\\.txt\' Search cached index for
names. This re is like
glob \*file\*.txt
look reference Quickly search (sorted)
dictionary for prefix
grep \--color reference /usr/share/dict/words Highlight occurances of
regular expression in
dictionary
archives and
compression
gpg -c file Encrypt file
gpg file.gpg Decrypt file
tar -c dir/ \| bzip2 \> dir.tar.bz2 Make compressed archive
of dir/
bzip2 -dc dir.tar.bz2 \| tar -x Extract archive (use
gzip instead of bzip2
for tar.gz files)
tar -c dir/ \| gzip \| gpg -c \| ssh Make encrypted archive
user\@remote \'dd of=dir.tar.gz.gpg\' of dir/ on remote
machine
find dir/ -name \'\*.txt\' \| tar -c Make archive of subset
\--files-from=- \| bzip2 \> dir_txt.tar.bz2 of dir/ and below
find dir/ -name \'\*.txt\' \| xargs cp -a Make copy of subset of
\--target-directory=dir_txt/ \--parents dir/ and below
( tar -c /dir/to/copy ) \| ( cd /where/to/ && Copy (with permissions)
tar -x -p ) copy/ dir to /where/to/
dir
( cd /dir/to/copy && tar -c **.** ) \| ( cd Copy (with permissions)
/where/to/ && tar -x -p ) contents of copy/ dir to
/where/to/
( tar -c /dir/to/copy ) \| ssh -C user\@remote Copy (with permissions)
\'cd /where/to/ && tar -x -p\' copy/ dir to
remote:/where/to/ dir
dd bs=1M if=/dev/sda \| gzip \| ssh user\@remote Backup harddisk to
\'dd of=sda.gz\' remote machine
rsync (Network
efficient file copier: Use
the --dry-run option for
testing)
rsync -P rsync://rsync.server.com/path/to/file Only get diffs. Do
file multiple times for
troublesome downloads
rsync \--bwlimit=1000 fromfile tofile Locally copy with rate
limit. It\'s like nice
for I/O
rsync -az -e ssh \--delete \~/public_html/ Mirror web site (using
remote.com:\'\~/public_html\' compression and
encryption)
rsync -auz -e ssh remote:/dir/ **.** && rsync Synchronize current
-auz -e ssh **.**remote:/dir/ directory with remote
one
ssh (Secure SHell)
ssh \$USER@\$HOST command Run command on \$HOST as
\$USER (default
command=shell)
ssh -f -Y \$USER@\$HOSTNAME xeyes Run GUI command on
\$HOSTNAME as \$USER
scp -p -r \$USER@\$HOST: file dir/ Copy with permissions to
\$USER\'s home directory
on \$HOST
scp -c arcfour \$USER@\$LANHOST: bigfile Use faster crypto for
local LAN. This might
saturate GigE
ssh -g -L 8080:localhost:80 root@\$HOST Forward connections to
\$HOSTNAME:8080 out to
\$HOST:80
ssh -R 1434:imap:143 root@\$HOST Forward connections from
\$HOST:1434 in to
imap:143
ssh-copy-id \$USER@\$HOST Install \$USER\'s public
key on \$HOST for
password-less log in
wget (multi purpose
download tool)
(cd dir/ && wget -nd Store local browsable
-pHEKk<http://www.pixelbeat.org/cmdline.html>) version of a page to the
current dir
wget -c <http://www.example.com/large.file> Continue downloading a
partially downloaded
file
wget -r -nd -np -l1 -A \'\*.jpg\' Download a set of files
<http://www.example.com/dir/> to the current directory
wget <ftp://remote/file%5B1-9%5D.iso/> FTP supports globbing
directly
wget -q -O- Process output directly
<http://www.pixelbeat.org/timeline.html> \| grep
\'a href\' \| head
echo \'wget url\' \| at 01:00 Download url at 1AM to
current dir
wget \--limit-rate=20k url Do a low priority
download (limit to
20KB/s in this case)
wget -nv \--spider \--force-html -i Check links in a file
bookmarks.html
wget \--mirror <http://www.example.com/> Efficiently update a
local copy of a site
(handy from cron)
networking (Note
ifconfig, route, mii-tool,
nslookup commands are
obsolete)
ethtool eth0 Show status of ethernet
interface eth0
ethtool \--change eth0 autoneg off speed 100 Manually set ethernet
duplex full interface speed
iwconfig eth1 Show status of wireless
interface eth1
iwconfig eth1 rate 1Mb/s fixed Manually set wireless
interface speed
iwlist scan List wireless networks
in range
ip link show List network interfaces
ip link set dev eth0 name wan Rename interface eth0 to
wan
ip link set dev eth0 up Bring interface eth0 up
(or down)
ip addr show List addresses for
interfaces
ip addr add 1.2.3.4/24 brd + dev eth0 Add (or del) ip and mask
(255.255.255.0)
ip route show List routing table
ip route add default via 1.2.3.254 Set default gateway to
1.2.3.254
host pixelbeat.org Lookup DNS ip address
for name or vice versa
hostname -i Lookup local ip address
(equivalent to host
\`hostname\`)
whois pixelbeat.org Lookup whois info for
hostname or ip address
netstat -tupl List internet services
on a system
netstat -tup List active connections
to/from system
windows networking
(Note samba is the package
that provides all this
windows specific
networking support)
smbtree Find windows machines.
See also findsmb
nmblookup -A 1.2.3.4 Find the windows
(netbios) name
associated with ip
address
smbclient -L windows_box List shares on windows
machine or samba server
mount -t smbfs -o fmask=666,guest Mount a windows share
//windows_box/share /mnt/share
echo \'message\' \| smbclient -M windows_box Send popup to windows
machine (off by default
in XP sp2)
text manipulation
(Note sed uses stdin and
stdout. Newer versions
support inplace editing
with the -i option)
sed \'s/string1/string2/g\' Replace string1 with
string2
sed \'s/\\(.\*\\)1/\\12/g\' Modify anystring1 to
anystring2
sed \'/ \*#/d; /\^ \*\$/d\' Remove comments and
blank lines
sed \':a; /\\\\\$/N; s/\\\\\\n//; ta\' Concatenate lines with
trailing \\
sed \'s/\[ \\t\]\*\$//\' Remove trailing spaces
from lines
sed \'s/\\(\[\`\"\$\\\]\\)/\\\\\\1/g\' Escape shell
metacharacters active
within double quotes
seq 10 \| sed \"s/\^/ /; s/ Right align numbers
\*\\(.\\{7,\\}\\)/\\1/\"
sed -n \'1000{p;q}\' Print 1000th line
sed -n \'10,20p;20q\' Print lines 10 to 20
sed -n \'s/.\* Extract title from HTML
web page
\\(.\*\\)\<\\/title>.\*/\\1/ip;T;q\'
sed -i 42d \~/.ssh/known_hosts Delete a particular line
sort -t. -k1,1n -k2,2n -k3,3n -k4,4n Sort IPV4 ip addresses
echo \'Test\' \| tr \'\[:lower:\]\' Case conversion
\'\[:upper:\]\'
tr -dc \'\[:print:\]\' \< /dev/urandom Filter non printable
characters
tr -s \'\[:blank:\]\' \'\\t\' cut fields separated by
blanks
history \| wc -l Count lines
set operations (Note
you can export LANG=C for
speed. Also these assume
no duplicate lines within
a file)
sort file1 file2 \| uniq Union of unsorted files
sort file1 file2 \| uniq -d Intersection of unsorted
files
sort file1 file1 file2 \| uniq -u Difference of unsorted
files
sort file1 file2 \| uniq -u Symmetric Difference of
unsorted files
join -t\'\\0\' -a1 -a2 file1 file2 Union of sorted files
join -t\'\\0\' file1 file2 Intersection of sorted
files
join -t\'\\0\' -v2 file1 file2 Difference of sorted
files
join -t\'\\0\' -v1 -v2 file1 file2 Symmetric Difference of
sorted files
math
echo \'(1 + sqrt(5))/2\' \| bc -l Quick math (Calculate
φ). See also bc
echo \'pad=20; min=64; More complex (int) e.g.
(100\*10\^6)/((pad+min)\*8)\' \| bc This shows max FastE
packet rate
echo \'pad=20; min=64; print Python handles
(100E6)/((pad+min)\*8)\' \| python scientific notation
echo \'pad=20; plot \[64:1518\] Plot FastE packet rate
(100\*10\*\*6)/((pad+x)\*8)\' \| gnuplot vs packet size
-persist
echo \'obase=16; ibase=10; 64206\' \| bc Base conversion (decimal
to hexadecimal)
echo \$((0x2dec)) Base conversion (hex to
dec) ((shell arithmetic
expansion))
units -t \'100m/9.58s\' \'miles/hour\' Unit conversion (metric
to imperial)
units -t \'500GB\' \'GiB\' Unit conversion (SI to
IEC prefixes)
units -t \'1 googol\' Definition lookup
seq 100 \| (tr \'\\n\' +; echo 0) \| bc Add a column of numbers.
See also add and funcpy
calendar
cal -3 Display a calendar
cal 9 1752 Display a calendar for a
particular month year
date -d fri What date is it this
friday. See also day
\[ \$(date -d \"tomorrow\" +%d) = \"01\" \] \|\| exit a script unless
exit it\'s the last day of
the month
date \--date=\'25 Dec\' +%A What day does xmas fall
on, this year
date \--date=\'\@2147483647\' Convert seconds since
the epoch (1970-01-01
UTC) to date
TZ=\'America/Los_Angeles\' date What time is it on west
coast of US (use
tzselect to find TZ)
date \--date=\'TZ=\"America/Los_Angeles\" 09:00 What\'s the local time
next Fri\' for 9AM next Friday on
west coast US
locales
printf \"%\'d\\n\" 1234 Print number with
thousands grouping
appropriate to locale
BLOCK_SIZE=\\\'1 ls -l Use locale thousands
grouping in ls. See also
l
echo \"I live in \`locale territory\`\" Extract info from locale
database
LANG=en_IE.utf8 locale int_prefix Lookup locale info for
specific country. See
also ccodes
locale \| cut -d= -f1 \| xargs locale -kc \| List fields available in
less locale database
recode (Obsoletes
iconv, dos2unix, unix2dos)
• recode -l | less Show available conversions (aliases on each line)
recode windows-1252.. file_to_change.txt Windows \"ansi\" to
local charset (auto does
CRLF conversion)
recode utf-8/CRLF.. file_to_change.txt Windows utf8 to local
charset
recode iso-8859-15..utf8 file_to_change.txt Latin9 (western europe)
to utf8
recode ../b64 \< file.txt \> file.b64 Base64 encode
recode /qp.. \< file.qp \> file.txt Quoted printable decode
recode ..HTML \< file.txt \> file.html Text to HTML
recode -lf windows-1252 \| grep euro Lookup table of
characters
echo -n 0x80 \| recode latin-9/x1..dump Show what a code
represents in latin-9
charmap
echo -n 0x20AC \| recode ucs-2/x2..latin-9/x Show latin-9 encoding
echo -n 0x20AC \| recode ucs-2/x2..utf-8/x Show utf-8 encoding
CDs
gzip \< /dev/cdrom \> cdrom.iso.gz Save copy of data cdrom
mkisofs -V LABEL -r dir \| gzip \> cdrom.iso.gz Create cdrom image from
contents of dir
mount -o loop cdrom.iso /mnt/dir Mount the cdrom image at
/mnt/dir (read only)
cdrecord -v dev=/dev/cdrom blank=fast Clear a CDRW
gzip -dc cdrom.iso.gz \| cdrecord -v Burn cdrom image (use
dev=/dev/cdrom - dev=ATAPI -scanbus to
confirm dev)
cdparanoia -B Rip audio tracks from CD
to wav files in current
dir
cdrecord -v dev=/dev/cdrom -audio -pad \*.wav Make audio CD from all
wavs in current dir (see
also cdrdao)
oggenc \--tracknum=\'track\' track.cdda.wav -o Make ogg file from wav
\'track.ogg\' file
disk space (See also
FSlint)
ls -lSr Show files by size,
biggest last
du -s \* \| sort -k1,1rn \| head Show top disk users in
current dir. See also
dutop
du -hs /home/\* \| sort -k1,1h Sort paths by easy to
interpret disk usage
df -h Show free space on
mounted filesystems
df -i Show free inodes on
mounted filesystems
fdisk -l Show disks partitions
sizes and types (run as
root)
rpm -q -a \--qf \'%10{SIZE}\\t%{NAME}\\n\' \| List all packages by
sort -k1,1n installed size (Bytes)
on rpm distros
dpkg-query -W List all packages by
-f=\'\${Installed-Size;10}\\t\${Package}\\n\' \| installed size (KBytes)
sort -k1,1n on deb distros
dd bs=1 seek=2TB if=/dev/null of=ext3.test Create a large test file
(taking no space). See
also truncate
\> file truncate data of file or
create an empty file
monitoring/debugging
tail -f /var/log/messages Monitor messages in a
log file
strace -c ls \>/dev/null Summarise/profile system
calls made by command
strace -f -e open ls \>/dev/null List system calls made
by command
strace -f -e trace=write -e write=1,2 ls Monitor what\'s written
\>/dev/null to stdout and stderr
ltrace -f -e getenv ls \>/dev/null List library calls made
by command
lsof -p \$\$ List paths that process
id has open
lsof \~ List processes that have
specified path open
tcpdump not port 22 Show network traffic
except ssh. See also
tcpdump_not_me
ps -e -o pid,args \--forest List processes in a
hierarchy
ps -e -o pcpu,cpu,nice,state,cputime,args List processes by % cpu
\--sort pcpu \| sed \'/\^ 0.0 /d\' usage
ps -e -orss=,args= \| sort -b -k1,1n \| pr List processes by mem
-TW\$COLUMNS (KB) usage. See also
ps_mem.py
ps -C firefox-bin -L -o pid,tid,pcpu,state List all threads for a
particular process
ps -p 1,\$\$ -o etime= List elapsed wall time
for particular process
IDs
last reboot Show system reboot
history
free -m Show amount of
(remaining) RAM (-m
displays in MB)
watch -n.1 \'cat /proc/interrupts\' Watch changeable data
continuously
udevadm monitor Monitor udev events to
help configure rules
system information
(see also sysinfo) (\'#\'
means root access is
required)
uname -a Show kernel version and
system architecture
head -n1 /etc/issue Show name and version of
distribution
cat /proc/partitions Show all partitions
registered on the system
grep MemTotal /proc/meminfo Show RAM total seen by
the system
grep \"model name\" /proc/cpuinfo Show CPU(s) info
lspci -tv Show PCI info
lsusb -tv Show USB info
mount \| column -t List mounted filesystems
on the system (and align
output)
grep -F capacity: /proc/acpi/battery/BAT0/info Show state of cells in
laptop battery
# dmidecode -q | less Display SMBIOS/DMI information
# smartctl -A /dev/sda | grep Power_On_Hours How long has this disk (system) been powered on in total
# hdparm -i /dev/sda Show info about disk sda
# hdparm -tT /dev/sda Do a read speed test on disk sda
# badblocks -s /dev/sda Test for unreadable blocks on disk sda
interactive (see also
linux keyboard shortcuts)
readline Line editor used by
bash, python, bc,
gnuplot, \...
screen Virtual terminals with
detach capability, \...
mc Powerful file manager
that can browse rpm,
tar, ftp, ssh, \...
gnuplot Interactive/scriptable
graphing
links Web browser
xdg-open **.** open a file or url with
the registered desktop
application