Linux常用命令
2020-03-29 21:45:28 0 举报
AI智能生成
Linux 常用命令
作者其他创作
大纲/内容
系统管理
查看系统信息
uname
-a 显示所有操作系统相关信息
-r 显示内核信息
硬盘
swap 交换分区
当系统实际内存不足的时候,操作系统会将一部分内存中的数据
放入交换分区,腾出内存空间
放入交换分区,腾出内存空间
等同于windows中的虚拟内存
挂载/卸载块设备至某一个目录
mount
unmount
查看文件系统(硬盘)使用情况 df
df -h 格式化显示内容
新增硬盘
新增物理硬盘,在/dev/sd* 查看新增的硬盘
将硬盘分区fdisk
分区上建立文件系统 mkfs
使用fsck检查文件系统 fsck -f /dev/sdb1
将文件系统挂载到某一个目录下 mount
配置/etc/fstab 文件,让系统启动的时候就加载这些文件系统
定时任务
周期性定时任务 cron
三类定时任务配置文件
/etc/crontab 存放和系统维护有关的全局任务
/etc/cron.d 应用软件自身的任务计划
/var/spool/cron 普通用户的配置文件 ,文件名称为username.cron
普通用户命令操作
crontab filename 将文件filename 安装为用户的crontab文件
crontab -e 打开用户的crontab文件
crontab -l 列出用户的crontab文件
crontab -r 删除用户的crontab 文件
用户提交自己的crontab文件需要管理员的许可
/etc/cron.allow 白名单
/etc/cron.deny 黑名单
配置文件如何配置
一条定时任务包含7个元素
分钟 minute
小时 hour
日期 day
月份 month
星期几 weekday
用户名,普通用户不需要指定 username
命令 command
特殊元素
星号 * 匹配所有合法时间
整数 匹配一个时间单位
短划线 - ,如1-3 匹配1到3之间的数字
逗号,如1,2,3,4, 匹配列出的所有数字
样例
每周的周一至周三,以及每月的25号,每个半小时
0,30 * 25 1-3
0,30 * 25 1-3
每周五凌晨2:00
0,2,*,*,5
0,2,*,*,5
一次性定时任务 at
定时执行:at time
at now + 1 minutes
at hh:mm
at hh:mm
输入命令
<EOT> 结束符号
at [-f filename] time,-f参数用来指定shell脚本名,time用来指定运行时间
已经配置的定时任务: atq
删除定时任务 atrm
内存
查看内存使用情况 free -m
软件包管理
二进制软件包
软件包管理命令
rpm
rpm Red Hat Package Manager (Red Hat 软件包管理器) 软件包后缀为.rpm
rpm -ivh 安装软件包
rpm -Uvh 升级软件包
rpm -q 查找已安装软件包
rpm -qa 列出所有已安装软件包
rpm -ql 包名 查看软件包安装位置
rpm -e 卸载软件包
dpgk
dpkg -i Ubuntu 使用的软件管理包 软件包后缀为.dpkg
高级软件包工具
apt
yum
源代码
下载源码包
解压源码包
配置软件 configure
--prefix 指定安装目录
建议安装在/usr/local 目录下
编译源代码 make
make 是一种高级的编译工具,他可以根据makefile文中的规则调用合适的编译器编译源代码
安装软件到硬盘 make install
Shell编程
正则表达式
字符匹配
. 点号匹配一个字符
[] 用于指定字符集, [abc] 、[a-z]、[0-9]匹配其中一个
\<\>
\<[a-z]at\> 指定匹配一个单词
^ 行首\反义 $ 行尾
\ 转义字符
重复范围
* 零次或多次
+ 一次或多次
? 零次或一次
{n} n次
{n,} n次或更多次
{n,m} n次至m次
子表达式
() 括号括注的在表达式中是子表达式
使用\1 \2 \3 从左到右依次可以引用子表达式
shell脚本编程
shell 脚本基本准则
第一行指定shell bash程序 #! /bin/bash
# 作为注释符号
缩进使用8个字符
shell脚本,不可随便添加空格、大小写敏感
= 定义变量
$ 获取变量值
${name}
$name
\ 转义字符
引号类型
双引号 “”
组织Shell对大部分的字符进行解释,除过 $、倒引号
单引号 ''
组织Shell对所有的字符进行解释
倒引号 ``
都没解释,一般用一条命令,将命名的执行结果作为表达式的值
echo `date`
参数获取
Shell用位置保存命令
$0 获取命令本身 $1、$2 依次类推获取第一个第二个参数
子主题
$* 参数列表
$@ 参数列表
$# 参数个数
表达式求值
$[ num1 + num2 ]
注意[] 和变量之间的空格
expr num1 + num2
let num=num1+num2
let 只能应用于整数
控制/循环语句
if语句
if test-command then ... fi
if test-command then ... else ... fi
if test-command then ... elif then ... fi
case语句
while语句
while test-command do ... done
until语句
until test-command do ... done
for 语句
for value [in list]
do
conmands
done
do
conmands
done
list 是一系列空格分隔的值
条件测试(test-command)
条件测试接收一个命令作为参数
不能光是一个表达式
不能光是一个表达式
test expr
[ expr ]
字符串比较
-z str 当字符串长度为0 时返回真
-n str 当字符串长度大于0 时返回真
str1 = str2
str1! = str2
str1! = str2
数字比较
==、>、<
-qe -ne -lt -le -gt -ge
文件测试
-b 块文件
-c 字符文件
-d 目录
-e 文件或目录存在与否
-f 常规文件
-x 指定文件或目录是否有可执行权限
..... 等等
符合表达式操作符
!expr 非运算
expr1 -a expr2 与运算
&&
expr -o expr3 或运算
||
其他
read
从标准输入接收一行信息
read
无变量名,将接收到的变量放在REPLY中
read first seconde
按空格、制表符、换行符拆分变量,复制给对应的变量名
printenv
输入环境变量信息
alias
给变量设置别名
alias ll='ls -l'
.bashrc
用户的环境配置用户,在用户主目录下
exit num
强行退出一个脚本,并返回一个整数值
一个进程成功运行后,总是向父进程返回数值0,其他返回值代表发生了异常
trap
用来捕捉一个信号
kill用来发送信号
trap 'echo "Type quit"' INT
捕捉到INI信号后,输出语句
数组
函数
其他
在后台运行程序 ,需要在命令后面加 & 如:test &
which command 查看可执行文件所在位置
命令帮助
man 命令
命令 -help
重定向和管道
输出重定向
ll > filename 将ll的输出写入文件并覆盖原有内容
ll >> filename 追加内容
输入重定向
<
<<
管道
匿名管道
用一条 | 表示管道,将一条命令的标准输出连接到一条命令的输入
ls | grep java
ls | grep java
命名管道
mkinfo <pipe-name>
mknod p <pipe-name>
基于命令的文件传输
ftp
传输内容不加密,安全性低
sftp、scp
基于ssh 最可靠的传输协议之一
通配符
匹配任意多个字符 *
匹配一个字符 ?
匹配指定的字符或者范围 [123] [1-3]
文本编辑器 vi/vim
命令模式
: 打开命令行
wq 保存文件
q 退出
q! 强制退出
查找内容
向前查找 / 内容
n 切换搜索到的内容
向后查找 ?内容
n 切换搜索到的内容
查找时可以设置是否区分大小写
set ignorecase
set noignorecase
常用命令
x 删除光标所在位置的字符
dd 删除光标所在的行
D 删除光标所在位置到行尾之间的所有字符
yy 复制光标所在行
P在光标所在位置粘贴最近复制/删除的内容
编辑模式
i 进入编辑模式
Esc 退出编辑模式
进程管理
占用率高的进程查看 top
查看所有进程 ps -ef
pid 进程id
ppid 父进程id,指创建改进程的进程
查看文件被哪些进程占用 lsof filename
lsof -c mysql 查看mysql进程使用的文件
lsof -u root 查看root用户试用的文件
给进程对应的程序发送信号 kill
kill pid 发送软件终止信号,但软件可以选择忽略这条命令
kill -9 pid 强制杀死一条进程,程序无法忽略
kill -l 显示kill可以发送的信号
文件目录
文件
查看文件内容
cat
后面加1到多个文件名称或者通配符
cat -n 显示行号
more
一次显示部分内容,按enter键逐步显示内容
head
head -n 显示文件开头n行的内容
tail
tail -n 显示文件结尾n行的内容
less
less -M 可显示行数信息以及百分比信息
增强版more
文件内容搜索
grep '搜索内容' 文件名称
egrep 基于正则表达式搜索
搜索文件
find 目录
-type 指定文件类型
b 块设备文件
f 普通文件
c 字符设备文件
p 命名管道
d 目录文件
l 符合链接
-name 文件名称(可以使用通配符)
-atime
+n 指n天以前
-n 指n天以内
locate 文件名称
维护了文件名称数据库,不用逐个目录搜索,速度更快
updatedb 更新文件名称数据库
新建空白文件 touch filename
目录
切换目录:cd
显示当前目录:pwd
新建目录mkdir dirname
删除空目录 rmdir
显示目录下的文件和目录 ls
竖行格式: ls -l == ll
ls 后面可以指定文件名(包含通配符)
移动和重命名 目录或者文件
mv
移动:mv 文件名 目标目录
重命名:mv 文件名 文件别名
复制文件和目录
cp 被复制的 目标地点
删除文件和目录
rm -rf
文件和目录的权限
针对三种用户设置权限
1、文件所有者-u
2、文件属组-g
3、其他人-o
三种权限
读取 r
写入 w
执行 x
chown [owner] [:group] File 修改文件的属主、属组
-R 递归修改
chgrp 修改文件属组
修改文件权限
chmod
针对三种不同的用户设置权限
chmod u+x file 给属主增加执行权限
chmod u-x file 给属主取消执行权限
chmod ug=rw,o=r file u、g设置读写权限,o设置读权限
八进制权限设置
x =1
w = 2
r = 4
压缩/解压
gzip/gunzip
只能压缩文件不能压缩目录
zip/unzip
zip -r zipname filename
打包/解包工具
打包:tar -cvf filename.tar dirName
解包:tar -xvf filename.tar
xz 格式
解压
1、xz -d linux-3.12.tar.xz
2、tar -xf linux-3.12.tar
2、tar -xf linux-3.12.tar
tar -Jxf linux-3.12.tar.xz
压缩
xz -z linux-3.12.tar
tar -Jcf linux-3.12.tar.xz linux-3.12/
网络相关
ifconfig 查看/配置网络信息
测试网络连通性
telent 因为安全问题,已经不建议使用
ssh ip prot
wget
wget ip:port
wget url
ping ip
主机访问控制
白名单 /etc/hosts.allow(优先级高)
黑名单 /etc/hosts.deny
常用网络检测命令
检验本机各端口的网络连接情况
netstat
分析域名查询工具,可以检测域名系统工作是否正常 host 域名
追踪数据包在网络上传输时的全部路径
traceroute -p port host
traceroute -p port host
tcpdump命令是一款抓取数据包的工具,
它可以打印所有经过网络接口的数据包的头信息
它可以打印所有经过网络接口的数据包的头信息
查看特定端口的进程
netstat -anp | grep port
netstat -anp | grep port
用户
用户操作
新增用户 useradd
新增用户组 groupadd
显示用户操作历史 history
删除用户 userdel
修改用户账户 usermod
-d 修改用户主目录
-e 修改用户有效期限
-g 修改用户所属的组
-l 修改用户账户的名称
-s 修改用户登录后使用的shell
查看用户信息 id username
切换用户
sudo
受限的特权,临时以某一个身份执行命令
sudo -u username command
sudo command 以root身份执行特权命令
/etc/sudoers 中配置用户可以执行的特权命令
su
用户间切换 su
切换用户的同时,切换shell su - username
查看系统现有哪些用户登录 who
查看当前用户 whoami
其他
home 目录 cd ~
个人账户个性化设置 ./bashrc 在home目录下
-bash-4.2$ 丢失环境配置文件
cp /etc/skel/.bashrc /home/user/
cp /etc/skel/.bash_profile /home/user
cp /etc/skel/.bash_profile /home/user
0 条评论
下一页