Linux基础:Linux下常用命令

常用命令

shutdown

​ 用来系统关机命令。shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。

​ shutdown (选项)(参数)

-c:		当执行“shutdown -h 11:50”指令时,shutdown -c就可以中断关机的指令;
-f: 重新启动时不执行fsck;
-F: 重新启动时执行fsck;
-h: 将系统关机;
-k: 只是送出信息给所有用户,但不会实际关机;
-n: 不调用init程序进行关机,而由shutdown自己进行;
-r: shutdown之后重新启动;
-t<秒数>:送出警告信息和删除信息之间要延迟多少秒。

指定5分钟后关机,同时送出警告信息给登入用户:

shutdown -h +5 "System will shutdown after 5 minutes"

命令后接&,表示后台执行,可以用-c参数取消命令执行

shutdown -h +5 &		#5分钟后关机,后台执行
shutdown -c #取消命令执行

useradd

​ 添加用户命令

​ useradd [选项] 用户名

-u		指定UID
-d 指定家目录
-g 指定基本组
-G 指定附加组
-e 指定失效时间(格式:yyyy-mm-dd)
-M 不建立家目录
-s 指定用户的登录shell
useradd -u 504 -d /home/admin -g admin -G root user1
#添加一个UID为504,家目录为/home/admin,基本组为admin,附加组为root,用户名为user1的账户
useradd -s /bin/nolgin -M user2
#添加一个禁止登陆,没有家目录的账户user1

userdel

​ 删除用户账号

-r		删除用户及其家目录

usermod

​ 修改用户账号属性

-d		修改登入目录(只修改passwd文件)
-g 修改基本组
-G 修改附加组
-l 修改账号名称
-m 修改家目录(和-d一起使用)
-u 修改用户ID
-L 锁定用户密码,使密码无效
-U 解除密码锁定
usermod  -md  /home/test  user1	#修改用户家目录为/home/test
usermod -l admin user1 #修改user1用户的用户名为admin

passwd

​ 用户管理,更改用户密码

-d		删除密码,仅管理员使用
-l 锁定密码,用户不能更改
-u 解锁用户
passwd user1	#更改用户user1的密码

id

查看用户信息

-g或--group   显示用户所属群组的ID。
-G或--groups 显示用户所属附加群组的ID。
-n或--name   显示用户,所属群组或附加群组的名称。
-r或--real   显示实际ID。
-u或--user   显示用户ID。
-help   显示帮助。
-version   显示版本信息。
id user

su

​ 切换用户身份

-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;
-f或——fast:适用于csh与tsch,使shell不用去读取启动文件;
-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
-m,-p或--preserve-environment:变更身份时,不要变更环境变量;
-s<shell>或--shell=<shell>:指定要执行的shell;
--help:显示帮助;
--version;显示版本信息。

​ 添加“-”切换到家目录下,不添加继承之前目录

su - user1		#切换到user1用户同时切换到家目录下

groupadd

​ 创建组命令

-g		指定GID
-r 创建系统工作组,GID<500
[root@CentOS ~]# groupadd study
[root@CentOS ~]# cat /etc/group|grep "study" #查看study组信息
study:x:668:

groupdel

删除用户组

​ 注意:删除时不能有以该组为基本组的用户。

[root@CentOS ~]# groupdel user1		#删除用户组user1

groupmod

​ 修改组参数

-n		修改名称
-g 修改PID
[root@CentOS home]# tail -n 2 /etc/group
lyf:x:667:
study:x:668:
[root@CentOS home]# groupmod -n liyuanfu lyf #修改lyf组组名为liyuanfu
[root@CentOS home]# tail -n 2 /etc/group #查看组
study:x:668:
liyuanfu:x:667:

gpasswd

​ 添加删除组成员

-a		添加组成员
-d 删除组成员
[root@CentOS ~]# cat /etc/group|grep "root"		#查看root组下有哪些成员
root:x:0:user1
[root@CentOS ~]# gpasswd -d user1 root #删除root组成员user1
Removing user user1 from group root
[root@CentOS ~]# cat /etc/group|grep "root"
root:x:0:

groups

​ groups 用户名

​ 查询某个用户账号所属组

[root@CentOS home]# gpasswd -a 360 root		#添加360到root用户组
Adding user 360 to group root
[root@CentOS home]# groups 360 #查看360用户所属组
360 : 360 root

查看当前有哪些组

[root@CentOS ~]# cat /etc/group
root:x:0:user1
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
格式:组名称:占位符:GID:附加组成员 #只显示附加组

pwd

​ 查看当前所在目录,以绝对路径显示

[root@CentOS 360]# pwd
/home/360

cd

​ 切换目录

cd ~ 用户名		  直接切换到指定用户家目录
cd .. 切换到上一级目录
cd - 切换到上一个工作目录
cd / 切换到根目录

ls

​ 文件管理命令

-a		显示所有文件,包括隐藏文件
-A 显示所有文件,不包括.与..
-l 显示文件或目录的详细信息
-d 指定目录查看,仅显示目录名,不显示目录下内容列表
-o 在-l的基础上取消了所属组的显示
-m 使用“,”分割显示的文件、目录
-n 以用户识别码和群组群组识别码替代其名称
-S 按大小排序,降序
-h 以可读方式显示文件大小
-r 反向排序
-i 显示索引节点号(inode)
[root@CentOS /]# ls -l
total 102
dr-xr-xr-x. 2 root root 4096 Mar 16 20:34 bin

Linux基础:Linux下常用命令

mkdir

​ 创建目录命令,可以同时创建多个目录

-p		递归创建

rmdir

​ 用于删除空目录

-p		递归删除

rm

​ 删除文件或目录

-f		强制删除
-r 删除非空目录,递归删除

touch

​ 新建文件或修改时间戳

直接使用可以创建文件
-a 更改访问时间
-m 更改修改时间
-d 修改时间戳为指定时间
-t 使用指定时间,而非现在时间(定位到“分”)
-c 更新时间,不建立任何文档

​ 时间戳:访问时间(access)、修改时间(modify,修改文件内容)、改变时间(change,改变文件属性时间)

stat

​ 查看文件信息(包含时间戳)

Linux基础:Linux下常用命令

cp

​ 复制文件或目录

-a		保留链接、文件属性,并复制目录下所有内容,此参数的效果和同时指定"-dpR"参数相同**
-d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f 强行复制文件或目录,不论目标文件或目录是否已存在;
-i 覆盖既有文件之前先询问用户;
-l 对源文件建立硬连接,而非复制文件;
-p 保留源文件或目录的属性;
-R/r 递归处理,将指定目录下的所有文件与子目录一并处理**
-s 对源文件建立符号连接,而非复制文件;
-u 使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S 在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b 覆盖已存在的文件目标前将目标文件备份;
-v 详细显示命令执行的操作。

mv

​ 移动文件

-b			当文件存在时,覆盖前,为其创建一个备份
-u 当源文件比目标文件新或者目标文件不存在时,才执行移动操作
-f 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录
-S<后缀>: 为备份文件指定后缀,而不使用默认的后缀
mv /usr/men/* .		#移动指定目录所有文件到当下目录

cat

​ 查看文件内容

-n		由1开始对输出行数编号
-b 同-n,但是对空白行不编号
-s 将多个空行压缩为一行

cal

显示当前日历,或者指定日期的日历

-l		显示单月输出
-3 显示临近三个月的日历
-s 将星期日作为月的第一天
-m 将星期一作为月的第一天
-j 显示“julian”日期
-y 显示当前年的日历

Linux基础:Linux下常用命令

more、less

​ 分页显示文件内容

​ more可以向下翻页,不能向上,阅读结束自动退出阅读模式

​ less可以上下翻页,需要按“q”退出阅读模式

more /etc/passwd
less /etc/group

head

​ 显示文件开头内容

-n		指定显示多少行

tail

​ 显示文件结尾内容

-n		指定显示多少行
-f 显示追加的内容,常用语查看日志(仅tail支持)

wc

统计指定文件中的行数、单词数、字节数

-l		显示统计的行数
-w 显示统计的单词数
-c 显示字节数

Linux基础:Linux下常用命令

find

根据指定条件查找,允许使用通配符,对属性进行查找

find [查找范围] 选项 -参数

查找文件需要加引号
-name 按文件名查找,允许使用通配符
-type 按照文件类型查找 (f:普通文件)
-user 按照文件所有者查找
-size 按照文件大小查找
-maxdepth 设置最大目录级别
-iname 不区分大小写
-not或! 非,取反
-empty 空
-expty 寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录
[root@CentOS test]# find ./ -name "*.txt"		#查找当前目录下“.txt”文件
./test1.txt
./test.txt [root@CentOS test]# find . ! -name "*.txt" #查找当前目录下不是.txt格式的文件
.
./Test.log
[root@CentOS test]# find . -not -name "*.txt"
.
./Test.log

grep

指定条件进行查找过滤,对内容进行查找,允许使用正则表达式

-v		排除查找,查找不符合条件的行
-c 显示符合条件的行数
-n 显示符合条件的行的行号
-i 不区分大小写
-e<范本样式> 指定字符串作为查找文件内容的范本样式。
-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。

正则表达式:

Linux基础:Linux下常用命令

ln

创建链接文件(软链接和硬链接)

​ 不能给一个目录创建硬链接,不能在不同文件系统间创建硬链接

​ 可以创建任何指向目录的软链接

磁盘空间:inode、block

​ inode:索引号 ​block:存放文件数据

默认创建硬链接
-s 创建软链接

history

查看历史记录

! num		执行对应编号的历史记录命令
history 3 查看最近执行过的3条历史命令

echo

打印字符串

$		后接全局变量
\ 转义,还原字符本身
` ` 命令放在反引号中会被执行

>

输出重定向

>		覆盖
>> 追加
>!

date

显示或设置系统时间与日期。

-d<字符串>		显示字符串所指的日期与时间。字符串前后必须加上双引号
-s<字符串> 根据字符串来设置日期与时间。字符串前后必须加上双引号
-u 显示GMT
--version 显示版本信息
%H 小时,24小时制(00~23)
%I 小时,12小时制(01~12)
%k 小时,24小时制(0~23)
%l 小时,12小时制(1~12)
%M 分钟(00~59)
%p 显示出AM或PM
%r 显示时间,12小时制(hh:mm:ss %p)
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 显示秒(00~59)
%T 显示时间,24小时制(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 显示时区,日期域(CST)
%a 星期的简称(Sun~Sat)
%A 星期的全称(Sunday~Saturday)
%h,%b 月的简称(Jan~Dec)
%B 月的全称(January~December)
%c 日期和时间(Tue Nov 20 14:12:58 2012)
%d 一个月的第几天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第几天(001~366)
%m 月份(01~12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%y 年的最后两个数字(1999则是99)

cut

显示行中的指定部分,删除文件中指定字段

-d 分隔符		#指定分隔符,默认为Tab
-f #指定显示列数
-c #单位改为字符
 cut命令可以将一串字符作为列来显示,字符字段的记法:
N-: 从第N个字节、字符、字段到结尾;
N-M: 从第N个字节、字符、字段到第M个(包括M在内)字节、字符、字段;
-M: 从第1个字节、字符、字段到第M个(包括M在内)字节、字符、字段。
上面是记法,结合下面选项将摸个范围的字节、字符指定为字段:
-b 表示字节;
-c 表示字符;
-f 表示定义字段。

Linux基础:Linux下常用命令

chgrp

改变文件所数群组

chgrp 参数 组 文件

-c		发生改变时输出调试信息
-R 递归修改,处理指定目录以及其子目录下的所有文件
-v 运行时显示详细的处理信息
[root@CentOS test]# chgrp -v -R group1 test1.txt   #修改文件test.txt所属组为group1
changed group of `test1.txt' to group1
[root@CentOS test]# chgrp -v -R group1 file #将file目录及其所有子文件所属组改为group1
changed group of `file/log' to group1
changed group of `file' to group1

chown

改变文件拥有者

chown 选项 所有者(:组) 文件

-c		显示更改的部分信息
-R 处理指定目录以及其子目录下的所有文件
-v 显示详细的处理信息
[root@CentOS test]# chown user3:root test.txt	#修改文件属主、zhuzu属组

chmod

改变文件的权限,SUID,SGID,SBIT等特性

u		user,即文件或目录拥有者
g group,即文件或目录所属群组
o other,除了文件或目录拥有者之外的用户都属于其他人
a all,即全部用户,包含拥有者,所属群组以及其他用户
权限位表示:
r 读取权限,数字代号4
w 写入权限,数字代号2
x 执行权限,数字代号1
- 空权限,数字代号0
-c		显示更改的部分
-R 递归处理,将指令目录下的所有文件及子目录一并处理
-v 显示指令执行过程
chmod u+x,g+w,0+r file		给文件添加属主执行,属组写入,其他人读取权限
chmod 764 file
chmod u=rwx,g=rw,o=r file
chmod a+x file u,g,o都设置可执行权限

umask

查看权限设置

​ 设置后临时生效,永久生效需要改变配置文件

​ 默认权限:0022

第一位0:特殊权限位

​ 002:文件默认权限

目录默认最大权限777,文件默认最大权限666

文件默认权限计算

Linux基础:Linux下常用命令

ping

测试网络联通性

​ 命令所在路径:/bin/ping

-c		指定数据包数量(发送次数)

last

显示用户最近登录信息

​ 单独执行,读取/var/log/wtmp文件内容

-n		设置显示列数
-R 不显示登入系统的主机名称或IP
-x 显示系统关机,重新开机,以及执行等级的改变等信息

显示5行

Linux基础:Linux下常用命令

ifconfig

查看网络配置

功能:修改mac地址;查看指定接口信息;启动、关闭网卡;启动、关闭协议;修改IP地址

up		启动指定网卡设备
down 关闭指定网卡设备
-a 显示全部接口信息
-s 显示摘要信息(类似netstat -i)
ifconfig eth0 up	启动eth0网卡		##只是临时生效
ifconfig eth0 down 关闭eth0网卡
ifconfig etho hw ether 01-01-01-01-01-01 修改MAC地址
ifconfig eth0 192.168.56.128	配置IP地址
ifconfig eth0 192.168.56.128 netmask 255.255.255.0
ifconfig eth0 arp		启动ARP协议
ifconfig eth0 -arp 关闭ARP协议

route

查看和操作IP路由表

-n		不解析名字
-v 显示详细的处理信息
-F 显示发送信息
-C 显示路由缓存
add		添加一条新路由
del 删除一条路由
-net 目标地址是一个网络
-host 目标地址是一主机
netmask 当添加一个网络路由时,需要使用网络掩码
gw 路由数据包通过网关(指定网关必须能够到达)

添加网关/设置网关

Linux基础:Linux下常用命令

删除路由记录

Linux基础:Linux下常用命令

service

设置Linux服务的状态

​ 可以运行service脚本文件来停止或启动网络连接。/sbin/service是一个脚本文件,它通过检查/etc/init.d目录中的一系列脚本文件来识别各个服务,并调用这些脚本从而实现对服务的控制。

​ 语法:service 服务名 start / stop / restat / status(服务状态) / reload(重新加载)

​ 相当于/etc/init.d/服务名

​ 服务名应该在/etc/init.d中出现,否则会显示服务未被认可。

Linux基础:Linux下常用命令

注意:使用该命令时网络会造成中断。提供服务时慎用,ifdown和ifup可以对指定网卡进行操作。

Linux基础:Linux下常用命令

hostname

​ 直接使用显示系统主机名

更改系统主机名:

Linux基础:Linux下常用命令

/etc/sysconfig/network配置文件也可以修改主机名

traceroute

​ 跟从本地和远程主机之间的UDP数据包,根据收到回应的情况,用户可以网络故障可能的位置

通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数

据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本

上来说大部分时候所走的路由是相同的。

​ traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个

设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其ip地址。

-n		直接使用IP地址而非主机名称,不必进行主机的名称解析,只用IP,速度较快
-d 使用Socket层级的排错功能
-F 设置勿离断位
-I 使用ICMP回应取代UDP资料信息;
-r 忽略普通的Routing Table,直接将数据包送到远端主机上
-x 开启或关闭数据包的正确性检验
-v 详细显示指令的执行过程
-w<超时秒数> 设置等待远端主机回报的时间
-f<存活数值> 设置第一个检测数据包的存活数值TTL的大小
-t<服务类型> 设置检测数据包的TOS数值
-s<来源地址> 设置本地主机送出数据包的IP地址
-m<存活数值> 设置检测数据包的最大存活数值TTL的大小
-p<通信端口> 设置UDP传输协议的通信端口
-g<网关> 设置来源路由网关,最多可设置8个
-i<网络界面> 使用指定的网络界面送出数据包

Linux基础:Linux下常用命令

netstat

​ 显示各种网络相关信息,网络连接、路由表、接口状态等,得知整个Linux系统的网络情况

-a		显示所有选项
-n 拒绝显示别名,能显示数字的全部转化为数字 ***
-s 按各个协议进行统计***
-t 仅显示tcp相关选项
-u 仅显示UDP相关选项
-l 仅列出有在Listen(监听)的服务状态
-r 显示路由信息,路由表
-e 显示扩展信息,例如UID等
-p 显示正在使用Socket的程序识别码和程序名称
-c 每隔一个固定时间,执行该netstat命令(持续列出网络状态)
netstat -a		#列出所有端口
netstat -at #列出所有TCP端口
netstat -au #列出所有UDP端口
netstat -l #只显示监听端口
netstat -lt #列出所有监听TCP端口
netstat -ld #列出所有监听UDP端口
netstat -x #列出所有监听UNIX端口

Linux基础:Linux下常用命令

du

统计指定目录或文件所占磁盘空间大小

-h		提高可读性
-a 列出目录中所有文件的大小
--max -depth 查看大文件

Linux基础:Linux下常用命令

tar

文件打包压缩

打包压缩
-c 打包
-v 显示详细信息
-f 指定文件名
-z 打包同时压缩,通过gzip指令处理备份文件
-j 支持bzip2解压文件
-k 保留原有文件不覆盖
tar	-zcvf  备份名	文件			#打包压缩

Linux基础:Linux下常用命令

解压
-x 解包,从备份文件中还原文件
-v 显示详细信息
-f 指定解压文件
-z 解压缩,使用gzip
-j 支持bzip2解压文件
-C 指定解压目录*
tar -zxvf 压缩包名

Linux基础:Linux下常用命令

ps

查看静态的进程统计信息

-a		显示终端上所有进程
-u 显示面向用户的格式
-x 显示后台进程信息 ps -ef 类似于-aux

查看进程状态

Linux基础:Linux下常用命令

Linux基础:Linux下常用命令

top

动态(10s)显示进程

​ 执行状态下,按P键可以根据CPU使用时间排序,按M键以内存使用率排序,按A键以PID排序,按Q键退出。

Linux基础:Linux下常用命令

at

​ 控制进程方式:调度启动

​ 用于在指定时间执行命令。 (实际上是对进程的控制)

​ *必须指定时间

-f		指定包含具体指令的任务文件
-q 指定新任务的队列名称
-l 显示待执行任务的列表
-d 删除指定的待执行任务
-m 任务执行完成后向用户发送E-mail

三天后下午五点执行

Linux基础:Linux下常用命令

明天17点,输出时间到指定文件内

Linux基础:Linux下常用命令

计划任务设定后,在没有执行之前系统没有执行的工作任务

Linux基础:Linux下常用命令

删除已经设置的任务

Linux基础:Linux下常用命令

显示已设置的任务内容

Linux基础:Linux下常用命令

kill

​ 终结进程命令

​ 对于前台的进程,可以直接使用Ctrl+C来终止进程

​ 对于后台或其他终端的进程,需要使用kill命令

kill -9 进程ID		强制终止进程

Linux基础:Linux下常用命令

users

查看当前登录的用户名

who

查看当前登录用户的详细信息

Linux基础:Linux下常用命令

w

查看当前登录用户的详细信息(比who更详细)

Linux基础:Linux下常用命令

free

查看内存使用情况

-m		以MB为单位显示信息(默认为KB)
-b 以byte为单位显示信息
-s 指定动态显示时的频率刷新时间
表头解释:
total 内存总数
used 已经使用的内存数
free 空闲的内存数
shared 当前已经废弃不用
buffers Buffer 缓存内存数
cached Page 缓存内存数

Linux基础:Linux下常用命令

df

查看磁盘使用情况

-h		增加可读性
-T 显示文件系统类型

Linux基础:Linux下常用命令

mount

挂载:加载文件系统到指定挂载点

​ 挂载点必须是一个存在的目录

​ 格式:mount -t 文件系统 [其他参数] 设备 挂载点

Linux基础:Linux下常用命令

umount

卸载:卸载已经加载的文件系统

​ 格式: umont [-fn] 设备文件名称或挂载点

-f		强制卸载
-l 立刻卸载文件系统,比-f还强
-n 不更新/etc/mtab情况下卸载

lsblk

列出系统上所有的可用块设备的信息,列出设备的UUID等参数

​ UUID:全域单一识别码,Linux下设备独一无二的识别码

-a		列出所有设备信息
-l 使用列表格式显示
-t 显示拓扑结构信息
-f 显示UUID

Linux基础:Linux下常用命令

blkid

查询设备上所采用文件系统类型进行查询 ,显示设备UUID信息

-s <tag>    显示指定信息,默认显示所有信息

Linux基础:Linux下常用命令

yum

​ 基于rpm的软件包管理器 ,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

​ yum源:就是一个软件集合地,只需要搜索并安装你想要的软件即可

-y		对所有的提问都回答“yes”
-q 安静模式
-v 详细模式
yum install		安装
update 更新rpm软件包
yum remove 卸载
yum search 搜索
yum clean 清理yum过期缓存
yum list 显示软件包的信息

yum clean all 清理yum源数据

yum makecahe 重新生成缓存文件

​ 查询本地已安装软件

Linux基础:Linux下常用命令

rpm

RPM软件包的管理工具

​ Linux操作系统下,几乎所有的软件均通过rpm进行安装、卸载及管理等操作

rpm -ivh		安装包,并显示安装进度及文件信息
rpm -e 卸载
rpm -qa 查看已安装程序
rpm -qa|grep "gcc" 搜索gcc是否安装

apt

dpkg

Debian Linux系统用来安装、创建和管理软件包的实用工具

-i		安装软件包
-r 删除软件包
-P 删除软件包的同时删除其配置文件
-L 显示于软件包关联的文件
-l 显示已安装软件包列表
-c 显示软件包内文件列表
--unpack 解开软件包
--confiugre 配置软件包

curl

利用URL规则在命令行下工作的文件传输工具

uname

打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)

-a		显示全部的信息
-m 显示电脑类型
-n 显示在网络上的主机名称
-r 显示操作系统的发行编号
-s 显示操作系统名称(默认显示和-s参数一样)
-v 显示操作系统的版本

Linux基础:Linux下常用命令

上一篇:linux下常用命令:


下一篇:C#教程之C#属性(Attribute)用法实例解析