Linux 学习第一周

2018-05-29  本文已影响0人  溪云初起日沉阁l

1.Linux登录

在开机后的登录界面有虚拟终端与图形化终端

虚拟终端:

centos6 : ctrl + alt + F2~F6  可对应分别进入 /dev/tty2-6 的虚拟终端登录界面

centos7:  ctrl + alt + F2~F6 可对应分别进入 /dev/tty2-6 的虚拟终端登录界面

图型化终端:

centos6: ctrl + alt + F1 可进入/dev/tty1 的图形化终端登录界面

centos7: ctrl + alt + F1 可进入/dev/tty1 的图形化终端登录界面

使用用户名及密码登录以上终端。

2. Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。

它接收用户输入的命令并把它送入内核去执行。 shell也被称为LINUX的命令解释器(command interpreter)

同时shell也是一种高级程序设计语言。

查看当前系统所安装的shell :cat /etc/shells  

[root@centos7 ~]# cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

查看当前使用的何种shell:echo $SHELL  

[root@centos7 ~]# echo $SHELL

/bin/bash

3.type命令:查看命令类型

type + 命令

[root@centos7 ~]# type echo

echo is a shell builtin   (查看命令echo的类型)

4.which 命令:查看命令的路径

which + 命令

[root@centos7 ~]# which echo

/usr/bin/echo   (查看命令echo的路径)

5.enable 查看所有已启用的内部命令

enable (+选项) (+命令)

(默认)查看所有已启用的内部命令

[root@centos7 ~]# enable

enable .

enable :

enable [

enable alias

。。。。。。(省略)

-n  查看所有已禁用的内部命令

-a  查看所有的内部命令

enable command 启用指定的内部命令

enable -n command 禁用指定的内部命令

[root@centos7 ~]# enable -n alias (禁用 alias命令)

[root@centos7 ~]# enable -n (查看已禁用的命令)

enable -n alias

命令执行的优先顺序 : alias > 内部 > 外部(hash > PATH)

6.hash 显示已缓存的外部命令的路径

hash (默认)显示已缓存的外部命令的路径

[root@centos7 ~]# hash

hits command

  2 /usr/bin/cat

hash -d command 删除指定命令的hash缓存

hash -r 删除所有缓存

7.alias 别名命令

可直接设置别名:如 alias copy=cp ;alias copy='cp -p -r' 等

alias 查看已有的别名

[root@centos7 ~]# alias

alias cp='cp -i'

alias egrep='egrep --color=auto'

alias fgrep='fgrep --color=auto'

alias grep='grep --color=auto'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias mv='mv -i'

alias rm='rm -i'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

unalias 删除别名

unalias -a 取消所有别名

*使用alias直接设置别名:如 alias copy=cp ,在重新开机后会丢失,

若要每次开机都可直接使用此别名,可将其写入~/.bashrc文件中

*若要临时使用某一条命令不受别名影响,可使用以下方法:

>   /bin/ls 使用路径执行命令

>   \ls 命令前加反斜杠

>   'ls' 命令上加单引号

>   "ls" 命令上加双引号

8.date 命令 :显示/设置系统的时间与日期

[root@centos7 ~]# date "+%F %T" (显示系统时间)

2018-05-28 21:49:05

[root@centos7 ~]# date "+%Y-%m-%d"   (显示系统日期)

2018-05-28

[root@centos7 ~]# date -d '-2 days'   (表示前天是星期几)

Sat May 26 21:54:08 CST 2018

其它显示内容可参考 man date 

clock/hwclock   查看/设置时间

-s 将硬时间写入软时间

-w 将软时间写入硬时间

9.history 显示历史记录

history 查看当前的历史记录

可使用上下键查看之前的历史命令,并可以再次回车执行

-c 清空历史

-a 将当前终端的新命令追加到历史文件

-w /path/filename 将当前终端的新命令追加到指定文件

-r 读取历史文件中的所有历史到当前终端的历史缓存

-n 仅读取未读过的历史到当前终端的历史缓存

!XX 执行某条历史记录

[root@instructor_v6(nanyibo) ~]# service postfix restart

Shutting down postfix:                                    [  OK  ]

Starting postfix:                                          [  OK  ]

[root@instructor_v6(nanyibo) ~]# !ser

service postfix restart

Shutting down postfix:                                    [  OK  ]

Starting postfix:                                          [  OK  ]

!!重复执行上一条历史

ctrl+R 在历史记录中搜索使用过的命令

搜索到后,回车可直接运行

ctrl+g退出当前搜索 

tab退出搜索,但保留查到的结果,可修改后再运行

10. whatis 查看帮助

查找方式:基于数据库的查找命令

优点:查找速度快

缺点:不具有实时性

centos6:

数据库存放位置:/var/cache/man/whatis

更新数据库:makewhatis

centos7:

数据库存放位置:/var/cache/man/index.db

更新数据库:mandb

[root@centos7 ~]# whatis cp

cp (1)              - copy files and directories

cp (1p)              - copy files

11.man 帮助命令

man + 命令 可查看关于此命令的帮助

在man界面翻页的快捷方式:

f:向下翻一屏

b:向上翻一屏

d:向下翻半屏

u:向上翻半屏

j:向下翻一行

k:向上翻一行

g:跳至首页

G:跳至尾页

在man界面中搜索:

/ 关键字  自上而下  n  向下找 N向上找

? 关键字  自下而上  n  向上找 N向下找

12.文件系统结构

> /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录

> /bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序

> /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序

> /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

> /lib64:专用于x86_64系统上的辅助共享库文件存放位置

> /etc:配置文件目录

> /home/USERNAME:普通用户家目录

> /root:管理员的家目录

> /media:便携式移动设备挂载点

> /mnt:临时文件系统挂载点

> /dev:设备文件及特殊文件存储位置

               b: block device,随机访问

               c: character device,线性访问

> /opt:第三方应用程序的安装位置

> /srv:系统上运行的服务用到的数据 

> /tmp:临时文件存储位置

> /usr 存放软件的执行程序,库文件及文档

> /var 存放软件可变的数据

> /proc 内核与存放进程信息的虚拟文件系统   (/proc/cpuinfo)

> /sys 存放硬件信息的虚拟文件系统

13.Linux下的文件类型

-:普通文件

 d: 目录文件 

• b: 块设备 

• c: 字符设备 

• l: 符号链接文件 

• p: 管道文件pipe 

• s: 套接字文件socket

14.pwd:查看当前所在的绝对路径

[root@centos7 ~]# pwd

/root

-P 如果当前所在位置是软链接目录,则显示源路径

-L 显示链接路径(默认)

[root@centos7 bin]# pwd -P

/usr/bin

[root@centos7 bin]# pwd -L

/bin

绝对路径与相对路径

绝对:从根开始的路径

相对:相对于当前的路径

目录名与基名

[root@instructor_v7(nanyibo) ~]# dirname '/etc/sysconfig/network-scripts/ifcfg-eth0'

/etc/sysconfig/network-scripts   (取出目录名)

[root@instructor_v7(nanyibo) ~]# basename '/etc/sysconfig/network-scripts/ifcfg-eth0'

ifcfg-eth0   (取出基名)

15.cd:改变目录

cd + 路径 按相对路径或绝对路径进入对应的目录

cd 进入家目录

[root@centos7 bin]# cd

[root@centos7 ~]#

cd ~ 进入家目录

[root@centos7 bin]# cd ~

[root@centos7 ~]#

cd - 进入上一次的工作目录,反复执行会在两个目录间来回切换

cd .. 切换至当前目录的父目录

16.ls:列出目录内容

ls + [options][fils or directories]

-a 显示所有文件,包含隐藏文件

-A 显示所有文件,包含隐藏文件,除了. and ..

-l 长列出,显示属性信息。如

[root@centos7 ~]# ll anaconda-ks.cfg

-rw-------. 1 root root  1495 May 15 11:23 anaconda-ks.cfg

列出的文件的属性信息为如下内容:

    -/d/l/s/b/c/p 表示文件的类型

    rw-  ---  --- 表示owner,group,other的权限

    . 表示该文件有selinux的context标签,可用-Z 详细查看

    1 表示硬链接数

    root 表示该文件的owner

    root 表示该文件的group

    1495 表示该文件的大小,默认bytes -h以人类可读性显示,则显示具体的单位

    May 15 11:23 默认显示为mtime,可使用u或--time=atime来显示atime

                                                              可使用--time=ctime来显示ctime

    anaconda-ks.cfg  文件名

-dl 详细指定目录自己的属性信息,而不是显示子文件,子目录信息

-R 递归

-1 (数字1)以一列显示

-S 按文件大小从大到小排序

-tl 默认以修改时间从新到旧排序,而如果使用--time=a[c]time,则按所指定的时间从新到旧排序

-utl 以atime从新到旧排序 也可以用--time=atime -tl

不加t只有ul存在时,表示以atime来显示详细信息

-rS 按文件大小从小到大 -rt 按时间从旧到新

-U 按文件的存放顺序显示

-X 按文件后缀排序

-i 显示文件的inode号

-Z 显示context

17.stat:显示文件或文件系统状态(metadata元数据, data元数据)

[root@centos7 app]# stat file

  File: ‘file’

  Size: 20        Blocks: 8          IO Block: 4096  regular file

Device: 805h/2053d Inode: 71          Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)  Gid: (    0/    root)

Context: unconfined_u:object_r:etc_runtime_t:s0

Access: 2018-05-29 09:57:58.980666458 +0800

Modify: 2018-05-29 09:57:58.982666458 +0800

Change: 2018-05-29 09:57:58.982666458 +0800

Birth: -

18.时间戳

access time(atime): 访问时间,当文件被读取时才更新

modify time(mtime): 数据修改时间,当文件的数据被修改时才更新

change time(ctime): 元数据修改时间,当文件的元数据(权限,大小,owner,group,mtime等)更新时则更新

查看时间:stat + 文件名:显示文件的三个时间

                        ls + 文件名     ls -l 默认查看mtime

                                                ls --time=atime -l 查看atime

                                                ls --time=ctime -l 查看ctime

19. touch 创建新文件

touch  + [OPTION] + FILE

若文件不存在,则创建一个空文件

若文件存在,则更新三个时间戳

-a 更新atime和ctime

-m 更新mtime和ctime

-c 若文件存在,则更新三个时间戳,若不在,不会创建新文件,无作为。

20.文件通配符

*:匹配零或多个任意字符

?:匹配任意一个单一字符

0-9:表示任何数字

a-Z:表示所有字母,包括大小写

[linux]:表示包含l或i或n或u或x

[^linux]:表示不包含l和i和n和u和x

[:digit:]:表示任意数字

[:lower:]:表示小写字母

[:upper:]:表示大写字母

[:alpha:]:表示大小写字母

[:alnum:]:表示任意字母或数字

[:blank:]:表示空格(水平制表符)及TAB

[:space:]:表示空格(水平制表符)、回车(垂直制表符)及TAB

[:punct:]:表示符号

[:print:]:表示可打印字符

目前使用的编码:UTF-8 (ASCII的扩展)

21.cp:复制文件

cp + [OPTION] + 源文件/目录 + 目标文件/目录

当源是一个文件时;   当目标文件不存时,则新建文件,并填充内容

                                        当目标文件存在,且为一个文件时,则覆盖该文件

                                                                        且为一个目录时,则将该文件放置入该目录

当源是多个文件时;   当目标文件不存时,报错

                                       当目标文件存在,且为一个文件时,报错

                                                                       且为一个目录时,则将所有源目文件放置入该目录

当源是一个目录时, 要配合-r;   

   当目标不存在时,则创建指定名称的目录,并将源目录当中的文件复制到新目录当中

   当目标文件存在,且为一个文件时,报错

                                   且为一个目录时,则两个目录内容合并,如有同名文件,则源目录下的文件覆盖目标目录的文件。

-i 覆盖时交互式提示

-r 递归,可以复制目录

-d 默认不加-d时,cp复制软链接会将源复制过去,加上-d保留链接属性,把软链接复制过去

--preserv=

                    mode 权限不变

                    owner[ship] 权限及owner,group 不变

                    time 三个时间戳不变

                    xattr acl权限不变

                    links 链接不变

                    context 文件的selinux上下文关系不变

                    all

-p  等于 --preserv=mode,owner,time

-a 等于 -rdp

-v 显示复制过程

-f 强制覆盖: 当普通用户对目标文件不可更改时,但对该目标文件所在的目录有创建及删除文件的权限,则使用-f可以强制覆盖,实际上是先删除文件,再创建

-u 只覆盖源比目标文件新的文件

--backup-numbered 覆盖前,先将旧文件改名为 文件名.~数字~

22.mv : 移动和重命名文件

mv + [OPTION] + 源文件/目录 + 目标文件/目录

源为文件,目标为目录时,将文件移到目录内,若目标目录不存在时则新建目录

源和目标同时为文件或目录时,若目标存在则覆盖,若不存在则新建目标(相当于修改源文件的名字)

常用选项:

-i: 交互式 

-f: 强制  直接覆盖,不交互式,抵消i的作用

若要批量修改文件名可使用rename命令

rename +a +b +c 把名称a改成名称b,c为需要修改的文件列表,如果一个文件就直接指定文件名

      [root@centos7 b]# ls

      1.doc  3.doc  5.doc  7.doc  a.xls  c.xls  e.xls  g.xls

      2.doc  4.doc  6.doc  8.doc  b.xls  d.xls  f.xls  h.xls

      [root@centos7 b]# rename doc txt *.doc

      [root@centos7 b]# ls

      1.txt  3.txt  5.txt  7.txt  a.xls  c.xls  e.xls  g.xls

      2.txt  4.txt  6.txt  8.txt  b.xls  d.xls  f.xls  h.xls

23.rm : 删除

  -i交互式提示(rm默认不提示,因别名中有cp=cp -i,所有提示要删除)

  (在rm命令前加上路径,可直接执行,跳过别名,如:/bin/rm 命令。或在命令前加反斜杠也可,如:\rm)

  -f 直接删除,不提示(与i相反)

  -r 递归删除(目录与内容,直接rm只能删除文件,不能删除目录,与rf组合后可删除直接删除全部

  rm dir2/* -rf  删除dir2目录下的全部文件

  rm rf *  删除本目录下的全部内容

  rm -rf / --no-preserve-root

rm 目录和文件的连接数递减删除,当链接数由1删到0时,对应的inode在位图中由占用变为空闲。

  此时实际数据不会被马上删除,但当另一个文件使用此数据块时会被覆盖

bitmap 位图:inode bitmap   block bitmap

24.tree : 显示目录树

    -d: 只显示目录

    -L level:指定显示的层级数目(可与d组合使用)

      [root@centos7 app]# tree -L 1

      .

      ├── test

      └── test2

    -P pattern: 只显示由指定pattern匹配到的路径

tree 安装:

      [root@centos7 test2]# mount /dev/cdrom /media/

      [root@centos7 test2]# rpm -ivh /media/Packages/tree-1.6.0-      10.el7.x86_64.rpm

25.mkdir : 删除目录

-p 可以同时创建多级目录

-v 在创建目录时显示详细信息

-m xxx  创建同时指定权限

手工创建家目录

       mkdir /home/magetest

      cp -r /etc/skel/.[^.]* /home/magetest

      chown -R magetest.magetest /home/magetest

      chmod -R 700 /home/matgtest

26.硬链接与软链接

创建硬链接

ln + 源路径 + 目的路径 (注意:源与目的要在同一文件系统下)

创建硬链接会增加额外的记录项以引用文件 ,创建时链接数递增

每个目录引用相同的inode号 

删除硬连接 rm

文件要存在,至少有一个链接数

当删除硬链接,链接数会递减删除,从而释放的inode号。

释放的inode号可以被重用;数据块也会被放在空闲列表中

当链接数为零时,该文件被删除

实际是删除目录项,数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖。

创建软链接:一个符号链接指向另一个文件

ln -s + 源路径 + 目的路径

软链接可以对目录进行也 可以跨分区

软链接指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的

引用计数

27.file 确定文件类型

file [options] <filename>

-b 列出文件辨识结果时,不显示文件名称

-f filelist 列出文件filelist中文件名的文件类型

-F 使用指定分隔符号替换输出文件名后默认的”:”分隔符

-L 查看对应软链接对应文件的文件类型

[root@centos7 app]# file testfile

testfile: ASCII text

常用快捷键及命令

清屏命令:clear 或 ctrl + l

ctrl+a 光标移至行首(命令输入行)

ctrl+e 光标移至行尾(命令输入行)

Ctrl + u 从光标处删除至命令行首

 Ctrl + k 从光标处删除至命令行尾

 Alt + r 删除当前整行 (注意:Alt组合快捷键经常和其它软件冲突)

stty -echoctl 可取消ctri+c的显示 ^C

stty echoctl 可恢复ctri+c的显示 ^C

上一篇下一篇

猜你喜欢

热点阅读