Articles taggués ‘commands’

Afficher une image dans un terminal

27/09/2022 Aucun commentaire


Si vous cherchez un utilitaire et une bibliothèque pour vos projets qui permette d’afficher dans un terminal une image en utilisant du code ANSI, j’ai ce qu’il vous faut. Ça s’appelle Picture- et pour l’ c’est très simple. Il vous faudra npm, donc sous pour un petit npm, il faut taper :

sudo apt-get install npm

Ensuite pour installer la bibliothèque Picture-tube, il faut faire :

sudo npm install picture-tube

Si seul l’outil en vous intéresse, ajoutez le paramètre -g

sudo npm install -g picture-tube

Ensuite, pour convertir une image, un petit

picture-tube monimage.jpg

dans le terminal et taaadaaa



Après, pour utiliser la bibliothèque, voici un exemple de code :

var pictureTube = require('picture-tube')
var tube = pictureTube();
var fs = require('fs');

Pour tout le reste, c’est par ici.

Categories: Logiciel Tags: , ,

Useful Mac bash terminal shortcuts

20/09/2022 Aucun commentaire

Open directory in finder

open .

Pbcopy and pbpaste

grep 'searching for' hugeFile.txt | pbcopy
pbpaste | sed 's/ / /g'

mdfind command is the spotlight search from command line

say "Hello there"

The say command invokes the system text-to-speech capabilities.

cd -

Will restore the previous directory you were in. Very handy if you accidentally type cd and flip to home.

And some usefull aliases

alias ..="cd .." alias ...="cd .. ; cd .."
alias ls="ls -G" # list alias la="ls -Ga" # list all, includes dot files alias ll="ls -Gl" # long list, excludes dot files alias lla="ls -Gla" # long list all, includes dot files
alias stfu="osascript -e 'set volume output muted true'" alias pumpit="osascript -e 'set volume 10'"
alias ips="ifconfig -a | perl -nle'/(d .d .d .d )/ && print $1'" alias myip="dig  short"

Bash Keyboard Shortcuts

Moving the cursor:

  Ctrl   a   Go to the beginning of the line (Home)
  Ctrl   e   Go to the End of the line (End)
  Hold the Option key option and click on the current line = Jump Backwards

  Ctrl   p   Previous command (Up arrow)
  Ctrl   n   Next command (Down arrow)
  Hold the Option key option and click on a previous line = Jump upwards

  Ctrl   f   Forward one character
  Ctrl   b   Backward one character
   Alt   b   Back (left) one word      or use Option Right-Arrow
   Alt   f   Forward (right) one word  or use Option Left-Arrow

  Ctrl   xx  Toggle between the start of line and current cursor position


 Ctrl   L   Clear the Screen, similar to the clear command

  Alt   Del Delete the Word before the cursor.
  Alt   d   Delete the Word after the cursor.
 Ctrl   d   Delete character under the cursor
 Ctrl   h   Delete character before the cursor (backspace)

 Ctrl   w   Cut the Word before the cursor to the clipboard.
 Ctrl   k   Cut the Line after the cursor to the clipboard.
 Ctrl   u   Cut/delete the Line before the cursor position.

  Alt   t   Swap current word with previous
 Ctrl   t   Swap the last two characters before the cursor (typo).
 Esc    t   Swap the last two words before the cursor.

 ctrl   y   Paste the last thing to be cut (yank)
  Alt   u   UPPER capitalize every character from the cursor to the end of the current word.
  Alt   l   Lower the case of every character from the cursor to the end of the current word.
  Alt   c   Capitalize the character under the cursor and move to the end of the word.
  Alt   r   Cancel the changes and put back the line as it was in the history (revert).
 ctrl   _   Undo
  TAB       Tab completion for file/directory names

For example, to move to a directory ‘sample1’; Type cd sam ; then press TAB and ENTER.
type just enough characters to uniquely identify the directory you wish to open.

Special keys: Tab, Backspace, Enter, Esc

Text Terminals send characters (bytes), not key strokes.
Special keys such as Tab, Backspace, Enter and Esc are encoded as control characters.
Control characters are not printable, they display in the terminal as ^ and are intended to have an effect on applications.

Ctrl I = Tab
Ctrl J = Newline
Ctrl M = Enter
Ctrl [ = Escape

Many terminals will also send control characters for keys in the digit row:

Ctrl 2 → ^@
Ctrl 3 → ^[ Escape
Ctrl 4 → ^
Ctrl 5 → ^]
Ctrl 6 → ^^
Ctrl 7 → ^_ Undo
Ctrl 8 → ^? Backward-delete-char

Ctrl v tells the terminal to not interpret the following character, so Ctrl v Ctrl-I will display a tab character,
similarly Ctrl v ENTER will display the escape sequence for the Enter key: ^M


  Ctrl   r   Recall the last command including the specified character(s)
             searches the command history as you type.
             Equivalent to : vim ~/.bash_history. 
  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
  Ctrl   s   Go back to the next most recent command.
            (beware to not execute it from a terminal because this will also launch its XOFF).
  Ctrl   o   Execute the command found via Ctrl r or Ctrl s
  Ctrl   g   Escape from history searching mode

Process control:

 Ctrl   C   Interrupt/Kill whatever you are running (SIGINT)
 Ctrl   l   Clear the screen
 Ctrl   s   Stop output to the screen (for long running verbose commands)
 Ctrl   q   Allow output to the screen (if previously stopped using command above)
 Ctrl   D   Send an EOF marker, unless disabled by an option, this will close the current shell (EXIT)
 Ctrl   Z   Send the signal SIGTSTP to the current task, which suspends it.
            To return to it later enter fg 'process name' (foreground).

To use the Alt Key Shortcuts in OS X – Open Terminal Preferences | Settings Tab | Keyboard | Tick “Use option as meta key”

Emacs mode vs Vi Mode

All the above assume that bash is running in the default Emacs setting, if you prefer this can be switched to Vi shortcuts instead.

Set Vi Mode in bash:

$ set -o vi

Set Emacs Mode in bash:

$ set -o emacs

Source: @coderwall and

Categories: Système Tags: , , ,

Tree en une ligne de commande (sed)

17/09/2022 Aucun commentaire


Mais que fait cette commande ?

Il suffit d’essayer en ligne de commande…

Non, ce n’est pas risqué.

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'

Cette commande liste vos dossiers en arborescence, sous forme d’un arbre.

C’est plutôt pour le fun, et pour utiliser SED, car on ne va pas retaper cette longue commande à chaque fois !

Voyez donc ce billet comme un exercice, un exemple de ce qu’on peut faire en ligne de commande avec SED, et pas comme un « truc et astuce ».

J’ai ensuite voulu comprendre comment cette commande fonctionnait.

On y retrouve des commandes assez classiques en Linux : ls, grep et sed.

Lire la suite…

Categories: Système Tags: ,

Synchronizing folders with rsync

14/09/2022 Comments off

Source: Juan Valencia’s website

In this post I cover the basics of rsync, in preparation for a subsequent post that will cover backups and it’s use in conjunction with cronjobs to automatize the backup process. From the copying and synchronization of local files and folders, to it’s use for transfer information among computers. Itsuse as a daemon when SSH is unavailable was moved to it’s own section.

The basics of rsync
Copying local files and folders
Dealing with whitespace and rare characters
Update the contents of a folder
Synchronizing two folders with rsync
Compressing the files while transferring them
Transferring files between two remote systems
Excluding files and directories
Running rsync as a daemon (moved to it’s own section)
Some additional rsync parameters

The basics of rsync

rsync is a very versatile copying and backup tool that is included by default in almost every Linux distribution. It can be used as an advanced copying tool, allowing us to copy files both locally and remotely. It can also be used as a backup tool. It supports the creation of incremental backups.

rsync counts with a famous delta-transfer algorithm that allows us to transfer new files as well as recent changes to existent files, while ignoring unchanged files. Additionally to this, the behavior ofrsync can be throughly customized, helping us to automatize backups, it can also be run as a daemon to turn the computer into a host and allow rsync clients connect to it.

Besides the copying of local files and folders, rsync allow us to copy over SSH (Secure Shell), RSH (Remote Shell) and it can be run as a daemon in a computer and allow other computers to connect to it, when rsync is run as a daemon it listens to the port TCP 873.

When we use rsync as a daemon or when we use RSH, the data that is send between computers travels unencrypted, so, if you are transferring files between two computers in the same local network, this is useful, but this shouldn’t be used to transfer files over insecure networks, such as the Internet. For this purpose SSH is the way to go.

This is the main reason why I favor the use of SSH for my transfers, besides, since SSH is secure, many servers have the SSH daemon available. But the use of rsync as a daemon for transfers over fast connections, as is usually the case in a local network, is useful. I don’t have the RSH daemon running in my computers so you may find me a bit biased about SSH in the examples. The examples covering the transfer of files between two computers use SSH as the medium of transport, but in a separate post I cover the use of rsync as a daemon.

Lire la suite…

Categories: Réseau, Système Tags: , ,

Fixing Mac OSX File Permissions and ACLs From the Command Line

14/09/2022 Comments off

Recently the hard drive in my mac mini running Mac OSX Leopard (10.5) failed. Luckily I had time machine backing it up to an external USB disk. Now, since I had to replace the drive and rebuild my system anyway I figured, why not upgrade to Snow Leopard? Planning to just pull what I needed off the backup drive manually I went ahead with the upgrade. There aren’t too many files on this machine that I depend on. Just some ssh keys, gpg keys and random documents scattered about here and there. So I upgraded, installed my apps and copied my files from the backup. Everything was going smoothly until I tried to actually write to one of the files I copied from the backup drive. This is when I started getting permission errors.

Here’s what happened when I tried to update my ssh known_hosts file:

airbag:~ keith$ echo foo > .ssh/known_hosts 
-bash: .ssh/known_hosts: Permission denied

Huh? But I own this file…dont I?

airbag:~ keith$ id
uid=501(keith) gid=20(staff) groups=20(staff),402(,204(_developer),100(_lpoperator),98(_lpadmin),81(_appserveradm),80(admin),79(_appserverusr),61(localaccounts),12(everyone),401(

airbag:~ keith$ ls -al .ssh/known_hosts 
-rw-r--r--@ 1 keith 502 56140 Mar 25 2009 .ssh/known_hosts
I do own it… And so began much head scratching and man page reading.

Well, as it turns out I forgot to look at the file ACLs…

airbag:~ keith$ ls -le .ssh/known_hosts 
-rw-r--r--@ 1 keith 502 56140 Mar 25 2009 .ssh/known_hosts
 0: group:everyone deny write,delete,append,writeattr,writeextattr,chown

Well no wonder, the ACL is set to deny write,delete,append,writeattr,writeextattr and chown from everyone! Let’s get rid of that.

airbag:~ keith$ sudo chmod -N .ssh/known_hosts 

That ought to do it. The -N flag says get rid of all the ACL info on the file. You could also update this to be just right for your user or group but I’d rather use only the standard unix permissions.

airbag:~ keith$ ls -le .ssh/known_hosts 
-rw-r--r--@ 1 keith 502 56140 Mar 25 2009 .ssh/known_hosts

Seems to have removed all ACLs from the file. I wonder if we can write to it now…

airbag:~ keith$ echo foo >> .ssh/known_hosts 
airbag:~ keith$

And there you have it, the file is writable once again. Now its time to get some real work done!

Categories: Système Tags: , , , ,