从零开始学Linux(一)

Linux 基本命令:

遍历目录:
在 Linux 文件系统上,可以使用切换目录命令 cd 将 shell 会话切换到另一个目录:
格式:cd destination

cd 命令可以接受单个参数;如果没有参数,则将切换到用户主目录。
destination 参数可以用俩种方式表示:
一、 绝对路径(以/开头的路径)

[[email protected] ~]# cd /usr 
[[email protected] usr]#

使用绝对路径可以清晰表明用户想切换到的确切位置

二、 相对路径(非/开头的路径)

[[email protected] ~]# cd workbook/ 
 [[email protected] workbook]# cd / 
[[email protected] /]# cd ./usr/     #虽然.代表当前路径为根目录,但是依然为相对路径

Shell 如果配置好当前目录的绝对路径,也可以使用 shell 命令来显示所处位置:

[[email protected] workbook]# pwd 
/root/workbook

注意:刚开始接触命令行和 Linux 目录结构,建议先使用绝对路径;等熟悉目录布局之后,再使用相对路径。

有俩个特殊字符可用于相对文件路径中:

单点符( . ):表示当前目录;
双点符( … ):表示当前目录父目录。

文件和目录列表:

ls 显示当前目录下的文件和目录;
ls -r 逆序列出当前文件目录
ls -a 列出所有文件包括隐藏文件(以·开头的文件)
ls -A 列出隐藏文件,不包括.和…
ls -d 当前目录
ls -l -d 当前目录详细信息(ls -ld)
ls -lh 显示目录或文件大小
ls -i 列出 inode 节点号,每个文件都有一个 inode 节点号

每个文件都有对应的 inode 节点号(比如学生的学号)

Linux 的文件类型:

– 普通文件,类似于 Windows 的记事本
d 目录文件,类似于文件夹
c 字符设备文件,串行端口设备,顺序读写,键盘
b 块设备文件,可供存储的接口设备,随机读写,硬盘
p 管道文件,用于进程间的通信
l link,链接文件
在 linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号 inode。
(1) 符号链接又叫软链接,和原文件不是一个文件。例如 Windows 的快捷方式,如果原始文件被删除,所有指向它的符号链接也就都被破坏了。符号链接记录的是目标的 path。符号链接可以跨越文件系统,也可以为目录建立。软链接有自己的 node,是 linux 特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径。

创建链接文件:ln -s 原文件名称 链接文件名称

(2) 硬链接,只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为 inode)。当移动或者删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接记录的是目标的 inode

创建硬链接: ln  原文件名称   新文件名称

s 套接字文件,用于网络上的通信。可以启动一个程序来监听客户端的要求,客户端可以通过套接字来进行数据通信

常见 Linux 目录名称:

/ 根目录,通常不在这里存储文件
/bin 可执行文件,ls,cd
/sbin 可执行文件
/boot 开机启动的文件,包括 linux 内核以及开机菜单与开机所需配置文件等
/dev 设备文件,任何设备与接口设备都是以文件形式存在于这个目录的
/root root 用户的主目录
/home 普通用户的主目录
/mnt 挂载点目录
光盘必须和/下的某个目录节点建立联系才能使用。
把光盘和指定的挂载点目录建立联系的过程叫做挂载。

mount /dev/sr0 /mnt

/media 媒体目录,也是挂载点目录
/opt 可选目录。存放第三方软件包和数据文件
/var 可变目录,用以存放经常变化的文件,如日志文件
/etc 配置文件
/lib 系统的函数库
/proc 该目录是一个虚拟文件系统,它放置的数据都在内存当中
/run 系统运行时所需文件
/usr 放置的数据为可分享的与不可变动的,unix 操作系统软件资源所放置的目
录,而不是用户数据
/srv service 的缩写,是一些网络服务启动之后,这些服务所需要取用的数据
目录
/tmp 让一般用户或者是正在执行的程序暂时放置文件的地方
/sys 这个目录其实跟/proc 非常类似,也是一个虚拟的文件系统,主要是记录与内核相关的信息

FHS(文件系统层级标准)
图片来源google图库

很多Linux发行版都遵循了FHS,FHS偶尔进行更新,想要保持和FHS标准同步,访问官网:(http://www.pathname.com/fhs)

更多的基本命令:

添加指定命令别名:

alias 目标命令名称=‘需要执行的命令’   #alias 临时生效        
    alias hh=’ll bg’ 
   unalias hh=’ll bg’   #   删除指定的命令别名

Shell 下的一些快捷键:

ctrl+d 输入已结束。在 shell 下相当于 exit
ctrl+c 键盘中断请求,终止当前的命令
ctrl+s ctrl+q 暂停/恢复屏幕输出
ctrl+l 清屏,相当于 clear
Tab 自动补完命令与文件名
Tab 双击:可以列出所有可能匹配的选择
ctrl+u 删除光标至行首的内容
ctrl+k 删除光标至行尾的内容
ctrl+a 跳到命令行行首
ctrl+e 跳到命令行行尾
ctrl+左右箭头,支持按单词跳转

与时间有关的命令:

输出和更改日期时间:date(软件、系统时间)更改日期的格式 月日时分年.秒
date -s “” ‘’
date -s 只有 root 才能设置,其它只能查看
date -s 20160813 日期为 20160813,时间为 00:00:00 date -s 01:01:01 设置具体时间,不会对日期做更改
date -s “01:01:01 2016-08-13″ 设置全部时间 date -s “01:01:01 20160813″ 设置全部时间 date -s “2016-08-13 01:01:01″ 设置全部时间 date -s “20160813 01:01:01″ 设置全部时间

查看硬件时间:

clock 查看硬件时间:
hwclock -w 系统时间给硬件时间
hwclock -s 硬件时间给系统时间
查看日历:cal
cal 查看当年当月的日历 cal 年份 查看一年日历
cal 月份 年份 查看当年当月的日历
cal -1 查看该月的日历
cal -3 查看前一个月,本月,下月的日历

将输入接到标准输出(从键盘输入,从显示器输出):

echo 写入文本  #显示到终端

文件命名规则:

(1) 不能使用/来当文件名,/是用来做根的,也是用来做路径分隔符的
(2) 文件名不能超过 255 个字符
(3) 区分大小写
创建多个普通文件:

方法 1:
touch 文件名 1 文件名 2 文件名 3
方法 2:
touch {文件名 1,文件名 2,文件名 3}
touch {1,2}{3,4} touch abc{1…100}

向文件里写入数据:

重定向:>
追加重定向:>>
查看文件的内容:cat stat 查看文件的详细信息
touch 不仅可以创建空文件,还可以改变文件的修改时间
atime access time 看了一下内容 cat
mtime modify time 文件内容被改变了,ctime 也会发生改变
ctime change time 元数据被改变,重命名
创建目录文件:

mkdir 目录名
-p parents 父目录
-v verbose 详细信息

删除普通文件和目录文件:

rm(命令别名默认带-i,该选项用来提示用户进行交互)删除当前目录下的所有文件(*代表所有):rm -rf *

复制文件:复制普通文件:cp 复制目录文件:cp -r (添加-r 选项则可以 copy 目录文件)

移动文件:mv,等同 Windows 里面的剪切,移动之后原文件消失