目录
1. shutdown命令
shutdown 命令可以安全关闭或者重新启动系统,格式:shutdown [-t seconds] [-rkhncfF] time [message]。
参数:
-t seconds : 设定在几秒钟之后进行关机程序。
-k : 并不会真的关机,只是将警告讯息传送给所有使用者。
-r : 关机后重新开机。
-h : 关机后停机。
-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
-c : 取消目前已经进行中的关机动作。
-f : 关机时,不做 fsck 动作(检查 Linux 档系统)。
-F : 关机时,强迫进行 fsck 动作。
time : 设定关机的时间。
message : 传送给所有使用者的警告讯息。
例如:
2.ifconfig命令
查看或配置网卡信息
ifconfig命令:被用来获取网络接口配置信息并对此进行修改,格式:ifconfig [网络设备] [参数]。
参数:
up 启动指定网络设备/网卡。
down 关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。
arp 设置指定网卡是否支持ARP协议。
-promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包
-allmulti 设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包
-a 显示全部接口信息
-s 显示摘要信息(类似于 netstat -i)
add 给指定网卡配置IPv6地址
del 删除指定网卡的IPv6地址
<硬件地址> 配置网卡最大的传输单元
mtu<字节数> 设置网卡的最大传输单元 (bytes)
netmask<子网掩码> 设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。
tunel 建立隧道
dstaddr 设定一个远端地址,建立点对点通信
-broadcast<地址> 为指定网卡设置广播协议
-pointtopoint<地址> 为网卡设置点对点通讯协议
multicast 为网卡设置组播标志
address 为网卡设置IPv4地址
txqueuelen<长度> 为网卡设置传输列队的长度
例如:
ifconfig 查看或配置计算器当前的网卡配置信息(仅)
ifconfig | grep inet 显示ipv4/ipv6的ip地址
ifconfig eth0 up 启动网卡eth0
ifconfig eth0 down 关闭网卡eth0
ifconfig eth0 add 33ffe:3240:800:1005::2/64 为网卡eth0 配置IPv6地址
ifconfig eth0 del 33ffe:3240:800:1005::2/64 为网卡eth0 删除IPv6地址
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE 为网卡eth0修改MAC地址
ifconfig eth0 192.168.120.56 给eth0网卡配置IP地址
ifconfig eth0 192.168.120.56 netmask 255.255.255.0 给eth0网卡配置IP地址及子网掩码
ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255 给eth0网卡配置IP地址、子网掩码、广播地址
ifconfig eth0 arp 开启网卡eth0的arp协议
ifconfig eth0 -arp 关闭网卡eth0的arp协议
ifconfig eth0 mtu 1500 设置eth0的最大传输单元(设置能通过的最大数据包大小为1500bytes)
3.uname命令
uname命令用于查看系统内核和系统版本等信息,格式:uname [-a]。
在使用uname命令时,一般会固定搭配上 -a参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息。
例如:
4.uptime命令
uptime用于查看系统的负载信息,格式: uptime。
uptime命令可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况;负载值越低越好,尽量不要长期超过 1,在生产环境中不要超过 5。
例如:
5.free命令
free用于显示当前系统中内存的使用量信息,格式: free [-h]。
在使用 free命令时,可以结合-h参数输出当前内存的实时使用量信息,包含内存总量,已用量,可用量,进程共享的内存量,磁盘缓存内存量,缓存的内存量。
例如:
6.who命令
who命令用于查看当前登入主机的用户终端信息,格式: who [参数]。
例如:展示信息为:登录名,终端设备,登录到系统时间(登录ip地址)。
7.last命令
last命令用于查看本机的所有登录记录,格式:last [参数]。
8.history命令
history命令用于显示历史执行过的命令,格式:history [-c]。
执行 history命令默认能显示出当前用户在本地计算机中执行过的最近 1000条命令记录,如想查看更多行,可通过修改/etc/profile文件中的HISTSIZE变量值。在使用history命令时,如果使用-c参数则会清空所有的命令历史记录。历史命令会被保存到用户家目录中的.bash history文件中。 Linux系统中以点(.)开头的文件均代表隐藏文件,这些文件大多数为系统服务文件,可以用 cat命令查看其文件内容。
例如:查看历史命令文件信息
清空当前用户在本机上执行的Linux命令历史记录信息
9.ping命令
ping ip地址 检测到目标ip地址的连接是否正常
例如:ping 127.0.0.1
10.chmod 命令
chmod(change mode)命令是控制用户对文件的权限的命令,Linux/Unix的文件调用权限分为三级:文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。使用权限 : 所有使用者。
使用方式1:
格式:chmod [-cfvR] [--help] [--version] mode file...
参数 :
mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中
u(user)表示该文件的拥有者,g(group)表示与该文件的拥有者属于同一个群体(group)者,o (others)表示其他以外的人,a(all) 表示ugo三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本
例如:
chmod ugo+r file1.txt 将文件file1.txt 设为所有人可读
chmod a+r file1.txt 将文件file1.txt 设为所有人可读
chmod ug+w,o-w file1.txt file2.txt 将file1.txt与file2.txt设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入
chmod u+x ex1.py 将ex1.py文件拥有者增加可执行权限
chmod -R a+r * 将目前目录下的所有文件与子目录设为任何人可读
使用方式2:
chmod也可用数字来表示权限,例如:chmod 777 file
格式:chmod abc 文件
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
例如:
chmod a=rwx file和 chmod 777 file效果相同
chmod ug=rwx,o=x file和chmod 771 file效果相同
chmod 664 file 对file的所有者和用户组设置读写权限, 为其其他用户设置读权限
chmod 4755 filename 4设置了设置用户ID位,剩下的相当于 u=rwx (4+2+1),go=rx (4+1 & 4+1)
chmod 0755 file 相当于u=rwx (4+2+1),go=rx (4+1 & 4+1)。0 没有特殊模式。
chmod +/-rwx 文件名|目录名
chmod -rw test 去掉对test目录的读写权限
chmod +r test 添加对test目录的读权限
chmod -R 755 文件名|目录名 递归修改文件权限755===rwxr-wr-w读4写2可执行1
chmod +/-rwx 文件名|目录名 直接修改文件|目录的读|写|执行权限,但是不能精确到拥有者|组|其他用户权限
11. chown 命令
chown 命令用于设置文件所有者和文件关联组的命令,格式:chown [-cfhvR] [--help] [--version] user[:group] file...
chown命令将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID,组可以是组名或者组 ID,文件是以空格分开的要改变权限的文件列表,支持通配符。chown 需要超级用户 root 的权限才能执行此命令。
只有超级用户和属于组的文件所有者才能变更文件关联组。非超级用户如需要设置关联组可能需要使用 chgrp 命令只有系统管理者(root)才有这样的权限。
参数:
user : 新的档案拥有者的使用者
IDgroup : 新的档案拥有者的使用者群体(group)
-c : 若该档案拥有者确实已经更改,才显示其更改动作
-f : 若该档案拥有者无法被更改也不要显示错误讯息
-h : 只对于连结 (link)进行变更,而非该 link 真正指向的档案
-v : 显示拥有者变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本
例如:
chown 用户名 文件名|目录名 修改文件|目录的拥有者
chown root /var/run/httpd.pid 把 /var/run/httpd.pid 的所有者设置root
chown jessie:users file1.txt 将file1.txt的拥有者设为 jessie,群体的使用者为users
chown -R lamport:users * 将当前目录下的所有文件与子目录的拥有者皆设为lamport,群体的使用者为users
chown :512 /home/runoob 把/home/runoob的关联组设置为512(关联组ID),不改变所有者
12. 组管理命令
groupadd 组名 # 添加组
groupdel 组名 # 删除组
cat /etc/group # 确认组信息
例如:
sudo groupadd dev 添加dev组
cat /etc/group 查看组信息
sudo groupdel dev 删除dev组
cat -n /etc/group | grep dev
cat -n /etc/group | grep python
13. chgrp命令
chgrp命令用于变更文件或目录的所属群组。chgrp 允许普通用户改变文件所属的组,只要该用户是该组的一员。
格式:chgrp [-cfhRv][--help][--version][所属群组][文件或目录...] 或 chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
参数:
-c 或 --changes:效果类似"-v"参数,但仅回报更改的部分。
-f 或 --quiet 或 --silent: 不显示错误信息。
-h 或 --no-dereference: 只对符号连接的文件作修改,而不改动其他任何相关文件。
-R 或 --recursive: 递归处理,将指定目录下的所有文件及子目录一并处理。
-v 或 --verbose: 显示指令执行过程。
--help 在线帮助。
--reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
--version 显示版本信息。
例如:
chgrp 组名 文件/目录名 修改文件/目录的所属组
chgrp -R 组名 文件/目录名 递归修改文件/目录的所属组
sudo chgrp -R dev Python学习/ 递归修改dev组下对Python学习目录下的文件可读写执行
14. useradd命令
useradd 命令用于建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码。而可用 userdel 删除帐号。使用 useradd 指令所建立的帐号,实际上是保存在 /etc/passwd 文本文件中。格式:useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号] 或者useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>] 。
参数:
-c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。
-d<登入目录> 指定用户登入时的起始目录。
-D 变更预设值。
-e<有效期限> 指定帐号的有效期限。
-f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。
-g<群组> 指定用户所属的群组。
-G<群组> 指定用户所属的附加群组。
-m 自动建立用户的登入目录。
-M 不要自动建立用户的登入目录。
-n 取消建立以用户名称为名的群组.
-r 建立系统帐号。
-s<shell> 指定用户登入后所使用的shell。
-u<uid> 指定用户ID。
例如:
useradd -m -g 组 新建用户名 添加新用户,-m自动建立用户家目录,-g指定用户所在的组,否则会建立一个和同名的组
useradd tt 添加一般用户
useradd -g root tt 为添加的用户指定相应的用户组
useradd -r tt 创建一个系统用户
useradd -d /home/myd tt 为新添加的用户指定home目录
useradd caojh -u 544 建立用户且制定ID
passwd 用户名 设置用户密码,如果是普通用户,直接用passwd可以修改自己的账户密码,/usr/bin/passwd是用于修改用户密码的程序
cat /etc/passwd | grep 用户名 确认用户信息,新建用户后,用户信息会保存在/etc/passwd文件中
cat -n /etc/passwd | grep lisi
15. userdel命令
userdel命令用于删除用户帐号。userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。格式:userdel [-r][用户帐号]。
参数:
-r 删除用户登入目录以及目录中所有文件。
例如:
userdel -r 用户名 删除用户,-r选项会自动删除用户家目录
16. id命令
id命令用于显示用户的ID,以及所属群组的ID。
id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。格式:id [-gGnru][--help][--version][用户名称]
参数:
-g或--group 显示用户所属群组的ID。
-G或--groups 显示用户所属附加群组的ID。
-n或--name 显示用户,所属群组或附加群组的名称。
-r或--real 显示实际ID。
-u或--user 显示用户ID。
-help 显示帮助。
-version 显示版本信息。
id [用户名]
例如:
id 显示当前用户ID
id lisi 查看用户lisi的ID信息
id -g 显示用户群组的ID
17. usermod命令
usermod命令用于修改用户帐号。usermod可用来修改用户帐号的各项设定。格式:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号] 。
参数:
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s<shell> 修改用户登入后所使用的shell。
-u<uid> 修改用户ID。
-U 解除密码锁定。
主组:通常在新建用户时指定,在etc/passwd的第4列GID对应的组
附加组:在etc/group中最后一列表示该组的用户列表,用于指定用户的附加权限
例如:
usermod -d /home/hnlinux root 更改登录目录
usermod -u 777 root 改变用户的uid
usermod -g 组 用户名 修改用户的主组(passwd中的GID)
usermod -G 组 用户名 修改用户的附加组
usermod -s /bin/bash 修改用户登录 Shell
18.who命令
who命令用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。使用权限:所有使用者都可使用。格式:who - [husfV] [user]
参数:
-H 或 --heading:显示各栏位的标题信息列;
-i 或 -u 或 --idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串;
-m:此参数的效果和指定"am i"字符串相同;
-q 或--count:只显示登入系统的帐号名称和总人数;
-s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题;
-w 或-T或--mesg或--message或--writable:显示用户的信息状态栏;
--help:在线帮助;
--version:显示版本信息。
例如:
who 查看当前登录系统的用户列表
who -H 显示标题栏
who -l -H 显示用户登录来源
who -T -H 显示终端属性
who -m -H 只显示当前用户
who -q 精简模式显示
19.whoami命令
whoami命令用于显示自身用户名称。显示自身的用户名称,本指令相当于执行"id -un"指令。
格式:whoami [--help][--version] 。
例如:
whoami 查看当前登录用户的账户名
20.which命令
which命令用于查找所在位置,which指令会在环境变量$PATH设置的目录里查找符合条件的文件,格式:which [文件...]。
参数:
-n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w 指定输出时栏位的宽度。
-V 显示版本信息。
例如:
which bash 查看指令bash的绝对路径
21. su(switch user)切换用户命令
su命令用于变更为其他使用者的身份,除root外,需要键入该使用者的密码。使用权限:所有使用者。格式:su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]。
参数:
-f 或 --fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh
-m -p 或 --preserve-environment 执行 su 时不改变环境变数
-c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
-s shell 或 --shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell
--help 显示说明文件
--version 显示版本资讯
- -l 或 --login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root
USER 欲变更的使用者帐号
ARG 传入新的 shell 参数
例如:
su -c ls root 变更帐号为 root 并在执行 ls 指令后退出变回原使用者
su root -f 变更帐号为 root 并传入 -f 参数给新执行的 shell
su - 用户名 切换用户,并且切换目录;-可以切换到用户家目录,否则保持位置不变
su - 直接切换到root账户目录下
su - clsung 变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)
22. exit命令
exit退出当前登录账户
23. df命令
df(disk free)命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。
格式:df [选项]... [FILE]...
参数:
文件-a, --all 包含所有的具有 0 Blocks 的文件系统
文件--block-size={SIZE} 使用 {SIZE} 大小的 Blocks
文件-h, --human-readable 使用人类可读的格式(预设值是不加这个选项的...)
文件-H, --si 很像 -h, 但是用 1000 为单位而不是用 1024
文件-i, --inodes 列出 inode 资讯,不列出已使用 block
文件-k, --kilobytes 就像是 --block-size=1024
文件-l, --local 限制列出的文件结构
文件-m, --megabytes 就像 --block-size=1048576
文件--no-sync 取得资讯前不 sync (预设值)
文件-P, --portability 使用 POSIX 输出格式
文件--sync 在取得资讯前sync
文件-t, --type=TYPE 限制列出文件系统的 TYPE
文件-T, --print-type 显示文件系统的形式
文件-x, --exclude-type=TYPE 限制列出文件系统不要显示 TYPE
文件-v (忽略)
文件--help 显示这个帮手并且离开
文件--version 输出版本资讯并且离开
例如:
df -h 格式化显示磁盘信息
du -h [目录名] 显示目录下的文件大小
24. ps命令
ps命令用于查看进程信息
ps aux # process status查看进程的详细状况
a:显示终端上的所有进程,包括其他用户的进程
u:显示进程的详细状态
x:显示没有控制终端的进程
top 、ps aux、ps lax、ps -elf、pstree -aup 查看进程
top命令用于动态地监视进程活动与系统负载等信息,默认每10秒刷新一次。(相当于window中的任务管理器)
第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟的平均值,数值越小意味着负载越低)。
第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。
注:第3行中的数据均为CPU数据并以百分比格式显示,例如“89.6 id”意味着有89.6%的CPU处理器资源处于空闲。
第4行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量。
第5行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量。
25.pidof命令
pidof命令用于查询某个指定服务进程的 PID值,格式:pidof [参数 ] [服务名称 ]。
每个进程的进程号码值(PID)是唯一的,因此可以通过PID来区分不同的进程。例如可以使用如下命令来查询本机上sshd服务程序的PID:
26.kill命令
kill命令用于终止某个指定PID的服务进程,格式:kill [参数] [进程PID] 。
kill [-9] 进程号 终止指定代号的进程,-9表示强制终止
27.killall命令
通常来讲,复杂软件的服务程序会有多个进程协同为用户提供服务,如果逐个去结束这些进程会比较麻烦,此时可以使用 killall命令来批量结束某个服务程序带有的全部进程。下面以 java服务程序为例,来结束其全部进程。
注意:
如果在系统终端中执行一个命令后想立即停止它,可以同时按下Ctrl+C组合键,将立即终止该命令的进程。如果有些命令在执行时不断地在屏幕上输出信息,影响到后续命令的输入,则可以在执行命令时在末尾添加上一个&符号,这样命令将进入系统后台来执行。
28. ln软链接命令
ln -s 被链接的源文件 链接文件 建立文件的软链接,用通俗的方式讲类似于Windows下的快捷方式 (源文件使用绝对路径)
例:
ln -s demo/b/c/01.py 01_xiangdui
ln -s /home/python/Desktop/demo/b/c/01.py 01_juedui
29. apt命令
sudo apt install 软件包 安装软件
sudo apt remove 软件包 卸载软件
sudo apt upgrade 更新已安装的包
例如:
sudo apt install sl
sudo apt install htop
30.ssh命令
域名:由一串用点分隔的名字组成,是IP地址的别名
端口号:通过端口号可以找到计算机上运行的应用程序
服务 | 端口号 |
SSH服务器 | 22 |
Web服务器 | 80 |
HTTPS | 443 |
FTP服务器 | 21 |
ssh 用户名@ip 关机/重新启动
ssh [-p port] user@remote
user:是在远程机器上的用户名
remote:是远程机器的地址,可以是IP/域名
port:是SSH Server监听的端口号,如果不指定默认是22
例如:ssh -p 22 python@172.16.140.138
31.scp命令
scp 用户名@ip:文件名或路径@ip:文件名或路径 远程复制文件
scp -P port 01.py user@remote:Desktop/01.py 把本地当前目录下的01.py文件复制到远程家目录下的Desktop/01.py
scp -r demo user@remote:Desktop 加上-r选项可以传送文件夹,把当前目录下的demo文件夹复制到远程家目录下的Desktop
scp -r user@remote:Desktop 把远程家目录下的Desktop复制到当前目录下的demo文件夹
例如:
scp -P 22 python@172.16.140.138:Desktop/01.py
scp -P 22 01.py python@172.16.140.138:Desktop/01.py