Linux 入门基础 及一些常见命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 入门基础 及一些常见命令相关的知识,希望对你有一定的参考价值。
计算机的组成及其各部分的功能
现代计算机的基本结构是由匈牙利-美国科学家冯· 诺依曼于1946年提出的。迄今为止所有进入实用的电子计算机 都是按冯· 诺依曼提出的结构体系和工作原理设计制造的,故又统称为“冯·诺依曼型计算机".
根据冯.诺依曼原理:计算机由运算器、控制器、存储器、输入设备、输出设备所组成.
运算器: 进行算术与逻辑运算.
控制器: 从内存中依次取出命令,产生控制信号,向其它部件发出指令,指挥整个运算过程.
运算器,控制器,缓存,寄存器组成CPU.
存储器: 分为内部存储和外部存储 .内部存储包括ROM(只读)和RAM(随机); 外部存储包括硬盘,软盘,磁带机,光盘.
输入设备:键盘,鼠标和扫描仪。主要功能:下指令,提供数据等.标准输入设备(键盘)
输出设备:显示器,打印机和绘图仪。主要功能:输出数据加工的结果.标准输入设备(显示器)
Linux 主要发行版及各版本的区别与联系
Linux发行版有数百种之多,这里介绍最主要的几种:
---Debian, Slackware, RedHat,Gentoo, ArchLinux
Debian: ubuntu,knopix,mint
Debian是社区类Linux的典范,最遵循GNU规范。 特点是界面非常友好,对硬件的支持非常全面,最适合做桌面系统的Linux发行版.
Slackware:S.u.S.E, OpenSUSE
OpenSUSE 最可定制的发行版
RedHat: Fedora ,CentOS
RHEL Red Hat系列:包括RHEL、Fedora Core、CentOS.可以说是国内使用最多的Linux发行版.
稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,只好用于桌面应用.
Arch Linux 最好的企业级系统;
Gentoo: 是一个基于 Linux 或 FreeBSD 的自由操作系统,它几乎能为任何应用程序或需求自动地作出优化和定制. 对极限的配置、性能的追求,以及顶尖的用户和开发者社区,都是 Gentoo 的显著特点.
联系:都基于linux 内核
Linux 哲学思想
1、一切皆文件:
把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至通信接口等;
和操作一般意义上的文件一样,linux中对文件的操作只需要五个基本的函数:
open(), read(), write(), close(), delete(), create()
文件系统的第一级目录称为“根目录”,用 / 表示,所有其他的文件或目录都包含在其下,
并且一层一层组织成树型结构.
2、 由众多功能单一的程序组成;一个程序只做一件事,并且做好;
组合小程序完成复杂任务;可以通过管道等把各小程序组合起来,完成复杂任务.
3、 尽量避免跟用户交互;
目标:易于以编程的方式实现自动化任务;
4、使用文本文件保存配置信息(只需要一个简单的文本编辑器就可以操作整个系统)
Linux系统上命令的使用格式和常见的几个命令
命令的语法通用格式:
# COMMAND OPTIONS ARGUMENTS
COMMAND:
发起一命令:请求内核将某个二进制程序运行为一个进程;
程序 --> 进程
静态 --> 动态(有生命周期)
命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;
命令分为两类:
由shell程序的自带的命令:内置命令(builtin)
独立的可执行程序文件,文件名即命令名:外部命令
例: [[email protected] ~]# type cd
cd is a shell builtin
[[email protected] ~]# type ls
ls is aliased to `ls --color=auto‘
[[email protected] ~]# which ls
alias ls=‘ls --color=auto‘
/usr/bin/ls
[[email protected] ~]# which --skip-alias ls
/usr/bin/ls
--skip-alias 过滤掉别名
shell程序是独特的程序,负责解析用户提供的命令;
环境变量:
PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件;
~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
查找次序:
查看命令类型:
type COMMAND
OPTIONS:
指定命令的运行特性;
选项有两种表现形式:
短选项:-C, 例如-l, -d
注意:有些命令的选项没有-;
如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld
长选项:--word, 例如--help, --human-readable
注意:长选项不能合并;
注意:有些选项可以带参数,此称为选项参数;
ARGUMENTS:
命令的作用对象;命令对什么生效;
注意:不同的命令的参数;有些命令可同时带多个参数,多个之间以空白字符分隔;
ifconfig: - configure a network interface 配置网络接口;
1) 查看IP接口信息:
~]# ifconfig或ip addr list或ip addr show (CentOS 7):查看活动接口的ip地址:
-a display all interfaces which are currently available, even if down
显示所有接口信息;即使接口处于关闭状态;
例: ~]#ifconfig -a
-s display a short list (like netstat -i)
例: [[email protected] ~]# ifconfig -s
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eno16777 1500 660 0 0 0 520 0 0 0 BMRU
lo 65536 392 0 0 0 392 0 0 0 LRU
virbr0 1500 0 0 0 0 0 0 0 0 BMU
CentOS 5和 CentOS 6 查看的接口名称是eth0 ,CentOS 7上表现为eno16777736
具体查看哪个接口听信息,例:~]# ifconfig eno16777736
2)修改网卡的IP地址,子网掩码:(当不指定子网掩码时,将使用IP地址所在分类的默认子网掩码)
以CentOS 7为例:
~]# ifconfig eno16777736 192.168.1.50/24 或 ifconfig eno16777736 192.168.1.50 netmask 255.255.255.0
此命令重启系统后失效,永久生效只能修改配置文件,CentOS 7为例: 完整路径如下 /etc/sysconfig/network-scripts/ifcfg-eno16777736
3)禁用,激活网络接口:
需要临时禁用或重新激活指定的网络接口时,需要结合 "down", "up" 选项。网络接口被禁用以后,将无法使用该网络接口与其他主机进行连接。例: 执行以下操作将会禁用网卡eno16777726
~]# ifconfig eno16777736 down
4) 为网卡绑定虚拟接口:
在对服务器网络进行测试时,有时需要临时在同一个网卡上使用一个新的IP地址,但又不能覆盖原有的IP地址,而导致服务器程序不可用。这时可以为网卡绑定一个虚拟的网络接口,然后再为虚拟接口设置新的IP地址(相当于一块网卡配多个IP)
以CentOS 7 为例:
~]# ifconfig eno16777736:0 172.16.16.1
echo: NAME (回显)
echo - display a line of text
SYNOPSIS
echo [SHORT-OPTION]... [STRING]...
-n: 不进行换行;
-e:让转义符生效;
\n:换行
\t:制表符
\b: 退格
例: [[email protected] ~]# echo "hello world"
hello world
[[email protected] ~]# echo -n "hello world"
hello world[[email protected] ~]# echo -e "hello \tworld"
hello world
[[email protected] ~]# echo -e "hello \bworld"
helloworld
[[email protected] ~]# echo -e "hello \nworld"
hello
world
tty: NAME
tty - print the file name of the terminal connected to standard input
例: [[email protected] ~]# tty
/dev/pts/1
[[email protected] ~]# tty -s (--quiet print nothing, only return an exit status)
[[email protected] ~]# tty --help
-s, --silent
--help
--version
startx: - initialize an X session
startx命令用来启动X Window,实际上启动X Window的程序为xinit.
export: 功能说明:设置或显示环境变量.
语 法:export [-fnp][变量名称]=[变量设置值]
补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。
[[email protected] ~]# !echo
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[[email protected] ~]# export PATH=$PATH:/opt/au1200_rm/build_tools/bin
[[email protected] ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/au1200_rm/build_tools/bin
重新打开一个终端登录:
Last login: Tue Sep 13 17:59:34 2016
[[email protected] ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
可以验证: export的效力仅及于该此登陆操作
2.#vi /etc/profile
在适当位置添加 PATH=$PATH: /opt/au1200_rm/build_tools/bin(注意:= 即等号两边不能有任何空格)
这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变
[[email protected] ~]# !echo
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[[email protected] ~]# vim /etc/profile
[[email protected] ~]# !echo
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
3.#vi ~/.bash_profile
修改PATH行,把/opt/au1200_rm/build_tools/bin添加进去
这种方法是针对用户起作用的
注意:第2,3种方法若想改变PATH,必须重新登陆才能生效,以下方法可以简化工作:
如果修改了/etc/profile,那么编辑结束后执行source profile(source /etc/profile) 或 执行点命令 ./profile,PATH的值就会立即生效了。
这
个方法的原理就是再执行一次/etc/profile shell脚本,注意如果用sh
/etc/profile是不行的,因为sh是在子shell进程中执行的,即使PATH改变了也不会反应到当前环境中,但是source是在当前
shell进程中执行的,所以我们能看到PATH的改变。
[[email protected] ~]# source /etc/profile
[[email protected] ~]# !echo
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/au1200_rm/build_tools/bin
pwd: NAME 显示工作目录
pwd - print name of current/working directory
[[email protected] ~]# pwd
/root
history:命令历史:
shell进程会其会话中保存此前用户提交执行过的命令;
~]# history
定制history的功能,可通过环境变量实现:
HISTSIZE:shell进程可保留的命令历史的条数;
HISTFILE:持久保存命令历史的文件;
.bash_history
HISTFILESIZE:命令历史文件的大小;
[[email protected] ~]# history
1 history
2 vim .bash_history
...
178 history
[[email protected] ~]# history -c
[[email protected] ~]# history
1 history
清空了历史命令
[[email protected] ~]# echo $HISTSIZE
1000
[[email protected] ~]# cat -n .bash_history
1 history
2 vim .bash_history
...
[[email protected] ~]# history -r
[[email protected] ~]# history
1 history
....
实现了从文件读取命令历史到历史列表中
命令用法:
history [-c] [-d 偏移量] [n]
或 history -anrw [文件名]
或 history -ps 参数 [参数...]
-c: 清空命令历史;
-d offset:删除指定命令历史
-r: 从文件读取命令历史至历史列表中;
-w:把历史列表中的命令追加至历史文件中;
history #:显示最近的#条命令;
调用命令历史列表中的命令:
!#:再一次执行历史列表中的第#条命令;
!!:再一次执行上一条命令;
!STRING:再一次执行命令历史列表中最近一个以STRING开头的命令;
注意:命令的重复执行有时候需要依赖于幂等性;
调用上一条命令的最后一个参数:
快捷键:ESC, .
字符串:!$
控制命令历史记录的方式:
环境变量:HISTCONTROL
ignoredups:忽略重复的命令;
ignorespace:忽略以空白字符开头的命令;
ignoreboth:以上两者同时生效;
[[email protected] ~]# echo $HISTCONTROL
ignoredups
[[email protected] ~]# echo HISTCONROL=ignoreboth
HISTCONROL=ignoreboth
[[email protected] ~]# !echo $
echo HISTCONROL=ignoreboth $
HISTCONROL=ignoreboth $
修改变量的值:
NAME=‘VALUE‘
shutdown: NAME
shutdown - Halt, power-off or reboot the machine
SYNOPSIS
shutdown [OPTIONS...] [TIME] [WALL...]
-H, --halt
-P, --poweroff
-r, --reboot
-k
just write wall message.
--no-wall
Do not send wall message before halt, power-off, reboot.
-c
Cancel a pending shutdown. 打开另一个终端输入shutdown -c,可取消关机命令
poweroff: NAME
halt, poweroff, reboot - Halt, power-off or reboot the machine
reboot:NAME
halt, poweroff, reboot - Halt, power-off or reboot the machine
shutdown,poweroff,reboot都能实现关机,重启,定时关机等操作.
关机命令:
CentOS 7:
~]# systemctl poweroff
~]# systemctl reboot
*:
~]# poweroff
~]# halt
~]# reboot
hwclock ,clock:
显示或设定硬件时钟
-s, --hctosys:以硬件为准,把系统调整为与硬件时间相同;
-w, --systohc:以系统为准,把硬件时间调整为与系统时钟相同;
Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟两种。系统时间是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的那个主板硬件时钟,这个时钟可以在BIO的"Standard Bios Feture"项中进行设置.
date 命令查看的是系统时钟,hwclock查看的是硬件时钟;
date:
显示日期时间:date [OPTION]… [+FORMAT]
FORMAT:格式符
[[email protected] ~]# date
Sat Sep 17 21:17:52 CST 2016
[[email protected] ~]# date +%F
2016-09-17
[[email protected] ~]# date +%T
21:18:13
[[email protected] ~]# date +%Y
2016
[[email protected] ~]# date +%m
09
[[email protected] ~]# date +%d
17
[[email protected] ~]# date +%H
21
[[email protected] ~]# date +%M
18
[[email protected] ~]# date +%S
47
[[email protected] ~]# date +%s
1474118335
%F
%T
%Y
%m
%d
%H
%M
%S
%s: 从1970年1月1号(unix元年)0点0分0秒到命令执行那一刻经过的秒数;
…
设定日期时间:date [MMDDhhmm[[CC]YY][.ss]] 例:
[[email protected] ~]# date 091721332016.48
Sat Sep 17 21:33:48 CST 2016
如何获取命令的帮助信息
获取命令的使用帮助:
内部命令:
help COMMAND
外部命令:
(1) 命令自带简要格式的使用帮助
# COMMAND –help
(2) 使用手册:manual
位置:/usr/share/man
# man COMMAND
先执行type COMMNAD 识别是内部命令还是外部命令
(3) info COMMAND
获取命令的在线文档;
(4) 很多应用程序会自带帮助文档:/usr/share/doc/APP-VERSION
README:程序的相关的信息;
INSTALL: 安装帮助;
CHANGES:版本迭代时的改动信息;
(5) 主流发行版官方文档
http://www.redhat.com/doc
(6) 程序官方的文档:
官方站点上的“Document”
(7) 搜索引擎
google
keyword filetype:pdf (输入文章类型更有针对性)
keyword site:domain.tld
man 文档章节如何划分
使用手册:压缩格式的文件,有章节之分;
/usr/share/man
man1, man2, …
1:用户命令; (普通用户和管理员)
2:系统调用;
3:C库调用;
4:设备文件及特殊文件;
5:文件格式;(配置文件格式)
6:游戏使用帮助;
7:杂项;
8:管理工具及守护进行;
Linux 发行版的基础目录命名法则及功用规定
FHS(Filesystem Hierarchy Standard)文件系统层次结构标准
/bin:所有用户可用的基本命令程序文件; 如cat ,ls ,cd 等
/sbin:供系统管理使用的工具程序; 如ip ,mount等
/boot:引导加载器必须用到的各静态文件:kernel, initramfs(initrd), grub等
/dev:存储特殊文件或设备文件; 如/dev/null
设备有两种类型:字符设备(线性设备)、块设备(随机设备);
/etc:系统程序的配置文件,只能为静态
/home:普通的家目录的集中位置;一般每个普通用户的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME;
/root:管理员的家目录;可选;
/lib:为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块
libc.so.*:动态链接的C库;
ld*:运行时链接器/加载器;
modules:用于存储内核模块的目录;
/lib64:64位系统特有的存放64位共享库的路径;
/media:便携式设备挂载点,cdrom, floppy等;
/mnt:其它文件系统的临时挂载点;
/opt:附加应用程序的安装位置;可选路径;
/srv:当前主机为服务提供的数据;
/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所有用户执行写入操作;有特殊权限;
/usr:usr Hierarchy,全局共享的只读数据路径;
bin, sbin
lib, lib64
include:C程序头文件;
share:命令手册页和自带文档等架构特有的文件的存储位置
local:另一个层级目录;
X11R6:X-Window程序的安装位置
src:程序源码文件的存储位置
/usr/local:Local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序;
/var:/var Hierarchy,存储常发生变化的数据的目录;
cache Application cache data 应用程序缓存数据.
lib Variable state information 状态信息。这些信息随着程序的运行而不停地改变,比如,数据库,软件包系统的元数据等等
local Variable data for /usr/local
lock Lock files
log Log files and directories
opt Variable data for /opt
run Data relevant to running processes
存放当前运行程序库的目录,当前运行目录 spool Application spool data
该spool主要用于存放将要被处理的任务,比如打印队列以及邮件外发队列
tmp Temporary files preserved between system reboots
/proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息;它们多为内核参数,例如net.ipv4.ip_forward,
虚拟为net/ipv4/ip_forward, 存储于/proc/sys/,
因此其完整路径为/proc/sys/net/ipv4/ip_forward;
/sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的的接口;
以上是关于Linux 入门基础 及一些常见命令的主要内容,如果未能解决你的问题,请参考以下文章