1.处理目录的常用命令:

ls(英文全拼:list files): 列出目录及文件名
cd(英文全拼:change directory):切换目录
pwd(英文全拼:print work directory):显示目前的目录
mkdir(英文全拼:make directory):创建一个新的目录
rmdir(英文全拼:remove directory):删除一个空的目录
cp(英文全拼:copy file): 复制文件或目录
rm(英文全拼:remove): 移除文件或目录
mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
你可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp。
  • ls(列出目录):在Linux系统当中, ls 命令可能是最常被运行的。

- 语法:

ls [-aAdfFhilnrRSt] 目录名称
ls [--color={never,auto,always}] 目录名称
ls [--full-time] 目录名称

-选项与参数:

  • -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
  • -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
  • -l :长数据串列出,包含文件的属性与权限等等数据;(常用)

-举例:

> - 将家目录下的所有文件列出来(含属性与隐藏档)
[root@www ~]# ls -al ~
  • cd(切换目录):cd是Change Directory的缩写,这是用来变换工作目录的命令。

-语法:

cd [相对路径或绝对路径]

-举例:

> - 使用 mkdir 命令创建 runoob 目录
[root@www ~]# mkdir runoob
> - 使用绝对路径切换到 runoob 目录
[root@www ~]# cd /root/runoob/
> - 使用相对路径切换到 runoob 目录
[root@www ~]# cd ./runoob/
> - 表示回到自己的家目录,亦即是 /root 这个目录
[root@www runoob]# cd ~
> - 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
[root@www ~]# cd ..
  • pwd(显示目前所在的目录):pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录。

-语法:

pwd [-p]

-选项与参数:

  • -p :显示出确实的路径,而非使用连结 (link) 路径。

-举例:

> - 单纯显示出目前的工作目录:
[root@www ~]# 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 的选项后,会不以连结档的数据显示,而是显示正确的完整路径
  • mkdir(创建新目录):创建新的目录,使用mkdir(make directory)

-语法:

>mkdir [-mp] 目录名称

-选项与参数:

  • -m :配置文件的权限!直接配置,不需要看默认权限(umask)的脸色。
  • -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来。

-举例:

> - 请到/tmp底下尝试创建数个新目录看看:
[root@www ~]# cd /tmp
[root@www tmp]# mkdir test <==创建一名为 test 的新目录
[root@www tmp]# mkdir test1/test2/test3/test4
mkdir: cannot create directory `test1/test2/test3/test4':
No such file or directory <== 没办法直接创建此目录!
[root@www tmp]# mkdir -p test1/test2/test3/test4
加了这个 -p 的选项,可以自行帮你创建多层目录!
> - 创建权限为 rwx--x--x 的目录。
[root@www tmp]# mkdir -m 711 test2
[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

注意:上面的权限部分,如果没有加上 -m 来强制配置属性,系统会使用默认属性。

如果我们使用 -m ,如上例我们给予 -m 711 来给予新的目录 drwx--x--x 的权限。

  • rmdir(删除目录):删除空的目录

-语法:

 rmdir [-p] 目录名称

-选项与参数:

  • -p :连同上一级『空的』目录也一起删除

-举例:

> - 删除 runoob 目录
[root@www tmp]# rmdir runoob/
> - 将 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 命令来删除非空目录。

  • cp(复制文件或目录):cp 即拷贝文件和目录。

-语法:

cp [-adfilprsu] 来源档(source) 目标档(destination)
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 !

-举例:

> - 用 root 身份,将 root 目录下的 .bashrc 复制到 /tmp 下,并命名为 bashrc
[root@www ~]# cp ~/.bashrc /tmp/bashrc
[root@www ~]# cp -i ~/.bashrc /tmp/bashrc
cp: overwrite `/tmp/bashrc'? n <==n不覆盖,y为覆盖
  • rm(移除文件或目录):删除指定的文件或目录(含有内容)

-语法:

rm [-fir] 文件或目录

-选项与参数:

  • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
  • -i :互动模式,在删除前会询问使用者是否动作
  • -r :递归删除!最常用在目录的删除了!这是非常危险的选项!!!

-举例:

> - 将刚刚在 cp 的实例中创建的 bashrc 删除掉!
[root@www tmp]# rm -i bashrc
rm: remove regular file `bashrc'? y
如果加上 -i 的选项就会主动询问,避免你删除到错误的档名!
  • mv(移动文件与目录,或修改名称): 对指定的文件或目录进行移动

-语法

mv [-fiu] source destination
mv [options] source1 source2 source3 .... directory

-选项与参数:

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
  • -u :若目标文件已经存在,且 source 比较新,才会升级 (update)

-举例:

> - 复制一文件,创建一目录,将文件移动到目录中
[root@www ~]# cd /tmp
[root@www tmp]# cp ~/.bashrc bashrc
[root@www tmp]# mkdir mvtest
[root@www tmp]# mv bashrc mvtest
将某个文件移动到某个目录去,就是这样做!
> - 将刚刚的目录名称更名为 mvtest2
[root@www tmp]# mv mvtest mvtest2

2.内容查看的常用命令:

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 :列出一些看不出来的特殊字符

-举例:

> - 检看 /etc/issue 这个文件的内容:
[root@www ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m
​```language
  • tac:与cat命令相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写。

-举例:

[root@www ~]# tac /etc/issue
Kernel \r on an \m
CentOS release 6.4 (Final)
  • nl:显示行号。

-语法:

nl [-bnw] 文件

-选项与参数:

  • -b :指定行号指定的方式,主要有两种:
  • -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
  • -b t :如果有空行,空的那一行不要列出行号(默认值);
  • -n :列出行号表示的方法,主要有三种:
  • -n ln :行号在荧幕的最左方显示;
  • -n rn :行号在自己栏位的最右方显示,且不加 0 ;
  • -n rz :行号在自己栏位的最右方显示,且加 0 ;
  • -w :行号栏位的占用的位数。

-举例:

用 nl 列出 /etc/issue 的内容
[root@www ~]# nl /etc/issue
1 CentOS release 6.4 (Final)
2 Kernel \r on an \m
  • more:一页一页翻动。

-语法:

more 文件名

-举例:

[root@www ~]# more /etc/man_db.config
Generated automatically from man.conf.in by the
configure script.
man.conf from man-1.6d
....(中间省略)....
--More--(28%) <== 重点在这一行!你的光标也会在这里等待你的命令

** -注意:**在 more 这个程序的运行过程中,你有几个按键可以按的:

  • 空白键 (space):代表向下翻一页;
  • Enter :代表向下翻『一行』;
  • /字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
  • :f :立刻显示出档名以及目前显示的行数;
  • q :代表立刻离开 more ,不再显示该文件内容。
  • b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
  • less:一页一页翻动。

-语法:

less 文件名

-举例:

> - 输出/etc/man.config文件的内容:
[root@www ~]# less /etc/man.config
Generated automatically from man.conf.in by the
configure script.
man.conf from man-1.6d
....(中间省略)....
: <== 这里可以等待你输入命令!

-注意:less运行时可以输入的命令有:

  • 空白键 :向下翻动一页;
  • [pagedown]:向下翻动一页;
  • [pageup] :向上翻动一页;
  • /字串 :向下搜寻『字串』的功能;
  • ?字串 :向上搜寻『字串』的功能;
  • n :重复前一个搜寻 (与 / 或 ? 有关!)
  • N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
  • q :离开 less 这个程序;
  • head:取出文件前面几行

    -语法:
head [-n number] 文件

-选项与参数:

  • -n :后面接数字,代表显示几行的意思

-举例:

[root@www ~]# head /etc/man.config
默认的情况中,显示前面 10 行!若要显示前 20 行,就得要这样:
[root@www ~]# head -n 20 /etc/man.config
  • tail:取出文件后面几行

-语法:

tail [-n number] 文件

-选项与参数:

  • -n :后面接数字,代表显示几行的意思
  • -f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测

-举例:

[root@www ~]# tail /etc/man.config
默认的情况中,显示最后的十行!若要显示最后的 20 行,就得要这样:
[root@www ~]# tail -n 20 /etc/man.config

3.搜索查找类命令:

  • find:从指定目录向下递归的遍历其各个子目录,将满足条件的文件或者目录显示在终端。

-语法:

find 目标源 [选项]

-选项与参数:

  • -name:按照指定的文件名查找文件
  • -user:查找属于指定用户名的所有文件
  • -size:按照指定的文件大小查找文件

-举例:

> - 根据名称查找/home目录下的hello.txt文件
find /home -name hello.txt
> - 查找/opt目录下属于root用户的文件
find /opt -user root
> - 查找整个linux系统下大于20M的文件(+n大于、-n小于、n等于)
find / -size +20M
  • locate:可以快速定位文件路径,无需遍历整个文件系统,查询速度较快。

-语法:

locate 目标文件

-特别说明:

  • locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。为了保证查询结果的准确度,管理员必须定期更新locate时刻。由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。

-举例:

> - 使用locate指令快速定位hello.txt文件所在目录
> locate hello.txt
  • grep:过滤查找(在文件内部查找);管道符号"|":将前一个命令的处理结果传递给后面的命令处理。

-语法:

grep [选项] 查找内容 源文件

-选项与参数:

  • -n:显示匹配行和行号
  • -i:忽略字母及大小

-举例:

> - 在hello.txt中,查找"yes"所在行,并显示行号
> cat hello.txt | grep -n yes

4.文件压缩与解压缩命令

  • gzip压缩与gunzip解压缩指令

-语法:

gzip 目标文件   # 将指定文件压缩为*.gz文件
gunzip *.gz文件 # 将*.gz文件解压缩

-举例:

> - 将/home下的hello.txt文件压缩
> gzip /home hello.txt
> - 将/home下的hello.txt.gz文件解压缩
> gunzip /home hello.txt.gz

-特别说明:用gzip指令压缩文件后,源文件会被删除。

  • zip压缩与unzip解压缩:项目打包发布时非常有用

-语法:

zip [选项] *.zip 目标文件/目录  # 将指定文件/目录压缩为.zip文件
unzip [选项] *.zip文件 # 将*.zip文件解压缩

-选项与参数:

  • -r:递归压缩,即压缩目录 # 针对zip指令
  • -d:指定解压后文件所在位置 # 针对unzip指令

    -举例:
> - 将/home下的所有文件压缩为home.zip文件
> zip -r home.zip /home/
> - 将home.zip文件解压缩到/opt/tmp目录下
> unzip -d /opt/tmp /home/home.zip
  • tar:压缩与解压缩

-语法:

tar [选项] *.tar.gz 目标文件/目录 [-C](可选) # 将文件/目录压缩或者将.tar.gz文件解压

-选项与参数:

  • -c:产生.tar打包文件
  • -v:显示详细信息
  • -f:指定压缩后的文件名
  • -z:打包同时压缩
  • -x:解包.tar文件

-特别说明:在解压缩文件时,若要指定解压路径,将使用-C参数,用来指定位置。

-举例:

> - 压缩多个文件,将/home/zyhcs/Desktop/test.txt和hello.txt压缩成a.tar.gz文件
> cd /home/zyhcs/Desktop
> tar -zcvf a.tar.gz hello.txt test.txt
> - 将/home的文件夹压缩成myhome.tar.gz文件
> tar -zcvf myhome.tar.gz /home/
> - 将a.tar.gz文件解压到当前目录
> tar -zxvf a.tar.gz
> - 将a.tar.gz文件夹压到/home下
> tar -zxvf a.tar.gz -C /home

-注意:解压文件指定位置时,该目录必须是存在的。

5.其他常用命令:

时间日期

date # 查看系统时间
date "+%Y-%m-%d %H:%M:%S" # 以自定格式查看日期
date -s "2020-08-08 16:13:44" # 设置指定日期时间
cal # 查看当月日历
cal 年份 # 查看指定年份的日历

关机&重启命令

shutdown -h now # 立刻关机
shutdown -h 1 # 1分钟后关机
shutdown -r now # 立刻重启
halt # 作用同shutdown
reboot # 立刻重启
sync # 将内存中的数据同步到磁盘中

用户与管理员切换

  • 普通用户->管理员root
su -
## 接着输入root用户密码
  • 管理员root->普通用户
su - 用户名

Vi&Vim编辑命令

Vi编辑有3中模式:

  1. 使用vi或者vim命令打开文件时为正常模式;可以通过方向键控制光标移动,不可编辑
  2. 在键盘上输入i、I、o、O、s、S时进入插入(insert)模式:此时可以对文件内容进行编辑
  3. 在插入模式下,键入Esc,进入命令行模式:此时可以输入相应命令,完成相应的操作例如:退出Vim、显示行号等。

Vim中的快捷键:

在命令行模式下:
# 查找指定单词 /(查找内容) 输入n,查找下一个
dd # 删除光标所在行 数字+dd # 删除光标所在行下指定数字行
:w # 保存内容 :wq # 保存并退出 :q # 退出 :q! #强制退出
u # 撤销上一步的操作 :set no # 显示行号

最新文章

  1. clipboard_monitor_in_win7
  2. oracle中利用trigger,sequence自动生成ID
  3. IOS开发之——类似微信摇一摇的功能实现
  4. poj3237 树链剖分 暴力
  5. uva 10069
  6. MSSQL数库备份与还原脚本(多个库时很方便)
  7. java与C++变量初始化的对比
  8. 深度学习之Numpy整理
  9. cv::Mat类之type成员
  10. mpvue——另类支持v-html
  11. kamailio 云部署 配置NAT
  12. 手机端-万种bt在线观看器,安卓正版下载!
  13. PAT A1104 Sum of Number Segments (20 分)——数学规律,long long
  14. git rebase commit 信息处理
  15. (转)jquery.cookie中的操作
  16. 【详解】GrantedAuthority(已授予的权限)
  17. 使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件
  18. python中对两个 list 求交集,并集和差集
  19. JAVAWEB eclipse开启服务器时,filter出现找不到的问题时
  20. 修改hosts搭建本地站点

热门文章

  1. 趣图:调试bug进行时
  2. 白话ansible-runner--1.环境搭建
  3. Vue中computed分析
  4. Redis 作者 Antirez 与 Contributor Mattsta 之间关于 CRC 的 Battle
  5. React学习小记--setState的同步与异步
  6. 手把手撸套框架-Victory框架1.1 详解
  7. Java知识系统回顾整理01基础05控制流程06break
  8. python-格式化(%,format,f-string)输出+输入
  9. HTML &amp; CSS &amp; JavaScript 从一个表格到一个灰阶颜色表(目录)
  10. 几个常用markdown工具的主要优缺点