遍历目录:
在 Linux 文件系统上,可以使用切换目录命令 cd 将 shell 会话切换到另一个目录:
格式:cd destination
cd 命令可以接受单个参数;如果没有参数,则将切换到用户主目录。
destination 参数可以用俩种方式表示:
一、 绝对路径(以/开头的路径)
[root@localhost ~]# cd /usr
[root@localhost usr]#
使用绝对路径可以清晰表明用户想切换到的确切位置
二、 相对路径(非/开头的路径)
[root@localhost ~]# cd workbook/
[root@localhost workbook]# cd /
[root@localhost /]# cd ./usr/ #虽然.代表当前路径为根目录,但是依然为相对路径
Shell 如果配置好当前目录的绝对路径,也可以使用 shell 命令来显示所处位置:
[root@localhost 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 非常类似,也是一个虚拟的文件系统,主要是记录与内核相关的信息
很多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 里面的剪切,移动之后原文件消失