Vraag Verschillen tussen / bin, / sbin, / usr / bin, / usr / sbin, / usr / local / bin, / usr / local / sbin


Ik heb zes mappen met opdrachtbestanden. Dit zijn /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin en /usr/local/sbin.

Wat zijn de verschillen tussen deze? Als ik mijn eigen scripts schrijf, waar moet ik ze dan toevoegen?


Verwant:


221
2018-06-14 07:13


oorsprong


Gerelateerde vraag: unix.stackexchange.com/questions/8656/... - Gabriel Staples
@Keelan Je vraag staat dicht bij een vraag die ik een jaar geleden heb geplaatst: askubuntu.com/questions/830074/... - WinEunuuchs2Unix


antwoorden:


Raadpleeg de Filesystem Hierarchy Standard (FHS) voor Linux voor deze.

  • /bin : Voor binaries bruikbaar vóór de /usr partitie is gemount. Dit wordt gebruikt voor triviale binaire bestanden die worden gebruikt in de zeer vroege opstartfase of die u beschikbaar moet hebben bij het opstarten van de modus voor één gebruiker. Denk aan binaries zoals cat, ls, enz.

  • /sbin  : Hetzelfde, maar voor binaries met superuser (root) rechten vereist.

  • /usr/bin : Hetzelfde als eerst, maar voor algemene systeembrede binaries.

  • /usr/sbin : Hetzelfde als hierboven, maar voor binaire bestanden met vereiste superuser (root) -rechten.


als ik mijn eigen scripts schrijf, waar moet ik deze dan toevoegen?

Geen van de bovengenoemde. Je zou ... moeten gebruiken /usr/local/bin of /usr/local/sbin voor systeembreed beschikbare scripts. De local path betekent dat het niet wordt beheerd door de systeempakketten (dit is een fout voor Debian / Ubuntu-pakketten).

Voor scripts die door gebruikers zijn geschreven, gebruik ~/bin (een persoonlijke bin-map in uw thuismap).

De FHS zegt voor /usr/local:

Tertiaire hiërarchie voor lokale gegevens, specifiek voor deze host. Typisch heeft verder subdirectories, bijv. bin/, lib/, share/.


291
2018-06-14 07:17



dus / bin is waar alle kernbestanden zijn geïnstalleerd. zoals ls, cat, pwd, etc? Dus, / usr / bin is waar door de gebruiker geïnstalleerde apps zijn? wat zijn enkele voorbeelden van wat in / usr / bin zou moeten zijn? - Patoshi パトシ
Brengt scripts in /bin problemen veroorzaken? Ik heb mijn scripts verplaatst op basis van je antwoord, maar ik ben nog steeds nieuwsgierig - Rumesh
@RumeshSudhaharan dat moet je niet doen, omdat het wordt beheerd door het pakketbeheer. Als een ander pakket ook dat pad wil gebruiken, zal het uw bestand overschrijven. Bestanden in pakketten kunnen elkaar nooit overlappen (tenminste voor officiële repositories), dus je bent veiliger bij installatie op het lokale pad. Het is ook alleen voor uw eigen gemak en veiligheid. In een lokaal pad kun je het systeem niet op zo'n slechte manier verknoeien en je kunt niet per ongeluk een systeembinair bestand vervangen. - gertvdijk
Ik vind de uitleg op de foutpagina leuk: Severity:Serious Certainty:Certain - cutrightjm
Ik heb een aantal bestanden in / usr / local / bin geplaatst en ik kan ze uitvoeren, maar ik kan ze niet bewerken, ls -la toont niets - M. Reza Nasirloo


Ik had een soortgelijke vraag mezelf een jaar + geleden: Beste map om mijn bash-scripts te plaatsen?

Systeemmappen voor binaire bestanden

man hier (hiërarchie) geeft een lijst met alle mappen. Om degenen alleen voor binaire bestanden te krijgen, gebruik je:

$ man hier | grep -E 'bin$|sbin$|^.{7}(/bin)|^.{7}(/sbin)' -A2

       /bin   This directory contains executable programs which are needed in single user
              mode and to bring the system up or repair it.

--
       /sbin  Like  /bin,  this  directory  holds commands needed to boot the system, but
              which are usually not executed by normal users.

--
       /usr/X11R6/bin
              Binaries  which  belong  to the X-Window system; often, there is a symbolic
              link from the more traditional /usr/bin/X11 to here.
--
       /usr/bin
              This  is the primary directory for executable programs.  Most programs exe‐
              cuted by normal users which are not needed for booting or for repairing the
--
       /usr/local/bin
              Binaries for programs local to the site.

--
       /usr/local/sbin
              Locally installed programs for system administration.

--
       /usr/sbin
              This directory contains program binaries for  system  administration  which
              are  not  essential  for the boot process, for mounting /usr, or for system

Waar plaats je je eigen scripts?

Voor alle gebruikers om toegang te krijgen tot uw scripts, kunt u ze invoegen /usr/local/bin. Houd in gedachten dat je nodig hebt sudo toegang om hier bestanden toe te voegen / wijzigen. Zien: Is er een standaardlocatie voor het plaatsen van aangepaste Linux-scripts?

Voor uw eigen gebruikers-ID-scripts zet ze in /home/YOUR_NAME/bin. Houd er rekening mee dat u deze map eerst moet maken en de terminal opnieuw moet starten om het pad automatisch in te stellen ~/.profile. Zien: Hoe kan ik / home / gebruikersnaam / bin toevoegen aan $ PATH?


Wat ik weet, weet ik niet

Ik overweeg om enkele van mijn meer complexe bash-scripts in te nemen Vraag het Ubuntu en ze instellen met installatiescripts op github. Hier zijn enkele voorbeelden:

ik denken de scripts moeten worden geïnstalleerd /usr/bin wat in de $ PATH staat, maar ik weet het nog niet zeker op de juiste plaats.


3
2018-06-11 23:44



Ik waardeer je inspanning, maar behalve het gedeelte "Wat ik weet dat ik niet weet", herhaalde je het antwoord van gertvdijk. - danzel
@danzel Ik denk dat het belangrijkste deel het is man hier sectie waarop het antwoord van gertvdijk geen antwoord gaf. dat wil zeggen dat u de hiërarchische structuur van de directory op de opdrachtregel kunt krijgen zonder dat u deze hoeft te lezen op het web (dus hier). - WinEunuuchs2Unix
dat is interessante informatie, daar ben ik het mee eens. Maar gertvdijk noemde al de Filesystem Hierarchy Standard (die man hier is een informatief onvoldoende fragment van IMO). Dit kan echter mijn persoonlijke mening zijn. - danzel
@danzel Ik ben het ermee eens dat websites veel meer diepgaande analyses bevatten dan wat er op onze harde schijven staat. Ik probeer alleen maar te wijzen op de informatie op onze harde schijven zonder gebruik te maken van internet. Behalve de geciteerde wikipedia-link is missend  /usr/X11R6/bin en /usr/local/bin die is opgenomen in man heir. - WinEunuuchs2Unix