UNIX/Linux系统管理技术手册

栏目: 服务器 · 发布时间: 4年前

内容简介:简单的做法是使用shell的which命令找出相关的二进制程序是否已经在搜索路径中。如果which没有找到要找的命令,使用whereis,该命令搜索更大范围的系统目录,与shell的搜索路径无关。locate的数据库通常由upgradedb命令定期更新,这条命令由cron来运行。因此,执行一次locate的结果不是总能反映出文件系统最新的变化。locate的搜索不止针对命令或软件包,而是能找到任何类型的文件。例如查找文件signal.h

书架上的这块大部头书在5.1的时候终于有时间来学习了,本文将长期更新,记录UNIX/Linux系统管理技术手册学习中的疑问与解答。该书在豆瓣评分颇高, UNIX/Linux系统管理技术手册 .勘误表在本文最后,如有疑问欢迎留言讨论。

笔记中实际操作的系统来自于ubuntu,运行在一款古董级的hp笔记本上。

UNIX/Linux系统管理技术手册

判断软件是否已经安装

简单的做法是使用 shell 的which命令找出相关的二进制程序是否已经在搜索路径中。

root@52coder:~# which gcc
/usr/bin/gcc

如果which没有找到要找的命令,使用whereis,该命令搜索更大范围的系统目录,与shell的搜索路径无关。

root@52coder:~# whereis gcc
gcc: /usr/bin/gcc /usr/lib/gcc /usr/share/man/man1/gcc.1.gz

locate的数据库通常由upgradedb命令定期更新,这条命令由cron来运行。因此,执行一次locate的结果不是总能反映出文件系统最新的变化。locate的搜索不止针对命令或软件包,而是能找到任何类型的文件。例如查找文件signal.h

root@52coder:~# locate signal.h
/root/PR/cl_ev/source/include/cl_ev_signal.h
/root/PR/lualibs/source/ldap/openldap-2.4.23/include/ac/signal.h
/root/PR/lualibs/thirdpart/luaposix/luaposix-34.0.4/doc/modules/posix.signal.html
/root/PR/thirdpart/ldap/source/openldap-2.4.23/include/ac/signal.h
/usr/include/signal.h
/usr/include/asm-generic/signal.h
/usr/include/boost/signal.hpp
/usr/include/boost/process/detail/posix/signal.hpp
/usr/include/boost/signals2/preprocessed_signal.hpp
/usr/include/boost/signals2/signal.hpp
/usr/include/boost/signals2/variadic_signal.hpp
/usr/include/linux/signal.h
/usr/include/x86_64-linux-gnu/asm/signal.h
/usr/include/x86_64-linux-gnu/sys/signal.h
/usr/src/linux-headers-5.0.0-13/arch/alpha/include/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/alpha/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/arc/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/arm/include/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/arm/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/arm64/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/h8300/include/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/h8300/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/hexagon/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/ia64/include/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/ia64/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/m68k/include/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/m68k/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/mips/include/asm/compat-signal.h
/usr/src/linux-headers-5.0.0-13/arch/mips/include/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/mips/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/nios2/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/parisc/include/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/parisc/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/powerpc/include/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/powerpc/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/s390/include/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/s390/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/sh/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/sparc/include/asm/compat_signal.h
/usr/src/linux-headers-5.0.0-13/arch/sparc/include/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/sparc/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/x86/include/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/x86/include/asm/fpu/signal.h
/usr/src/linux-headers-5.0.0-13/arch/x86/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/xtensa/include/asm/signal.h
/usr/src/linux-headers-5.0.0-13/arch/xtensa/include/uapi/asm/signal.h
/usr/src/linux-headers-5.0.0-13/include/asm-generic/audit_signal.h
/usr/src/linux-headers-5.0.0-13/include/asm-generic/signal.h
/usr/src/linux-headers-5.0.0-13/include/linux/signal.h
/usr/src/linux-headers-5.0.0-13/include/linux/sched/signal.h
/usr/src/linux-headers-5.0.0-13/include/trace/events/signal.h
/usr/src/linux-headers-5.0.0-13/include/uapi/asm-generic/signal.h
/usr/src/linux-headers-5.0.0-13/include/uapi/linux/signal.h

ubuntu中查询是否已安装软件:

root@52coder:~# dpkg -l | grep gcc
ii  gcc                                        4:8.3.0-1ubuntu3                     amd64        GNU C compiler
ii  gcc-8                                      8.3.0-6ubuntu1                       amd64        GNU C compiler
ii  gcc-8-base:amd64                           8.3.0-6ubuntu1                       amd64        GCC, the GNU Compiler Collection (base package)
ii  gcc-9-base:amd64                           9-20190402-1ubuntu1                  amd64        GCC, the GNU Compiler Collection (base package)
ii  libgcc-8-dev:amd64                         8.3.0-6ubuntu1                       amd64        GCC support library (development files)
ii  libgcc1:amd64                              1:9-20190402-1ubuntu1                amd64        GCC support library

redhat中查询是否已安装软件:

rom -q | grep gcc

安装软件

使用源码安装软件时一般是使用./configure make make install三条命令

./configure --help查看所有的配置选项,另一个有用的配置选项是--prefix=directory,这个选项可以把软件安装到/usr/local之外的其它目录。
root@52coder:~/valgrind-3.15.0# ./configure --help
`configure' configures Valgrind 3.15.0 to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking ...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/valgrind]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]

Program names:
  --program-prefix=PREFIX            prepend PREFIX to installed program names
  --program-suffix=SUFFIX            append SUFFIX to installed program names
  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-silent-rules   less verbose build output (undo: "make V=1")
  --disable-silent-rules  verbose build output (undo: "make V=0")
  --enable-maintainer-mode
                          enable make rules and dependencies not useful (and
                          sometimes confusing) to the casual installer
  --enable-dependency-tracking
                          do not reject slow dependency extractors
  --disable-dependency-tracking
                          speeds up one-time build
  --enable-only64bit      do a 64-bit only build
  --enable-only32bit      do a 32-bit only build
  --enable-inner          enables self-hosting
  --enable-ubsan          enables the undefined behaviour sanitiser
  --enable-lto          enables building with link time optimisation
  --enable-tls            platform supports TLS

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-tmpdir=PATH      Specify path for temporary files
  --with-mpicc=           Specify name of MPI2-ised C compiler

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CPP         C preprocessor
  CXX         C++ compiler command
  CXXFLAGS    C++ compiler flags
  LTO_RANLIB  Library indexer command for link time optimisation
  AR          Archiver command
  LTO_AR      Archiver command for link time optimisation
  CCAS        assembler compiler command (defaults to CC)
  CCASFLAGS   assembler compiler flags (defaults to CFLAGS)

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to <valgrind-users@lists.sourceforge.net>.

常用快捷键

在终端中 回到命令开头,输入

回到命令行尾。

增量搜索历史命令,输入相应命令进行匹配

标准错误重定向

在搜索文件的时候使用find / -name core,通常会出现很多"permission denied"这样的错误消息,从而把真正的结果给淹没在混乱的输出中。要消除所有出错的消息,可以使用如下命令:

find / -name core 2> /dev/null

sort命令

sort -t: -k3,3 -n /etc/group

对/etc/group文件的内容按照由冒号分割的第三个域即组ID进行排序,-n选项指定按照整数排序。

对sort命令的详细解释及例子参考 Linux sort command

grep命令

grep命令有许多选项,这包括:打印匹配的行数-c,匹配时忽略大小写-i,打印不匹配的行-v,打印匹配的文件的名字-l.

勘误表

p27 2.1.4常见的过滤命令上面的例子

root@52coder:~# echo "There are `wc -l /etc/passwd` lines in the passwd file."
There are 45 /etc/passwd lines in the passwd file.
root@52coder:~# echo "There are `cat /etc/passwd | wc -l` lines in the passwd file."
There are 45 lines in the passwd file.

以上所述就是小编给大家介绍的《UNIX/Linux系统管理技术手册》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Practical Algorithms for Programmers

Practical Algorithms for Programmers

Andrew Binstock、John Rex / Addison-Wesley Professional / 1995-06-29 / USD 39.99

Most algorithm books today are either academic textbooks or rehashes of the same tired set of algorithms. Practical Algorithms for Programmers is the first book to give complete code implementations o......一起来看看 《Practical Algorithms for Programmers》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

html转js在线工具
html转js在线工具

html转js在线工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具