Почему «uname gcc» не работает в Ubuntu

Я знаю, что uname -a показывает полное имя и детали машины и т. Д. Но я не uname gcc чтобы посмотреть, какая версия gcc я запускаю, и она вернула Linux Что это значит?

 Ubuntu86: $ uname gcc Linux 

Это машина, на которой я нахожусь (я знаю, что она старая):

 Ubuntu86: $ uname -a Linux ubuntu86 2.6.8.1-3-386 #1 Tue Oct 12 12:41:57 BST 2004 i686 GNU/Linux 

Как проверить версию gcc на этом компьютере?

Я установил его, набрав:

 Ubuntu86: $ sudo apt-get install gcc 

Поэтому я знаю, что он установил версию gcc, но не знаю, какую версию.

4 Solutions collect form web for “Почему «uname gcc» не работает в Ubuntu”

И для первого вопроса: uname , когда не передан никакой вариант, эквивалентен uname -s таким образом отображает Linux в вашей системе.

gcc аргумент gcc не является опцией (не начинается с дефиса), поэтому команда просто игнорируется.

uname показывает название операционной системы, на которой вы работаете, – это просто игнорировало аргумент и выполняло свою обычную работу. Он не отображает версии установленного программного обеспечения.

Большинство команд – включая аргумент gcc support --version , поэтому gcc --version отображает текущую версию GCC.

Для второго вопроса ответ: gcc -v
В последней строке распечатки вы можете найти версию gcc установленную в вашей системе.

В системах на базе Debian, включая Ubuntu, вы можете узнать статус установки, а также, возможно, установленную версию пакета (если вы знаете имя пакета), используя dpkg -l (это ell, а не я или один). Для этого обычно не требуется root-доступ, так как это операция только для чтения.

Чтобы узнать, какой пакет принадлежит определенному файлу, используйте dpkg -S . Опять же, это не требует доступа root.

Объединив их, вы получите что-то вроде:

 $ dpkg -S $(which gcc) gcc: /usr/bin/gcc $ dpkg -l gcc Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-=================-=============-=============-======================================= ii gcc 4:4.7.2-1 amd64 GNU C compiler $ 

который говорит мне, что в моей конкретной системе пакетная версия 4:4.7.2-1 пакета gcc для архитектуры amd64 полностью установлена ​​и настроена (статус ii ).

Если вам нужна одна команда, это будет dpkg -l $(dpkg -S $(which gcc) | awk -F: '{print $1}') который будет показывать тот же результат, что и пример команды dpkg -l gcc выше , Здесь я использую awk для разделения данных на : и возвращает первую часть вывода.

Обратите внимание, что версия пакета не обязательно точно отражает версию, о которой сообщает сама программа. В моем случае gcc --version говорит, что это gcc (Debian 4.7.2-5) 4.7.2 который для всех практических целей «достаточно близко», но может иметь значение, если вы пытаетесь понять поведение вы видите ошибку или нет.

Даже в более общем плане вы не должны передавать случайные параметры в программы и ожидать, что все будет работать (для некоторого определения «работа»). В конкретном случае uname это безобидно, но это может легко заставить программы выполнять операции, которые вы действительно не хотите делать; некоторые даже потенциально опасны. Проверьте страницу руководства соответствующей команды, чтобы узнать, какие параметры она принимает и что они означают. (Многие также делают что-то разумно безопасное при вызове с просто именем двоичного файла без параметров. Многие консольные приложения будут отображать версию и информацию об авторских правах при запуске без параметров, хотя есть много вещей, которые делают по-другому.)

  • Установлено «единственное» и не может его запустить
  • Ubuntu (14.10, 14.04) Проблемы рендеринга графики с nvidia 331, 346 при одновременном использовании двух экранов (встроенных и внешних)
  • Сменить пароль в режиме без звука
  • Есть ли способ написать скрипт для входа в ftp, поэтому мне не нужно вводить вещи снова и снова?
  • Какие преимущества предлагает Mint пользователю Ubuntu
  • Unarchiving загруженный tarball с Ansible
  • Дублируйте источники в APT-файлах Ubuntu 14.10, они в порядке?
  • Как отключить «Пожалуйста, введите PIN-код» (Ubuntu, Desktop, 3G-модем)
  • NFS не экспортируется при перезагрузке
  • Как установить GRUB в другую папку, чем / EFI / ubuntu?
  • Кросс-компиляция GMP и Openswan для ARM
  • Linux и Unix - лучшая ОС в мире.