Primeiro de tudo, scripts shell (ou scripts bash) são apenas texto. Eles podem ser lidos em qualquer editor, mas eles não são usados para tarefas complexas normalmente.
Outros processos mais complexos, como less
, são escritos em uma linguagem de programação, como C ou C ++. Você não pode abrir esses arquivos executáveis em um editor de texto, mas como o Ubuntu é baseado principalmente no software Open Source, você pode obter os arquivos de texto fonte, lê-lo e modificá-lo como quiser.
No Ubuntu (e Debian) você pode obter o texto do código-fonte de um programa com o comando
apt-get source packagename
Vamos analisar less
:
[~]$ apt-get source less
Reading package lists... Done
Need to get 340 kB of source archives.
Get:1 http://no.archive.ubuntu.com/ubuntu xenial-updates/main less 481-2.1ubuntu0.2 (dsc) [1,474 B]
Get:2 http://no.archive.ubuntu.com/ubuntu xenial-updates/main less 481-2.1ubuntu0.2 (tar) [317 kB]
Get:3 http://no.archive.ubuntu.com/ubuntu xenial-updates/main less 481-2.1ubuntu0.2 (diff) [22.0 kB]
Fetched 340 kB in 0s (1,727 kB/s)
gpgv: Signature made Fri 31 Mar 2017 11:52:05 CEST using RSA key ID D034330C
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./less_481-2.1ubuntu0.2.dsc
dpkg-source: info: extracting less in less-481
dpkg-source: info: unpacking less_481.orig.tar.gz
dpkg-source: info: unpacking less_481-2.1ubuntu0.2.debian.tar.xz
dpkg-source: info: applying 01-434417-LESS_IS_MORE.patch
dpkg-source: info: applying 02-655926-more_can_go_backwards.patch
dpkg-source: info: applying lp-1562308-fix_mkutable.patch
Isto irá, em 16.04, fornecer-lhe um diretório com o nome less-481
. A parte dos dígitos do nome pode mudar, conforme as versões mudam. Isto contém o código fonte do programa. No caso de menos, que é um aplicativo de pager simples, isso significa < 100 arquivos, mas ainda assim uma quantidade significativa de código. Muitos dos arquivos contêm milhares de linhas de código.
Se você quiser, você pode alterar as funções do software, e reembale-o e instale-o em seu sistema, no lugar do pacote padrão.