linux 命令总结
文件权限:
chmod [-R:目录] 777 filename
chmod a/g/o/a -+ rwx
文件管理
cd [相对路径、绝对路径]:切换目录
~:进入当前用户的主文件夹
~username:进入username用户的主文件夹
.. :回到上层目录
- :回到访问的上一个目录
ls [-adl] 路径:查看文件与目录
-a:列出全部文件,连同隐藏文件(.开头)
-d:仅列出目录本身
-l:列出目录的全部信息
--color=never/always/auto:不依据文件特性给与颜色显示、显示颜色、让系统自行依据设置来判断
--full-time:以完整时间显示
--time=(atime/ctime):以相应时间显示
pwd :显示当前目录
mkdir dname :创建一个目录
touch filename:创建一个文件
rmdir dname: 删除“空”的目录
复制文件:
cp [-adfilprsu] 源文件 目标文件
-a 相当于-pdr
-i 若目标文件已经存在,会在覆盖时先询问操作的进行
-r 递归持续复制,用于目录的复制行为
-p 连同文件的属性一同复制
-d 若文件为连接文件,则复制连接文件属性而不是文件本身
删除文件:
rm [-fir] 文件或目录
-f:就是force的意思,忽略不存在的文件,不会出现警告信息
-i:互动模式,删除前会询问是否操作
-r:递归删除,用于删除目录
mv [-fiu] 源文件 目标文建
mv [options] 源文件1 源文件2 源文件3 目标目录
-f:强制
-i:存在时询问
文件查询
cat [-AbEnTv] 文件名称
-n:打印出行号
-b:打印出行号,不包括空白行
tac 反向打印
head -n number filename 读取前面几行
tail -n number filename 读取后面几行
-f filename 实时更新
文件压缩与解压
压缩文件:
zip [-cdtv#] 文件名
-c:将压缩的数据进行输出
-d:解压缩
-t:用来检验一个文件的有效性
-v:显示出源文件/压缩文件的压缩比等信息
-#:压缩等级,默认-6
文件打包:
tar [-ctxjzvfC] 文件名
-c:新建打包文件,可搭配-v
-t:查看打包文件的内容有哪些文件名
-x:解压打包的文件,可搭配-C
-j:通过bzip2的支持进行压缩/解压缩,此时文件名最好为*.tar.bz2
-z:通过gzip的支持... 文件名*.tar.gz
-v:在解压/压缩的过程中,间正在被处理的文件名显示出来
-f filename:被处理的文件名
-C 目录:解压到特定的目录下
总结:tar -jcvf/zcvf filename.tar.gz/filename.tar.bz2 filename1 filename2 filename3 ...:压缩文件
tar -jtvf/ztvf filename(tar.gz,tar.bz2):查看文件内容(详细信息)
tar -jtf/ztf filename :查看文件名
tar -jxvf/zxvf filename -C 目标目录路径:解压文件
文件系统操作:
磁盘与目录容量:
df [-ahikHTm] 目录或文件名
-a 列出所有的文件系统
-k 以kb的形式显示文件系统
-m 一MB的形式显示文件系统
-i 一iNode的的数量显示
du [-ms]:列出目录的容量
-m:列出每个文件、目录的容量
-s:列出目录总容量
连接文件:
ln [-sf] 源文件 目标文件
(不加任何参数):创建hard link
-s:创建symbolic link 符号链接
-f:如果目标文件存在,就主动删除目标文件后再创建
hard link:相当于在源目录下创建了一个指向目标目录的iNode,当目标目录被删除的时候,源目录仍能打开文件
symbolic link:相当于创建了文件的一个快捷方式,当目标文件被删除的时候,该快捷方式无法打开文件
文件备份:
dump [-Suvj] [-level] [-f 备份文件] 待备份的数据
-S:仅列出后面的待备份数据需要多少磁盘空间才能备份完毕
-u:将这次dump的时间记录到/etc/dumpdateS文件中
-v:将dump的文件过程显示出来
-j:加入bzip2的支持,将数据进行压缩,默认bzip2压缩等级为2
-level:等级 -0~-9十个等级
-f:产生的文件,姐姐设备文件名称
-W:列出在/etc/fstab里面的具有dump设置的分区是否备份过
数据流重定向
cmd >fileapth 命令输出的结果将写入filepath
cmd 2>filepath 命令输出的错误信息将写入filepath
cmd <filepath 命令由filepath文件输入
cmd <<"eof" 输入结束的标志
管道命令
查找:
cut -d ':' -f 1,2
cut -c 1~12 1~12个不输出
grep [-acinv] [--color=auto] '查找字符串' filename
-a:将二进制文件按照txt文件进行查找
-c:计算查找到字符串的次数
-i:不区分大小写
-n:输出行号
-v:反向
排序命令
sort:[-fbMnrtuk] [file or stdin]
-f:忽略大小写
-b:忽略前面空格的部分
-M:按照月份进行排序
-n:以纯数字培训
-r:反向排序
-t:分隔符
-u:相同的数据进出现一行
-k:以那个区间进行排序
linux 账户管理
用户信息储存文件:/etc/passwod
密码储存文件:/etc/shadow
用户组信息储存文件:/etc/group
查看用户所属用户组
groups
有效用户组切换:(必须是已经支持的用户组)
newgrp groupname
新增账户:
useradd [-u UID] [-g 初始用户组] [-G 次要用户组] [-Mm] [-c 说明栏] [-d 主文件夹绝对路径] [-s shell] username
设置密码:
passwd [--stdin] :可以通过一个管道数据作为密码输入
(如果后面接username,则修改用户改用户的密码,否则修改当前用户的密码)
删除用户
userdel [r] username
-r:连同主文件夹一同删除
新建用户组
groupadd [-g gid] [-r] groupname
-r:新建系统用户组
修改用户组信息
groupmod [-g gid] [-group_name] 用户组名
删除用户组
groupdel groupname
用户切换:
su username
sudo [-b] [-u]:使用其他用户的权限来执行命令
-b:接命令
-u:username 如果为null则用root权限执行
自定义命令
alias lm='ls -al'
去掉
unalias ...
工作调度
仅执行一次的工作调度
at [-mldv] time
at -c 工作号
常用方式:at now + 5 minutes (回车后输入命令)
循环执行的工作掉度
crontab [-u username] [-l|-e|-r]
-l 列出所有的工作掉度
-e 编辑工作调度(每一行都是一个工作掉度,删除行即为删除该工作掉度)
-r 删除所有的工作调度
进程管理
将命令调入后台执行: 命令 &
查看目前的后台工作状态
jobs [-lrs]
-l 除了列出job number与命令串之外,同时列出PID号码
-r 列出正在运行的后台工作
-s 列出已经暂停的后台工作
将后台的工作提到前台来执行
fg %jobnumber
让工作在后台的状态下变成运行中
bg %jobnumber
管理后台工作
kill -signal %jobnumber
kill -l:列出kill能够处理的信号
signal:-1 重新读取一次参数配置文件 类似于reload
-2 Ctrl+c
-9 强制结束一个工作
-15 正常退出一个工作
进程查看
ps:将某个时间点的进程运行情况选取下来
ps aux :查看系统所有的进程数据
-lA :同上
axjf:连同部分进程树状态
ps -l:仅查看自己的bash相关进程
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
F 代表进程标志,说明这个进程的权限 4 代表root权限 1代表此子进程只能复制,不能执行
S 进程状态 R(Running) 运行中
S(sleep)
D 不可被唤醒状态
T 停止状态 控制台暂停或者出错
Z 僵尸状态
UID PID PPID :userid/processid/parentprocessid
C:CPU使用率
PRI/NI:进程优先级
动态查看进程变化 top
查看系统网络状态
netstat (最后一项为PID/ProgramName)
程序安装:
rpm -qa :查看已经安装的所有程序
rpm filename.rpm 安装程序
yum [option] [查询工作项目] [相关参数]
-y:当yum等待用户输入时,自动相应yes
--installroot=/path 安装路径
search :搜索某个软件名称或者描述的关键字
list:列出yum目前管理的所有软件名称与版本(可以结合rpm -qa 使用)
previous:从文件中搜索软件,类似rpm -qf
yum install 软件名:安装软件
yum remove 软件名:删除软件
env 查看有环境变量
set 查看所有变量
declare -i ...
系统常量
PS1='[]' 命令提示样式
\d 日期
\H 完整主机名
\h 主机名第一部分
\t 24小时时间
\T 12小时时间
\A 24小时精确到分
\@ 12小时 带PM AM
\u 当前用户名称
\v BASH版本
\w 完整的工作目录
\# 命令数
\$
$ 当前进程数PID
locale -a 查询系统支持的语言
export 变量名称
read -pt variable
-p 后面可以连接提示符
-t 后面可以连接等待的"秒数"
declare [-aixr] 变量
-a 数组
-i 整形int
-x 环境变量 export
-r readonly 不可更改
ulimit [-SHacdfltu] [配额] 显示用户的资源
-S 严格设置
-H 警告设置
-a 列出所有的限制额度
-c core file最大容量
-f shell 最大文件容量
-d 进程可使用的最大断裂内存容量
-l 可用于锁定(lock)的内存量
-t 可使用的最大CPU时间
-u 单一用户可使用的最大进程数量
path=${PATH#/*oft/sbin:} 删除变量中的一段
# 最短一段
## 最长一段
% 最后一段
%% 最前一段
path=${PATH/sbin/SBIN} 替换 /替换第一个 //替换全部
给定优先值
nice -n 数字 commond
renice number PID
显示内存量
free [-b|-k|-m|-g] [-t]
系统信息
uname -a 全部信息
-s 系统内核
-r 内核版本
-m 硬件名称
-p CUP类型
-i 硬件平台
uptime 系统启动时间
netstat -a 全部网络信息
-u UDP网络数据包的数据
-t TCP
-n 以端口号来显示
-l 正在网络监听的服务
-p 列出PID
chkconfig --list [service name]
chkconfig [service name] on/off
ntsysv config的图形化界面
//例行工作
单一工作调度
at [-mldv] TIME
-m 工作完成后,以邮件形式通知
-l 列出该用户的调度
-d 取消一个调度
-v 可以使用较明显的时间格式列出任务列表
-c 列出工作的实际内容
atq = at -l
atrm = at -d
batch ~= at :不同点在于这个命令只会在CPU<0.8的时候执行
循环工作调度
crontab [-u username] [-l -r -e]
-u 帮助其他用户新建/删除crontab工作调度
-l 列出
-r 删除
-e 编辑
编辑格式:
分钟 小时 日期 月份 周 命令
* 全OK
, 或
- 时间范围
/n 每隔n个单位 */n