写在前面
Linux相比我们常用的windows最大的一个特点就是,基本不用通过win那样华丽的图形界面来操作Linux系统,它的图形界面是可有可无的,通常是通过命令行来对其进行操作。所以,经常会看到许多服务器机房只有大量的主机,甚至连显示器都没有,因为运维同学一般通过ssh进行远程连接进行服务器维护管理。
通过之前的文章,大家应该对Linux的目录结构已经有所了解了,接下来给大家介绍一下Linux中的常用基本命令
Linux常用基本命令
-
ls
功能描述:显示目录文件
语法:ls
[选项] [文件]
常用选项:
-a 显示所有文件,包括隐藏文件
-l 详细信息显示
-d 查看目录属性
-i 显示每个文件的inode号
-t 根据修改时间进行排序
示例:
[root@vultr /]# ls
bin dev home lib64 media opt proc run srv tmp var
boot etc lib lost+found mnt patch root sbin sys usr www
[root@vultr /]# ls -a
. bin dev home lib64 media opt proc run srv tmp var
.. boot etc lib lost+found mnt patch root sbin sys usr www
[root@vultr /]# ls -l
total 68
lrwxrwxrwx 1 root root 7 Jun 6 05:38 bin -> usr/bin
dr-xr-xr-x 5 root root 4096 Jun 21 22:38 boot
drwxr-xr-x 20 root root 3040 Jun 27 10:45 dev
...
[root@vultr /]# ls -i
3815 bin 8006 home 8007 media 1 proc 8010 srv 24002 var
8005 boot 3829 lib 8008 mnt 24001 root 1 sys 1280001 www
3 dev 388 lib64 8009 opt 10876 run 8003 tmp
16002 etc 11 lost+found 1024001 patch 394 sbin 8004 usr
-
pwd
功能描述:显示当前目录
语法:pwd
示例:
[root@vultr tmp]# pwd
/tmp
-
cd
功能描述:切换目录
语法:cd
[目录]该目录可写相对路径或绝对路径
示例:
[root@vultr /]# cd /root #进入root目录
[root@vultr ~]# cd / #进入根目录
[root@vultr /]# cd ~ #进入家目录
[root@vultr ~]# cd .. #返回上一级目录
-
mkdir
功能描述:创建新目录
语法:mkdir
[选项] [目录名称]
常用选项:
-p 递归创建目录
示例:
[root@vultr test]# mkdir test1 #创建test1目录
[root@vultr test]# ls
test1
[root@vultr test]# mkdir test1/test2/test3 #在test1里创建test2,在test2里创建test3
mkdir: cannot create directory ‘test1/test2/test3’: No such file or directory #创建失败,因为没有找到相应的目录
[root@vultr test]# mkdir -p test1/test2/test3 # 加入-p选项后递归创建成功
[root@vultr test]# ls test1/test2
test3
[root@vultr test]# mkdir test4 test5 #如果想依次创建多个目录,可用空格连接
[root@vultr test]# ls
test1 test4 test5
-
touch
功能描述:创建空文件
语法:touch
[文件名称]
示例:
[root@vultr tmp]# touch test
[root@vultr tmp]# ls
test
-
rm
功能描述:删除文件
语法:rm
[选项] [文件或目录]
常用选项:
-r 递归删除目录及其内容
-f 强制删除
示例:
[root@vultr tmp]# ls #test为文件,test1为文件夹,test1里有test2,test2里有test3
test test1
[root@vultr tmp]# rm test #删除test文件
rm: remove regular empty file ‘test’? y #询问确认删除test文件,输入“y”回车即可删除
[root@vultr tmp]# rm -rf test1 #强制递归删除test1中所有内容
-
cp
功能描述:复制文件或目录到指定位置
语法:cp
[选项] [被复制文件或目录] [目标路径]
常用选项:
-r 复制目录
示例:
[root@vultr /]# ls #根目录下有个文件夹叫“test1”,“test1/test2/test3”
test1
[root@vultr /]# cp -r /test1 /tmp/ #把test1文件夹拷贝到tmp下
[root@vultr /]# ls /tmp/
test1
-
mv
功能描述:剪切文件或目录到指定位置
语法:mv
[被复制文件或目录] [目标路径]
示例:
[root@vultr /]# ls
test1
[root@vultr /]# mv test1 /tmp/testt #把“test1”剪切到tmp文件夹下并改名为“testt”
[root@vultr /]# ls
[root@vultr /]# ls tmp
testt
-
cat
功能描述:显示文件内容
语法:cat
[文件名]
示例:
[root@vultr /]# cat /tmp/test.txt
111
222
333
444
555
[root@vultr /]# cat -n /tmp/test.txt #“-n”显示行号
1 111
2 222
3 333
4 444
5 555
-
more
功能描述:分页显示文件内容
语法:more
[文件名]
“空格”键 翻页
“回车” 换行
“q” 退出
示例:
这个功能不太方便演示,大家可以more etc下的一些配置文件看看,这些文件普遍内容比较多
[root@vultr /]# more etc/vimrc
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set fileencodings=ucs-bom,utf-8,latin1
endif
set nocompatible " Use Vim defaults (much better!)
set bs=indent,eol,start " allow backspacing over everything in insert mode
"set ai " always set autoindenting on
"set backup " keep a backup file
set viminfo='20,\"50 " read/write a .viminfo file, don't store more
" than 50 lines of registers
set history=50 " keep 50 lines of command line history
set ruler " show the cursor position all the time
" Only do this part when compiled with support for autocommands
if has("autocmd")
augroup redhat
autocmd!
" In text files, always limit the width of text to 78 characters
" autocmd BufRead *.txt set tw=78
" When editing a file, always jump to the last cursor position
autocmd BufReadPost *
\ if line("'\"") > 0 && line ("'\"") <= line("$") |
\ exe "normal! g'\"" |
\ endif
" don't write swapfile on most commonly used directories for NFS mounts or USB sticks
autocmd BufNewFile,BufReadPre /media/*,/run/media/*,/mnt/* set directory=~/tmp,/var/tmp,/tmp
" start with spec file template
--More--(56%)
#可以尝试一下上述的功能键
-
less
功能描述:分页显示文件内容(可上下翻页)
语法:less
[文件名]
“PageDwon”键 向下翻页
“PageUp”键 向上翻页
“/字符串” 向下查询字符串
“?字符串” 向上查询字符串
“:数字” 跳转指定行
“回车” 换行
“q” 退出
示例:
[root@vultr ~]# less /etc/vimrc
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set fileencodings=ucs-bom,utf-8,latin1
endif
set nocompatible " Use Vim defaults (much better!)
set bs=indent,eol,start " allow backspacing over everything in insert mode
"set ai " always set autoindenting on
"set backup " keep a backup file
set viminfo='20,\"50 " read/write a .viminfo file, don't store more
" than 50 lines of registers
set history=50 " keep 50 lines of command line history
set ruler " show the cursor position all the time
" Only do this part when compiled with support for autocommands
if has("autocmd")
augroup redhat
autocmd!
" In text files, always limit the width of text to 78 characters
" autocmd BufRead *.txt set tw=78
" When editing a file, always jump to the last cursor position
autocmd BufReadPost *
\ if line("'\"") > 0 && line ("'\"") <= line("$") |
\ exe "normal! g'\"" |
\ endif
" don't write swapfile on most commonly used directories for NFS mounts or USB sticks
autocmd BufNewFile,BufReadPre /media/*,/run/media/*,/mnt/* set directory=~/tmp,/var/tmp,/tmp
" start with spec file template
:5
#输入行号可直接跳转,大家可尝试更多的功能键
-
head
功能描述:显示文件前几行
语法:head
[选项] [文件名]
常用选项:
-n 指定行数
示例:
[root@vultr ~]# head -n 5 /etc/vimrc #仅显示前5行
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set fileencodings=ucs-bom,utf-8,latin1
endif
set nocompatible " Use Vim defaults (much better!)
[root@vultr ~]#
-
tail
功能描述:显示文件后几行
语法:tail
[选项] [文件名]
常用选项:
-n 指定行数
-f 动态显示文件末尾内容(相当于实时更新显示内容)
示例:
[root@vultr ~]# tail -n 5 /etc/vimrc #仅显示后5行
endif
" Don't wake up system with blinking cursor:
" http://www.linuxpowertop.org/known.php
let &guicursor = &guicursor . ",a:blinkon0"
-
wc
功能描述:统计文件内容信息,行数、单词数、字节数
语法:wc
[选项] [文件名]
常用选项:
-l 行数
-w 单词数
-c 字节数
[root@vultr ~]# wc -lwc /etc/vimrc #依次显示行数、单词书、字节数,一般用“-l”比较多
64 283 1982 /etc/vimrc
-
cal
功能描述:用于查看日等时间信息
语法:cal
[选项]
常用选项:
-1 查看当月日历,等同“cal”
-3 查看3个月内日历
-m 以星期一开头显示日历
-s 以星期日开头显示日历
-y 查看一年的日历
示例:
[root@vultr ~]# cal
July 2018
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
[root@vultr ~]# cal -y
2018
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 1 2 3
7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10
14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17
21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24
28 29 30 31 25 26 27 28 25 26 27 28 29 30 31
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 5 1 2
8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9
15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16
22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23
29 30 27 28 29 30 31 24 25 26 27 28 29 30
July August September
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 1
8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8
15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15
22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22
29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29
30
October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 1
7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8
14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15
21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22
28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29
30 31
[root@vultr ~]# cal -3m
June 2018 July 2018 August 2018
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 1 1 2 3 4 5
4 5 6 7 8 9 10 2 3 4 5 6 7 8 6 7 8 9 10 11 12
11 12 13 14 15 16 17 9 10 11 12 13 14 15 13 14 15 16 17 18 19
18 19 20 21 22 23 24 16 17 18 19 20 21 22 20 21 22 23 24 25 26
25 26 27 28 29 30 23 24 25 26 27 28 29 27 28 29 30 31
30 31
-
date
功能描述:打印或设置系统日期和时间
语法:date
语法2:date +%F
等同于date "+%Y-%m-%d"
语法3:date “+%F %T”
等同于date "+%Y-%m-%d %H:%M:%S"
示例:
[root@vultr ~]# date
Tue Jul 3 14:16:10 CST 2018 #输出形式为:xxxx年xx月xx日 星期x xx:xx:xx
[root@vultr ~]# date +%F
2018-07-03 #输出形式为:年-月-日
[root@vultr ~]# date "+%F %T"
2018-07-03 14:16:40 #输出形式为:年-月-日 时:分:秒
[root@vultr ~]# date "+%Y-%m-%d %H:%M:%S"
2018-07-03 14:22:04 #与上面的相同
写在最后
数了一下,大概讲了有16个基本的操作命令,都是些比较基础的命令,大家可以在自己的服务器上多加练习这些命令,都不难啦,尝试着一个个敲过去
这里再安利一个“Linux命令手册”的网站,直接将你要查询的命令输入进去,就会有相应的非常详尽的命令说明