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!
ls Abréviation de «liste». Il affichera les fichiers et dossiers sous le répertoire où vous avez tapé la commande.
> ls
pwd Abréviation de «imprimer le répertoire de travail». Il montre l'emplacement du répertoire actuel.
> 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 -
.
> 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.
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
.
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.
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.
> 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.
cat Abréviation de «concaténer». Je ne suis pas un chat. Vous pouvez parcourir le contenu du fichier spécifié.
> 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.
> 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
> 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.
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.
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.
> 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.
# 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éé)
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
> 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.
> 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
> 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
.
> 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
> 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?" **.
> 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.
> 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.
> 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
...
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)
> 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é. )
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)
Maintenant, combinons les commandes et les techniques introduites jusqu'à présent!
Vous pouvez rechercher des commandes passées avec ctrl + r, mais vous pouvez faire de même avec la commande ↓.
> history | grep command_name
> 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
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.
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.
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
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
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
> ls */* | head -10
> ls */* | less
> 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
> grep hoge > hoge_search_result.txt
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
grep -Vous pouvez également afficher n lignes avant et après le match avec C n
> grep -C 3 "search_word" search_file
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
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!
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!
Les commandes Linux deviennent familières lorsque vous comprenez la signification des mots
[[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
J'ai créé mon propre blog avec Gatsby.js. Je publierai divers articles! http://keisukee.com/