前言
鉴于,我目前也是在慢慢学习linux的过程中,目前涉及的专业方面略显薄弱,那么在今后的的职业生涯中,我会不定时更新有关Linux方面的博客,由易到难,一步一个脚印。我拿把AK,给你整把莱福,共创辉煌_!
文件与目录管理
(1)处理目录的常用命令
用户切换命令
① 普通用户切root用户
[ray@localhost ~]$ su - root
Password: //输入正确的密码后,就切换到root用户了!
② root切普通用户
root用户切换普通用户不需要密码
[root@localhost ~]# su - ray
注解:$
普通用户,#
管理员用户。特别要注意su -
,中间有个空格,不要写成su-
,系统识别不了
切换目录
示例1:
cd usr //进入usr目录
示例2:
cd.. //返回上级目录
示例3:
cd ~ //快速切换回自己的家目录
注解:因为,/
是linux中,最上级目录,所以在根目录下使用cd ..
,目录还是在 /
的原因。
ls
(列出目录内容)
参数:
a
:全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
d
:仅列出目录本身,而不是列出目录内的文件数据(常用)
l
:长数据串列出,包含文件的属性与权限等等数据;(常用)
将家目录下的所有文件列出来(含属性与隐藏档)
目录操作
① mkdir (创建新目录)
如果想要创建新的目录的话,那么就使用mkdir (make directory)吧。
语法:
mkdir [-mp] 目录名称
参数:
m
:建立目录时同时设置目录的权限,直接配置。
p
:帮助你直接将所需要的目录(包含上一级目录)递回创建起来!
示例:cd /
,进入root根路经,创建rayLine目录
[root@localhost /] mkdir rayLine
② mkdir -p(创建新目录)
加了这个 -p
的选项,可以自行帮你创建多层目录!
示例:
mkdir -p one/two/three //用-p参数一次性创建
注解:一般创建文件不设定权限值都是默认权限值,关于mkdir -m
设定权限值的问题,涉及到进制,所以会在后面的博客详细分享。
① rmdir (删除目录)
语法:
rmdir [-p] 目录名称
参数:
p
:连同上一级『空的』目录也一起删除
示例1:
rmdir rayLine //删除单个目录
② rmdir -p(删除所有)
示例2:
rmdir -p one/two/three //删除多级目录
mv(移动目录)
参数:
i
: 若指定目录已有同名文件,则先询问是否覆盖旧文件
f
: 在mv操作要覆盖某已有的目标文件时不给任何指示
mv参数设置与运行结果
命名格式 | 运行结果 |
---|---|
mv 文件名 文件名 | 将源文件名改为目标文件名 |
mv 文件名 目录名 | 将文件移动到目标目录 |
mv 目录名 目录名 | 目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名 |
mv 目录名 文件名 | 出错 |
示例1:操作文件
mv file test //将文件 file 更名为 test
示例2:操作目录
mv dir1 dir2 //dir1移动到dir2目录下,并给改名字为"原名"字为newdir
注解:mv
,既可以操作文件,也可以操作目录,注意看示例
示例3:再如,命令行为:
mv /usr/local/* . //将/usr/local/下的所有文件和目录移到当前目录下
cp (复制文件或目录)
cp 即拷贝文件和目录。
语法
cp [options] source dest
参数:
a
:相当于 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
d
:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
f
:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
i
:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
l
:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
p
:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
r
:递回持续复制,用於目录的复制行为;(常用)
s
:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u
:若 destination 比 source 旧才升级 destination !
① 复制普通文件
示例1:
cp file dir //file被复制到dir目录下一份,并给改名字为“原名
示例2:
cp file dir/newfile //file被复制到dir目录下一份,并给改名字为newfile
② 复制目录 -r参数
递归方式拷贝目录
示例1:
cp -r dir1 dir2 //dir1被复制到dir2目录下一份,并给改名字为“原名”
示例2:
cp -r dir1 dir2/newDir //dir1被复制到dir2目录下一份,并给改名字为newDir
示例3:
cp -r dir1/dir2/dir3 //dir4/dir5,dir3被复制到dir5目录下一份,并给改名字为"原名"
pwd (显示目前所在的目录)
示例:
文件操作
touch
一般是用来修改文件时间,或者新建一个不存在的文件
语法
touch [-amcfrdt]
参数:
a
改变档案的读取时间记录。
m
改变档案的修改时间记录。
c
假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
f
不使用,是为了与其他 unix 系统的相容性而保留。
r
使用参考档的时间记录,与 --file 的效果一样。
d
设定时间与日期,可以使用各种不同的格式。
t
设定档案的时间记录,格式与 date 指令相同。
--no-create
不会建立新档案。
示例:
touch filename //创建文件
rm 删除目录或文件
语法:
rm [-fir] 文件或目录
参数:
f
: 就是 force 的意思,忽略不存在的文件,不会出现警告信息|
i
:互动模式,在删除前会询问使用者是否动作|
r
:递回删除!最常用在目录的删除了!这是非常危险的选项!!!|
v
:显示指令执行过程|
示例:rm -i
file,删除文件会询问;rm -rf
file,强制删除文件不询问!
(2)文件内容查看
Linux系统中使用以下命令来查看文件的内容:
cat
由第一行开始显示文件内容
tac
从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl
显示的时候,顺道输出行号!
more
一页一页的显示文件内容
less
与 more 类似,但是比 more 更好的是,他可以往前翻页!
head
只看头几行
tail
只看尾巴几行
你可以使用 man [命令]来查看各个命令的使用文档,如 :man cp。
① cat
由第一行开始显示文件内容
语法:
cat [-AbEnTv]
参数:
A
:相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
b
:列出行号,仅针对非空白行做行号显示,空白行不标行号!
E
:将结尾的断行字节 $ 显示出来;
n
:列印出行号,连同空白行也会有行号,与 -b 的选项不同;
T
:将 [tab] 按键以 ^I 显示出来;
v
:列出一些看不出来的特殊字符
示例:
② tac
tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
示例:
③ nl(显示行号)
语法:
nl [-bnw] 文件
参数:
b
:指定行号指定的方式,主要有两种:
b a
:表示不论是否为空行,也同样列出行号(类似 cat -n);
b t
:如果有空行,空的那一行不要列出行号(默认值);
n
:列出行号表示的方法,主要有三种:
n ln
:行号在萤幕的最左方显示;
-n rn
:行号在自己栏位的最右方显示,且不加 0 ;
n rz
:行号在自己栏位的最右方显示,且加 0 ;
w
:行号栏位的占用的位数。
示例:用 nl 列出 /etc/issue 的内容
④ more(一页一页翻动)
在 more 这个程序的运行过程中,你有几个按键可以按的:
空白键 (space)
:代表向下翻一页
Enter
:代表向下翻『一行』
/字串
:代表在这个显示的内容当中,向下搜寻『字串』这个关键字
:f
:立刻显示出档名以及目前显示的行数
q
:代表立刻离开 more ,不再显示该文件内容
b
或 [ctrl]-b
:代表往回翻页,不过这动作只对文件有用,对管线无用
示例:
⑤ less(一页一页翻动)
less运行时可以输入的命令有:
空白键
:向下翻动一页;
[pagedown]
:向下翻动一页;
[pageup]
:向上翻动一页;
/字串
:向下搜寻『字串』的功能;
?字串
:向上搜寻『字串』的功能;
n
:重复前一个搜寻 (与 / 或 ? 有关!)
N
:反向的重复前一个搜寻 (与 / 或 ? 有关!)
q
:离开 less 这个程序;
示例:
⑥ head(取出文件前面几行)
语法:
head [-n number] 文件
参数:
n
:后面接数字,代表显示几行的意思
示例:
默认显示10行
示例:
显示前 5 行
⑦ tail(取出文件后面几行)
语法:
tail [-n number] 文件
参数:
n
:后面接数字,代表显示几行的意思
f
:表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
示例1:
默认显示后10
示例2:
显示最后5行
(3)vim/vi编辑器
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:
命令模式
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
参数:
命令模式 | 详解 |
---|---|
i | 切换到输入模式,以输入字符。 |
x | 删除当前光标所在处的字符。 |
: | 切换到底线命令模式,以在最底一行输入命令。 |
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式
输入模式
参数:
输入模式 | 详解 |
---|---|
DEL | 删除键,删除光标后一个字符 |
方向键 | 在文本中移动光标 |
Page Up/Page Down | 上/下翻页 |
Insert | 切换光标为输入/替换模式,光标将变成竖线/下划线 |
ESC | 退出输入模式,切换到命令模式 |
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
参数:
底线模式 | 注解 |
---|---|
:w | 将编辑的数据写入硬盘档案中(常用) |
:q | 离开 vim/vi (常用) |
:w! | 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊! |
:q! | 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。 |
:wq | 储存后离开,若为 :wq! 则为强制储存后离开 (常用) |
ZZ | 这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开! |
注意一下啊,那个惊叹号 (!) 在 vim/vi 当中,常常具有『强制』的意思~ |
示例:
关机/重启命令
shudown(关机)
语法
shutdown [-t seconds] [-rkhncfF] time [message]
参数:
t
seconds : 设定在几秒钟之后进行关机程序。
k
: 并不会真的关机,只是将警告讯息传送给所有使用者。
r
: 关机后重新开机。
h
: 关机后停机。
n
: 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
c
: 取消目前已经进行中的关机动作。
f
: 关机时,不做 fcsk 动作(检查 Linux 档系统)。
F
: 关机时,强迫进行 fsck 动作。
time
: 设定关机的时间。
message
: 传送给所有使用者的警告讯息。
示例1:
立刻关机
shutdown -h now // 立刻关机
示例2:
指定5分钟后关机
shutdown +5 “System will shutdown after 5 minutes” //5分钟够关机并显示警告信息
reboot(重启)
语法
reboot [-n] [-w] [-d] [-f] [-i]
参数:
n
: 在重开机前不做将记忆体资料写回硬盘的动作
w
: 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
d
: 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
f
: 强迫重开机,不呼叫 shutdown 这个指令
i
: 在重开机之前先把所有网络相关的装置先停止
示例:
重新启动
reboot