Linux简介和基础

一、系统和硬件

无论是Linux、OS X、Windows操作系统,他们都是由以下部分组成(分层结构):

最底层:硬件
底层之上:将硬件的接口抽象成为系统调用(kernel)
再之上:库
再此之上为:应用程序

程序的运行可以有两种方式:

1、开机自动启动运行  2、用户通过交互式接口登陆或者连接系统上去,来手动运行程序

二、终端:

1、物理终端:我们可以将显示器、键盘鼠标直接接在主机的接口之上,这样的终端称之为物理终端,即本机自带的,直接连入的,也称之为:物理控制台console表示/dev/console。  2、虚拟终端:除了物理终端,系统会提供给我们6个虚拟终端,这些虚拟终端是附加在物理终端之上的,用软件方式虚拟实现的终端centos默认启用6个虚拟终端,可以通过使用快捷键来切换进来。
切换方式:Ctrl-Alt-F[1-6]
表示:/dev/tty#  3、图形终端:也是附加在物理终端之上,用软件方式虚拟实现的终端,但额外会提供桌面环境。也是虚拟终端的一种切换方式:Ctrl-Alt-F7  4、伪终端(模拟终端):图形界面下打开的命令行接口,还有基于ssh协议或telnet协议等远程打开的命令行界面。
表示:/dev/pts# 查看当前的终端设备命令:tty

终端实际上一个设备,一个设备要想与系统交互,必须有交互接口,当我们开启一个终端时,系统会自动的在终端上运行(附加)一个交互式程序。
交互式程序有两类:

GUI和CLI GUI:图形化界面,是基于X协议实现的窗口管理器(桌面、按钮的作用等)
    Linux桌面系统有:
    GNOME(C程序开发,gtk(开发库))
    KDE(C++程序开发,qt(开发库))
    XFCE(轻量级桌面) CLI:命令行界面
    对应的叫shell程序,用户要想与系统交互,必须通过shell,不同的程序员开发的程序不一样,但是都可以实现同样的功能(就是交互式功能),所以说shell程序也有很多种,如Sh,csh,Ksh,Bash,zsh。

查看当前环境使用的shell:
    echo $SHELL 显示当前系统使用的所有shell cat /etc/shells
    
    echo nihao > /dev/tty2 向tty2这个终端发送nihao

三、命令提示符

靠环境变量定义

[root@centos6 ~]# echo $PS1 [\u@\h \W]\$ 修改:PS1="\[\e[32m\][\u@\h(Eric) \W]\\$\[\e[0m\]"

提示符有两种:
1、#表示管理员登陆
2、$表示普通用户登陆

可以通过命令提示符来判断时管理员还是普通用户登陆。

在shell中可执行的命令有两类:

1、内建命令:由shell自带的,而且通过某命令形式提供。 2、外部命令:在当前系统的某文件系统路径下有对应的可执行程序文件;可通过which,whereis命令来查找到可执行程序文件

whereis command 
    查看命令的路径(外部命令)和 帮助文档的路径

model:
    [root@centos6(Eric) ~]#whereis ntpd
    
    ntpd: /usr/sbin/ntpd /usr/share/man/man8/ntpd.8.gz which command 显出命令的路径

model:
    [root@centos6(Eric) ~]#which ntpd
    /usr/sbin/ntpd

查看命令是外部还是内建命令:

type command
    model:
    [root@centos6(Eric) ~]#type ntpd
    ntpd is /usr/sbin/ntpd
    
    [root@centos6(Eric) ~]#type echo
    echo is a shell builtin

运行命令格式:command [options...] [arguments...]
               命令     选项          参数

选项:用于启用或关闭命令的某个或些功能。
参数:命令的作用对象(就是向命令提供数据的)
     命令的参数可以有多个

四:文件系统

文件有两类数据:

元数据:metadata,文件名、大小属性等
数据:data

Linux文件系统的特性:     1、文件名严格区分字符大小写     2、文件名可使用除了/以外的任意字符,但不建议使用特殊字符     3、文件名长度最长不能超过255个字符 4、所有.开头的文件都为隐藏文件
    
路径:绝对路径和相对路径
        绝对路径:从根目录起始的路径
        相对路径:从当前位置起始的路径  enable 管理内部命令      enable command 激活一个内部命令      enable -n command 禁用一个内部命令      enable 显示所有已激活的内部命令
        配合 | wc -l 可查看已激活的内部命令的数量 enable -a 显示所有的内部命令(无论激活与否)
        配合 | wc -l 可查看所有的内部命令数量 help 内部命令  查看指定内部命令的帮助信息 hash     hash的作用就是记录或显示程序的位置(可执行程序的位置)     hash 外部命令的路径缓存      hash 查看被缓存的外部命令      hash -l 详细查看,包含别名     hash -d 别名  删除指定别名的缓存路径      hash -p 路径 别名 手动添加一条缓存路径      hash -r 删除所有的hash      hash -t 别名  指定别名,显示被hash的路径
PATH 用来指定外部命令的搜索路径,以:为间隔,由左至右的顺序

命令执行的优先顺序 alias——> 内部命令——> hash ——> PATH  alias 别名      alias 别名='原命令 [-options] [arguments]'      alias 查看别名      unalias 别名 删除别名

model:      alias editnet="vim /etc/sysconfig/network-scripts/ifcfg-eth0" 注:通过命令行定义的别名只对当前shell有效;如果想永久有效,需要定义在配置文件中。

仅对当前用户有效:~/.bashrc
对所有用户有效:/etc/bashrc

bash进程重新读取配置文件: source /path/to/config_file
或者./path/to/config_file



临时使别名不生效可用以下方法
    使用路径执行
    \命令 '命令' "命令"

中断命令

ctrl+C 强制中断
ctrl+d 正常中断

命令连接符

当前一个命令执行结束,再执行下一条命令 command1 ; command2 ; command 3 ……
    \ 命令换行符,可使一条命令加选项和参数 换行执行

关机

halt
    poweroff
    init 0

重启

reboot
    init 6

shutdown

shutdown -r 重启
    shutodwn -h 关机
    shutdown -c 取消计划关机
    shutdown +0 马上关机
         +1 一分钟后关机
         -X X分钟后关机 20:00 今天2000关机

date

查询时间      date 显示当前时间      date +%F 以 年-月-日 显示     date +%T 以 时-分-秒 显示      date +%Y     date +%m    date +%d     date +%H     date +%M     date +%S     date +%a 英文的星期缩写      date +%A 英文的星期全拼     date +%w 数字方式显示星期

设置时间

date 082914132017.10 月日时分年[.秒]      date -s "2018-1-20 13:50:11"

hwclock 或 clock

-s 将硬时间写入软时间。 
    -w 将软时间写入硬时间。

cal

cal [-1]显示当月日历
    -y 显示当前年的全年日历
    数字 显示某年的日历(1-9999)
    -3 显示上个月、当月、下个月的日历
    cal 月份 年份 显示指定年指定月的日历
    cal 9 1752 365.25 365.24219 365 365.24219      12803月  元朝  郭守敬  授时历 1585 365.2425

screen

光盘挂载
    在vmware确定dvd设备是“已连接”状态
    mount /dev/cdrom /media/dvd cd /media/dvd/Packages
    rpm -ivh screen-4.0.3-19.el6.x86_64.rpm

screen 的用法
    screen -ls 列出当前所有的screen会话
    screen -S 名称 创建一个指定名称的screen会话
    screen -x 名称 加入指定名称的screen会话
    screen 创建一个会话,名称为当前的终端名-主机名前缀如pts-2.centos6
    
    echo
-n 不换行
-E 不支持解释(默认)
-e 支持解释功能 "\a" 发出警告声 "\b" 退格 "\c" 不换行 "\n" 换行且光标移至行首 "\r" 移至行首但不换行 "\t" 插入tab Model:
    echo -e "\a"可以用于报警
    [root@centos6(Eric) ~]#echo -e hell"\b"o
    helo

    [root@centos6(Eric) ~]#echo -e hello"\c" hello[root@centos6(Eric) ~]#

    [root@centos6(Eric) ~]#echo -e 'Hello My sy"\n"stem is MAC Os.'
    Hello My sy"
    "stem is MAC Os.

    [root@centos6(Eric) ~]#echo -e 'Hello My sy"\r"stem is MAC Os.'
    "stem is MAC Os.

    [root@centos6(Eric) ~]#echo -e 'Hello My sy\t\nstem is MAC Os.'
    Hello My sy stem is MAC Os.

    [root@centos6(Eric) ~]#echo -e my "\t\n"name "\t\n"is "\t\n"eric
    my
    name
    is
    eric

$(command) 或 `command` 引用命令执行的结果

$[] 或 $(()) 运算
${变量名} 或 “$变量名” 引用变量

{}的用法

{a,b,c} 分别引用其中的每个字符
{1..10} 或 seq 1 10 {a..z}

TAB

唯一时则补出,不唯一时,两次TAB显示列表

history

~/.bash_history 当用户退出时,会将当前终端的history写入文件,当用户登录时,从文件中读取到history history 显示当前终端的历史记录 history -a 将当前终端的历史写入.bash_history history -n 从文件中读取未加载的历史 history -r 从文件中读取历史追加到history的最后 history -c 清空history HISTSIZE 当前history保留的数量,默认1000 修改方法:
vim /etc/profile
HISTSIZE=10000 HISTFILESIZE 文件中最多存的数量

快捷键

ctrl+a 光标跳到行首
ctrl+e 光标跳到行尾
alt+num a 输入指定数量的字符

whatis 显示命令描述信息

基于数据库的查找方式,数据文件位置/var/cache/man/whatis 可使用makewhatis建立
优点:查询快
缺点:没有实时性

help用法:

help 内部命令
外部命令 --help

man

1、用户命令章节,所有用户都可以使用      2、系统调用命令章节      3、C库调用      4、设备及特殊文件      5、配置文件的格式及相关参数      6、游戏      7、杂项      8、管理命令

手册段落含义:

NAME:命令的名称和简要说明
DESCRIPTION:命令功能的详细描述 OPTIONS:所支持的选项的相关说明
SYNOPSIS:使用格式
EXAMPLES:使用示例
NOTES:相关注意事项 FILES:相关的配置文件
SEE ALSO:相关参考

通过man命令获得命令帮助信息页中有一些用符号标记的内容,符号意义:

[]:可选内容 <>:必选内容
|:二选一
...:同类内容可以有多个

快捷键

d向下翻半屏 u向上翻半屏
f向下翻整屏
b向上翻整屏 G跳到尾页 g跳到首页
j向下跳一行
k向上跳一行
/关键字 n向下找N向上找
?关键字 n向上找N向下找
q退出man

-k 关键字 查询某个关键字有哪些章节

man -k passwd man 5 passwd man passwd

[root@centos6(Eric) ~]#getent passwd Eric
Eric:x:500:500::/home/Eric:/bin/bash

一个备份命令:cp /etc/fstab{,.orig}

文件类型

- :普通文件      d :目录文件      l :软链接文件      b :块设备文件      c :字符设备文件      s :socket文件      p :管道文件

pwd

显示当前的工作目录
-P 当前目录为软链接时,则显示源目录的路径
-L 当前目录为软链接时,则显示链接目录的路径(默认)
model:
[root@centos6(Eric) ~]#pwd /root

相对路径与绝对路径
.当前目录
..上一级目录

cp /etc/passwd .
./test.sh

basename 取基名

[root@centos6(Eric) ~]#basename /etc/sysconfig/network
network

dirname 取目录名

[root@centos6(Eric) ~]#dirname /etc/sysconfig/network
/etc/sysconfig

cd 进入目录

-P 如果目标目录是个软链接目录,则直接进入其源始目录
.. 进入上一级目录
cd 进入家目录
cd ~或直接 cd 进入家目录
cd - 进入上一次的工作目录

model:
[root@centos6(Eric) etc]#pwd /etc
[root@centos6(Eric) etc]#cd [root@centos6(Eric) ~]#pwd /root

[root@centos6(Eric) ~]#cd -
/etc
[root@centos6(Eric) etc]#pwd /etc

ls 列出目录的内容

ls 列出目录的内容
    -a 列出所有文件(包含隐藏文件)      -A 列出所有文件(包含隐藏文件但不包含.和..)      -l 长列出(即显示属性信息) 
    -R 递归      -ld 查看指定目录的属性      -1 竖显示      -S 按文件大小降序排列      -t 按mtime的时间从新到旧排列      -ut 按atime的时间从新到旧排列 
    -U 按目录存放顺序      -X 按文件后缀的顺序排列      -Z 显示selinux的context      -i 显示文件的inodes  [root@centos6(Eric) ~]#ll
-rw-------. 1 root root 1020 Aug 29 01:00 anaconda-ks.cfg  -rw-r--r--. 1 root root 9617 Aug 29 01:00 install.log  -rw-r--r--. 1 root root 3161 Aug 29 01:00 install.log.syslog  最左侧第一位为文件类型
后面9位:
访问权限perm
数字:文件被硬链接的次数
左root:文件的owner
右root:文件的group
1020/9617/3161:文件的size
Aug 29 01:00:文件最近一次被修改的时间
后面就是文件名

文件查看:

cat、tac
-A:--show-all equivalent to -vET 显示所有非正常的所有符号 -E:--show-ends 显示行结束符  -T:--show-tabs 显示制表符  -v:--show-nonprinting 显示其他的非打印字符  -n:对显示的行进行编号,与文件内容没有关系  -b:打印出行号(空白行不标行号)

文件内容类型查看命令:

file
[root@centos6(Eric) ~]#file install.log install.log: ASCII text [root@centos6(Eric) ~]#file /usr/bin/less /usr/bin/less: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped

whoami 显示当前的登录用户名

who am i 显示当前的登录用户名 终端名 登录时间

who 显示当前所有的登录用户名 终端名 登录时间

w 显示当前所有的登录用户名 终端名 登录时间 登录的来源 当前在做什么

[root@centos6(Eric) ~]#whoami root

[root@centos6(Eric) ~]#who am i root     pts/0 2017-08-30 07:15 (172.16.99.1)

[root@centos6(Eric) ~]#who root     pts/0 2017-08-30 07:15 (172.16.99.1)

[root@centos6(Eric) ~]#w 08:51:15 up 9:02, 1 user,  load average: 0.01, 0.00, 0.00 USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0 172.16.99.1 07:15 0.00s 0.07s 0.00s w

原创文章,作者:泰谷子,如若转载,请注明出处:http://www.178linux.com/85907

(0)
上一篇 2017-09-02 11:43
下一篇 2017-09-02 15:50

相关推荐

  • 创建CA

    创建CA和申请证书 创建私有CA: 首先在CA服务器端创建CA。 先去看openssl的配置文件: /etc/pki/tls/openssl.cnf 一般我们不会去更改这个配置文件,但是要去看一下。我们是根据这个文件创建的CA. 这个文件里是openssl的配置文件,我们打开后只观察与CA有关的文件。   在文本中可以看出一个主机中可以有多个CA,…

    2017-07-28
  • nginx在linux系统应用详解之一基础介绍和全局配置

    一、nginx简介       1、特点:           (1)nginx服务器既可以作为HTTP服务器,也可以作为反向代理服务器,还可以作为邮件服务器;           (2)能够快速响应静态页面的请求;  …

    2017-06-19
  • find和grep命令练习

                                    find和grep命令练习 1、显示当前系统上root,fedora,或user1用户的默认shell; ~]# cat /etc/pa…

    Linux干货 2016-10-23
  • 主从模型的ipvs高可用集群实验

    主从模型的ipvs高可用集群实验 一.实验拓图 二.实验环境 本实验是keepalived+lvs-dr的高可用负载均衡实验 本实验是在虚拟机上完成,因此如上拓扑图需要准备至少四台虚拟机 1.各节点的时间同步 使用yum安装chrony包,使用nat命令同步时间 2.关闭服务主机的iptables和selinux 三.实验步骤: 1.在VS1和VS1上安装k…

    2017-05-17
  • 初学者通过VMware安装CentOS7并实现本机windows端Xshell远程登陆

    这是我这个菜鸟在学习Linux过程中写的第一篇Blog。内容主要是通过VMware安装CentOS7系统,并且在本机的Windows端通过Xshell5来远程登陆安装好的虚拟机CentOS7系统。 首先通过VMware安装完CentOS7并进入系统。 使用root权限操作,通过 ~]#ifconfig or ~]#ip addr list 命令查询到虚拟机系…

    2017-10-11
  • Linux第七周小结

    1、创建一个10G分区,并格式为ext4文件系统 a) 要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl; b) 挂载至/data/madata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; 2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之 3、写一个脚本 a)&…

    2017-08-13