Archiwa tagu: linux

Linux – zmienne systemowe

Tak się składa, że czasem nawet najbardziej zagorzałą fankę Microsoftu 😉 dopada konieczność przesiadki na inny system. I szybko okazuje się, jak wielu rzeczy się nie wie lub nie pamięta. Przeczuwam więc, że w najbliższym czasie będą się tu pojawiać głównie notatki związane z różnymi poleceniami linuksowymi.

Wyświetlenie zmiennych systemowych na konsolę realizowane jest poleceniem: env lub printenv

Przykładowy output:

d9k@Nihilia:~$ env
SSH_AGENT_PID=1689
TERM=xterm
SHELL=/bin/bash
WINDOWID=69209558
USER=d9k
...

i tak dalej.

Ważną zmienną jest także PATH (jak na Windowsie). Jej zawartość można wyświetlić po prostu:

d9k@Nihilia2:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Jak widać, separatorem jest dwukropek (w przeciwieństwie do Windowsowego średnika).

Modyfikacja zmiennej PATH – w zależności od konfiguracji systemu:

  1. Plik ~/.profile
  2. Plik ~/.bash_profile
  3. Plik ~/.bash_login
  4. Plik  /etc/environment

W moim przypadku (Ubuntu 12.04.2 LTS) zmienna PATH występowała w /etc/environment. Zmodyfikowałam plik (sudo gedit /etc/environment), dla zastosowania zmian: source /etc/environment && export PATH.

Bash – kilka krótkich skryptów

Kilka banalnych fragmentów skryptów, pomocnych podczas pracy z systemem Linux lub podczas pisania większego skryptu, napisanych w Bashu.

Wyświetlanie efektu polecenia:

Na przykład w celu wpisania do zmiennej aktualnej ścieżki (pwd):

PWD_VAR=`pwd`
echo 'Moving file from: ' $PWD_VAR ' to: ' $DEST_PATH'/..'

Przejście do folderu i powrót:

mkdir myDirectory
ACTUAL=`pwd`
cd myDirectory
cd $ACTUAL

Pobieranie nazwy pliku z adresu URL:

url=http://blog.d9k.info/any.file
FILENAME=$(basename "$url")
echo $FILENAME

Pobieranie zawartości pliku na serwerze/strony www:

url=http://blog.d9k.info/any.html
wget $url -O outputFile.html

Jak wyświetlić nazwę używanej dystrybucji Linux

Jak błyskawicznie zobaczyć, z jakim systemem mamy do czynienia oraz wyświetlić kilka innych informacji o systemie? Z pomocą przyjdzie nam konsola Linux oraz następujące polecenia:

Wyświetlenie dystrybucji:

cat /etc/*-release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.2 LTS"
NAME="Ubuntu"
VERSION="12.04.2 LTS, Precise Pangolin"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu precise (12.04.2 LTS)"
VERSION_ID="12.04"


lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.2 LTS
Release: 12.04
Codename: precise


Wersja kernela:

uname -a

Linux Nihilia 3.2.0-101-generic #141-Ubuntu SMP Thu Mar 10 21:43:24 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

uname -mrs

Linux 3.2.0-101-generic x86_64

Wersja kernela i gcc:

cat /proc/version

Linux version 3.2.0-101-generic (buildd@lgw01-35) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #141-Ubuntu SMP Thu Mar 10 21:43:24 UTC 2016

 

Kolorowy tekst w konsoli Linux – C/C++

Czasem, dla zwiększenia czytelności programu, chcielibyśmy pokolorować tekst wyświetlany w konsoli – np. aby błędy krytyczne wypisywać na czerwono, lub po prostu dla uatrakcyjnienia wyglądu programu czy skryptu.


Wcale nie trzeba używać do tego bibliotek graficznych. Z pomocą przychodzą opcje już wbudowane w linuxową konsolę – wystarczy na początku wyświetlanego tekstu wpisać odpowiedni kod koloru – np. jak w poniższym przykładzie programu napisanego w języku C/C++:


#include <stdio.h>
void Reset()
{
  printf("%c[%dm ",0x1B,0);//przywrocenie naturalnych kolorow konsoli
}
#define BG_BLACK 40
#define BRIGHT 1
#define RED 31
#define GREEN 32
#define YELLOW 33
#define BLUE 34
#define PINK 35
#define CYAN 36
#define WHITE 37

int main()
{
  printf("%c[%dm Czerwony\n",0x1B,RED);
  printf("Bez kodu, ale nadal w barwie czerwieni\n");
  printf("%c[%dm Zielony\n",0x1B,GREEN);
  printf("Nadal obowiązuje kolor zielony.\n");
  Reset();
  printf("Po resecie: domyślny kolor wraca. \n");
  getchar();
  return 0;
}

Kod klawiszy -Linux

Kody poszczególnych klawiszy przydają się zwłaszcza przy programowaniu konsolowych programów, mających wykonać jakąś czynność po naciśnięciu konkretnego znaku. Nie trzeba pamiętać całej tablicy znaków – pod Linuxem mamy bardzo pomocny program.

Program ten to showkey. Najlepiej uruchomić go z konsoli wraz z parametrem -a:
showkey -a
Pokaże on kody naciskanych klawiszy.

Wyjście – jak zresztą komunikuje sam program – przez kombinację klawiszy ctrl+d.

Można również napisać swój własny bardzo prosty program tego typu, opisane np. tu: wyświetlanie kodu znaków.