@学习资料来源:b站
Linux特点
- 严格区分大小写
- 服务器只能关机不能重启
初级指令(#指令主体 [选项] [操作对象])
Linux命令大全
一个指令可以包含多个选项、多个操作对象
Ctrl+u:快速删除命令行光标前的内容;Ctrl+k:快速删除光标后的内容。
man指令:包含了全部指令的手册,man 指令
- 关机:shutdown -h now(正常关机,-r表示重启)、halt(关闭内存)
- 调用历史指令:上下箭头键
- ls指令(list):列出当前目录下的文件夹和文件名。
路径有相对路径和绝对路径,../
为返回上一级路径
-l
为以详细列表方式显示,-la
是显示所有隐藏的没隐藏的文件夹。列表中第一一个字为 - 表示当前名字为文件, d 表示当前为文件夹。
-lh
为列出所有文件/文件夹名称,并显示其大小(文件夹大小都为4k) - pwd命令(print working directory):打印当前工作目录
- cd命令(change directory):~为当前目用户的家目录
- mkdir命令(make directory):创建目录,后跟文件夹名称或包含文件夹名称的完整路径。
-p
可以一次性创建多层不存在的目录。 - touch命令:创建文件,和mkdir差不多
- cp命令(copy):复制命令,
cp 要复制的 粘贴的路径
,路径中,文件的名字可以改。
进行文件夹复制操作的时候,要添加-r
选项。 - mv命令(move):移动文件或文件夹,也是重命名命令
- rm命令(remove):
rm 选项 需要移除的文档路径
,-f(force)
可以不用确认直接删除;-rf
递归删除目录且不用确认。
rm -f linux*
*号为通配符,删除所有以linux开头的东西。 - vim指令:为文本编辑器
vim 文件名
打开文件,输入:q
退出打开的文件,:wq
打开退出 - 输出重定向
>
:覆盖输出,覆盖掉原文件的内容。
>>
:追加输出,在原始文件末尾继续输出
- cat指令:直接打开一个文件,即直接把文件打开在命令行里,查看而不能编辑;也可以打开多个文件并合并:
cat 待合并的路径一 路径二 ...路径n > 合并之后的文件路径
,只创建一个新文件只合并一次用一个>,在原来的文件上再加东西用>>。 - df指令:查看磁盘空间,加-h选项方便查看空间大小。
- free指令:查看内存使用情况,加-m(-g)选项以兆(GB)为单位查看。swap:当系统真实内存不够用时,临时使用磁盘空间当作内存。
- head指令:查看一个文件的前n(10)行。
head -[n] 文件路径
,不设置n默认为10行。 - tail指令:查看文件的后n行,与head相同。还可以查看文件的动态变化,动态的内容不能是手动加的,
tail -f 文件路径
,在另一个终端中将linux2文件cat到linux1文件后,在终端中会实时输出,用于查看系统日志,退出按q键。 - less命令:查看文件,以较少的内容输出,再通过辅助键查看更多内容:向上:查看上一行;向下:查看下一行;空格:翻页;回车:下一行
- wc指令:统计文件内容信息,类似于word里面的字数统计。可统计行数(l)、单词数(w,只能在英文统计,以空格区分)、字节数(c)。
- date指令:操作时间和日期:读取,设置。以后shell脚本中常用。CST指当地时间。还可以获取之前和以后的某个时间,可用于历史备份的清除:
date -d "-1day" "+%F %T"
- cal指令:查看日历。
cal
等效于cal -1
,输出一个月的日历。cal -3
输出前一个月、本月、后一个月的日历。-y
输出今年的日历。-s
以周日为第一天,-m
以周一为第一天。 - clear/ctrl+l指令:清空终端,将历史内容上移,没有真正清除之前信息
- 管道:管道符
|
可用于过滤,grep
可以和任意有输出的命令搭配。
还可以通过管道实现less
的效果:cat 路径 | less
统计目录下文件个数:ls 路径|wc -l
高级指令
- hostname指令:
hostname
输出完整主机名,hostname -f
输出当前主机名中的FQDN(全限定域名) - id指令:用于查看用户基本信息(用户id、用户组id、附加祖id……),默认当前用户。可以通过查看
/etc/passwd
和/etc/group
查看对不对 - whoami命令:显示当前用户的用户名,可用于日志
- ps -ef指令:查看当前服务器的进程。
-e
与-A
等价,列出全部进程。-f
显示全部的列。
UID:用户id;PID:进程id;PPID:该进程的父级进程id,如果父级进程找不到,称为僵尸进程;C:cpu占用率;STIME:进程的启动时间;TTY:终端设备,如果为?则不是终端发起的;CMD:进程名称或者对应路径。
- top指令:用于查看服务器进程占的资源,实时动态显示
zombie:僵尸进程;PR:优先级,VIRT:虚拟内存,为向计算机申请的内存;RES:常驻内存,为实际使用的内存加共享内存;SHR:共享内存,为实际使用内存中对其他进程的调用部分。S:为进行状态,S为sleeping,R为running;%MEM:内存占用百分比;TIME+:执行时间;COMMAND:进程名称或路径。
按“M”表示将结果按MEM占用从高到底排序,按“P”为将结果按CPU使用排序;按“1”显示所有CPU - du -ls指令:
-s
(summary)只显示汇总大小,-h
为以较高可读性显示。 - find指令:
有55个参数,find 路径范围 [选项] 选项的值
,常用-name
和-type
命令。
- service指令:安装apache配合使用。
- kill指令:
kill PID
,killall 进程名称
强制关闭进程。 - ifconfig指令:操作网卡,需安装net-tools;或者使用
ip
命令代替:如何代替。
- reboot指令:重新启动计算机,
-w
模拟重启但不重启,只写入开关机日志,主要用于测试。 - shutdown指令:关机,慎用。
shutdown -h 15:25/now "关机提示"
,用shutdown -c
取消关机。init 0
、halt
、poweroff
也可以实现关机。 - uptime指令:输出计算机的持续在线时间
- uname指令:获取计算机系统相关信息,
-a
获取全部信息(类型、全部主机名、内核版本、更新时间、开源计划)
- netstat -tnlp指令:查看网络的连接状态,需安装net-tools(不好意思我还不想安)。
-t
表示只列出tcp协议的连接;-n
表示将地址从字母组合转化成ip地址;将协议转化成端口号来显示;-l
表示只显示STATE列中值为LISTEN(监听)的连接;-p
表示显示发起连接的进程PID和名称。
例子
- 删除目录下所有以A开头的文件:
rm -f /tmp/A*
- 把/etc/passwd备份到/tmp目录下:
cp /etc/passwd /tmp/
- 查看系统最后创建的三个用户:
tail -3 /etc/passwd
- 统计当前系统中一共有多少个账户:
wc -l /etc/passwd
- 创建/tmp/test.conf文件:
touch /tmp/text.conf
- 最快的返回到当前家目录:
cd
- 一次性创建目录:
mkdir -p /text/1/2/3/4
- 查看/etc所占的磁盘空间:
du -sh /etc
- 如何删除/tmp下所有的文件:
rm -rf /tmp/*
自有服务:即用户不需要安装即可使用的服务。
用户
用户管理
创建用户:
$ sudo useradd [选项] 用户名 # 在root用户下执行
设置用户密码:
$ sudo passwd [选项] 用户名
删除用户:
$ sudo userdel [选项] 用户名
修改用户帐号:
$ sudo usermod [选项] 用户名
用户组管理
添加用户组
默认情况下,新建用户的用户组与用户名相同,在创建用户的同时被创建,主动添加用户组:
$ sudo groupadd [选项] 用户组
删除用户组
$ sudo groupdel 用户组
修改用户组属性
$ sudo groupmod [选项] 用户组
用户切换
su
su是一个不安全的命令,因为当每个用户想执行root权限时,都必须知道root用户的密码,并且进入后就拥有了root的所有权限。
$ su - username
这里-
为一个选项,要与用户名之间留一个空格,切换到root用户但不切换到他的家目录:su
;切换到root用户同时切换到他的家目录:su -
root用户使用此命令切换到别的用户可以不用输密码
sudo
要允许用户使用root身份,需要将用户名添加到/ect/sudoers
中,该操作由root完成,这些用户只需知道自己的密码即可使用root身份,可以使用visudo
进入此文件进行修改,其本质仍是使用vi编辑器修改,但可以在编辑时防止其他用户同时修改该文件,且保存退出时会进行语法检查
运行模式
也可称为运行级别。
存在进程init(initialize),进程id是1;该进程存在一个对应的配置文件:/etc/inittab(系统运行级别配置文件)
init 0表示开机,inti 6表示关机,init 3为不带桌面的纯多用户模式,init 5表示图形化界面模式(带桌面)