一:基本操作命令
记忆几个常用的热键:
Tab按键 — 命令补齐功能
Ctrl+c按键 — 停掉正在运行的程序
Ctrl+d按键 — 相当于exit,退出
Ctrl+l按键 — 清屏(或者键盘上输入clear)
1.关机和重启命令
sync 将数据由内存同步到硬盘中。shutdown 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:shutdown –h 10 ‘This server will shutdown after 10 mins’ 这个命令告诉大家,计算机将在10分钟后关机,并且会显示在登陆用户的当前屏幕中。shutdown –h now 立马关机
shutdown –h 20:45 系统会在今天20:45关机
shutdown –h +10 十分钟后关机
shutdown –r now 系统立马重启
shutdown –r +10 系统十分钟后重启
reboot 就是重启,等同于 shutdown –r now
halt 关闭系统,等同于shutdown –h now 和 poweroff
取消定时关机的命令用:shutdown -c
PS:不管是执行上述哪一条指令,在执行指令之前养成先运行sync命令的习惯,把内存中的数据写到磁盘中
2.帮助命令
–help命令
输入下述代码,会显示 mkdir 命令的帮助信息
mkdir --help
man 命令(命令说明书)
man shutdown
注意:man shutdown 打开命令说明书之后,使用按键q退出
二:目录操作命令
Linux系统目录为树状结构,最顶级目录为根目录,其他目录通过挂载可以将它们添加到树中,通过解除挂载可移除它们
1.绝对路径和相对路径
绝对路径:
路径的写法,由根目录 / 写起,例如:/usr/share/doc 这个目录。
相对路径:
路径的写法,不是由 / 写起,例如由/usr/share/doc 要到 /usr/share/man 底下时,可以写成:cd …/man
2.目录切换 cd
命令格式:cd+目录
cd是Change Directory的缩写,这是用来变换工作目录的命令
cd / 切换到根目录
cd /usr 切换到根目录下的usr目录
cd ../ 切换到上一级目录 或者 cd ..
cd ~ 切换到home目录
cd - 切换到上次访问的目录
3.目录查看 ls
命令格式: ls+[常见的是a或者l ]+目录
ls [-aAdfFhilnrRSt] 目录名称 其中任意一个字母都有单独的意义
ls [--color={never,auto,always}] 目录名称
ls [--full-time] 目录名称
记忆常用的指令:
ls 查看当前目录下的所有目录和文件
ls -a 查看当前目录下的所有目录和文件(包括隐藏的文件)
ls -l 或 ll 列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
ls /dir 查看指定目录下的所有目录和文件 如:ls /usr
将家目录下的所有文件列出来(含属性与隐藏档):
ls -al ~
家目录: 任何一个用户执行 cd ~, 就能返回自己的家目录
对于普通用户,家目录通常位于 /home 目录下。例如,用户 zhangsan 的家目录路径是 /home/zhangsan
对于超级用户(root),家目录是 /root
4.目录操作【增删改查】
创建目录(新增) mkdir
如果想要创建新目录的话,那么就使用mkdir(make directory)
语法:
mkdir [-mp] 目录名称
选项与参数:
-m :配置文件的权限,直接配置,不需要看默认权限(umask)
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来
实例:请到/tmp底下尝试创建数个新目录看看:(没有tmp文件夹的话可以先创建一个)
cd /tmp
[root@bogon tmp] mkdir test <==创建一名为 test 的新目录
[root@bogon tmp] mkdir test1/test2/test3/test4
mkdir: cannot create directory `test1/test2/test3/test4':
No such file or directory <== 没办法直接创建此目录啊![root@bogon tmp] mkdir -p test1/test2/test3/test4
加了这个 -p 的选项,可以自行帮你创建多层目录
删除目录或文件 rm
语法:
rm [-fir] 文件或目录
选项与参数:
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
删除文件:
rm 文件 删除当前目录下的文件
rm -f 文件 删除当前目录的的文件(不询问)
删除目录:
rm -r aaa 递归删除当前目录下的aaa目录
rm -rf aaa 递归删除当前目录下的aaa目录(不询问)
全部删除:
rm -rf 将当前目录下的所有目录和文件全部删除
rm -rf / ***【自杀命令!慎用!慎用!慎用!】***将根目录下的所有文件全部删除
注意:rm不仅可以删除目录,也可以删除其他文件或压包,为了方便大家的记忆,无论删除任何目录或文件,都直接使用 rm -rf 目录/文件/压缩包
rmdir (删除空的目录)
语法:
rmdir -p 目录名称
选项与参数:
-p:连同上一级的目录也一起删除
将 mkdir 实例中创建的目录(/tmp 底下)删除掉
[root@www tmp] ls -l <==看看有多少目录存在?drwxr-xr-x 3 root root 4096 Jul 18 12:50 test
drwxr-xr-x 3 root root 4096 Jul 18 12:53 test1
drwx--x--x 2 root root 4096 Jul 18 12:54 test2
[root@www tmp] rmdir test <==可直接删除掉,没问题
[root@www tmp] rmdir test1 <==因为尚有内容,所以无法删除!rmdir: `test1': Directory not empty
[root@www tmp] rmdir -p test1/test2/test3/test4
[root@www tmp] ls -l <==您看看,底下的输出中test与test1不见了!drwx--x--x 2 root root 4096 Jul 18 12:54 test2
利用 -p 这个选项,立刻就可以将 test1/test2/test3/test4 一次删除
不过要注意的是,这个 rmdir 仅能删除空的目录,你可以使用 rm 命令来删除非空目录
目录的修改 mv和cp
mv移动文件与目录,或者修改名称
语法:
[root@bogon ~] mv [-fiu] source destination
[root@bogon ~] mv [options] source1 source2 source3 .... directory
选项与参数:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
cp(复制文件或目录)
cp即拷贝文件和目录
语法:
[root@bogon ~] cp [-adfilprsu] 来源档(source) 目标档(destination)
[root@bogon ~] cp [options] source1 source2 source3 .... directory
选项与参数:
-a:相当于 -pdr 的意思,至于 pdr 请参考下列说明;(常用)
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r:递归持续复制,用於目录的复制行为;(常用)
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:若 destination 比 source 旧才升级 destination
一、重命名目录
命令:mv 当前目录 新目录
例如:mv aaa bbb 将目录aaa改为bbb
注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行 重命名的操作
二、剪切目录
命令:mv 目录名称 目录的新位置
示例:将/usr/tmp目录下的aaa目录剪切到 /usr目录下面 mv /usr/tmp/aaa /usr
注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作
三、拷贝目录
命令:cp -r 目录名称 目录拷贝的目标位置 -r代表递归
示例:将/usr/tmp目录下的aaa目录复制到 /usr目录下面 cp /usr/tmp/aaa /usr
注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不 用写-r递归
搜索目录 find
Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
find path -option [ -print ] [ -exec -ok command ] {} \;
PS:find [搜索路径] [选项] [搜索内容] [输出处理形式]
常用选项:
-name:按照文件后缀搜索
-iname:按照文件名搜索,不区分文件名大小写
-type:按照文件类型搜索,例如d表示目录,f表示一般文件等
-size:按照文件大小搜索
-atime、-mtime、-ctime:分别按照访问时间、修改时间、状态改变时间搜索
-exec:对搜索的结果执行指定的shell命令
更多选项可以通过man find命令查看
实例
将目前目录及其子目录下所有延伸档名是 .c 的文件列出来。
find . -name "*.c"
将目前目录其其下子目录中所有一般文件列出
find . -type f
将目前目录及其子目录下所有最近 20 天内更新过的文件列出
find . -ctime -20
当前目录显示pwd
pwd(显示目前所在的目录)
pwd是print working directory的缩写,也就是显示目前所在目录的命令
[root@bogon ~] pwd [-P]
选项与参数:
-P :显示出确实的路径,而非使用连结 (link) 路径
实例:单纯显示出目前的工作目录:
[root@bogon ~] pwd
/root <== 显示出目录
实例显示出实际的工作目录,而非连结档本身的目录名而已
[root@www ~] cd /var/mail <==注意,/var/mail是一个连结档
[root@www mail] pwd
/var/mail <==列出目前的工作目录
[root@www mail] pwd -P
/var/spool/mail <==怎么回事?有没有加 -P 差很多~
[root@www mail] ls -ld /var/mail
lrwxrwxrwx 1 root root 10 Sep 4 17:54 /var/mail -> spool/mail
# 看到这里应该知道为啥了吧?因为 /var/mail 是连结档,连结到 /var/spool/mail
# 所以,加上 pwd -P 的选项后,会不以连结档的数据显示,而是显示正确的完整路径啊!