{"id":770,"date":"2023-10-19T11:33:39","date_gmt":"2023-10-19T09:33:39","guid":{"rendered":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/?page_id=770"},"modified":"2025-02-11T00:35:35","modified_gmt":"2025-02-10T22:35:35","slug":"1-16-transferencia-de-fitxers-des-del-terminal","status":"publish","type":"page","link":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/1-16-transferencia-de-fitxers-des-del-terminal\/","title":{"rendered":"1.16. Transfer\u00e8ncia de fitxers des del terminal"},"content":{"rendered":"<p>La transfer\u00e8ncia d\u2019arxius des d\u2019un terminal \u00e9s una tasca fonamental per als administradors de sistemes i desenvolupadors que treballen amb servidors remots. Tot i que hi ha moltes eines gr\u00e0fiques per transferir arxius, les opcions de la l\u00ednia d\u2019ordres s\u00f3n molt \u00fatils per a l\u2019automatitzaci\u00f3 i el maneig de grans quantitats de dades. Exemples de diferents ordres es mostren a la taula 17.<\/p>\n<div class=\"tabletitle\"><p>Taula 17. Ordres de transfer\u00e8ncia de fitxers.<\/p>\n<\/div>\n<table width=\"602\">\n<tbody>\n<tr class=\"table-header\">\n<td width=\"104\">Ordre<\/td>\n<td width=\"498\">Significat<\/td>\n<\/tr>\n<tr>\n<td width=\"104\"><code>scp<\/code><\/td>\n<td width=\"498\"><em>Secure copy<\/em><\/td>\n<\/tr>\n<tr>\n<td width=\"104\"><code>sftp<\/code><\/td>\n<td width=\"498\"><em>Secure File Transfer Protocol<\/em><\/td>\n<\/tr>\n<tr>\n<td width=\"104\"><code>rsync<\/code><\/td>\n<td width=\"498\">una eina r\u00e0pida, vers\u00e0til, remota (i local) de c\u00f2pia de fitxers<\/td>\n<\/tr>\n<tr>\n<td width=\"104\"><code>wget<\/code><\/td>\n<td width=\"498\">Podeu utilitzar-lo per recuperar contingut i fitxers de diversos servidors web<\/td>\n<\/tr>\n<tr>\n<td width=\"104\"><code>curl<\/code><\/td>\n<td width=\"498\">curl\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 L&#8217;URL del client (cURL) us permet intercanviar dades entre el dispositiu i un servidor a trav\u00e9s d&#8217;una interf\u00edcie de l\u00ednia d&#8217;ordres (CLI)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"tablefooter\"><p>Font: elaboraci\u00f3 pr\u00f2pia.<\/p>\n<\/div>\n<p>Per establir una sessi\u00f3 de treball cal con\u00e8ixer el nom de la m\u00e0quina remota o la seva adre\u00e7a IP. Tamb\u00e9 hem de disposar d\u2019un nom d\u2019usuari (en angl\u00e8s, <em>login name<\/em>) i d\u2019una contrasenya d\u2019acc\u00e9s (en angl\u00e8s, <em>password<\/em>).<\/p>\n<p>Una de les ordres m\u00e9s comunes per transferir arxius \u00e9s <code>scp<\/code> (<em>Secure Copy<\/em>). Aquesta ordre s\u2019utilitza per copiar arxius d\u2019un servidor a un altre utilitzant el protocol SSH. La sintaxi b\u00e0sica \u00e9s la seg\u00fcent:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ scp [opcions] origen dest\u00ed<\/pre>\n<p>Per exemple, si volem copiar l\u2019arxiu<em> arxiu.txt<\/em> de la carpeta origen del servidor remot a la nostra carpeta actual a la m\u00e0quina local, podem utilitzar l\u2019ordre seg\u00fcent:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ scp usuario@servidor-remoto:\/path\/al\/origen\/arxiu.txt .<\/pre>\n<p>El punt final en la l\u00ednia d\u2019ordre indica el directori actual de la m\u00e0quina local.<\/p>\n<p>Tamb\u00e9 existeix l\u2019ordre <code>sftp<\/code> (en angl\u00e8s, <em>Secure File Transfer Protocol<\/em>), que \u00e9s similar al client FTP per\u00f2 amb una capa de seguretat addicional a trav\u00e9s de SSH. Amb <em><code>sftp<\/code><\/em>, podem connectar-nos a un servidor remot i transferir arxius de manera segura. La sintaxi b\u00e0sica \u00e9s la seg\u00fcent:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ sftp usuario@servidor-remot<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">put seq\u00fcencia.fa repositori-seq\u00fcencies\/<\/pre>\n<p>Un cop connectats, podem utilitzar ordres com <code>put<\/code> per enviar arxius des de la nostra m\u00e0quina local al servidor remot, o <code>get<\/code> per descarregar arxius del servidor remot a la nostra m\u00e0quina local. En l\u2019exemple anterior, hem descrit com podem enviar l\u2019arxiu <em>seq\u00fc\u00e8ncia.fa<\/em> des de la nostra m\u00e0quina local a la carpeta repositori-seq\u00fc\u00e8ncies en el servidor remot.<\/p>\n<p>Una altra ordre \u00fatil \u00e9s <code>rsync<\/code>, que permet sincronitzar directoris i arxius entre dos sistemes. A m\u00e9s, <code>rsync<\/code> t\u00e9 la <em>capacitat<\/em> de transferir nom\u00e9s els arxius modificats, cosa que el fa ideal per fer c\u00f2pies de seguretat de manera eficient. La sintaxi b\u00e0sica de <code>rsync<\/code> \u00e9s la seg\u00fcent:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ rsync [opciones] origen dest\u00ed<\/pre>\n<p>Per exemple, si volem sincronitzar la carpeta <em>work-hib<\/em> del nostre equip local amb la carpeta <em>work<\/em> en un servidor remot, podem utilitzar l\u2019ordre seg\u00fcent:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ rsync -avz \/path\/a\/work-hib usuario@servidor-remoto:\/path\/a\/work<\/pre>\n<p>Una altra eina \u00fatil \u00e9s <code>wget<\/code>, que permet descarregar arxius des de servidors web fent \u00fas d&#8217;ordres de terminal. Aquesta ordre \u00e9s molt \u00fatil per descarregar dades de seq\u00fcenciaci\u00f3 de genomes complets o de grans bases de dades biol\u00f2giques, arxius des d\u2019internet i automatitzar el proc\u00e9s de desc\u00e0rrega. Es mostra a continuaci\u00f3 com descarregar la base de dades COSMIC (<em>Catalogue Of Somatic Mutations In Cancer<\/em>) utilitzant <code>wget<\/code><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ wget https:\/\/cancer.sanger.ac.uk\/cosmic\/file_download\/GRCh38\/cosmic\/v94\/CosmicCodingMuts.vcf.gz<\/pre>\n<p>Aquesta ordre descarrega l\u2019arxiu <em>CosmicCodingMuts.vcf.gz<\/em> de la p\u00e0gina web del projecte COSMIC. Aquest arxiu cont\u00e9 les mutacions som\u00e0tiques trobades en la seq\u00fcenciaci\u00f3 d\u2019ADN de tumors de c\u00e0ncer. Un cop descarregat, el podeu eliminar, ja que no en farem res d&#8217;aquest arxiu.<\/p>\n<p>Finalment, una altra eina \u00fatil \u00e9s <code>curl<\/code>, que tamb\u00e9 permet descarregar arxius des de servidors web i transferir arxius des d\u2019un terminal. La principal difer\u00e8ncia entre <code>wget<\/code> i <code>curl<\/code> \u00e9s que <code>curl<\/code> \u00e9s m\u00e9s vers\u00e0til i permet transferir arxius mitjan\u00e7ant una gran varietat de protocols, incloent-hi FTP, FTPS, HTTP, HTTPS, SCP i SFTP.<\/p>\n<p>En resum, la transfer\u00e8ncia d\u2019arxius des d\u2019un terminal \u00e9s una tasca fonamental per als administradors de sistemes i desenvolupadors que treballen amb servidors remots. Les ordres <code>scp<\/code><em>, <\/em><code>rsync<\/code> i <code>sftp<\/code> s\u00f3n algunes de les eines m\u00e9s comunes i \u00fatils per transferir arxius de manera segura i eficient.<\/p>\n<p>Hi ha una ordre que ajuda a esbrinar l\u2019espai disponible d\u2019un disc, l\u2019ordre df (<em>disk free<\/em>), i una altra per esbrinar l\u2019espai ocupat per una carpeta, l\u2019ordre du (<em>disk use<\/em>). Analitzem un parell d\u2019exemples per veure el seu funcionament.<\/p>\n<ul>\n<li><code>df<\/code><\/li>\n<\/ul>\n<p>Espai disponible en disc. Aix\u00f2 ens retornar\u00e0 les particions muntades, l\u2019\u00fas d\u2019espai en cadascuna i el que ens queda de resta, i tot de forma f\u00e0cil per llegir, sobretot perqu\u00e8 s\u2019hi afegeix l\u2019opci\u00f3<em> -h<\/em><em>,<\/em> que significa <em>human-readable<\/em> (en catal\u00e0, <em>humanament llegible<\/em>).<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ df -h<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">Filesystem\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Size\u00a0\u00a0\u00a0\u00a0\u00a0 Used \u00a0\u00a0\u00a0\u00a0 Available \u00a0 Use% \u00a0\u00a0  Mounted on\r\n\r\nudev\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0959M\u00a0\u00a0\u00a0\u00a0  0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 959M\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a00% \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/dev\r\n\r\ntmpfs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0199M\u00a0     1,4M\u00a0\u00a0\u00a0\u00a0  197M\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a01% \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/run\r\n\r\n\/dev\/sda5\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a020G\u00a0\u00a0 \u00a0   16G\u00a0\u00a0 \u00a0\u00a0 \u00a02,9G\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a085% \u00a0\u00a0\u00a0\u00a0 \/\r\n\r\ntmpfs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0991M\u00a0\u00a0\u00a0\u00a0  0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 991M\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a00% \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/dev\/shm\r\n\r\ntmpfs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0 5,0M\u00a0 \u00a0   4,0K\u00a0\u00a0 \u00a0\u00a0 5,0M\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a01% \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/run\/lock\r\n\r\ntmpfs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0991M\u00a0\u00a0\u00a0\u00a0  0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 991M\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a00% \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/sys\/fs\/cgroup\r\n\r\n\/dev\/loop1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a064M\u00a0\u00a0     64M\u00a0\u00a0\u00a0\u00a0   0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0100% \u00a0\u00a0  \/snap\/core20\/1852<\/pre>\n<ul>\n<li><code>du<\/code><\/li>\n<\/ul>\n<p>Mida total d\u2019una carpeta. \u00das de disc. Mostra l\u2019espai que est\u00e0 ocupat en disc. Aquesta ordre t\u00e9 diverses opcions i les m\u00e9s utilitzades s\u00f3n les opcions <em>-b<\/em> (-<em>bytes<\/em>);<em> -s<\/em> (<em>sumarize<\/em>; en catal\u00e0, <em>en resum<\/em>), <em>-h<\/em> (-<em>human-readable<\/em>; en catal\u00e0,<em> humanament llegible<\/em>), que imprimeix les mides de forma llegible, quan agreguem la mida dels arxius en kb, mb, gb; i, finalment, l\u2019ordre <em>-c<\/em>, que emprarem per mostrar el total de l\u2019espai consumit, al final de la llista.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ du -hs * | sort -nr | head -5<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">204M\u00a0\u00a0 fasta_sequences\r\n\r\n45M\u00a0\u00a0\u00a0\u00a0Escriptori\r\n\r\n12G\u00a0\u00a0\u00a0\u00a0hg38\r\n\r\n12M\u00a0\u00a0\u00a0\u00a0Work\r\n\r\n4,0K\u00a0\u00a0\u00a0Videos<\/pre>\n<p>Amb aquest exemple, es visualitzen els 5 directoris m\u00e9s pesants en el nostre \/home\/student utilitzant l\u2019ordre <em>du<\/em>, aix\u00ed com <em>sort<\/em> per ordenar i <em>head<\/em> per visualitzar \u00fanicament alguns dels directoris de la carpeta.<\/p>\n<p>I finalment s\u2019esmenten ordres amb les quals s\u2019obt\u00e9 informaci\u00f3 del sistema, com s\u00f3n <code>uname<\/code><em>, <\/em><code>hostname<\/code> y <code>host<\/code>.<\/p>\n<ul>\n<li><code>uname<\/code><\/li>\n<\/ul>\n<p>L\u2019ordre <code>uname<\/code> (<em>unix name<\/em>). Ofereix informaci\u00f3 sobre Kernel del sistema, informaci\u00f3 sobre el tipus de Linux en el qual estem. Teclegeu en el terminal:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$\u00a0 uname<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\"> Linux<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ uname -a<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">Linux ubuntum0151 5.15.0-71-generic #78~20.04.1-Ubuntu SMP Wed Apr 19 11:26:48 UTC 2023 x86_64 x86_64 x86_64 GNU\/Linux<\/pre>\n<ul>\n<li><code>hostname<\/code><\/li>\n<\/ul>\n<p>L\u2019ordre <code>hostname<\/code> s\u2019utilitza per identificar de forma \u00fanica un ordinador en una xarxa i s\u2019utilitza per accedir-hi i permetre que altres ordinadors de la xarxa s\u2019hi comuniquin. El <code>hostname<\/code> pot ser un nom descriptiu o un nom \u00fanic assignat pel sistema operatiu de l\u2019ordinador o servidor. Per exemple, el <code>hostname<\/code> d\u2019un servidor web podria ser <em>webserver.exemple.com<\/em>, on <em>webserver<\/em> \u00e9s el nom de l\u2019ordinador, <em>exemple<\/em> \u00e9s el nom del domini i <em>com<\/em> \u00e9s el domini de nivell superior. Si teclegeu <em>hostname<\/em> al vostre terminal s\u2019obt\u00e9:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ hostname -f<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">ubuntum0151<\/pre>\n<p>sent ubuntum0151 el hostname de la m\u00e0quina virtual que heu instal\u00b7lat.<\/p>\n<ul>\n<li><code>host<\/code><\/li>\n<\/ul>\n<p>L\u2019ordre <code>host<\/code> determina l\u2019IP d\u2019HOST, i en el context de la inform\u00e0tica, <code>host<\/code> es refereix a un servidor o ordinador que allotja i ofereix serveis o recursos a altres ordinadors connectats en una xarxa. Si s\u2019escriu <code>host -a<\/code> es desplega tota la informaci\u00f3 de DNS.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ host ubuntum0151<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">ubuntum0151 has address 10.0.2.15\r\nubuntum0151 has address 172.17.0.1\r\nubuntum0151 has IPv6 address fe80::1cc6:9af7:249f:6c5e<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\"> $ host -a ubuntum0151<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">host -a ubuntum0151\r\n\r\nTrying \"ubuntum0151\"\r\n\r\n;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 27128\r\n\r\n;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0\r\n\r\n\r\n;; QUESTION SECTION:\r\n\r\n;ubuntum0151.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 IN\u00a0\u00a0 ANY\r\n\r\n\r\nReceived 29 bytes from 127.0.0.53#53 in 188 ms<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>La transfer\u00e8ncia d\u2019arxius des d\u2019un terminal \u00e9s una tasca fonamental per als administradors de sistemes i desenvolupadors que treballen amb servidors remots. Tot i que hi ha moltes eines gr\u00e0fiques per transferir arxius, les opcions de la l\u00ednia d\u2019ordres s\u00f3n molt \u00fatils per a l\u2019automatitzaci\u00f3 i el maneig de grans quantitats de dades. Exemples de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"acf":[],"_links":{"self":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/wp-json\/wp\/v2\/pages\/770"}],"collection":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/wp-json\/wp\/v2\/comments?post=770"}],"version-history":[{"count":11,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/wp-json\/wp\/v2\/pages\/770\/revisions"}],"predecessor-version":[{"id":1262,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/wp-json\/wp\/v2\/pages\/770\/revisions\/1262"}],"wp:attachment":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/wp-json\/wp\/v2\/media?parent=770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}