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
下一篇 2017-09-02

相关推荐

  • Linux基础学习总结(二)

    经过前两周的学习,我们大家对于Linux系统和操作已经有了一定的认识。基于Linux平台进行开发,确实要更方便和高效,我经过自己的学习消化,现在将自己的理解的几点总结下来: Linux哲学思想的几句话,简洁的阐明了linux系统的特点。其中一切都是一个文件这句话特别精辟,在实际学习和操作linux系统之后,更是深刻体会到了这句话的内涵,感受颇深。它具体指明了…

    Linux干货 2018-03-16
  • N25-第十二周博客作业

    1、请描述一次完整的http请求处理过程; (1) 建立或处理连接:接收请求或拒绝请求;(2) 接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程;(3) 处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息;(4) 访问资源:获取请求报文中请求的资源;从磁盘中获取(5) 构建响应报文:(6) 发送响应报文:(7) 记录…

    Linux干货 2017-04-09
  • 对文件目录操作命令详解

    对文件目录操作命令详解 cd——切换目录 pwd——显示当前工作目录 ls——列出目录内容 touch——创建空文件和刷新时间 stat——查看文件状态 cp——复制文件和目录 mv——移动和重命名文件 rm——删除文件或目录 目录操作 tree 显示目录树 mkdir 创建目录 rmdir 删除空目录 rm -r 递归删除目录树 alias——命令别名 文…

    Linux干货 2016-09-06
  • mysql基础

      mysql基础 数据模型: 数据模型:层次模型、网状模型、关系模型、…… 关系模型: 二维关系:表     行:row, entity     列:colume, attribution 索引:数据结构,辅助完成数据查找;  &nbsp…

    Linux干货 2016-11-01
  • yum仓库搭建

    两台主机: 一台centos7  客户机 一台centos6  服务器 准备工作 1.查看是否共享服务是否可用 httpd或vsftpd 是否安装。确认安装之后选择vsftpd为共享服务/var/www/html和/var/ftp/pub为共享目录。 这里使用vsftpd,/var/ftp/pub这个目录为共享目录 在这个目录下建立一个独立的文件夹 [roo…

    2017-12-01
  • 马哥教育网络班22期+第1周课程练习 忍者乱太郎喻成

    1.计算机组成:  根据冯诺依曼的计算机结构分为四大块:控制器,运算器, 存储器,输入输出设备 控制器:对其他的组件进行控制 运算器:用于处理计算工作,不控制输入和输出 储存器:用于暂时或长期存储数据 输入输出:与外界进行交互 个人延伸: 我的理解这是一个在计算机研发之前的一个理论假象, 相对现在真实的计算机体系,这个分类会比较模糊。 运算器:cp…

    Linux干货 2016-08-15