继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

linux基本操作命令

KenNaNa
关注TA
已关注
手记 63
粉丝 23
获赞 130

在Linux命令行终端中使用的最多的命令是ls,它可以帮助我们列出当前目录下都有哪些文件,下面是一些实例

使用pwd,查看当前是在哪个目录中,显示为"/root",这就是当前命令行所在目录

[root@localhost ~]# pwd
/root

切换到根目录

[root@localhost ~]# cd /
[root@localhost /]# pwd
/

查看根目录下面都有哪些文件和文件夹

[root@localhost /]# ls
bin   data  etc  home  lib64       
media  opt   root  sbin   srv  tmp  var
boot  dev   ftp  lib   lost+found  mnt    
proc  run   shell  sys  usr  webdata

可以使用两个ll详细输出,这个命令和ls -l效果相同

[root@localhost /]# ll
total 76
lrwxrwxrwx   1 root    root        7 Aug  1  2017 bin -> usr/bin
dr-xr-xr-x.  4 root    root     4096 Jul 10 20:44 boot
drwxr-xr-x   3 root    root     4096 Jul 16 22:36 data
drwxr-xr-x  20 root    root     3040 Jul 17 00:19 dev
drwxr-xr-x. 91 root    root     4096 Jul 22 13:21 etc
drwxr-xr-x   2 ftpuser ftpuser  4096 Jul 10 22:21 ftp
drwxr-xr-x.  3 root    root     4096 Nov  5  2016 home
lrwxrwxrwx   1 root    root        7 Aug  1  2017 lib -> usr/lib
lrwxrwxrwx   1 root    root        9 Aug  1  2017 lib64 -> usr/lib64
drwx------.  2 root    root    16384 Feb 24  2017 lost+found
drwxr-xr-x.  2 root    root     4096 Nov  5  2016 media
drwxr-xr-x.  2 root    root     4096 Nov  5  2016 mnt
drwxr-xr-x.  2 root    root     4096 Nov  5  2016 opt
dr-xr-xr-x  94 root    root        0 Jul 17 00:19 proc
dr-xr-x---. 11 root    root     4096 Sep  5 14:07 root
drwxr-xr-x  24 root    root      660 Jul 22 13:21 run
lrwxrwxrwx   1 root    root        8 Aug  1  2017 sbin -> usr/sbin
drwxr-xr-x   2 root    root     4096 Jul 17 13:25 shell
drwxr-xr-x.  2 root    root     4096 Nov  5  2016 srv
dr-xr-xr-x  13 root    root        0 Jul 17 08:19 sys
drwxrwxrwt. 10 root    root     4096 Sep  9 20:32 tmp
drwxr-xr-x. 13 root    root     4096 Aug  1  2017 usr
drwxr-xr-x. 21 root    root     4096 Jul 17 08:19 var
drwxrwxrwx   9 apache  apache   4096 Sep  5 14:20 webdata

添加参数a将显示隐藏文件和文件夹(同ls -al),

在Linux中所有隐藏的文件和文件夹都是以符号.开头,例如下面的".autorelabel"

[root@localhost /]# ll -a
total 84
dr-xr-xr-x. 22 root    root     4096 Jul 17 13:25 .
dr-xr-xr-x. 22 root    root     4096 Jul 17 13:25 ..
-rw-r--r--   1 root    root        0 Feb 24  2017 .autorelabel
lrwxrwxrwx   1 root    root        7 Aug  1  2017 bin -> usr/bin
dr-xr-xr-x.  4 root    root     4096 Jul 10 20:44 boot
drwxr-xr-x   3 root    root     4096 Jul 16 22:36 data
drwxr-xr-x  20 root    root     3040 Jul 17 00:19 dev
drwxr-xr-x. 91 root    root     4096 Jul 22 13:21 etc
drwxr-xr-x   2 ftpuser ftpuser  4096 Jul 10 22:21 ftp
drwxr-xr-x.  3 root    root     4096 Nov  5  2016 home
lrwxrwxrwx   1 root    root        7 Aug  1  2017 lib -> usr/lib
lrwxrwxrwx   1 root    root        9 Aug  1  2017 lib64 -> usr/lib64
drwx------.  2 root    root    16384 Feb 24  2017 lost+found
drwxr-xr-x.  2 root    root     4096 Nov  5  2016 media
drwxr-xr-x.  2 root    root     4096 Nov  5  2016 mnt
drwxr-xr-x.  2 root    root     4096 Nov  5  2016 opt
dr-xr-xr-x  94 root    root        0 Jul 17 00:19 proc
dr-xr-x---. 11 root    root     4096 Sep  5 14:07 root
drwxr-xr-x  24 root    root      660 Jul 22 13:21 run
lrwxrwxrwx   1 root    root        8 Aug  1  2017 sbin -> usr/sbin
drwxr-xr-x   2 root    root     4096 Jul 17 13:25 shell
drwxr-xr-x.  2 root    root     4096 Nov  5  2016 srv
dr-xr-xr-x  13 root    root        0 Jul 17 08:19 sys
drwxrwxrwt. 10 root    root     4096 Sep  9 20:32 tmp
drwxr-xr-x. 13 root    root     4096 Aug  1  2017 usr
drwxr-xr-x. 21 root    root     4096 Jul 17 08:19 var
drwxrwxrwx   9 apache  apache   4096 Sep  5 14:20 webdata

上面为ls最常见的用法,下面是一些并不长用的方法:

使用递归模式,显示目录以及下级子目录,

后面的more是当输出超出终端屏幕显示范围时,
显示一个more,按任意键可以继续显示下面的内容(按ctrl+c可以提前结束命令显示内容的输出)。

[root@localhost /]# ls -R|more
.:
bin
boot
data
dev
etc
ftp
home
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
shell
srv
sys
tmp
usr

按文件修改时间先后顺序显示

[root@localhost /]# ls -t
tmp      root  etc    
var  dev   data  boot  sbin   
lib  lost+found  media  opt
webdata  run   shell  sys  proc  ftp   
usr   
lib64  bin  home        
mnt    srv

横排输出,中间用逗号分隔

[root@localhost /]# ls -m
bin, boot, data, dev, etc, ftp, home, lib, lib64, lost+found, media, mnt, opt,
proc, root, run, sbin, shell, srv, sys, tmp, usr, var, webdata

按大小排列,先大后小

[root@localhost /]# ls -S
lost+found  data  ftp   media  opt   shell  tmp  var      dev  lib64  bin  proc
boot        etc   home  mnt    root  srv    usr  webdata  run  sbin   lib  sys

除此之外ls会显示不同颜色,下面是这些颜色的含义:
蓝色—目录
绿色—可执行文件
红色—压缩文件
浅蓝色—链接文件
粉红色或暗紫色—图片文件
黄色—设备文件
灰色—其他文件

[root@localhost /]# cd ..
[root@localhost /]# pwd
/
[root@localhost /]# cd ~
[root@localhost ~]# 

0×4.创建、移动、复制、删除文件的操作

在当前用户的家目录中,创建一个单层目录

[root@localhost ~]# mkdir ken
[root@localhost ~]# ls
anaconda3                        for.sh     menu.sh       shell
Anaconda3-5.2.0-Linux-x86_64.sh  func.sh    nginx-1.15.1  until.sh
array.sh                         if2.sh     passwd.txt    var1.sh
auto_install_lamp.sh             if3.sh     read1.sh      var.sh
auto_scp.sh                      if.sh      read.sh       while2.sh
backup.sh                        ken        sed.sh        while.sh
case.sh                          list1.txt  sed..sh
file.sh                          list.txt   select.sh
first_shell.sh 

添加-p参数才能创建多层的嵌套目录

[root@localhost ~]# mkdir -p top/sub/sub2
[root@localhost ~]# ls
anaconda3                        for.sh     menu.sh       shell
Anaconda3-5.2.0-Linux-x86_64.sh  func.sh    nginx-1.15.1  top
array.sh                         if2.sh     passwd.txt    until.sh
auto_install_lamp.sh             if3.sh     read1.sh      var1.sh
auto_scp.sh                      if.sh      read.sh       var.sh
backup.sh                        ken        sed.sh        while2.sh
case.sh                          list1.txt  sed..sh       while.sh
file.sh                          list.txt   select.sh
first_shell.sh                   logtar.sh  set_shell.sh

强制删除刚才创建的top目录"rm -rf"后面可以接任何目录或者文件

(删除目录或文件的命令,只要会这一条就足够了)

[root@localhost ~]# rm -rf top
[root@localhost ~]# ls
anaconda3                        for.sh     menu.sh       shell
Anaconda3-5.2.0-Linux-x86_64.sh  func.sh    nginx-1.15.1  until.sh
array.sh                         if2.sh     passwd.txt    var1.sh
auto_install_lamp.sh             if3.sh     read1.sh      var.sh
auto_scp.sh                      if.sh      read.sh       while2.sh
backup.sh                        ken        sed.sh        while.sh
case.sh                          list1.txt  sed..sh
file.sh                          list.txt   select.sh
first_shell.sh                   logtar.sh  set_shell.sh

创建文本文件:

使用touch命令可以创建一个空文本文件

[root@localhost ~]# touch testfile
[root@localhost ~]# ls
anaconda3                        for.sh     menu.sh       shell
Anaconda3-5.2.0-Linux-x86_64.sh  func.sh    nginx-1.15.1  testfile
array.sh                         if2.sh     passwd.txt    until.sh
auto_install_lamp.sh             if3.sh     read1.sh      var1.sh
auto_scp.sh                      if.sh      read.sh       var.sh
backup.sh                        ken        sed.sh        while2.sh
case.sh                          list1.txt  sed..sh       while.sh
file.sh                          list.txt   select.sh
first_shell.sh                   logtar.sh  set_shell.sh

使用echo命令将hello这几个字符写入这个文件中

[root@localhost ~]# echo hello>>testfile
[root@localhost ~]# ls
anaconda3                        for.sh     menu.sh       shell
Anaconda3-5.2.0-Linux-x86_64.sh  func.sh    nginx-1.15.1  testfile
array.sh                         if2.sh     passwd.txt    until.sh
auto_install_lamp.sh             if3.sh     read1.sh      var1.sh
auto_scp.sh                      if.sh      read.sh       var.sh
backup.sh                        ken        sed.sh        while2.sh
case.sh                          list1.txt  sed..sh       while.sh
file.sh                          list.txt   select.sh
first_shell.sh                   logtar.sh  set_shell.sh

使用more命令显示这个文件中的内容

[root@localhost ~]# more testfile
hello

#追加一行,再次显示
[root@localhost ~]# echo My name is Ken >>testfile
[root@localhost ~]# more testfile
hello
My name is Ken

创建文本的方式不止这一种,还有下一篇文章会介绍到的vim以及图形化的文本编辑器gedit等等,

touch是创建空文本最方便的一种方式

复制文件或文件夹

首先创建两个文件夹

[root@localhost ~]# mkdir dir1
[root@localhost ~]# mkdir dir2
[root@localhost ~]# ls
anaconda3                        file.sh         list.txt      select.sh
Anaconda3-5.2.0-Linux-x86_64.sh  first_shell.sh  logtar.sh     set_shell.sh
array.sh                         for.sh          menu.sh       shell
auto_install_lamp.sh             func.sh         nginx-1.15.1  testfile
auto_scp.sh                      if2.sh          passwd.txt    until.sh
backup.sh                        if3.sh          read1.sh      var1.sh
case.sh                          if.sh           read.sh       var.sh
dir1                             ken             sed.sh        while2.sh
dir2                             list1.txt       sed..sh       while.sh

将testfile这个文本文件复制到dir2目录中

[root@localhost ~]# cp testfile dir2
[root@localhost ~]# ls dir2
testfile

将dir2目录复制到dir1目录中,复制非空目录要添加参数-r

[root@localhost ~]# cp -r dir2 dir1
[root@localhost ~]# ls dir1
dir2

复制多个目标到一个文件夹中,将dir1和dir2这两个文件夹以及testfile这个文本文件,

复制到后面的qing文件夹中。
[

root@localhost ~]# cp -r dir1 dir2 testfile ken
[root@localhost ~]# ls ken
dir1  dir2  testfile

移动目录或文件(剪切):

vm可以操作目录和文件,和cp一样可以一次性操作多个目标

[root@localhost ~]# mv testfile dir2 ken
mv: overwrite 鈥榢en/testfile鈥? yes
mv: overwrite 鈥榢en/dir2鈥? 

将testfile dir2一起移动到qing目录中

0×5.重启和关机
使用下面的命令重启和关机(这个命令必须使用sudo或使用root权限才能执行),
sudo能让普通用户暂时获得root的执行权利

一分钟后关机

[root@localhost ~]# sudo shutdown -h 1

如果是定时关机,可以打开另外一个终端,使用下面这个命令取消关机

[root@localhost ~]# sudo shutdown -c

马上关机

[root@localhost ~]# sudo shutdown -h now

[root@localhost ~]# sudo init 0
[root@localhost ~]# sudo poweroff

马上开机

[root@localhost ~]# sudo reboot
[root@localhost ~]# sudo init 6

打开App,阅读手记
4人推荐
发表评论
随时随地看视频慕课网APP