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

相关推荐

  • 脚本实现httpd创建虚拟主机

    概述 本文使用脚本实现基于主机名的虚拟主机按需创建: 脚本可接受参数,提供独立站点目录; 生成独立站点首页; 脚本可接受参数,参数虚拟主机名称; 每虚拟使用单独的配置文件; 脚本可接受参数,参数虚拟主机名称; 环境 系统基于CentOS7.2,并通过yum安装httpd 2.4.6 建议关闭防火墙和selinux。 演示   客户机将域名解析写入/…

    Linux干货 2016-10-08
  • 逻辑卷实例

    1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录 2、新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录 3、扩展testlv至7G,要…

    Linux干货 2016-09-01
  • kickstart 的使用!

    简介 1.什么是kickstart KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,…

    Linux干货 2016-11-03
  • 关于nginx状态监控字段的个人见解(求真相)

    今天看到了马哥视频其中一节对nginx状态监控信息的介绍,对视频ppt上的监控字段解析产生了一些疑问,ppt内容如下: active connections – 活跃的连接数量server accepts handled requests — 总共处理了xxx个连接 , 成功创建xxx次握手, 总共处理了xxx个请求reading — 读取客户端的连接数.w…

    Linux干货 2016-07-12
  • Linux网络配置

    Linux网络基础配置 将Linux主机接入到网络,需要配置网络相关设置。 一般包括如下内容:     主机名     IP/netmask     路由:默认网关     DNS服务器  …

    Linux干货 2016-09-09
  • shell编程循环语法作业

    判断/var/目录下所有文件的类型 [root@www sh.log]# cat typefile.sh  #!/bin/bash #author:DYW #显示目录下文件类型 if [ $# -lt 1 ];then echo "Please&nb…

    Linux干货 2016-08-21