linux基础命令(基于CentOS)
一、基础指令
1. ls(list)
作用:列出当前目录下的所有文件/文件夹的名称
用法:
ls -l :表示已详细列表的形式进行展示(’ - ’ 表示文件,’ d ’ 表示文件夹)
ls -a :显示所有文件/文件夹(包含隐藏文件/文件夹(隐藏文件以 ’ . ')开头)
ls -h:以可读性较高的方式显示文件大小(直接使用看不到文件或目录,需要搭配 [ -l ] 参数使用)
2.pwd
作用:输出当前所在位置
3.cd
作用:切换目录
4.mkdir
作用:创建目录
用法:
mkdir [路径] :在当前目录下,路径可以直接写成文件名
mkdir -p [路径] :创建多层目录
5.touch
作用:创建文件(一个或多个)
用法:
touch [文件路径] :路径可以直接写成文件名
6.cp(copy)
作用:复制文件/文件夹到指定位置
用法:
cp [被复制文件路径] [目标路径] (复制过程中可以改名,但建议保持一致)
cp -r :复制文件夹,[ -r ]表示递归复制,否则目录将被忽略
7.mv(move)
作用:移动文件或文件夹到新位置、重命名
用法:
mv [需要移动的文件或文件夹路径] [目标路径]:移动文件
mv [原文件] [新文件名] (可加路径)
8.rm(remove)
作用:移除、删除
用法:
rm -f [路径] :强制删除,不提示是否删除
rm -r [路径] :递归删除,删除目录下所有目录及文件
9.vi / vim
作用:打开 vi / vim 编辑器,或用 vi / vim 编辑器打开某文件(可以存在,也可以不存在)
用法:
vim [文件路径]
10.输出重定向
含义:一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
>:覆盖输出,会覆盖原先文件的内容
>>:追加输出,不会覆盖原文件内容,还在原文件内容末尾继续添加
eg: ls -la > ls.txt
11.cat
作用:在终端中显示文件内容或合并多个文件
用法:
cat [文件路径] :打开一个文件
cat [文件路径1] [文件路径2] … [文件路径n] > 合并后文件路径 :将文件合并
二、进阶指令
1.df
作用:查看磁盘空间
用法:
df -h :以可读性较高的形式展示大小
- Filesystem 相当于windows中的盘符
- Size 大小
- Used 已使用
- Avail 可用
- Use% 使用百分比
- Mounted on 挂载点(根目录下有个文件夹叫mnt)
2.free
作用:查看内存使用情况
用法:
free -m : 表示以 mb 为单位查看内存使用情况(最常用)
free -g :表会以 G 为单位查看内存使用情况
- cache 比较准确(剩余的真实可用的内存),因为包括了已经被分配了但没有被使用的
- buffers(输出) 和 cached(输入)就是已经被分配了但没有被使用的
- swap:用于临时内存,当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存
3.head
作用:查看一个文件的前 n 行,如果不指定 n ,则默认显示前10行
用法:
head -n [文件路径] : 显示文件前 n 行
4.tail
作用:1. 查看一个文件的最后 n 行,如果不指定 n ,则默认显示最后10行。2. 查看一个文件的动态变化(如果是-f,则变化的内容不能是用户手动增加的,如果是-F,则可以),使用ctrl+c退出
用法:
tail -n [文件路径] :显示文件最后 n 行
tail -F [文件路径] :动态查看改文件(查看系统日志文件居多)
5.less
作用:查看文件,以较少的内容输出,利用辅助间查看更多:[数字+回车、空格键(翻页)+上下方向键]
用法:
less [文件路径] :查看文件
6.wc
作用:统计文件内容信息(包含行数,单词数,字节数)
用法:
wc -l [文件路径] :lines,统计行数
wc -w [文件路径] :words,统计单词数(依照空格来判断)
wc -c [文件路径] :bytes,统计字节数
7.date
作用:表示操作时间日期(读取、设置)
用法:
date :输出形式:
- CST 为当地时间
date +%F :输出形式:( 等价于 date + “%Y-%m-%d” )
date “+%F %T” :等价于:date "+%Y-%m-%d %H:%M:%S”(引号中为一个整体)
获取之前或者之后的某个时间:date -d “-1 day" “+%Y-%m-%d %H:%M:%S”
可选值
- 符号:+ (之后) 或者 - (之前)
- 单位可选值:day(天)、month(月份)、year(年)
- %F:表示完整的年月日
- %T:表示完整的时分秒
- %Y:表示四位年份
- %m:表示两位月份(带前导0)
- %d:表示日期(带前导0)
- %H:表示小时(带前导0)
- %M:表示分钟(带前导0)
- %S:表示秒数(带前导0)
8.cal(calendar)
作用:操作日历,不是计算器
用法:
cal :等价于 cal -1 直接输出当前月份的日历
cal -3 : 输出上一个月+本月+下一个月的日历
cal -y : 输出某一个年份的日历
9.clear / ctrl+L
作用:清除终端中已经存在的命令和结果(信息)
用法:
clear 或快捷键 ctrl+L :不是真的清除了,而是把信息隐藏到了最上面
10.管道
管道符:| (英文状态下)
作用:管道符左边的的输出 当做右边命令后面待处理的结果(不能单独使用)
用法:
eg:需要通过管道查询出跟目录下包含“p”字母的文档名称:ls / | grep p
以管道作为分界线,前面的命令有个输出,后面需要先输入,然后再过滤,最后再输出,通俗的讲就是管道前面的输出就是后面指令的输入
grep指令:主要用于过滤
三、高级指令
1.hostname
作用:操作服务器的主机名(读取、设置)
用法:
hostname :表示输出完整的主机名
hostname -f :表示输出当前主机名中的FQDN(全限定域名)
2.id
作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…),该指令如果不指定用户则默认当前用户
用法:
id :默认显示当前执行该命令的用户的基本信息
id [用户名] :显示指定用户的基本信息
3.whoami
作用:显示当前登录的用户名,一半用于 shell 脚本,用于获取当前操作的用户名,方便记录日志。
用法:
whoami : 显示当前用户名
4.ps
作用:查看服务器的进程信息
用法:ps -ef :[ -e ] 表示列出全部的进程,[ -f ] 表示显示全部列(显示全字段)
可结合 " | " 使用
结果:
各列含义:
- UID:该进程执行的用户id; PID:进程id;
- PPID:该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程;
- C:Cpu的占用率,其形式是百分数;
- STIME:进行的启动时间;
- TTY:终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起;(pts/1表示当前终端)
- TIME:进程的执行时间;
- CMD:该进程的名称或者对应的路径;
用法:
ps -A -o stat,ppip,pid,cmd | grep -e ‘1’ :因为状态为 z或者Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程。 -A ] 参数列出所有进程,[ -o ] 自定义输出字段 我们设定显示字段为 stat(状态), ppid(进程父id),
pid(进程id),cmd(命令)这四个参数
5.top
作用:查看服务器的进程所占的资源
用法:
top :动态显示,按 q 退出
结果:
各行含义
- PID:进程id;
- USER:该进程对应的用户;
- PR:优先级;
- VIRT:虚拟内存;
- RES:常驻内存:
- SHR:共享内存;
- 计算一个进程实际使用的内存=常驻内存(RES)
- -共享内存(s函R)
- S:表示进行的状态(sleeping,其中S表示睡眠,R表示运行;
- %CPU:表示CPU的占用百分比;
- %MEM:表示内存的占用百分比;
- TIME+:执行的时间;
- COMMAND:进程的名称或者路径;
快捷键
- M:表示将结果按照内存(MEM)从高到低进行降序排列;
- P:表示将结果按照CPU使用率从高到低进行降序排列;
- l:当服务器拥有多个cpu的时候可以使用“l”快捷键来切换是否展开显示各个cpu的详细信息
6.du
作用:查看目录真实大小
用法:
du -sh [目录路径] :[ -s ] summaries,只显示汇总大小,[ -h ] 表示已高可读性的形式进行显示
7.find
作用:查找文件
用法:
find [查找范围(文件路径)] [选项] [选项值]
find -name :按照文件名进行查找(支持模糊搜索)
find -type :按照文件类型进行查找( " - " 表示文件(使用 find 时需要用 f 来替换)," d " 表示文件夹)
8.service
作用:控制软件服务的 启动 / 停止 / 重启
用法:
service [服务名] start/stop/restart
9.kill
作用:表示杀死进程(当遇到僵尸进程或者出于某些原因要关闭进程的时候)
用法:
kill [进程PID] :需要配合 ps 命令一起使用
killall [进程名称]
10.ifconfig
作用:用于操作网卡相关的指令
用法:
ifconfig :获取网卡信息
11.reboot
作用:重新启动计算机
用法:
reboot :重启
reboot -w :模拟重启,但不重启(只写关机与开机的日志信息)
12.shutdown
作用:关机
用法:
shutdown -h now “关机提示” :立即关机,并显示 “关机提示”
shutdown -h [时间] “关机提示” :指定时间关机,并显示"关机提示"
其他的关机命令:
- init 0
- hat
- poweroff
13.uptime
作用:输出计算机的持续在线时间(计算机从开机到现在运行的时间)
用法:
uptime :输出时间:
14.uname
作用:获取计算机操作系统相关信息
用法:
uname :获取操作系统的类型
uname -a :[ -a ] 是 all,表示获取全部的系统信息(类型、全部主机名、内核版本、发布时间、开源计划)
结果:
15.netstat
作用:查看网络连接状态
用法:
netstat -tnlp :[ -t ] 表示列出tcp协议;[ -n ] 表示将字母转化为数字(将地址从字母组合转化为ip地址,将协议转化成端口号来显示);[ -l ] 表示过滤出 “state (状态)” 列中期指为 LISTEN(监听)的连接;[ -p ] 表示显示发起连接的进程 PID 和进程名称。
netstat -an :[ -a ] 表示全部;[ -n ] 表示将字母转换为数字
16.man(manual)
作用:手册,包含了 Linux 中全部命令手册,英文
用法:
man [需要查询的命令] :退出按下 q 键
四、网络指令
1.ping
作用:检测当前主机与目标主机之间的连通性(不是 100% 准确,有点服务器禁用 ping ),该命令跨平台
用法:
ping [目标主机] :[目标主机] 可以是IP地址、主机名或是域名
2.traceroute
作用:查找当前主机与目标主机之间所有的网关(路由器,会给沿途各个路由器发送icmp数据包,路由器可能会不给响应);不是内置命令,需要安装
用法:
traceroute [主机地址]
3.arp
arp协议:根据IP地址获取mac地址
用法:
arp -a :查看本地缓存mac表
arp -d [主机地址] :删除指定的缓存记录
4.tcpdump
作用:抓包,抓取数据表
用法:
tcpdump [协议] port [端口号]
tcpdump [协议] port [端口号] host [地址]
tcpdump -i 网卡设备名
五、运行模式指令
1. 含义
运行模式又称为运行级别。在linux中存在一个进程 init (initialize,初始化),进程 id 为1 。该进程存在一个对应的配置文件:inittab
2. 7个运行级别、模式(centos系统下)
0-表示关机级别(不要将默认的运行级别设置成这个值)
1-单用户模式
2-多用户模式,不带NFS(Network File Syetem),即不联网
3-多用户模式,完全的多用户模式(不带桌面的,纯命令行模式)
4-没有被使用的模式(被保留模式)
5-X11,完整的图形化界面模式
6-表示重启级别(不要将默认的运行级别设置成这个值)
3. 相关命令:
init 0表示关机
init 3表示切换到不带桌面的模式
init 5切换到图形界面
init 6重启电脑
设置为永久:在 /etc/inittab 文件中将 initdefault 的值设置成3,然后重启操作系统
六、用户管理指令
相关文件:
/etc/passwd
/etc/group
/etcshadow
1. 用户管理
1.1 添加用户
命令:userad [选项] [用户名]
用法:
useradd -g :[ -g ] 表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
useradd -G :[ -G ] 表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
useradd -u :[ -u ] uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ的自选靓号】
useradd -c :[ -c ] comment:添加注释
eg :
创建用户lisi,让lisi属于501主组,附加组500,自选靓号666
1.2 修改用户
命令:usermod [选项] [用户名]
用法:
usermod -g :[ -g] 表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
usermod -G :[ -G ] 表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
usermod -u:[ -u ] uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ的自选靓号情况】
usermod -l [新用户名] [旧用户名]:[-l] 修改用户名
1.3 设置密码
命令:passwd
用法:
passwd [用户名] :设置该用户的密码
补充:su [用户名] :切换到指定用户,用户名不指定则默认为 root 用户
1.4 删除用户
命令:userdel [选项] [用户名]
用法:
userdel -r [用户名] :[ -r ] 表示删除用户的同时,删除其家目录
2.用户组管理
2.1 用户组添加
命令:groupadd [选项] [用户组]
用法:
groupadd -g :[ -g ] 类似用户添加里的 “U”, g 表示选择自己设置一个自定义的用户组ID数字:如果自己不指定,则默认从500之后递增
2.2 用户组编辑
命令:groupmod [选项] [用户组名]
用法:
groupmod -g :[ -g ] 类似用户修改中的 " -u ",表示选择设置一个自定义的用户组ID数字
groupmod -n :[ -n ] 类似用户修改中的 " -l ",表示设置新的用户组名称
2.3 用户组删除
命令:groupdel [用户组名]
用法:
groupdel [用户组名] :注:当如果需要删除一个组,但是这个组是某个用户的主组时,则不允许删除;如果确实需要删除,则先从组内移出所有用户。
七、权限管理指令
1.设置权限
命令:chmod [权限等级] [文件]
没个文件的权限分为 rwx(读、写、执行)
一个文件有三个拥有权限的主体
所有者
同组用户
其他用户
1.1 权限字符
r:读
w:写
x:表示执行
-: 没有权限
分配方式
+:表示给具体的用户新增权限(相对当前)
:表示删除用户的权限(相对当前)
=:表示将权限设置成具体的值(注重结果)
1.2 数字形式
读:r 4
写:w 2
执行:x 1
没有任何权限:0
2. 用户组设置(属主与属组设置)
属主:所属的用户(文件的主人)
属组:所属的用户组
前面的那个root就是属主
后面的那个root就是属组
2.1 chown
作用:更改文件的所属用户
用法:
chown -R [username] [文件路径] :将该文件的所有者改为 [username] ;[ -R ] 表示递归
chown -R [username]:[groupname] [文件路径] :同时将该文件的所有者和用户组修改为 [username] 和 [groupname] 。
2.2 chgrp
作用:更改文件的所属用户组
用法:
chgrp -R [groupname] [文件路径] :将改文件的用户组修改为 [groupname]
八、系统服务指令(centos)
1. chkconfig
作用:设置 “开机启动” 服务。(在linux下不是所有的软件安装完成之后都有开机启动服务,有的可能需要自己去添加。除此之外还可以查看和删除)
用法:
chkconfig --list:开机启动服务查询,(0-6表示各个启动级别)
chkconfig --del [服务名] :删除该服务(无法通过 chkconfig 命令开启该服务,并不是无法开启)
chkconfig --add [服务名] :服务和进程不一样,必须保证service start能运行[必须要保证服务正常运行,才可以添加]
chkconfig --level [运行级别(多个级别连在一起写)] on/off :在…级别下 开启 / 关闭 某服务
2. ntp
作用:用于对计算机的时间同步管理操作
用法:
ntpdate [时间服务器IP] :一次性同步时间,ip地址可以通过 http://www.ntp.org.cn/pool.php 查找
service ntpd start / /etc/init.d/ntpd start :启动 ntpd 服务,设置时间同步服务
chkconfig --list | grep ntpd chkconfig --level 35 ntpd on :设置 ntpd 服务开机自启
3. 防火墙
作用:防范一些网络攻击。有软件防火墙和硬件防火墙之分
centos6.5中防火墙有一个名称:iptables(软件名和服务名)[7.x中默认值为firewalld]
用法:
iptables -L -n :[ -L ] 表示列出规则,[ -n ] 表示将单词表达式改成数字形式显示
防火墙设置
#允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
#允许已建立的或相关连的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许所有本机向外的访问
iptables -A OUTPUT -j ACCEPT
#允详访问22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#允许访问80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#允许ftp服务的21端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#允许FTP服务的20端口
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#禁止其他未允许的规则访问
iptables -A INPUT -j reject
#禁正其他未允许的规则访问
iptables -A FORWARD -j REJECT(大小写都行)
iptables:主命令
-A:add,添加规则
INPUT:进站请求【出站 output】
-p:protocol,指定协议(icmp/tcp/upd)
--dport:指定端口号
-j:指定行为结果,允许(accept)/禁止(reject)
4. rpm管理
作用:软件管理,对linux服务器上的软件包进行对应管理操作,分为:查询、卸载、安装
用法:
rpm -qa | grep [关键词] :[ -q] 表示查询,[ -a ] 表示全部
rpm -e [软件名称] :卸载某软件
rpm -e [软件名] --nodeps :接触软件的依赖关系
rpm -ivh [软件包完整名称] :安装软件 [ -i ]install,安装;[ -v ] 显示进度条;[ -h ] 表示以"#"形式显示进度条
补充:
- lsblk :查看块状设备(光盘/U盘等)的信息
● name:名称
● size:设备大小
● type:类型
● mountpoint:挂载点 - umount [当前设备的挂载点(路径)]:解除挂载
- mount [设备原式地址] [要挂载的位置路径] :挂载光盘
5.cron/crontab
作用:操作系统不可能24小时都有人在操作,有些时候想在指定的时间点去执行任务(例如:每天夜里2点去重新启动Apache),此时不可能真有人每天夜里2点去执行命令,此时可以交给计划任务程序去执行操作。
用法:
crontab -l :list,列出指定用户的计划任务列表
crontab -e :edit,编辑指定用户的计划任务列表
crontab -u :user,指定的用户名,如果不指定,则表示当前用户
crontab -r :remove,删除指定用户的计划任务列表
实例:
# **每月1、10、22日的4:45重启network服务
45 4 1,10,22 service network restart
# **每周六、周日的1:10重启network服务
10 1 6,0 * * service network restart
# **每天18:00至23:00之间每隔30分钟重启network 服务
*/30 18-23 * * * service network restart
**每隔两天的上午8点到11点的第3和第15分钟执行一次重启
3,15 8-11 */2 * * reboot
每1分钟往root家目录中的RT.txt中输入当前的时间信息,为了看到效果使用追加输出
*/1 * * * * date +"%F %T” >> /root/RT.txt
-
Zz ↩︎
下一篇: HostEase:最懂你的独立主机服务商