Linux 基本命令的使用

159 阅读11分钟

Linux 文件系统简单介绍

@[toc] Linux文件系统 和 Windows文件系统有一些区别,Windows是分C盘、D盘、E盘...的,但是在Linux中是有一个最大的目录,称之为根目录,用 / 表示,根目录下面会有很多子目录,这些子目录其实可以理解为windows中C盘、D盘、E盘。

不同的子目录具有不同的含义,存放不同类型的文件信息。 在这里插入图片描述 bin 存放二进制可执行文件(ls,cat,mkdir等)

boot 存放用于系统引导时使用的各种文件

dev 存放设备文件

etc 存放系统配置文件

home 存放所有用户文件的根目录

lib 存放跟文件系统中的程序运行所需要的共享库及内核模块

proc 虚拟文件系统,存放当前内存的映射

usr 存放系统应用程序,比较重要的目录/usr/local 管理员软件安装目录

var 存放运行时需要改变数据的文件

mnt 挂载目录

sbin 存储管理级别的二进制执行文件

root 超级用户主目录

opt 额外安装的可选应用程序包安装位置

下面开始正式分析Linux中的基本命令。

1. 文件查看

pwd 列出当前目录的路径

ls 列出当前目录下的所有文件

ll(ls -l缩写) 列出当前目录下的文件(带文件信息)

ll -a 列出当前目录下的所有文件(包括隐藏文件)

ll --help 查看ls用法,--help是一个帮助命令

2.创建、重命名文件\文件夹

touch filename 创建空文件

mkdir 创建目录

mkdir -p 目标目录存在也不报错

mv 重命名文件\文件夹

3. 链接文件

linux有两种链接:硬链接、符号(软)链接

软链接功能类似类似于windows的快捷方式,主要用于节省磁盘空间

首先看硬链接:硬链接相当于对原始文件的一个复制,不能对目录使用硬链接。

命令如下:

ln hello.txt hlink

[root@localhost ~]# ll
total 4
drwxr-xr-x. 2 root root    6 Mar 28 22:22 abx
-rw-------. 1 root root 1243 Mar 28 20:59 anaconda-ks.cfg
-rw-r--r--. 1 root root    0 Mar 28 22:21 hello.txt
[root@localhost ~]# ln hello.txt hlink
[root@localhost ~]# ll
total 4
drwxr-xr-x. 2 root root    6 Mar 28 22:22 abx
-rw-------. 1 root root 1243 Mar 28 20:59 anaconda-ks.cfg
-rw-r--r--. 2 root root    0 Mar 28 22:21 hello.txt
-rw-r--r--. 2 root root    0 Mar 28 22:21 hlink

再看符号(软)链接:

如果想使用软连接,需要添加-s,相当于快捷方式,不能删除原文件

命令如下:

ln -s hello.txt vlink

[root@localhost ~]# ll
total 4
drwxr-xr-x. 2 root root    6 Mar 28 22:22 abx
-rw-------. 1 root root 1243 Mar 28 20:59 anaconda-ks.cfg
-rw-r--r--. 2 root root    0 Mar 28 22:21 hello.txt
-rw-r--r--. 2 root root    0 Mar 28 22:21 hlink
[root@localhost ~]# ln -s hello.txt  vlink
[root@localhost ~]# ll
total 4
drwxr-xr-x. 2 root root    6 Mar 28 22:22 abx
-rw-------. 1 root root 1243 Mar 28 20:59 anaconda-ks.cfg
-rw-r--r--. 2 root root    0 Mar 28 22:21 hello.txt
-rw-r--r--. 2 root root    0 Mar 28 22:21 hlink
lrwxrwxrwx. 1 root root    9 Mar 28 22:33 vlink -> hello.txt

4. 切换目录

cd . 当前目录

cd .. 去上一级目录

cd / 去根目录

cd ~ 去当前用户主(家)目录

cd xxx/xxx 直接跳转到某个目录

5. 删除文件\文件夹(目录)

rm命令可以删除文件或者目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉

对于链接文件,只是删除整个链接文件,而原有文件保持不变。

常见用法:

rm 删除文件

删除文件,但是会有提示确认对话,输入y确认删除!

[root@localhost test]# touch abc.txt
[root@localhost test]# ll
total 0
-rw-r--r--. 1 root root 0 Mar 29 13:53 abc.txt
[root@localhost test]# rm abc.txt
rm: remove regular empty file ‘abc.txt’? y
[root@localhost test]# ll
total 0
rm -r 删除目录,需要确认

删除目录需要指定r参数,否则会提示不能删除

r是给rm加入递归(recursion)特性,也就是目标为文件夹时删除文件夹下所有数据

使用rm -r 在删除目录的时候也会有提示确认对话,输入y确认删除

[root@localhost abx]# ll
total 0
drwxr-xr-x. 2 root root 6 Mar 29 14:01 test
[root@localhost abx]# rm test
rm: cannot remove ‘test’: Is a directory
[root@localhost abx]# rm -r test
rm: remove directory ‘test’? y
[root@localhost abx]# ll
total 0

rm -f 强制删除

f给rm加入强制(force)特性,也就是遇到删除时不需要询问即可直接删除

注意:这个操作还是比较危险的,建议慎用,因为删除之后就找不到了

Linux系统中没有回收站

[root@localhost abx]# touch a.txt
[root@localhost abx]# ll
total 0
-rw-r--r--. 1 root root 0 Mar 29 14:03 a.txt
[root@localhost abx]# rm -f a.txt 
[root@localhost abx]# ll
total 0

rm -rf 递归删除目录及其文件

Linux中最危险的操作,最具破坏性

rf参数可以强制递归删除任何数据,并且没有任何提示,慎用!慎用!慎用!

[root@localhost ~]# ll
drwxr-xr-x. 2 root root    6 Mar 29 14:03 abx
-rw-------. 1 root root 1243 Mar 28 20:59 anaconda-ks.cfg
[root@localhost ~]# mkdir -p abx/test/aaa
[root@localhost ~]# cd abx/test/aaa/
[root@localhost aaa]# touch a.txt
[root@localhost aaa]# cd ~
[root@localhost ~]# rm -rf abx
[root@localhost ~]# ll
-rw-------. 1 root root 1243 Mar 28 20:59 anaconda-ks.cfg

6. 复制、粘贴、剪切

常见用法:

cp 复制&粘贴文件

复制hello.txt文件,复制后的文件名为hello-bak.txt

[root@localhost ~]# ll
-rw-r--r--. 1 root root    0 Mar 28 22:21 hello.txt
[root@localhost ~]# cp hello.txt  hello-bak.txt  
[root@localhost ~]# ll
-rw-r--r--. 1 root root    0 Mar 29 14:20 hello-bak.txt
-rw-r--r--. 1 root root    0 Mar 28 22:21 hello.txt

cp -r 复制&粘贴文件或目录

复制目录,需要指定r参数

[root@localhost ~]# mkdir abc
[root@localhost ~]# ll
drwxr-xr-x. 2 root root    6 Mar 29 14:21 abc
[root@localhost ~]# cp abc xyz 【错误用法,复制目录必须指定-r参数】
cp: omitting directory ‘abc’
[root@localhost ~]# cp -r abc xyz
[root@localhost ~]# ll
drwxr-xr-x. 2 root root    6 Mar 29 14:21 abc
drwxr-xr-x. 2 root root    6 Mar 29 14:21 xyz

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

将目录xyz移动到目录abc下面

[root@localhost ~]# ll
drwxr-xr-x. 2 root root    6 Mar 29 14:21 abc
drwxr-xr-x. 2 root root    6 Mar 29 14:21 xyz
[root@localhost ~]# ll abc/
total 0
[root@localhost ~]# mv xyz abc 
[root@localhost ~]# ll abc/
drwxr-xr-x. 2 root root 6 Mar 29 14:21 xyz

7. 远程复制

scp命令用于在网络中不同主机之间复制文件或目录。scp是有Security的文件copy,基于ssh登录,如果没有配置免密码登陆,需要输入主机密码。

常见用法:

从本地复制(192.168.182.131)到远程主机 (192.168.182.130)

scp /root/hello.txt 192.168.182.130:/root

[root@localhost ~]# scp /root/hello.txt  192.168.182.130:/root/
The authenticity of host '192.168.182.130 (192.168.182.130)' can't be established.
ECDSA key fingerprint is SHA256:uUG2QrWRlzXcwfv6GUot9DVs9c+iFugZ7FhR89m2S00.
ECDSA key fingerprint is MD5:82:9d:01:51:06:a7:14:24:a9:16:3d:a1:5e:6d:0d:16.
Are you sure you want to continue connecting (yes/no)? yes 【第一次会提示此信息,输入yes即可,以后就不提示了】
Warning: Permanently added '192.168.182.130' (ECDSA) to the list of known hosts.
root@192.168.182.130's password: 【在这里输入192.168.182.130机器的密码即可】
hello.txt                        100%    0     0.0KB/s   00:00

登录到192.168.182.130机器,确认文件是否成功复制过去

[root@localhost ~]# cd /root/
[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1243 Mar 28 20:59 anaconda-ks.cfg
-rw-r--r--. 1 root root    0 Mar 29 14:30 hello.txt
[root@localhost ~]#

提示:

显示进度在scp后添加-v

复制目录在scp后添加-r

静默复制模式在scp后添加-q

scp -rq /root/abc 192.168.182.130:/root

[root@localhost ~]# scp -rq /root/abc/ 192.168.182.130:/root/
root@192.168.182.130's password:【在这里输入192.168.182.130机器的密码即可】

登录到192.168.182.130机器,确认目录是否成功复制过去

[root@localhost ~]# ll
total 4
drwxr-xr-x. 3 root root   17 Mar 29 14:33 abc
-rw-------. 1 root root 1243 Mar 28 20:59 anaconda-ks.cfg
-rw-r--r--. 1 root root    0 Mar 29 14:30 hello.txt

8. 文件属性

在这里插入图片描述 黑带七段

  • 第一段:权限

第一个字符代表文件(-)、目录(d),链接(l)

其余字符每3个一组(rwx),读(r)、写(w)、执行(x)

第一组:文件所有者的权限是读、写和执行

第二组:与文件所有者同一组的用户的权限

第三组:不与文件所有者同组的其他用户的权限

也可用数字表示为:r=4,w=2,x=1,如:权限6可以表示为r+w=6

  • 第二段:目录/链接个数

对于目录文件,表示它的第一级子目录的个数

注意:此处的值要减2才等于该目录下的子目录的实际个数(目录下默认包含.和..这两个目录)

对于其他文件,默认是1

  • 第三段:所属用户
  • 第四段:所属组
  • 第五段:文件大小(字节)
  • 第六段:最后修改时间
  • 第七段:文件\文件夹名称

9. chmod 分配权限

常见用法:

chmod u+x xxx.txt 给当前所有者添加执行权限【x表示是执行权限】

针对hello.txt文件,给当前用户添加执行权限

[root@localhost ~]# ll
-rw-r--r--. 1 root root    0 Mar 28 22:21 hello.txt
[root@localhost ~]# chmod u+x hello.txt 
[root@localhost ~]# ll
-rwxr--r--. 1 root root    0 Mar 28 22:21 hello.txt
chmod 777 xxx.txt 添加rwxrwxrwx权限

给hello.txt添加777权限

[root@localhost ~]# chmod 777 hello.txt
[root@localhost ~]# ll
-rwxrwxrwx. 1 root root    0 Mar 28 22:21 hello.txt
chmod -R 777 xxx 给指定目录递归添加rwxrwxrwx权限

给abc目录及其子目录中的所有内容添加777权限

[root@localhost ~]# ll
drwxr-xr-x. 3 root root   17 Mar 29 14:24 abc
[root@localhost ~]# cd abc/
[root@localhost abc]# ll
total 0
drwxr-xr-x. 2 root root 6 Mar 29 14:21 xyz
[root@localhost abc]# cd ..
[root@localhost ~]# chmod -R 777 abc
[root@localhost ~]# ll
drwxrwxrwx. 3 root root   17 Mar 29 14:24 abc
[root@localhost ~]# cd abc/
[root@localhost abc]# ll
total 0
drwxrwxrwx. 2 root root 6 Mar 29 14:21 xyz

10. 内容查看

cat 显示文本内容,类似windows中的type(顺序输出)

cat -b 显示行号输出

11. 压缩、解压

参数:

-z 是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

-c 创建一个压缩文件的参数指令(create 的意思);

-x 解开一个压缩文件的参数指令!

-v 压缩的过程中显示文件!

-f 使用档案名字,这个参数是最后一个参数,后面只能接档案名!

注意:特别注意,在参数的下达中, c/x 仅能存在一个!不可同时存在!

  • 压缩 tar -zcvf 打包及压缩(gzip方式)
  • 解压 tar -zxvf 解压(gzip包)

12. 输出及显示

echo:将内容输出到设备,类似java里面的system.out.println()

[root@localhost ~]# echo "hello\t\t world!"
hello\t\t world!
[root@localhost ~]# echo -e "hello\t\t world!"
hello            world!
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# echo ${PATH}
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

常见用法:

echo "hello\t\t world!" 不解析转义字符

echo -e "hello\t\t world!" 解析转义字符

echo $PATH 输出环境变量

注意:在打印变量信息的时候,使用echo ${PATH} 也可以,效果是一样的

13. 软件的安装和卸载

第一种:压缩包安装方式,直接解压,配置相应的环境变量即可使用

第二种:在线安装,使用yum

yum集成了连接网络,软件安装,删除,更新等功能,yum在配置好repo后,机器只要连网,就能智能化安装软件,使用yum 安装的好处在于可以自动安装软件需要的依赖包

安装

yum install -y 安装

升级

yum update 不跟则更新全部

查找和显示

yum info 显示包信息

yum list 不跟则显示已安装或可安装包

删除程序

yum remove

清除缓存

yum clean all 清除所有缓存(包含文件、旧软件)

14. 查看操作历史

history保留了最近执行的命令记录,默认可以保留1000。

历史清单从0开始编号到最大值。

常见用法:

history N 显示最近N条命令

history -c 清除所有的历史记录

history -w xxx.txt 保存历史记录到文本xxx.txt

15. 磁盘使用情况

使用df命令查看硬盘使用情况

查看磁盘使用情况

这里显示一共17G,已使用1.2G,还剩余16G

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 898M     0  898M   0% /dev
tmpfs                    910M     0  910M   0% /dev/shm
tmpfs                    910M  9.5M  901M   2% /run
tmpfs                    910M     0  910M   0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  1.2G   16G   7% /
/dev/sda1               1014M  150M  865M  15% /boot
tmpfs                    182M     0  182M   0% /run/user/0

16. 清屏小命令

clear

17. 查看内存使用情况

free 查看内存和交换空间的使用情况

常见用法:

free -m:显示内存单位为MB

free -h:根据值的大小,显示易于识别的单位

18. 关机重启快捷命令

shutdown -h now 关机

reboot -h now 重启

exit 退出当前登录状态