Cet article vous apporte les connaissances de base du système d'exploitation Linux, y compris des connaissances sur l'environnement de développement du programme, les commandes courantes et les variables d'environnement. J'espère qu'il vous sera utile.
Linux est une implémentation de noyau de type UNIX librement redistribuable. C'est le cœur sous-jacent d'un système d'exploitation. Linux a été développé par Linus à l'Université d'Helsinki en Finlande, avec l'aide d'un grand nombre de programmeurs UNIX sur Internet. C'était à l'origine un programme inspiré du Minix de son professeur (un petit système de type UNIX). C'était purement un passe-temps personnel, mais il s'est ensuite progressivement développé pour devenir un système complet à part entière. Pour comprendre ce qu'est Linux, il faut d'abord comprendre. Systèmes et applications qui ont précédé Linux : logiciels UNIX et GNU.
1.1.1 Qu'est-ce qu'UNIX ?Il existe quelques styles et caractéristiques typiques du développement de programmes sous UNIX :
1) Simplicité : De nombreux outils UNIX utiles sont très simples. "Petit et simple" est une technique qui mérite d'être apprise. Les systèmes plus grands et plus complexes contiennent forcément des bogues plus gros et plus complexes.
2) Centralisation : Il vaut mieux qu'un programme exécute bien une tâche plutôt que d'empiler toutes les fonctions ensemble. Les programmes dotés de fonctionnalités surchargées sont difficiles à utiliser et à maintenir, et les programmes à objectif unique sont plus susceptibles d'être améliorés à mesure que de meilleurs algorithmes sont développés. Sous UNIX, lorsque de nouveaux besoins surviennent de la part des utilisateurs, nous combinons généralement de petits outils pour effectuer des tâches plus complexes, plutôt que d'essayer de regrouper toutes les fonctions attendues par un utilisateur dans un grand programme.
3) Composants réutilisables : Implémentez le cœur de l'application sous forme de bibliothèque. Les bibliothèques dotées d'interfaces de programmation simples et flexibles peuvent aider d'autres à développer des programmes similaires ou à appliquer ces techniques à de nouveaux domaines d'application.
1.1.2 Projet GNU et Free Software FoundationLa communauté Linux soutient le concept de logiciel libre, c'est-à-dire que le logiciel lui-même ne doit pas être restreint et qu'il est conforme à la licence publique générale (GPL) GNU (GNU est l'abréviation récursive de GNU's Not UNIX).
La Free Software Foundation a été fondée par Richard Stallman. Son objectif est d'essayer de créer un système d'exploitation et un environnement de développement compatibles avec les systèmes UNIX mais qui ne sont pas limités par les noms UNIX et les droits de confidentialité du code source.
Le projet GNU a fourni à la communauté logicielle de nombreuses imitations d'applications sur les systèmes UNIX. Par exemple, le fameux :
GCC : GNU Compiler Collection, qui inclut le compilateur GNU C.
G++ : compilateur G++, faisant partie de GCC.
GDB : débogueur au niveau du code source.
GNU make
bash : interpréteur de commandes (un type de shell)
Avec ces logiciels libres disponibles, couplés au noyau Linux, on peut dire : l'objectif de créer un système GNU, libre de type UNIX, a été atteint. via le système Linux. En raison des contributions apportées par les logiciels GNU, de nombreuses personnes appellent désormais le système Linux GNU/Linux.
1.2 Environnement de développement de programmesudo apt update
sudo apt install openssh-server
sudo apt update
sudo apt install openssh-server
sudo service ssh start
ip addr show
sudo service ssh start
🎜🎜🎜3) Utilisez la commande ip addr show
pour afficher l'ip du système Ubuntu🎜🎜🎜🎜🎜On peut voir que l'adresse IP actuelle d'Ubuntu est 192.168.176.148
Après avoir installé le serveur ssh sur Ubuntu, utilisez MobaXterm pour vous connecter sous le système Windows afin de tester si le serveur ssh fonctionne avec succès installé. Les étapes sont les suivantes :
Exécutez le logiciel Xterm et sélectionnez « Session », comme indiqué dans la figure ci-dessous :
Cliquez sur « SSH » et configurez-le, comme indiqué dans la figure ci-dessous :
Dans le Dans la boîte de dialogue, sélectionnez "Protocole" est "SSH", "nom d'hôte" est l'adresse IP d'Ubuntu et le nom d'utilisateur est le nom d'utilisateur actuel. Utilisez la valeur par défaut de 22 pour le numéro de port. Une fois les paramètres terminés, cliquez sur "OK" et le terminal de ligne de commande suivant apparaîtra, indiquant que le système Ubuntu de la machine virtuelle a été connecté.
Par cette méthode, après avoir confirmé que la communication réseau entre l'hôte et la carte de développement est normale, vous pouvez vous connecter à la carte de développement.
Visual Studio Code (VSCode en abrégé) est un éditeur gratuit de Microsoft. Il existe en trois versions : Windows, Linux et macOS. Vous pouvez rechercher le processus d'installation par vous-même. Ici, nous présentons principalement les packages d'extension utilisés pour le développement de programmes C/C++. Les étapes d'installation sont illustrées dans la figure ci-dessous :
Les plug-ins suivants sont couramment utilisés et doivent le faire. être installé :
C/C++.
Extraits C/C++, blocs de code réutilisés C/C++.
C/C++ Advanced Lint, c'est-à-dire détection statique C/C++.
Code Runner, c'est-à-dire l'exécution du code.
Inclut la saisie semi-automatique, c'est-à-dire l'inclusion automatique du fichier d'en-tête.
Supports arc-en-ciel, bretelles arc-en-ciel, aide à la lecture du code.
One Dark Pro, thème pour VSCode.
GBKtoUTF8, convertissez GBK en UTF8.
ARM, qui prend en charge la coloration syntaxique de l'assembly ARM.
Chinois (simplifié), c'est-à-dire environnement chinois.
vscode-icons, plug-in d'icônes VSCode, principalement des icônes pour chaque dossier sous le gestionnaire de ressources.
compareit, plug-in de comparaison, peut être utilisé pour comparer les différences entre deux fichiers
DeviceTree, plug-in de syntaxe d'arborescence des périphériques.
Aperçu Markdown Plug-in d'aperçu Markdown amélioré.
Maridown pdf, convertissez les fichiers .md vers d'autres formats.
Il existe des centaines de commandes Linux pour les débutants, il n'y en a pas beaucoup qui sont couramment utilisées et elles n'ont pas besoin d'être maîtrisées. Dans le processus d'étude et de travail quotidien, si vous rencontrez des commandes Linux inconnues, vous vous en souviendrez naturellement après avoir vérifié plus d'informations au fil du temps. Ce qui suit est une introduction aux 17 commandes les plus élémentaires de Linux.
clear
clear
ip addr
date
adresse IP
3.
date
Les chemins des répertoires et des fichiers sont divisés en chemins absolus et les chemins relatifs sont calculés à partir de la racine (/), comme /usr/etc/readme.txt. Le chemin relatif est calculé à partir du répertoire de travail actuel. Si le répertoire de travail actuel est /usr, etc/readme.txt est équivalent à /usr/etc/readme.txt. De plus, il convient de noter que : un point indique le répertoire de travail actuel ; deux points... indiquent le répertoire de niveau supérieur du répertoire de travail actuel.
Ce qui suit est une brève introduction à la structure des répertoires du système Linux. Afin d'éviter que de nombreux utilisateurs n'aient des idées folles sur la structure des répertoires du système Linux, la Linux Foundation a publié la norme FHS. La plupart des systèmes de distribution Linux suivent cette norme. Remarque : FHS (Filesystem Hierarchy Standard), norme de hiérarchie du système de fichiers, qui spécifie l'utilisation de tous les répertoires de premier niveau et de certains répertoires de deuxième niveau (/usr et /var) dans les systèmes Linux. L'objectif principal de la publication de cette norme est de permettre aux utilisateurs de comprendre clairement quels types de fichiers doivent être stockés dans chaque répertoire.
usr (attention pas utilisateur), le nom complet est Unix Software Resource Ce répertoire est utilisé pour stocker les ressources logicielles du système. FHS recommande aux développeurs de placer les données des produits logiciels dans des sous-répertoires du répertoire /usr plutôt que de créer des répertoires distincts pour leurs produits.
Dans les systèmes Linux, tous les logiciels par défaut du système sont stockés dans le répertoire /usr. Le répertoire /usr est similaire à la combinaison de fichiers C:Windows + C:Program dans les systèmes Windows.
FHS recommande que le répertoire /usr ait des sous-répertoires comme indiqué dans le tableau ci-dessous.
/var Le répertoire est utilisé pour stocker des données dynamiques, telles que les caches, les fichiers journaux, les fichiers générés lors de l'exécution du logiciel, etc. Généralement, il est recommandé que ce répertoire contienne ces sous-répertoires comme indiqué dans le tableau 4.
pwd
pwd
cd 目录名
示例:
cd /tmp
cd ..
cd
ls
是list的缩写,通过 ls
命令不仅可以查看目录和文件信息,还可以查看目录和文件的权限、大小、主人和组等信息。
选项 -l
列出目录和文件的详细信息。
示例:
ls
ls -l
正则表达式又称规则表达式、通配符,目录和文件名都支持正则表达式,正则表达式的规则比较多,在这里我们只需要掌握最常用的两种:星号 “*” 。
星号 “*” :匹配任意数量的字符。
例如:ls open*.zip
mkdir aaa
mkdir aaa/bbb -p
rm [-rf]
目录或文件
选项-r
可以删除目录,如果没有-r只能删除文件。
选项-f
表示强制删除,不需要确认。
rm aaa -r
rm -f ccc.c
mv 旧目录或文件名 新目录或文件名
mv book.c book1.c
mv book.c OPC/test3
mv book.c OPC/test3
cp [-r] 旧目录或文件名 新目录或文件名
注:-r 是递归的意思,英文 recursion
选项-r
可以复制目录,如果没有选项-r
只能复制文件。
示例:
cp book1.c book2.c
cp aaa bbb -r
cp book1.c aaa/book1.c
cp book1.c aaa/.
以上两个命令的效果相同。
cp -r aaa /tmp/aaa
nom du répertoire cd
🎜🎜Exemple : 🎜 🎜🎜 1) Entrez dans le répertoire /tmp 🎜🎜🎜cd /tmp
🎜🎜🎜2) Entrez dans le répertoire de niveau supérieur 🎜🎜🎜cd ..
🎜🎜🎜3 ) Entrez le répertoire principal de l'utilisateur🎜🎜🎜cd
🎜🎜🎜7. Répertoire de la liste et informations sur le fichier🎜🎜🎜ls
est l'abréviation de list, via le ls. Commande
Vous pouvez non seulement afficher les informations sur les répertoires et les fichiers, mais vous pouvez également afficher des informations telles que les autorisations, la taille, le propriétaire et le groupe de répertoires et de fichiers. 🎜 L'option -l
répertorie les détails du répertoire et du fichier. 🎜 Exemple : 🎜🎜🎜1) Répertoriez toutes les informations sur le répertoire et le nom de fichier dans le répertoire de travail actuel🎜🎜🎜ls
🎜🎜🎜🎜2) Répertorier les informations détaillées de tous les répertoires et noms de fichiers dans le répertoire de travail actuel🎜🎜🎜ls - l
🎜🎜🎜🎜 3) Expressions régulières🎜🎜🎜Les expressions régulières sont également appelées expressions régulières et caractères génériques. Les noms de répertoires et de fichiers prennent en charge les expressions régulières. Il existe de nombreuses règles pour les expressions régulières. Ici, nous devons seulement maîtriser les deux types les plus couramment utilisés : l'astérisque. "*". 🎜🎜Étoile « * » : faites correspondre n'importe quel nombre de caractères. 🎜🎜🎜Par exemple : ls open*.zip
🎜🎜🎜🎜8. Créer un répertoire🎜🎜🎜🎜1) Créer un répertoire aaa dans le répertoire de travail actuel🎜🎜🎜mkdir aaa
🎜🎜🎜2) Dans le répertoire de travail actuel, créez le répertoire aaa sous le répertoire de travail et créez le répertoire bbb sous le répertoire aaa🎜🎜🎜mkdir aaa/bbb -p
🎜🎜🎜 Supprimez les répertoires et les fichiers🎜🎜. 🎜rm [-rf ]
Répertoire ou fichier🎜🎜L'option -r
peut supprimer le répertoire. S'il n'y a pas de -r, seul le fichier peut être supprimé. 🎜🎜L'option -f
signifie une suppression forcée, aucune confirmation n'est requise. 🎜🎜🎜1) Supprimer le répertoire aaa🎜🎜🎜rm aaa -r
🎜🎜🎜2) Supprimer de force le fichier ccc.c dans le répertoire de travail actuel🎜🎜🎜rm -f ccc .c
🎜🎜🎜9. Déplacer les répertoires et les fichiers🎜🎜🎜mv ancien répertoire ou nom de fichier nouveau répertoire ou nom de fichier
🎜🎜🎜1) Remplacer le fichier book.c dans l'actuel répertoire de travail Nommez-le book1.c🎜🎜🎜mv book.c book1.c
🎜🎜🎜2) Si OPC/test3 est un répertoire existant, la commande suivante copiera book.c dans le répertoire de travail actuel répertoire Le fichier est déplacé vers le répertoire OPC/test3. 🎜🎜🎜mv book.c OPC/test3
🎜🎜🎜3) Si le répertoire OPC/test3 n'existe pas, la commande suivante renommera le fichier book.c dans le répertoire de travail actuel en OPC/ test3. 🎜🎜🎜mv book.c OPC/test3
🎜🎜🎜10 Copier les répertoires et les fichiers🎜🎜🎜cp [-r] ancien répertoire ou nom de fichier nouveau répertoire ou nom de fichier
🎜🎜Remarque : -r signifie récursion. L'option récursion anglaise🎜🎜🎜 -r
peut copier des répertoires. S'il n'y a pas d'option -r
, seuls les fichiers peuvent être copiés. . 🎜🎜Exemple :🎜🎜🎜1) Copiez le fichier book1.c dans le répertoire de travail actuel vers book2.c🎜🎜🎜cp book1.c book2.c
🎜🎜🎜2) Copiez le fichier de travail actuel répertoire Copiez le répertoire aaa sous le répertoire de travail actuel dans bbb🎜🎜🎜cp aaa bbb -r
🎜🎜🎜3) Copiez le fichier book1.c dans le répertoire de travail actuel dans aaa/book1.c🎜 🎜🎜 cp book1.c aaa/book1.c
🎜🎜cp book1.c aaa/.
🎜🎜Les deux commandes ci-dessus ont le même effet. 🎜🎜🎜4) Copiez le répertoire aaa dans le répertoire de travail actuel dans /tmp/aaa🎜🎜🎜cp -r aaa /tmp/aaa
🎜cp -r aaa /tmp/.
cp -r aaa /tmp/.
以上两个命令的效果相同。
ping -c 包的个数 ip地址或域名
ping用于确定本地主机是否能与另一台主机成功交换数据包,判断网络是否通畅。
ping -c 5 127.0.0.1
ping -c 5 www.baidu.com.cn
可以看出百度的服务器是可以ping
通的。
ping -c 5 www.google.com
可以看出谷歌的服务器是ping
不通的。
显示文本文件的内容有三个命令:cat
、more
和tail
。
cat 文件名
cat命令一次显示整个文件的内容。
cat main.cpp
more 文件名
为了方便阅读,more命令分页显示文件的内容,按空格键显示下一页,按b键显上一页,按q键退出。
tail -f 文件名
tail -f
用于显示文本文件的最后几行,如果文件的内容有增加,就实时的刷新。对程序员来说,tail -f
极其重要,可以动态显示后台服务程序的日志,用于调试和跟踪程序的运行。
wc(word count)功能为统计指定的文件中字节数、字数、行数,并将统计结果输出
wc 文件名
grep "内容" 文件名
注意,如果内容中没有空格等特殊字符,可以不用双引号括起来。
示例:
grep signal main.cpp
find 目录名 -name 文件名
参数说明:
目录名:待搜索的目录,搜索文件的时候,除了这个目录名,还包括它的各级子目录。
文件名:待搜索的文件名匹配的规则。
示例:
从 OPC 目录开始搜索,把全部的 *.cpp 文件显示出来。
find OPC -name *.cpp
locate 文件名
示例:
搜索open62541.c文件
locate open62541.c
注意:第一次使用该命令,可能需要更新数据库,按照提示的命令执行一下就好了.
find多用于在某个目录下进行模糊搜索,而locate则是进行全盘准确定位。
用于改变linux文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。
举例:ls -l example
Les deux commandes ci-dessus ont le même effet.
Le nombre de paquets ping -c, l'adresse IP ou le nom de domaine
ping est utilisé pour déterminer si l'hôte local peut échanger avec succès des paquets de données avec un autre hôte pour déterminer si le réseau est fluide. 🎜ping -c 5 127.0.0.1
🎜🎜ping -c 5 www.baidu.com.cn
🎜🎜🎜On peut voir que le serveur de Baidu peut pinger
de. 🎜ping -c 5 www.google.com
🎜🎜🎜On peut voir que le serveur de Google ne peut pas pinger
. 🎜cat
, plus
et queue
. 🎜nom du fichier cat
🎜🎜La commande cat affiche le contenu de l'intégralité du fichier en une seule fois. 🎜🎜cat main.cpp
🎜plus de nom de fichier
🎜🎜Afin de faciliter la lecture, la commande plus affiche le contenu du fichier en pages. Appuyez sur la barre d'espace pour afficher la page suivante, appuyez sur la touche b pour afficher la page précédente, et appuyez sur la touche q pour quitter. 🎜tail -f file name
🎜🎜tail -f
est utilisée pour afficher les fichiers texte Dans les dernières lignes, si le contenu du fichier augmente, celui-ci sera rafraîchi en temps réel. Pour les programmeurs, tail -f
est extrêmement important. Il peut afficher dynamiquement le journal du programme de service en arrière-plan et être utilisé pour déboguer et suivre l'exécution du programme. 🎜nom du fichier wc
🎜🎜grep "content" nom du fichier
🎜 🎜 Notez que s'il n'y a pas de caractères spéciaux tels que des espaces dans le contenu, il n'est pas nécessaire de le mettre entre guillemets doubles. 🎜🎜🎜Exemple : 🎜grep signal main.cpp
🎜🎜trouver nom du répertoire-nom nom du fichier
🎜🎜Description du paramètre : 🎜 Nom du répertoire : le répertoire dans lequel rechercher, lors de la recherche de fichiers, sauf celui-ci Le nom du répertoire inclut également ses sous-répertoires à tous les niveaux. 🎜 Nom du fichier : Règles correspondant au nom du fichier à rechercher. 🎜 Exemple : 🎜 Lancez la recherche à partir du répertoire OPC et affichez tous les fichiers *.cpp. 🎜🎜trouver le nom OPC *.cpp
🎜localiser le nom du fichier
🎜🎜Exemple : 🎜 Rechercher le fichier open62541.c🎜🎜 localisez open62541.c
🎜🎜🎜Remarque : lorsque vous utilisez cette commande pour la première fois, vous devrez peut-être mettre à jour la base de données. Suivez simplement les invites et exécutez-la. 🎜🎜🎜find est principalement utilisé pour effectuer des recherches floues dans un certain répertoire, tout en localisant est utilisé pour effectuer des recherches floues dans un certain répertoire. Positionnement précis à tous les niveaux. 🎜ls -l example
🎜🎜🎜🎜Il y a 10 positions dans la première colonne, et le premier caractère spécifie le type de fichier. Au sens habituel, un répertoire est aussi un fichier. Si le premier caractère est un tiret, cela signifie qu'il ne s'agit pas d'un fichier de répertoire. Si c'est d, cela signifie un répertoire. Il y a un total de 9 caractères allant du deuxième caractère au dixième. Un groupe de 3 caractères représente les autorisations de 3 groupes d'utilisateurs sur le fichier ou le répertoire. Les caractères d'autorisation utilisent une ligne horizontale pour représenter une autorisation vide, r représente la lecture seule, w représente l'écriture et x représente l'exécutable. 🎜Paramètres communs :
-c Lorsque des modifications se produisent, signaler les informations de traitement
-R Traiter tous les fichiers du répertoire spécifié et de ses sous-répertoires
Portée de l'autorisation :
u : Répertoire ou fichier Le utilisateur actuel
g : Le groupe actuel du répertoire ou du fichier
o : Utilisateurs ou groupes autres que l'utilisateur ou le groupe actuel du répertoire ou du fichier
a : Tous les utilisateurs et groupe
Code d'autorisation :
r : Autorisation de lecture, représentée par le chiffre 4
w : Autorisation d'écriture, représentée par le chiffre 2
x : Autorisation d'exécution, représentée par le chiffre 1
- : Supprimer les autorisations, représenté par le chiffre 0
s : Autorisations spéciales
Exemple :
exemple chmod a-x
chmod a-x example
chmod 751 example -c
chmod u+r,g+r,o+r -R text/ -c
df [-h] [-T]
选项-h
以方便阅读的方式显示信息:
df -h
选项-T
列出文件系统类型:
df -h -T
程序(操作系统命令和应用程序)的执行都需要运行环境,这个环境是由多个环境变量组成的。
系统环境变量:公共的,对全部的用户都生效。
用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效。
永久环境变量:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。
临时环境变量:使用时在Shell中临时定义,退出Shell后失效。
Linux环境变量也称之为Shell环境量变,以下划线和字母打头,由下划线、字母(区分大小写)和数字组成,习惯上使用大写字母,例如PATH、HOSTNAME、LANG等。
在Shell下,用env命令查看当前用户全部的环境变量。
上图只截取了部分环境变量,并非全部。
注:用env命令的时候,满屏显示了很多环境变量,不方便查看,可以用grep筛选。
env|grep 环境变量名
例如查看环境变量名中包含PATH的环境变量。
env|grep PATH
echo $环境变量名
例如:echo $LANG
可执行程序的搜索目录,可执行程序包括Linux系统命令和用户的应用程序,PATH变量的具体用法本文后面的章节中有详细的介绍。
Linux系统的语言、地区、字符集。
echo $LANG
2) Par exemple, le propriétaire se voit attribuer une lecture , écrire et exécuter (7), le groupe dans lequel se trouve l'exemple se voit attribuer des autorisations de lecture et d'exécution (5), et les autres utilisateurs se voient attribuer des autorisations d'exécution (1)
chmod 751 exemple -c 🎜<img src="https://img.php.cn/upload/article/000/000/067/e82b90d63235e869835aad7e33cb32bb-20.png" alt="Insérer la description de l'image ici">🎜🎜3) Ajouter des autorisations lisibles à tous les fichiers du répertoire aaa et de ses sous-répertoires🎜🎜<code>chmod u+r,g+r,o+r -R text/ -c
🎜🎜df [-h] [-T]
🎜🎜L'option -h
affiche les informations dans un format facile à lire : 🎜🎜df -h🎜<img src="https://img.php.cn/upload/article/000/000/067/95937c9778bb954936dccf16f688fc5c-22.png" alt="Insérer la description de l'image ici">🎜🎜options -T
Liste les types de systèmes de fichiers : 🎜🎜df -h -T
🎜🎜env|grep nom de la variable d'environnement
🎜🎜Par exemple, vérifiez la variable d'environnement dont le nom contient PATH. 🎜🎜env|grep PATH
🎜🎜🎜2) commande echo🎜🎜echo $nom de la variable d'environnement
🎜🎜Par exemple : echo $LANG
🎜echo $LANG
🎜🎜🎜Le nom d'hôte du serveur.
echo $HOSTNAME
echo $HOSTNAME
用户当前使用的Shell解析器。
echo $SHELL
保存历史命令的数目。
当前登录用户的用户名。
echo $USER
当前登录用户的主目录。
echo $HOME
当前工作目录。
echo $PWD
C/C++语言动态链接库文件搜索的目录,它不是Linux缺省的环境变量,但对C/C++程序员来说非常重要,具体用法本文后面的章节中有详细的介绍。
export 变量名='值'
如果环境变量的值没有空格等特殊符号,可以不用单引号包含。
示例:
export PATH=$PATH:.
以上命令为当前shell的环境变量PATH添加.目录(是.)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
以上命令为当前shell的环境变量LD_LIBRARY_PATH添加.目录
采用export设置的环境变量,在退出Shell后就会失效,下次登录时需要重新设置。如果希望环境变量永久生效,需要在登录脚本文件中配置。
系统环境变量对全部的用户生效,设置系统环境变量有三种方法。
用户登录时执行/etc/profile文件中设置系统的环境变量。但是,Linux不建议在/etc/profile文件中设置系统环境变量。
/etc/profile在每次启动时会执行 /etc/profile.d下全部的脚本文件。/etc/profile.d比/etc/profile好维护,不想要什么变量直接删除 /etc/profile.d下对应的 shell 脚本即可。
/etc/profile.d目录下有很多脚本文件,例如:
ls /etc/profile.d
该文件配置的环境变量将会影响全部用户使用的bash shell。但是,Linux也不建议在/etc/bashrc文件中设置系统环境变量。
用户环境变量只对当前用户生效,设置用户环境变量也有多种方法。
在用户的主目录,有几个特别的文件,用ls
是看不见的,用ls .bash*
可以看见。
当用户登录时执行,每个用户都可以使用该文件来配置专属于自己的环境变量。
当用户登录时以及每次打开新的Shell时该文件都将被读取,不推荐在里面配置用户专用的环境变量,因为每开一个Shell,该文件都会被读取一次,效率肯定受影响。
当每次退出系统(退出bash shell)时执行该文件。
保存了当前用户使用过的历史命令。
环境变量脚本文件的执行顺序如下:
/etc/profile->/etc/profile.d->/etc/bashrc->用户的.bash_profile->用户的.bashrc
echo $SHELL
echo $USER
7) HOMELe répertoire personnel de l'utilisateur actuellement connecté.
echo $HOME
🎜🎜8) PWD🎜🎜Répertoire de travail actuel. 🎜🎜echo $PWD
export variable name='value'
🎜🎜Si la valeur de la variable d'environnement n'a pas de symboles spéciaux tels que des espaces, elle peut être incluse sans guillemets simples. 🎜🎜Exemple : 🎜🎜export PATH=$PATH:.
🎜🎜La commande ci-dessus ajoute un .directory à la variable d'environnement PATH du shell actuel (oui.)export LD_LIBRARY_PATH= $LD_LIBRARY_PATH:.
🎜🎜La commande ci-dessus ajoute le .directory à la variable d'environnement LD_LIBRARY_PATH du shell actuells /etc/profile.d
ls
mais peuvent être vus avec ls .bash*
. /etc/profile->/etc/profile.d-> /etc/bashrc ->User's .bash_profile->User's .bashrc
🎜🎜Variables d'environnement portant le même nom, si elles sont configurées dans plusieurs scripts, la configuration du dernier script exécuté prévaudra. 🎜🎜🎜3.4 Explication détaillée des variables d'environnement importantes🎜🎜🎜🎜1. Variable d'environnement PATH🎜🎜🎜Le répertoire de recherche des programmes exécutables incluent les commandes système Linux et les applications utilisateur. Si le répertoire du programme exécutable ne se trouve pas dans le répertoire spécifié par PATH, le répertoire doit être spécifié lors de l'exécution. 🎜🎜1) La variable d'environnement PATH stocke une liste de répertoires. Les répertoires sont séparés par deux points :, et le point final indique le répertoire actuel. 🎜🎜export PATH=Répertoire 1 : Répertoire 2 : Répertoire 3 :… Répertoire n :.🎜🎜2) PATH est par défaut le répertoire où se trouvent les commandes du système Linux (/usr/local/bin:/usr/bin:/usr /local/sbin:/usr/sbin), si ces répertoires ne sont pas inclus, les commandes Linux courantes ne peuvent pas être exécutées (le chemin absolu doit être saisi pour s'exécuter). 🎜🎜Exemple : 🎜ls /bin/ls
Vous pouvez voir que la commande ls
se trouve dans le répertoire /bin ls /bin/ls
可以查看到ls
命令位于/bin目录下
此时我们执行命令 export PATH=
将PATH变量清空,再执行ls
命令,系统会提示找不到ls
命令。
采用绝对路径就可以使用,/bin/ls
为环境变量PATH添加/bin目录后,ls
也可以执行了。
示例:
在当前目录下执行 example 命令,提示无法执行。
将圆点.添加到环境变量PATH之后,便可以执行了。
export PATH=$PATH:.
C/C++语言动态链接库文件搜索的目录,它不是Linux缺省的环境变量,但对C/C++程序员来说非常重要。
LD_LIBRARY_PATH环境变量存放的也是目录列表,目录之间用冒号:分隔,最后的圆点.表示当前目录,与PATH的格式相同。
export LD_LIBRARY_PATH=目录1:目录2:目录3:......目录n:.
这个环境变量我们会在下次课讲解Linux静态库与动态库时详细介绍。
1)在Shell下,用export设置的环境变量对当前Shell立即生效,Shell退出后失效。
2)在脚本文件中设置的环境变量不会立即生效,退出Shell后重新登录时才生效,或者用source命令让它立即生效,例如:
source /etc/profile
export PATH=
pour effacer la variable PATH , puis exécutez la commande ls
, le système vous demandera que la commande ls
est introuvable.
/bin/ls
Après avoir ajouté le répertoire /bin à la variable d'environnement PATH, ls
peut également être exécuté.
export PATH=$PATH:.
🎜🎜export LD_LIBRARY_PATH=Répertoire 1 : Répertoire 2 : Répertoire 3 :... Répertoire n :.
🎜🎜🎜Nous expliquerons cette variable d'environnement dans la prochaine leçon lorsque nous expliquerons les bibliothèques statiques et dynamiques Linux .Présentation détaillée. 🎜🎜🎜🎜3.5 Validation des variables d'environnement 🎜🎜🎜1) Sous Shell, les variables d'environnement définies avec l'export prennent effet immédiatement sur le Shell actuel et deviennent invalides après la sortie du Shell. 🎜🎜2) Les variables d'environnement définies dans le fichier de script ne prendront effet pas immédiatement. Elles ne prendront effet qu'après avoir quitté le Shell et vous être reconnecté, ou utilisez la commande source pour que cela prenne effet immédiatement, par exemple : 🎜🎜source /etc/profile🎜🎜🎜3.6 Expérience d'application🎜🎜🎜Bien qu'il existe de nombreuses façons de définir les variables d'environnement, il est recommandé que les variables d'environnement système soient configurées dans le répertoire /etc/profile.d et les variables d'environnement utilisateur sont configurées dans le fichier .bash_profile de l'utilisateur. Ceci n'est pas recommandé. La configuration des variables d'environnement dans d'autres fichiers de script augmentera les problèmes de fonctionnement et de maintenance du système et est sujette aux erreurs. 🎜🎜Recommandations associées : "🎜Tutoriel vidéo Linux🎜"🎜🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!