Linux 基础基本操作
linux 文件系统:
-
文件结构:
“/ (根目录) ”–>"bin (可执行文件夹) "
-->"etc (配置文件夹) "
-->"proc (进程文件夹) "
-->"lib (库文件夹) "
-->"home (用户文件夹) "
-
路径描述:
-
绝对路径: 从根目录开始的路径描述, 即以根目录开始,最开始是/
-
相对路径:
"."表示当前目录;
“…”表示上一级目录 ;
“~”表示用户的home/用户/目录.
-
常见命令:
常用命令介绍
(1) ctrl c: 取消命令,并且换行
(2) ctrl u: 清空本行命令
(3) tab键:可以补全命令和文件名,如果补全不了快速按两下tab键,可以显示备选选项
(4) ls: 列出当前目录下所有文件,蓝色的是文件夹,白色的是普通文件,绿色的是可执行文件
可选参数 -l 展示详细信息
-a 显示所有(显示隐藏)文件(隐藏文件为.开头)
-ih 人性化显示内容
(5) pwd: 显示当前路径
(6) cd XXX: 进入XXX目录下,
cd .. 返回上层目录
cd - 返回上次所在的目录
(7) cp XXX YYY: 将XXX文件复制成YYY,XXX和YYY可以是一个路径,比如../dir_c/a.txt,表示上层目录下的dir_c文件夹下的文件a.txt
cp 实际上是将某文件的内容复制到另一个地方并创建一个文件,名字自定(也有重命名效果)
(8) mkdir XXX: 创建目录XXX
(9) rm XXX: 删除普通文件; rm XXX -r: 删除文件夹
(10) mv XXX YYY: 将XXX文件移动到YYY,和cp命令一样,XXX和YYY可以是一个路径;重命名也是用这个命令
(11) touch XXX: 创建一个文件
(12) cat XXX: 展示文件XXX中的内容
(13) 复制文本
windows/Linux下:Ctrl + insert,Mac下:command + c
(14) 粘贴文本
windows/Linux下:Shift + insert,Mac下:command + v
常间命令的参数详解
与目录相关
-
cd:change directory,切换目录
如:
cd ~
回到家目录
cd -
回到上一级目录 -
mkdir : 用于新建目录
格式: mkdir [-m/-p] 目录名称
-m 表示不使用默认的权限umask
如:
mkdir -m 711 test
新建目录,权限为711-p 表示递归创建多层目录,即可输入一整条的目录路径
如:
mkdir -p /home/sheep/test
会建立一层一层的目录 -
rmdir :用于删除目录
注意:rmdir常用于保险删除目录,因为rmdir只能删除空目录,所以当目录非空时它会有提示
-
pwd :(Print Working Directory)打印当前工作目录
有一个选项,-P 将当前目录的完整路径,打印出来,而并非是当前所处的链接文件
-
有一点很有趣的是,ls真实的文件在
bin/ls
但我们可以在任意一个文件夹下使用ls 。原因是 linux命令本质是 bash Shell这个软件,我们可以通过设置PATH
即环境变量,来将一些目录设为执行时的默认目录,这样在我们写下ls时,bash Shell会自动去 PATH有的目录下找。可以通过
echo $PATH #打印PATH这个变量的内容,内容是路径各个路径,默认用:隔开 PATH="${PATH}":/root #将 /root 添加到环境变量PATH中 ,${}是取变量的值,上面那个语句加与不加均可。
与文件相关
-
ls : (list)排列当前(或指定目录,在后面加要查询的路径即可)目录下的目录和文件,并输出
常用选项有:
-a
:列出全部文件(all),包括隐藏文件-l
:列出文件的详细信息,包括权限,日期等-d
:只列出当前目录本身 即.
好像没什么用,但常用-ld
可以知道当前目录本身的属性以上两个可以组合成
-al
-ld
同时,大多数linux发行版会将
ls -l
命名别名ll
两者拥有一样的效果 -
cp : (copy)复制文件/目录
格式 :
cp [poptins] 源文件 目标文件
常用选项 :
-a
:将文件完全复制一份,包括所有属性,注意此时的目标文件只能是目录,比-p
更完全(鸟哥的书有些看不懂,以后补充)-p
:将文件的属性也完全复制过去(常用于备份)-i
:若有已存在的同名文件,提前询问-r
:用于复制目录(文件夹),递归(recursion)复制的意思,将目录下所有的文件也一起复制过去 -
rm : 删除文件或目录
常用选项:
-f
: 强制删除-I
: 交互模式,删除前询问-r
: 递归删除,用于删除目录,慎用,因为它会删除目录下所有文件并不会提示 -
mv : 移动文件或目录,重命名
常用选项:
-f
: 强制覆盖,若目标文件有相同名字的存在,直接覆盖,不询问-I
: 交互模式,覆盖前询问-u
: 若目标文件存在,比较并更新
新建与查看文件
-
cat :(concatenate) 从第一行开始查看文件内容
tac : 从最后一行到第一行反向显示在屏幕上
可选项 :
-n
打印行号nl :显示行号打印
-
more: 按页输出文件内容查看
查看时的操作:
[space]
向下翻页;/字符串
查找字符串;:f
显示文件名和行数q
退出 more 查看b
或[ctrl]+b
向上翻页less: 同样是按页查看
查看时的操作:
q
: 退出查看以下四个,与vim的操作类似
[PgUp][PgDown]
: 向上/向下翻页/字符串
?字符串
:向下/向上查找字符串n/N
: 重复前一个查找/反向一个查找g/G
:到第一行(vim中是gg),到最后一行 -
head/tail -n [number]
列出第[number] 行后几行/前几行 -
od :用于查看二进制可执行文件
格式 :
od -t [type] 文件名
[type] 可以填充如下:
a
默认字符输出c
ASCII码输出d[size]
十进制输出 ,每个整数占用size bytes (下同)f[size]
float 浮点输出o[size]
八进制输出x[size]
十六进制输出
新建文件及修改时间
-
关于时间 ,有如下三种:
- modification/mtime :文件内容最新一次变更的时间,
ll
默认输出的就是这个时间 - status time /ctime : 文件属性最新一次改变的时间,可用
ll --time=ctime
查看 - access time/atime : 文件最新一次被读取(包括more cat 等等)过的时间, 可用
ll --time=atime
查看
- modification/mtime :文件内容最新一次变更的时间,
-
touch [-acdmt] 文件名
可选项的共能:
-a
: 用当前时间修改文件的 atime-c
: 仅修改文件的时间,不存在可建立文件, touch 不加[option]时,可建立空文件
-d
: 后面跟自定义的日期 ,如:“2 days ago”
即--date="2 days ago"
的效果-t
: 后面跟自定义时间,时间格式 [YYYYMMDDhhmm]
一些超前的操作
主要是与bash语法相关
-
可用
;
执行多条语句date;ll --time=atime
-
可用
\
转义换行符,实现多行输入date\ >ll
-
可用
|
管道命令 ,实现输出传送,将前一个命令的输出,送给后一个命名cat -n | head -n 20 |tail -n 10