Résumé des techniques de commande Linux que je connaissais quand j'étais un ingénieur débutant

introduction

Quand je suis entré en scène pour la première fois, j'ai été frappé par l'écran noir du terminal, mais c'est maintenant le temps le plus long que je regarde.

Cela fait un an et demi que j'ai commencé à programmer, et j'ai résumé les techniques de commande basées sur Linux que j'utilise presque tous les jours!

Si cela est supprimé, les jeunes ingénieurs devraient pouvoir survivre même s'ils sont jetés sur le terrain pour le moment!

Résumé de la commande

ls Abréviation de «liste». Il affichera les fichiers et dossiers sous le répertoire où vous avez tapé la commande.

Exemple d'utilisation de ls

> ls

pwd Abréviation de «imprimer le répertoire de travail». Il montre l'emplacement du répertoire actuel.

Exemple d'utilisation de pwd

> pwd

→ /Users/hoge/path

cd Abréviation de «changer de répertoire». Vous pouvez déplacer le répertoire. Vous pouvez vous déplacer vers le répertoire personnel en tapant cd sans rien ajouter, et vers le répertoire précédent en tapant cd -.

Exemple d'utilisation de cd

> cd path/to/hoge
→ Déplacer vers le répertoire hoge

mv Abréviation de «move». Vous pouvez déplacer des fichiers et des répertoires. J'utilise également ceci lorsque je souhaite renommer un fichier.

Exemple d'utilisation de mv

Déplacer des fichiers. hoge.txt certains_Déplacer vers le répertoire
> mv hoge.txt some_directory

Renommez le fichier. hoge.txt en fuga.Renommer en txt
> mv hoge.txt fuga.txt

cp Abréviation de «copie». cp 1er argument 2ème argument copie le fichier du 1er argument dans 2ème argument.

Exemple d'utilisation de cp

hoge.txt certains_fuga dans le répertoire.Copier avec le nom txt
> cp hoge.txt some_directory/fuga.txt

find Comme son nom l'indique, il s'agit d'une commande pour rechercher des fichiers et des répertoires. C'est un peu compliqué et difficile, mais c'est très pratique quand on s'y habitue.

Cas d'utilisation de la recherche

L'extension est`md`Recherchez le fichier dans le répertoire actuel
(Si vous l'exécutez dans le répertoire racine, tous les répertoires seront recherchés, les résultats de la recherche seront donc moche.)

> find . -name "*.md"

grep Abréviation de «Impression d'expression régulière globale». Il s'agit d'une commande qui lit un fichier dans le répertoire sous la commande et recherche du texte.

exemple d'utilisation de grep

> grep hoge

→
hoge.md
17:hogehoge/fugafuga

fuga.md
25:→ /Users/hoge/path
33:> cd path/to/hoge
34:→ Déplacer vers le répertoire hoge

hogefuga.md
27:/Users/hoge

Au fait, il existe une version évoluée (une variante?) De grep appelée ripgrep, et ripgrep est extrêmement plus rapide, donc je recommande ceci.

ripgrep

cat Abréviation de «concaténer». Je ne suis pas un chat. Vous pouvez parcourir le contenu du fichier spécifié.

Exemple d'utilisation de chat

> cat hoge.txt

→
hogehogehogeho
hogehogehogeho
hogehogehogeho

more Vous pouvez parcourir le contenu du fichier spécifié. Contrairement à cat, le contenu du fichier est affiché petit à petit, il est donc pratique à utiliser lorsqu'il y a beaucoup de lignes dans le fichier. Après avoir tapé plus, appuyez sur q pour revenir à l'écran d'origine.

plus d'exemple d'utilisation

> more hoge.txt

less C'est une commande comme une version évoluée de «more». Cette fois, j'ai introduit à la fois «plus» et «moins», mais en gros, ce n'est pas grave si vous ne pouvez utiliser qu'un seul d'entre eux!

Si vous appuyez sur la commande comme more, il passera en mode navigation et appuyez sur q pour revenir à l'écran d'origine.

L'article ci-dessous est également utile, alors assurez-vous de le consulter.

11 conseils de commande en moins que les ingénieurs devraient connaître

Exemple d'utilisation de less

> less hoge.txt

head Seule la ligne ○ du haut du fichier spécifié est affichée. Si vous spécifiez head -10 et le nombre, vous pouvez faire quelque chose comme ** 10 lignes ** à partir du haut du fichier.

Exemple d'utilisation de la tête

head -10 hoge.txt

→
(hoge.Les 10 premières lignes de txt sont affichées)

tail À l'opposé de «head», le fichier spécifié n'est affiché que dans la ligne ○ à partir du bas. Comme pour head, si vous spécifiez tail -10 et le nombre, vous ne pouvez afficher que ** 10 lignes ** à partir du bas du fichier.

Exemple d'utilisation de la queue

tail -10 fuga.txt

→
(fuga.Les 10 dernières lignes de txt sont affichées)

echo Lorsqu'un argument est appliqué, le contenu de cet argument est affiché. C'est une commande que vous voyez souvent lors de la création d'un environnement.

Exemple d'utilisation de l'écho

> echo $PATH

→
/Users/sukebeeeeei/.tfenv/bin:/Users/sukebeeeeei/node_modules:/Users/sukebeeeeei/.nodenv/bin:/Users/sukebeeeeei/.nodenv/shims:/usr/local/opt/[email protected]/bin:/Users/sukebeeeeei/go/bin:/Users/sukebeeeeei/.goenv/shims:/Users/sukebeeeeei/.goenv/bin:/Users/sukebeeeeei/.pyenv/shims:/Users/sukebeeeeei/.pyenv/bin:/Users/sukebeeeeei/.rbenv/shims:/Users/sukebeeeeei/.rbenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/go/bin:/opt/X11/bin:/usr/local/texlive/2018/bin/x86_64-darwin/:/Users/sukebeeeeei/dotfiles

(PATH s'affiche)

touch Met à jour l'horodatage du fichier à l'heure actuelle. Si le fichier n'existe pas, créez un fichier vide. Pourquoi s'appelle-t-il «touch»? S'il vous plaît, faites-moi savoir.

utiliser un exemple de toucher

# hoge.Si vous avez txt
> touch hoge.txt

→
(L'horodatage du fichier est mis à jour)

# hoge.S'il n'y a pas de txt
> touch hoge.txt

→
(Hoge avec un contenu vide.txt sera créé)

vi ・ vim

Vous pouvez ouvrir vi ・ vim. Il est utilisé lorsqu'il est difficile d'ouvrir un éditeur tel que ** vscode ou atom **.

Après cela, si vous faites vim hoge.txt, il générera un fichier si hoge.txt n'existe pas, donc

--Créer un fichier

Dans ce cas, c'est une commande fréquente. En ce qui concerne vi et vim, tous les ingénieurs doivent maîtriser les commandes de base, donc si vous ne l'avez jamais utilisé, veuillez vous entraîner à ce stade.

Cours Vim à partir de la connaissance 0

Exemple d'utilisation de vi / vim

> vim hoge.txt

mkdir Abréviation de ** make directory **. Comme son nom l'indique, il s'agit d'une commande pour créer un répertoire.

Exemple d'utilisation de mkdir

> mkdir hoge

→
(le répertoire hoge est créé)

rm Abréviation de «supprimer». Cette commande permet de supprimer un fichier. Si vous faites une erreur en l'utilisant, il sera ** ruiné **, veuillez donc l'utiliser systématiquement.

rm ~ Supprimer les répertoires et les fichiers

Exemple d'utilisation de rm

> rm hoge.txt

→
hoge.txt sera supprimé

rmdir Abréviation de «supprimer le répertoire». Cette commande est utilisée pour supprimer un répertoire. Vous ne pouvez effacer que les répertoires vides. Donc je l'utilise rarement w (comme présenté dans cet article)

Si vous voulez effacer le répertoire dans lequel se trouve le fichier, vous utiliserez probablement > rm -rf hoge_directory.

Exemple d'utilisation de rmdir

> rmdir hoge_empty_directory

→
(hoge_empty_Supprimer le répertoire)

ln Abréviation de «lien». Vous pouvez créer des liens symboliques. Qu'est-ce qu'un lien symbolique? Veuillez vous référer à l'article suivant pour ceux qui disent.

Comment définir un lien symbolique

Exemple d'utilisation de ln

> ln -s ~/dotfiles/vimrc/_vimrc ~/.vimrc

man Abréviation de «manuel». Il s'agit d'une commande (déroutante) qui affiche une description de la commande. ** "Ah, comment utilisez-vous cette commande?" ** ou ** "Quelles sont les options pour cette commande?" **.

Exemple d'utilisation de l'homme

> man ls

→
(Les instructions pour la commande ls apparaîtront)

sudo Abréviation de «superuser do». Je le lis souvent comme ** Sudu ** ou ** M. Sudo **.

Utilisez cette option lorsque vous souhaitez exécuter des commandes avec des privilèges d'administrateur. Si vous ajoutez sudo, le mot de passe vous sera demandé après avoir appuyé sur la commande, alors entrez-le pour exécuter la commande.

Exemple d'utilisation de sudo

> sudo vim hoge.txt

→Password:
(Entrez le mot de passe et appuyez sur Entrée pour exécuter la commande)

history Comme son nom l'indique, l'historique des commandes que vous avez saisies jusqu'à présent s'affiche.

exemple d'utilisation de l'histoire

> history

→
...
11879 less must_cover_linux_commands.md
11880 tail must_cover_linux_commands.md
11881 more must_cover_linux_commands.md
11882 head must_cover_linux_commands.md
11883 more must_cover_linux_commands.md -n 100
11884 more must_cover_linux_commands.md -n 3
...

Collection de techniques pratique

Voici quelques techniques qui ** font de grands progrès ** lorsque vous travaillez avec la ligne de commande. C'est une évidence pour ceux qui le savent, mais tout le monde ne le sait pas. Je l'ai appris pour la première fois quelques mois après mon entrée sur le site, et quand je l'ai appris pour la première fois, j'ai été très impressionné.

“< > >>” Je pense qu'il est plus facile de comprendre si vous donnez un exemple plutôt que de l'expliquer, donc si vous utilisez un exemple de référence.

> ruby calculate.rb < input_data.txt
(calculate.Exécuter rb et entrer comme données_data.Spécifiez txt)

> ruby calculate.rb > output_data.txt
(calculate.Exécuter rb et afficher le résultat de sortie_data.Sortie vers txt. production_data.Si txt n'existe pas, le fichier sera créé sans autorisation. production_data.Si txt existe, le contenu du fichier sera écrasé par le résultat de sortie)

> ruby calculate.rb >> output_data.txt
(cdalculate.Exécuter rb et afficher le résultat de sortie_data.Ajoutez-le à la fin de txt.> output_data.Contrairement à txt, le fait est que le contenu du fichier n'est pas écrasé)

> ruby calculate.rb < input_data.txt > output_data.txt
(<Quand>,et>>は組み合わせるこQuandができます。↑では、calculate.Exécuter rb et saisir les données utilisées pour l'exécution_data.Afficher le contenu de txt et le résultat de l'exécution_data.Sortie vers txt)

pipe (|) Vous pouvez connecter des commandes entre elles. ** Je l'utilise beaucoup. ** **

> cat hoge.txt | grep fuga
(hoge.Trouvez l'emplacement dans txt qui contient la chaîne fuga)

(), `` Il exécute la commande entre les parenthèses de « ()» et renvoie le résultat. Cependant, je ne pense pas que cela seul ait un sens, alors je vais vous donner un exemple.

> cat $(ls)

(Premier$(ls)Est exécuté et le résultat est l'argument de cat. En conséquence, tout le contenu des fichiers sous le répertoire où la commande ↑ est exécutée est affiché. )

Expressions régulières

Par exemple, la commande grep vous permet d'utiliser des expressions régulières telles que *, + et .. Au lieu de cela, grep est à l'origine une abréviation de «Global regular expression print», il est donc naturel que des expressions régulières puissent être utilisées.

«» et «+» sont des répétitions du même caractère ( contient des caractères vides, tandis que + est un ou plusieurs caractères). . Est-ce un caractère arbitraire, n'est-ce pas?

> grep .*hoge

(Rechercher des phrases contenant hoge)

Essayez de combiner commandes et techniques

Maintenant, combinons les commandes et les techniques introduites jusqu'à présent!

Wow, quand était cette commande?

Vous pouvez rechercher des commandes passées avec ctrl + r, mais vous pouvez faire de même avec la commande ↓.

> history | grep command_name

(Pour mac) Je souhaite connaître le nom des derniers fichiers ○ en téléchargement

> ls -lat ~/Downloads | head -10
total 3408200
drwxr-xr-x+ 112 keisuke  staff       3584  1 18 21:49 ..
drwx------@ 569 keisuke  staff      18208  1 18 18:54 .
-rw-r--r--@   1 keisuke  staff      65540  1 18 18:54 .DS_Store
-rw-r--r--@   1 keisuke  staff     254894  1 18 18:54 finished.zip
-rw-r--r--@   1 keisuke  staff       1692  1 17 22:53 dupSSHkey.pem
-rw-r--r--@   1 keisuke  staff     128909  1 13 10:19 assignment-2-problem.zip
-rw-r--r--@   1 keisuke  staff     129247  1 12 11:43 01-start.zip
-rw-r--r--@   1 keisuke  staff      26651  1 12 11:43 learning-card.pdf
-rw-r--r--@   1 keisuke  staff     236506  1 12 11:25 forms-03-finished.zip

Quand vous voulez voir le journal

tail -f log/development.log

Cette commande est utilisée lorsque vous souhaitez voir le journal. Lors de l'écriture de Rails, j'appuie généralement sur cette commande pour allouer un panneau de terminaux pour vérifier les journaux.

Lorsque vous souhaitez détecter uniquement une chaîne de caractères spécifique dans le journal

tail -f log/development.log | grep "La chaîne de caractères que vous souhaitez rechercher"

Ou

cat log/development.log | grep "La chaîne de caractères que vous souhaitez rechercher"

J'utilise cette commande lorsque je souhaite effectuer un débogage d'impression.

Je veux insérer une chaîne dans .zshrc (ou .bashrc)

C'est une commande que vous voyez souvent lors de la création d'un environnement. La commande consiste à afficher le contenu de '' avec echo et à insérer le résultat de sortie dans ~ / .zshrc.

echo 'export PATH=">HOME/.nodenv/bin:>PATH"' >> ~/.zshrc

Je souhaite connaître un ID de processus spécifique

Cette commande vérifie si un processus appelé grep est en cours d'exécution.

> ps aux | grep grep
sukebeeeeei          80328   0.0  0.0  4268280    656 s012  S+    9:52PM   0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn grep

Lorsque vous souhaitez lister les fichiers dans le répertoire deux ci-dessous

Supposons que vous ayez un répertoire avec une structure comme ↓ (le répertoire où les articles à télécharger sur mon Qiita sont enregistrés)
>  qiita-outputs git:(master) ✗ tree
.
├── README.md
├── alfred_techniques.md
├── articles
│   └── nukistagram_release.md
├── english_acronym.md
├── env_and_env_fetch
│   └── sample.rb
├── favorite_english_site.md
├── must_cover_linux_commands.md
├── must_gem_list.md
├── path_understanding.md
├── peco_intro.md
├── really_good_software.md
└── software_engineer_general_knowlegde.md

2 directories, 12 files

(Essayez d'utiliser des expressions régulières. Vous pouvez voir la structure du répertoire sur plusieurs couches)
>  qiita-outputs git:(master) ✗ ls *
README.md                              must_gem_list.md
alfred_techniques.md                   path_understanding.md
english_acronym.md                     peco_intro.md
favorite_english_site.md               really_good_software.md
must_cover_linux_commands.md           software_engineer_general_knowlegde.md

articles:
nukistagram_release.md

env_and_env_fetch:
sample.rb

(Vérifiez les fichiers dans le répertoire deux ci-dessous)
>  qiita-outputs git:(master) ✗ ls */*
articles/nukistagram_release.md env_and_env_fetch/sample.rb

Je veux voir uniquement les 10 premières lignes du résultat de sortie

> ls */* | head -10

Puisque le résultat de sortie sera long, je voudrais en vérifier une partie

> ls */* | less

Lorsque vous souhaitez effacer toutes les images du docker

> docker rmi $(docker images -q)

Ou

> docker rmi `docker images -q`

Vous pouvez voir une liste d'images docker dans images docker. En ajoutant -q comme option, seul l'ID de l'image sera affiché.

Traitez-le d'abord avec $ (docker images -q) et exécutez docker rmi sur la valeur de retour. (Rmi: supprimer l'image)

Pour votre information. Si vous voulez voir seulement les 5 premières des images du menu fixe.

> ~ docker images | head -5
REPOSITORY                                      TAG                          IMAGE ID            CREATED             SIZE
<none>                                          <none>                       8769696a985d        4 days ago          910MB
<none>                                          <none>                       694f9395f0e7        4 days ago          1.04GB
<none>                                          <none>                       8ff2255c3c50        4 days ago          995MB
<none>                                          <none>                       a1457d2c753d        2 weeks ago         995MB
<none>                                          <none>                       788141cacfc5        2 weeks ago         998MB

Lorsque vous voulez voir uniquement les 5 premiers ID d'image des images docker

>  ~ docker images -q | head -5
8769696a985d
694f9395f0e7
8ff2255c3c50
a1457d2c753d
788141cacfc5

Sortie des résultats de la recherche grep dans un fichier

> grep hoge > hoge_search_result.txt

Je souhaite remplacer le texte de sortie et l'afficher

La commande sed (abréviation de stream editor) vous permet de remplacer du texte et de faire beaucoup de choses techniques et intéressantes.

> echo abcabc | sed s/ca/12/g

→ ab12bc

Lorsque vous voulez connaître le contenu des lignes avant et après le match avec grep

grep -Vous pouvez également afficher n lignes avant et après le match avec C n

> grep -C 3 "search_word" search_file

Lorsque vous souhaitez connaître le contenu d'une option d'une certaine commande

Par exemple, supposons que vous souhaitiez savoir comment gérer les expressions régulières avec la commande find et si vous souhaitez ajouter des options. Dans un tel cas, ceci.

Afficher un manuel sur la commande find, et dans ce manuel"regular expression"Afficher la partie qui correspond avec, y compris les 3 lignes avant et après

> man find | grep -C 3 "regular expression"

     The options are as follows:

     -E      Interpret regular expressions followed by -regex and -iregex pri-
             maries as extended (modern) regular expressions rather than basic
             regular expressions (BRE's).  The re_format(7) manual page fully
             describes both formats.

     -H      Cause the file information and file type (see stat(2)) returned
--
--
     -regex pattern
             True if the whole path of the file matches pattern using regular
             expression.  To match a file named ``./foo/xyzzy'', you can use
             the regular expression ``.*/[xyz]*'' or ``.*/foo/.*'', but not
             ``xyzzy'' or ``/foo/''.

     -samefile name

finalement

Les commandes et techniques présentées ci-dessus sont également ** plus puissantes lorsqu'elles sont combinées avec des scripts shell et des alias, mais j'ai abandonné car elles s'écartaient de cet article **. Si cet article bourdonne, j'aimerais écrire un article qui explique le domaine.

Si vous avez des conseils utiles comme "Wai utilise cette commande!", Veuillez commenter! Veuillez signaler toute erreur ou erreur typographique!

Publicité

Je bourdonne donc je vais mettre une publicité soudain C'est un article que j'ai écrit avec beaucoup d'énergie. C'est un travail sûr de lui, alors lisez-le!

[Apprendre l'anglais] Présentation de 5 Youtubers de programmation intéressants et étudiant de l'étranger et d'autres vidéos recommandées de pays anglophones!

[Efficacité du travail] Résumé du logiciel MacOS que j'utilise personnellement même si je le facture car il est trop excellent [5 sélections]

L'histoire selon laquelle le fonctionnement du terminal a été considérablement simplifié à l'aide de peco

Les références

Les commandes Linux deviennent familières lorsque vous comprenez la signification des mots

Nouveau manuel Linux

[[Essayez de comprendre] Fonctionnement de Linux - Connaissance de base du système d'exploitation et du matériel acquise grâce à des expériences et des illustrations](https://www.amazon.co.jp/gp/product/477419607X/ref=as_li_qf_asin_il_tl?ie=UTF8&tag= affiliate3203-22 & creative = 1211 & linkCode = as2 & creativeASIN = 477419607X & linkId = cd8945dcad25f265404e69f7ef8f0efb)

L'idée d'UNIX - son concept de conception et sa philosophie

prime

J'ai créé mon propre blog avec Gatsby.js. Je publierai divers articles! http://keisukee.com/

Recommended Posts

Résumé des techniques de commande Linux que je connaissais quand j'étais un ingénieur débutant
Un bref résumé de Linux
Une note à laquelle j'étais accro lors de l'émission d'un bip sous Linux
Résumé des petites techniques pour les commandes Linux
Connectez-vous lorsque je craignais de ne pas pouvoir me connecter au Wi-Fi sous Linux
[Linux] Liste de sélection d'origine des commandes pratique mais inconnue de manière inattendue
Une histoire à laquelle j'étais accro après la communication SFTP avec python
Linux Ubuntu16.04 J'ai eu une erreur effrayante lorsque j'ai exécuté une commande en utilisant sudo
Mémo d'apprentissage automatique d'un ingénieur débutant Partie 1
Mémo d'apprentissage automatique d'un ingénieur débutant Partie 2
[Commande Linux] Un mémorandum des commandes fréquemment utilisées
Résumé des commandes Linux
Une histoire qui était pratique lorsque j'ai essayé d'utiliser le module d'adresse IP python
Fonctionnement pratique du clavier Linux que je veux apprendre moi-même quand j'étais à l'école
[Linux] Liste des commandes Linux que les débutants devraient connaître
Résumé des commandes Linux (UNIX) fournies avec Progate
Un bref résumé du logiciel antivirus pour Linux personnel
Un résumé des choses que j'ai touchées comme un blog
Une histoire à laquelle j'étais accro chez np.where
Résumé des choses qui étaient pratiques lors de l'utilisation de pandas
Résumé des points à garder à l'esprit lors de l'écriture d'un programme qui s'exécute sur Python 2.5
Ce à quoi j'étais accro en traitant d'énormes fichiers dans un environnement Linux 32 bits
Mémo (mars 2020) auquel j'étais accro lors de l'installation d'Arch Linux sur MacBook Air 11'Early 2015
[Linux] Résumé des commandes de base
Une histoire qui a trébuché lorsque j'ai créé un bot de chat avec Transformer
Un programme polyvalent qui formate les chaînes de commande Linux avec python
Un résumé approximatif des différences entre Windows et Linux
[Python3] Liste des sites auxquels j'ai fait référence lorsque j'ai lancé Python