Se un'organizzazione utilizza sistemi operativi di tipo Unix, tutti gli sviluppatori dovrebbero conoscere i comandi di base del terminale per navigare nella struttura dei file, creare nuovi file e directory, eliminare file, strumenti di compilazione della riga di comando, usando il controllo della versione sul comando linea, e forse script di shell di base per aiutare ad automatizzare le attività ripetitive. Secondo me, la potenza del terminale e la disponibilità di strumenti da riga di comando su sistemi Unix è un enorme vantaggio, insieme alla facilità con cui scrivere script per automatizzare una serie di compiti complessi che potresti eseguire su un normale base.
Ci sono un certo numero di applicazioni a linea di comando che potresti voler familiarizzare con. Strumenti come cat
, grep
, head
, tail
, more
e less
sono utili per un numero di attività, che vanno dalla ricerca di file per trovare corrispondenze di testo, alla lettura del registro file per aiutare nelle applicazioni di debug. La possibilità di utilizzare pipe e feed output tramite queste applicazioni è utile anche per aiutarti a analizzare le informazioni disponibili.
Anche la conoscenza di uno dei principali editor di testo (vi o emacs) sarebbe utile. Quello che usi è un'opinione personale, ma ti consiglierei di usare quello che usa la tua squadra (in questo modo, se hai domande, ci sarà qualcuno nel tuo team per rispondere). Nelle mie esperienze, molti sviluppatori "hardcore" di Unix preferiscono questi strumenti agli IDE. Io preferisco un IDE (anche in un ambiente simile a Unix), ma gli editor di testo hanno i loro vantaggi nella lettura dei file. La loro natura da riga di comando semplifica la ricerca nei file con gli strumenti che ho menzionato nell'ultimo paragrafo e quindi apre tutti i file corrispondenti all'interno di uno di questi editor.
Oltre all'utilizzo degli strumenti forniti con il sistema operativo, dovrai anche essere consapevole delle differenze nelle librerie. Le librerie che effettuano chiamate di sistema (le cose che coinvolgono il threading vengono in mente, come esempio specifico) saranno probabilmente diverse nei sistemi operativi. Anche i makefile con flag da compilare su un'architettura specifica o per un sistema operativo specifico potrebbero introdurre dei problemi. Sapere quale / i sistema / i utilizzato / i viene usato / renderà più semplice - puoi trovare riferimenti che spiegano come implementare certe funzioni all'interno di quel sistema operativo. Tuttavia, questo è qualcosa che mi aspetto che tu sia in grado di riprendere sul posto di lavoro (specialmente per i sistemi operativi che sono tipicamente utilizzati in ambienti aziendali e che gli individui non hanno spesso accesso, come ad esempio Solaris). / p>