补充
这里补充一点关于SSH的知识点。当成功登录Linux服务器后,屏幕上显示的[xxxxx@xxxxx ~]$
,这里@符号前的是你的用户名,@符号后的是你的域名,~代表当前目录是你的家目录即为/home文件夹,$符号表示当前登录的用户为普通用户,若为管理员登录,这里就会显示 # 符号。
另外,常用命令只介绍一般比较常用的命令以及常用的参数。
查看帮助
Linux中有两个命令可以帮助我们更好的了解别的命令:
# 帮助命令一
man 命令
# 帮助命令二
命令 --help
具体效果如下显示:
man ls
ls --help
文件管理
查看文件信息ls
ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
较为常用的参数有:
ls
-a
-l
-a
参数显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l
参数除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
当你使用ls -l
的时候,可以直接使用缩写ll
,两者的实现效果是一样的。
文件属性
上面我们使用ll
查看文件快照时,会发现文件名前还有一长串内容。整行大致可分为 7块内容:
drwxrwxr-x 3 ck188272 ck188272 4096 Oct 23 16:10 1Linux
#drwxrwxr-x 代表 权限属性
#3 代表 连接
#ck188272 代表 所属用户
#ck188272 代表 所属用户组
#4096 代表 文件大小
#Oct 23 16:10 代表 修改日期
#1Linux 代表 文件或目录名
其中比较重要的是权限属性这部分内容。整个权限属性又可分为4部分。
drwxrwxr-x
#第一个字符表示文件类型。在这里d表示目录,还有其他的 - 表示文件,l 表示连接文件,b 表示设备文件, c 表示设备文件中的串行端口设备,如鼠标键盘
#后面9个字符,每三个为一组,第一组如这里的rwx表示拥有者的权限,第二组rwx表示所属组的权限,第三组r-x表示其他人的权限。这里的r(read)表示读权限,w(write)表示写权限,x(execute)表示操作权限,-表示无权限。
当需要修改文件权限时候,可以使用chmod
命令,并可使用数字来表示每个组的权限。有这样的定义:
r ---- 4
w ---- 2
x ---- 1
- ---- 0
修改权限时,可用权限代表的数字综合来修改,如chmod 741 文件名
。每一个数字代表一个组的权限,这里7 = 4+2+1,即为rwx,4 = 4+0+0,即为r–,1 = 0+0+1,即为–x,以此类推。
切换工作目录cd
通常cd
后面跟你想要去的绝对路径或者相对路径。
cd ..
可以返回上一层目录。
cd ~
或者直接用cd
可以直接返回到home目录下。
显示当前工作目录pwd
pwd
可以显示当前所在目录的绝对路径。
创建新目录mkdir
mkdir 目录名
可用来创建目录。
当需要创建多层目录,可使用参数-p
递归创建,例如mkdir -p a/b/c
。
创建新文件touch
touch
可以用来创建一个新文件,但如果当这个文件存在时,用于修改文件或者目录的时间属性,包括存取时间和更改时间。
删除文件或目录rm
rm命令用于删除一个文件或者目录。常用参数有:
rm -r 文件名 #可以移除文件夹
-rf 文件名 #强制删除,不推荐
-i 文件名 #删除文件前会有询问确认是否删除
拷贝cp
cp
命令主要用于复制文件或目录。
cp [options] 源文件路径 目标路径
-a #使用该参数可用于拷贝目录
移动/重命名mv
mv
命令用来为文件或目录改名、或将文件或目录移入其它位置。
mv [options] 源文件路径 目标路径
建立连接文件ln
ln
的功能是为某一个文件在另外一个位置建立一个同步的链接。这样就不必在两个位置放两个相同的文件,以此减少服务器空间占用。
链接又分为软、硬链接。硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
这里我们介绍较为常用的软链接,需要用到的参数是-s
。
ln -s 源文件路径 链接到的路径
当新建好软连接后,用ll
命令可以查看到当前文件夹下,有一个 链接名 -> 文件
的东西。但删除源文件后,该链接会显示红色字体,并且->
符号后的源文件会闪烁。
查找文件find
find
命令用来在指定目录下查找文件。
find 搜索范围 -name name # 按照文件名称查找
搜索范围 -iname name # 忽略文件名称大小写并按照文件名称查找
查看文件内容cat,less,more,head,tail
cat
命令用于连接文件并打印到标准输出设备上。常用参数为-n
打印行号,-b
除空白行外的行打印行号。- 分屏显示:
less
,more
,可进行上下翻页显示。 - 查看文件首或尾:
head
,tail
,常用参数为-n
来控制查看的行数,-f
用于查阅正在改变的日志文件。
打包压缩tar
tar
是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
tar -czvf test.tar.gz a #压缩 a文件为test.tar.gz
tar -tzvf test.tar.gz #列出压缩文件内容
tar -xzvf test.tar.gz #解压文件
文本处理
文本编辑vi/vim
关于这两个命令的区别在前面的文章中已经提到过,这里就不再赘述。
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
命令模式
用户刚刚启动 vi/vim,便进入了命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。以下是常用的几个命令:
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式
当用户在命令模式下按下i,即切换到输入模式。
在输入模式中,可以使用以下按键:
- gg ,跳到文件第一行
- shift+g , 跳到文件最后一行
- ESC , 退出输入模式 , 切换到命令模式
- $ , 跳到行头
- ^ ,跳到行尾
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。在底线命令模式中,基本的命令有(已经省略了冒号):
- q 退出程序
- w 保存文件
- q! 强制退出并不保存
按ESC键可随时退出底线命令模式。
屏幕输出echo
可以理解为类似python的print命令,将内容输出到屏幕上。
输出重定向 >
输出重定向 >的作用是将上一个命令的结果保存到文件中。
command1 > file1
网络相关
查看网卡信息ifconfig
ifconfig
命令用于显示或设置网络设备。可设置网络设备的状态,或是显示目前的设置。
测试远程主机连通性ping
执行 ping
指令会使用 ICMP 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。常用参数为-c
设置ping
的次数,-I
设置每次ping
的时间间隔。
打印Linux网络系统的状态信息netstat
利用 netstat
指令可让你得知整个 Linux 系统的网络情况。
常用参数有:
-t
列出所有tcp-n
以数字形式显示地址和端口号-p
显示进程的pid和名字
性能统计
查看CPU信息
查看cpu信息可以使用命令cat /proc/cpuinfo
负载信息top
top
命令用于实时显示 process 的动态。使用权限为所有使用者。
常用的参数有:
top -d 时间间隔,top -d 4表示每隔4s更新一次
-n 获取多次CPU的执行情况,top -n 4表示更新4次
-p 获取指定端口的进程的数据
-b 批处理模式
top
命令里:
- load average表示平均负载情况,后面跟了3个数字,分别表示1min,5min,15min的数据。
- Tasks表示进程总数
- sleeping表示睡眠的进程数
- stopped表示停止的进程数
- zombie表示僵尸进程数
- CPU
- us表示用户空间占用CPU百分比
- sy表示内核空间占用CPU百分比
- ni表示改变过优先级的进程占用CPU的百分比
- id表示空闲CPU的百分比
- wa表示IO等待占用CPU的百分比
- hi表示硬中断占用CPU的百分比
- si表示软中断占用CPU的百分比
查看内存情况free
free
命令用于显示内存状态。指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
常用参数:
free -m #以MB为单位显示内存使用情况
-b #以Byte为单位显示内存使用情况。
-k #以KB为单位显示内存使用情况。
-m #以MB为单位显示内存使用情况。
-h #以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:
#B = bytes
#K = kilos
#M = megas
#G = gigas
#T = teras
-o #不显示缓冲区调节列。
-s<间隔秒数> #持续观察内存使用状况。
-t #显示内存总和列。
-V #显示版本信息。
这里:
- total表示总物理内存
- used表示已使用的物理内存
- free表示没有使用过的物理内存
- shared表示多进程共享内存
- buff/cache读写缓存内存,这部分内存适当空闲来用的,当free内存不足时,linux内核会将次内存释放。
- available表示还能被应用程序使用的物理内存
统计命令
排序sort
常用参数
sort -b表示忽略开头的空白字符
-f表示将小写字母看作大写字母
-h表示根据存储容量排序(KB,MB,GB)
-n表示按数字排序
-o表示将结果写入文件
-r表示以相反的顺序来排序
-t表示指定分隔符。默认为空格
-V表示按照数字版本排序
-k表示指定排序的关键字,常与-t参数配合使用
去重uniq
这里需要注意到的是这个uniq
只检查上下行是否重复,通常可以先排序再去重。
常用参数
uniq -c表示统计重复出现的次数
-d表示所有邻近的重复行只被打印一次。重复次数要>=2次
-D表示所有邻近的重复行全部打印
-f表示跳过对前n个列的比较
-s表示跳过对前n个字符的比较
-w表示只对每行前n个字符比较
字符统计wc
常用参数
wc -c表示统计字节数chars
-l表示统计行数
-L表示统计单词数
-w表示打印最长行的长度
从标准输入读取数值read
read命令用于从标准输入读取数值。read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据,且不会将换行符读入。
# 从标准输入读取并赋值给变量
read var
# 读取多个标准输入
read var1 var2 var3
# 默认赋值
read
以下为示例: