按照自己目前的水平所整理,以备日后杯具时查阅(需定时更新)
首先打开终端,最初要使用的命令:
启用root用户,使用sudo passwd命令
禁用root用户,使用passwd -l
ls [-adlsht]:列出当前目录下的非隐藏文件
-a 显示所有文件
-d 显示目录本身
-l 以列表形式显示详细信息
-s 显示文件大小,单位块
-h 带度量单位显示
-t 按最新修改时间显示
Linux中3种时间属性
atime access 读取或执行时变化
ctime change 变更权限,属主,链接数时变化
mtime modify 修改内容时变化
cd PATH:改变当前操作目录路径到PATH
cd .. 返回上一层
cd -
返回上一
次使用的
目录
cd 返回用户主目录,等同于cd ~
pwd 显示当前路径
现在介绍一个高级的路径变更命令:
pushd PATH:建立目录栈,在多个目录间切换。切换到PATH的目录,并把原目录和PATH目录压入到一个虚拟的堆栈中;如果不指定PATH,则会回到前一个目录,并把堆栈中最近的两个目录作交换。
-n 不改变当前目录,将目录加入栈
+N N表示数字,从0开始,切换到该目录
dirs: 列出当前堆栈中保存的目录列表。
-v 栈式显示目录
-c 清空堆栈
popd:弹出堆栈中0号目录。
-n 不改变当前目录
+N N表数字,弹出该目录
mkdir NAME:在当前路径下创建文件夹NAME
touch NAME:在当前路径下创建普通文件NAME
mknod NAME:用来新建P、B、C型NAME文件
cat [-nb] NAME:显示NAME文件的内容在终端中
-n 带行号
-b 对空白行不编号
mv NAME1 NAME2:将NAME1重命名为NAME2
rm file:删除file而不需要确认
-d Dir1 删除Dir1目录而不需要确认(相当于DOS中的deltree)。
-i file1(提示用户确认之后删除file1)
-f file2(如果file2已经存在,则这个命令覆盖其内容时不需要确认)
-r * 递归删除文件,如果当前目录还有子目录,则也删除其中的文件和目录
-rf xx 删除xx目录
Linux文件权限
chmod 751 test.java:结果test.java的权限是-rwxr-x--x,7表示user的3个权限都有,既111,且正好是十进制的7;5换成二进制是101,同理1是other位置的权限,是x执行。
还可以使用字母表示,u、g、o分别表示3个组,+表示赋予,-表示撤销
目录有执行权限才能打开,但前提是该目录的上次目录要有粘滞位,否则会继承上级的执行权限。
高级权限:
drwxrwxrwt
t表示粘滞位,作用是让用户只能删除属于自己的文件
假如本来在该位上有x, 则这些特别标志 (suid, sgid, sticky) 显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)
chmod a+t x.X
特殊标志位
Suid:set user id
Sgid:set group id
sTicky:sticky bit
特殊标志也是由3个二进制位abc表示,c表示T,b表示Sgid,a表示Suid
eg:101表示设置了该文件的Suid和sTicky位,也就是八进制的5
特殊标志位放在权限位的前面
eg:一个文件test类型标识为-rwxr-xrwx
chmod 7747 test
结果为-rwsr-Srwt
7747等于111 111 100 111
umask number 修改创建时的默认权限
系统规定目录的创建可以包含执行权限,所以最高是777;而文件不能默认包含执行,所以最高是666。
umask就是默认权限的反码
eg:umask=022时,创建的目录权限是755,文件权限是644。
umask=002时,目录权限是775,文件权限是664
常用的umask:
022:755 644
027:750 640
002:775 664
006:771 660
007:770 660
groups username 显示username所在的所有组
改变文件的组和所有者命令chown
chown [-cfhvR] user[:group] file...
-c若文件拥有者确实已更改,才显示其更改动作
-f若无法更改,也不要显示错误信息
-h只对link文件进行更改,而非该link真正指向的档案
-v显示拥有者变更的详细资料
-R对目录下所有文件文件夹递归更改
user:[group]指的是更改为group组中的user用户
eg:chown -R fenix:root *
表示将当前目录下所有文件和文件夹改为root组的使用者fenix
chown [-cfhvR] user[:group] file...
-c若文件拥有者确实已更改,才显示其更改动作
-f若无法更改,也不要显示错误信息
-h只对link文件进行更改,而非该link真正指向的档案
-v显示拥有者变更的详细资料
-R对目录下所有文件文件夹递归更改
user:[group]指的是更改为group组中的user用户
eg:chown -R fenix:root *
表示将当前目录下所有文件和文件夹改为root组的使用者fenix
chgrp [-hR] groupname filename 将文件的属组变更
-h将符号链接变更
-R递归变更
id username 显示username的uid,gid和自身id
显示进程命令
ps [-Aw][aux]:当前bash中运行的进程
-A列出所有进程
-w显示较多信息
-au显示详细信息
-aux显示所有包含其他使用者的进程
-w显示较多信息
-au显示详细信息
-aux显示所有包含其他使用者的进程
eg: ps aux | grep nautilus 显示nautilus进程
pstree:树状显示进程
-a显示该进程的完整指令和参数
-c如有重覆的进程名, 则分开列出
-c如有重覆的进程名, 则分开列出
renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]:重新指定一个或多个进程的优先序
将行程 id 为987及32的行程与行程拥有者为daemon 及root 的优先序号码加1。eg:renice +1 987 -u daemon root -p 32
将行程 id 为987及32的行程与行程拥有者为daemon 及root 的优先序号码加1。eg:renice +1 987 -u daemon root -p 32
pkill NAME
:快速杀掉进程。
eg
:
pkill firefox
skill [signal to send] [options]
:选择程序的规则
选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称
-t 终端机代号 ( tty 或 pty )
-u 使用者名称
-p 程序代号 ( pid )
-c 命令名称
选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称
-t 终端机代号 ( tty 或 pty )
-u 使用者名称
-p 程序代号 ( pid )
-c 命令名称
eg:停止三个使用者 user1,user2,user3。
skill -STOP user1 user2 user3
kill [-s signal|-p] [-a] PID
:终止进程命令
kill -l
:查看所有信号量
- 0 - normal
- 1 - signal SIGHUP, Hangup. #重启
- 2 - signal SIGINT, Interrupt #中断,ctrl+c
- 3 - signal SIGQUIT, Quit
- 4 - signal SIGILL, Illegal instruction
- 5 - signal SIGTRAP, Trace/breakpoint trap
- 6 - signal SIGABRT, Aborted
- 7 - signal SIGEMT, Emulation trap
- 8 - signal SIGFPE, Arithmetic exception
- 9 - signal SIGKILL, Killed #无条件关闭
- 10 - signal SIGBUS, Bus error
- 11 - signal SIGSEGV, Segmentation fault
- 12 - signal SIGSYS, Bad system call
- 13 - signal SIGPIPE, Broken pipe
- 14 - signal SIGSTOP, Stopped (signal)
- 15 - signal SIGTERM, Terminated #温和的结束
- 16 - signal SIGXCPU, CPU time limit exceeded
- 17 - signal SIGTTIN, Stopped (tty input)
- 18 - signal SIGCONT, Continued #恢复,fg、bg
- 19 - signal SIGTTOU, Stopped (tty output)
- 20 - signal SIGTSTP, Stopped (user) #暂停运行,ctrl+z
- 21 - signal SIGXFSZ, File size limit exceeded
top命令:动态显示当前运行进程
up 后面表示系统运行了多长时间
load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值
Cpu(s): 0.3% us 用户空间占用CPU百分比,1.0% sy 内核空间占用CPU百分比,0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比,98.7% id 空闲CPU百分比,0.0% wa 等待输入输出的CPU时间百分比
PR 优先级
NI nice值,负值表示高优先级
VIRT 进程使用的虚拟内存总量
RES 进程使用的,未被换出的物理内存大小,kb单位
SHR 共享内存大小,kb单位
S 进程状态
s睡眠,r运行,t跟踪或停止,z僵尸,d不可中断的睡眠
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,1/100秒单位
COMMAND 命令行
按f键可以选择显示列,按o可以改变列的显示顺序,按R键可以将当前排序倒转
类debian发行版的linux使用的apt软件管理命令:
apt-get [-qy] [-c config_file] [options] software...
q 在后台环境执行
y 自动进行回答y的响应
c 后接配置文件
options
update,install,remove,purge,clean,dist-upgrade
apt-cache [搜索项目]
搜索项目
search,show,
showpkg 列出所接软件的依赖属性及功能
dump 列出所有软件标头及相关的依赖属性软件
pkgnames 列出本系统所有软件名称
q 在后台环境执行
y 自动进行回答y的响应
c 后接配置文件
options
update,install,remove,purge,clean,dist-upgrade
apt-cache [搜索项目]
搜索项目
search,show,
showpkg 列出所接软件的依赖属性及功能
dump 列出所有软件标头及相关的依赖属性软件
pkgnames 列出本系统所有软件名称
软件管理的高级命令
dpkg [-ilLSC]
-i 安装软件包
-l 查看软件包是否安装
-L 查看软件包中包含哪些文件
-S /path/to/file 查看系统中某文件是由哪个软件包提供的
-C 查看哪些软件包未完成安装
网络命令类:
ifup eth0 打开eth0,
ifdown eth1 关闭eth1
ifconfig [interface] [options],设置网络设备的命令
interface接口名,如eth0
options,功能选项
up & down
mtu
netmask
broadcast
eg:ifconfig eth0 192.168.1.1 netmask 255.255.0.0 mtu 8000
route [-nee]
n直接使用ip
ee更详细的信息
ping [-bcstnM] IP
b 接broadcast的ip,对整个网段ping
c 后接次数
n 不进行ip和主机名的反查
s 扩增的icmp包
M 设置MTU
ifconfig [interface] [options],设置网络设备的命令
interface接口名,如eth0
options,功能选项
up & down
mtu
netmask
broadcast
eg:ifconfig eth0 192.168.1.1 netmask 255.255.0.0 mtu 8000
route [-nee]
n直接使用ip
ee更详细的信息
ping [-bcstnM] IP
b 接broadcast的ip,对整个网段ping
c 后接次数
n 不进行ip和主机名的反查
s 扩增的icmp包
M 设置MTU
tcpdump -i eth0 -nn
:侦测网络浏览的命令,网卡变为混杂模式,root权限
-i 后接网络接口,如eth0
-nn 以ip和port显示,而不是hostname
tcpdump -i eth0 -nn port 21
port 21 监听特定的21port
-X 可列出十六进制以及ascii的内容
ip address show:显示当前ip地址详细信息
arp -n:显示arp表的内容,包括网段内机器物理地址MAC
netstat [-tulnp]
-t tcp协议
-u udp协议
-l 监听中的
-n 不解析主机
-p pid
eg:netstat -anp |grep 8080 8080端口占用情况
其他命令
ctrl+z:暂时挂起当前终端进程
jobs:查看当前终端挂起的进程
fg number:将number号挂起进程激活在前台运行
bg number:将number号挂起进程激活在后台执行
uname -a:查看内核
cat /etc/issue:查看ubuntu版本
cat /proc/cpuinfo
lshw:查看当前硬件信息
free -l:查看当前的内存使用
gnome-control-center:控制中心
gnome-system-monitor:系统管理
find [路径] [-参数] [需求]
eg: find /etc -name *.d
find . -perm 664
find /usr/share/doc -mtime 0
locate 文件名
whereis:是来寻找命令的二进制文件,同时也会找到其帮助文件
which 和where 相似,只是我们所设置的环境变量中设置好的路径中寻找
who:查看当前在线上的用户情况
w命令是who命令的一个增强版
uptime:显示系统运行时间
last:显示系统开机以来或是从每月登入者的讯息
tail:从参数制定点开始将文件内容写到标准输出
格式 tail [-fr] [-cnmbk Number] [file]
Number 变量指定将多少单元写入标准输出。Number变量的值可以是正的或负的整数,+表示从开头,-表示从结尾
-f表示动态的显示文件的内容
-r表示从文件末尾以逆序方式显示
-c从Number表示的字节位开始读
-n从Number表示的行位开始读
-m从Number表示的多字节字符位置开始读
-b从Number表示的 512 字节块位置开始读
-k从Number表示的 1KB 块位置开始读
改变文件的高级属性
chattr [-RV] [-+=AacDdijsSu] [-v version] files...
R:递归处理所有的文件及子目录
V:周详显示修改内容,并打印输出
-:失效属性。
+:激活属性。
= :指定属性。
A:Atime,告诉系统不要修改对这个文件的最后访问时间。
S:Sync,一旦应用程式对这个文件执行了写操作,使系统即时把修改的结果写到磁盘。
a:Append Only,系统只允许在这个文件之后追加数据,不允许所有进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除所有文件。
i:Immutable,系统不允许对这个文件进行所有的修改。如果目录具有这个属性,那么所有的进程只能修改目录之下的文件,不允许建立和删除文件。
D:检查压缩文件中的错误。
d:No dump,在进行文件系统备份时,dump程式将忽略这个文件。
C:Compress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘。
S:Secure Delete,让系统在删除这个文件时,使用0填充文件所在的区域。
u:Undelete,当一个应用程式请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件。
lsattr [-adRvV] files... 查看文件的高级属性
a全部文件和目录
d显示目录名称
R递归
v文件,目录版本
V版本信息
V:周详显示修改内容,并打印输出
-:失效属性。
+:激活属性。
= :指定属性。
A:Atime,告诉系统不要修改对这个文件的最后访问时间。
S:Sync,一旦应用程式对这个文件执行了写操作,使系统即时把修改的结果写到磁盘。
a:Append Only,系统只允许在这个文件之后追加数据,不允许所有进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除所有文件。
i:Immutable,系统不允许对这个文件进行所有的修改。如果目录具有这个属性,那么所有的进程只能修改目录之下的文件,不允许建立和删除文件。
D:检查压缩文件中的错误。
d:No dump,在进行文件系统备份时,dump程式将忽略这个文件。
C:Compress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘。
S:Secure Delete,让系统在删除这个文件时,使用0填充文件所在的区域。
u:Undelete,当一个应用程式请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件。
lsattr [-adRvV] files... 查看文件的高级属性
a全部文件和目录
d显示目录名称
R递归
v文件,目录版本
V版本信息
整理的有点乱……