linux 常用命令
awk awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。
Linux三剑客:awk,grep,sed
blkid 主要用来对系统的块设备所使用的文件系统类型、LABEL、UUID等信息进行查询
cat /etc/group 显示所有用户组
cat /etc/passwd 显示所有用户
createrepo 自建yum本地仓库
cp
-R 递归处理,包括子目录和所有文件
curl 是一个利用URL规则在命令行下工作的文件传输工具
-L curl直接跳转到新的网址
-i 可以显示http response 的头信息,连同网页代码
-I 只显示http response的头信息
-X curl默认的HTTP 动词是GET,使用-X参数可以支持其他动词
date
-s "时间" 修改系统时间
df 用来检查linux服务器的文件系统的磁盘空间占用情况
-h 使用方便阅读方式显示
--max-depth=0 显示当前目录的容量
-T 只显示选定文件系统的磁盘信息
du -h --max-depth=0 查看当前目录使用的总空间大小
-sh 查看当前目录总的使用大小
echo
> 覆盖文本
>> 追加文本
fdisk -l 查看硬盘列表
file 文件名 查看文件编码格式
find 查找文件
flock 文件锁
fuser 用于报告进程使用的文件和网络套接字
fuser 可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、或者网络端口,并给出程序进程的详细信息.
getconf 获取系统信息
getopts getopts是linux系统中的一个内置变量,一般用在循环中。每当执行循环是,getopts都会检查下一个命令选项
grep 全面搜索正则表达式,文本搜索工具
-A 显示匹配后和它后面的n行
-B 显示匹配行和它前面的n行
-C 匹配行和它前后各n行
-o 只输出匹配的选项
-r '查找内容' 文件目录 查找包含指定内容的文件
iostat 展示操作系统的io信息
用法: iostat [ 选项 ] [ <时间间隔> [ <次数> ]]
-d 单独输出Device结果,不包括cpu结果
-x 输出更详细的io设备统计信息
last 查看用户登录情况
reboot 查看所有重启日志信息
ls
-l 以详细格式列表
-d 仅列出目录
lsmod | grep nbd 显示内核加载的模块
ll -rt 按文件修改时间排序显示
-r 逆序排序
journalctl 可以查看系统内核和应用的日志
nohup 用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行
nohup command > myout.file 2>&1 & 退出终端不影响命令的运行,并且错误输出到终端,标准输出重定向到指定文件
mkfs 创建文件系统(计格式化为某文件系统)
mkfs.ext4 某分区 将某分区格式化为ext4文件系统
modprobe nbd 加载到内核模块
more 命令类似cat,不过会以分页的形式进行展示
mount device dir 挂载(将待挂载的设备挂载在挂载点上)
-a 加载符合要求的所有文件系统,若不加其他参数,将加载/etc/fstab文件中列出的所有文件系统
(/etc/fstab文件:列出了引导时需要安装的文件系统的类型、挂载点及可选参数)
netstat
-ntlp 列出所有端口
partprobe 不重启服务器的情况下分区 ,通知系统分区表的变化
使用fdisk工具只是将分区信息写到磁盘,如果需要mkfs磁盘分区则需要重启系统,
而使用partprobe则可以使kernel重新读取分区 信息,从而避免重启系统。
parted 某磁盘 对某磁盘进行分区操作(parted只能针对gpt格式的磁盘进行操作)
mklabel 将磁盘格式转换为gpt的格式(gpt 磁盘格式)
p 查看分区列表
mkpart
quit 退出
rm 删除分区列表
passwd 用户名 修改用户名密码
ps
-H 显示树状结构,表示程序间的相互关系
-t 指定终端机编号,并列出属于该终端机的程序的状况
realpath 获取指定目录或文件的绝对路径;包括软连接指向目标文件的绝对路径
route -n 查看网关/路由
rpm 软件包管理系统,安装、升级、删除、查询、验证软件包
-i 安装新的软件包
-e 删除一个软件包,使用软件名,不是软件包的全称
-v 查看安装过程的各种信息
-V 验证软件包
-h 安装过程中显示进度条
-F 更新软件包,不存在则不安装
-U 升级软件包,不存在就安装
rpm -qa | grep 包名 搜索指定rpm包是否安装
rpmbuild RPM软件包的管理工具,可用于构建二进制和源代码软件包
scp
-P port 大写的P, port是指定数据传输用到的端口号
-p 保留原文件的修改时间,访问时间和访问权限。
sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
-i 直接修改读取的文件内容,而不是输出到终端
sed -i 's/原字符串/新字符串/g' ab.txt # 对每行匹配到的第一个字符串进行替换
shift 参数左移
sgdisk 创建分区
[-n|--new=partnum:start:end] 分区编号:开始位置:结束位置,应该就是确定分区的大小
[-c|--change-name=partnum:name] 分区编号:分区名
strace strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器
跟踪一个程序整个生命周期里所有的系统调用,并把调用参数和返回值以文本的方式输出
su 和su -的区别在于,前者没有切换用户的shell环境,
systemctl 系统管理守护进程、工具和库的集合
systemctl --failed 列出启动失败的服务
tail 显示文件结尾
-f 可以动态显示该 log 文件的动态更新
tar 压缩文件
举例: tar zcf uniportal1121.tar uniportal/ 前者是压缩包名,后者是待压缩的文件夹
c 创建文档
f filename 要操作的文件名
x 提取文档
z 用于gzip格式压缩
tcpdump linux 的一种抓包工具
tee 用于读取标准输入的数据,并将其内容输出成文件。
test 判断命令
touch 更新对文件的访问和修改时间,且可以用来创建空文件
tr 替换或删除字符
trap 用于在接收指定信号后将要采取的动作,常用于脚本被中断时完成清理工作
tty 显示当前终端
umask 可以指定当前用户在新建文件和目录时的默认权限。umask可以查看当前用户的umask值
umount 卸载文件系统
-f 强制卸载
uname 用于显示当前系统名称
userdel -r 用户名 删除用户
wc 统计字节数、字数和行数,并输出
-l 统计行号
who 当前在本地系统上的所有用户的信息
wipefs 擦除磁盘
yum 基于rpm包管理,自动下载安装包、解决依赖,一次安装所有依赖包
list
search packagename
install -y packagename
--downloadonly 只下载
--downloaddir 下载到指定目录下
makecache 把服务器上的报信息下载到本地缓存起来,以便安装时提高搜索速度
remove packagename
upgrade 软件 更新指定软件
; 命令1 ; 命令2 多条命令顺序执行,命令之间没有任何逻辑关系
&& 命令1 && 命令2 前者正常执行才执行后者
|| 命令1 || 命令2 前者正常执行后者不执行,前者不能正常执行后者执行
linux 特殊变量
$# 传给脚本的参数个数
$0 脚本名称
$1 传递给脚本的第一个参数
-gt 大于
-eq 等于
-lt 小于
${file##*.} 删掉最后一个 . 及其左边的字符串:file=/dir1/dir2/dir3/my.file.txt,得到的是txt
linux 配置文件
/etc/resolv.conf文件主要有四个关键字 配置dns
(1) nameserver 定义DNS服务器的IP地址
(2) domain 定义本地域名
(3) search 定义域名的搜索列表
(4) sortlist 对返回的域名进行排序
/etc/sysconfig/network-scripts/ifcfg-eth0
(1) IPADDR
(2) NETMASK
(3) GATEWAY
(4) ONBOOT 系统启动时是否激活网卡
(5) BOOTPROTO static(静态ip)/dcph(动态ip)
/etc/ssh/sshd_config openssh的配置文件
PermitRootLogin no 用于设置root能不能用ssh登录
Port 22 设置sshd监听端口号
cat /etc/*release 查看linux版本
linux 日志
常见的日志文件:
/var/log/cron crontab调度相关信息
/var/log/dmesg 记录系统在开机时内核检测过程中所显示的各项信息
/var/log/lastlog 记录系统所有账户最近一次登录系统的相关信息
/var/log/messages 包括整体系统信息,其中也包含系统启动期间的日志。
此外,mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中。
/var/log/secure 登录需要输入账号密码的软件时,记录相应的登录信息
/var/log/wtmp,/var/log/faillog 正确登录系统者的账户信息与错误登录时所使用的账户信息
/var/log/httpd/,/var/log/news/,/var/log/samba/* 记录网络服务相关信息
syslogd服务来统一管理日志文件;主要是登录系统与网络等服务的信息
klogd是记录内核信息的日志文件服务;主要登录内核产生的各项信息
logrotate(日志文件轮替)——主要记录日志文件的轮替工作
Shell 语句中-a至-z的含义
[ -x FILE ] 如果 FILE 存在且是可执行的则为真。
[ -z STRING ] “STRING” 的长度为零则为真。
&& || ; 一行实现多条命令,三者分别是前一个成功才能执行后面的命令;前一个失败才能执行后面的命令;前一个无论是否失败都执行后一个
# 表示行注释
: << ! (块注释内容)!
for 循环:
for a in{1..10}
do
xxxx
done
linux目录结构
/bin/ 保存经常使用的命令
/boot/ 主要保存启动系统时的核心文件
/etc/ 系统管理所需的配置文件
yum.conf yum的配置方式之一,另一种是yum.repos.d/下新建.repo文件
yum/
yum.repos.d/
/lib/ 主要是系统基本的动态链接库
/usr/ 放置用户的应用程序
/var/ 放置不断扩充的文件,包括日志文件
log/ 常见的日志文件
messages 包括整体系统信息,其中也包含系统启动期间的日志。
此外,mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中
secure 系统安全日志,主要记录安全相关的信息,记录最多的是用户登录服务器的信息
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,其中/bin和/usr/bin给普通用户使用,另外两个主要给root用户
linux 定时任务
crontab -l 表示列出所有的定时任务
crontab -r 表示删除用户的定时任务,当执行此命令后,所有用户下面的定时任务会被删除,执行crontab -l后会提示用户:“no crontab for admin”
crontab -e 添加定时任务
*/1 * * * * /www/wwwroot/date.sh > /dev/null 2>&1
vim 常用快捷方式
全选(高亮显示):按esc后,然后ggvG或者ggVG
全部复制:按esc后,然后ggyG
全部删除:按esc后,然后dG
u 撤销上一步的操作
Ctrl+r 恢复上一步被撤销的操作
添加块注释
(1) 按Ctrl + v 进入行模式
(2) 选中所需要注释的行
(3) Ctrl + i 进去插入模式,添加#或者// 等注释符号
(4) 连续两次Esc
取消注释
(1) 按Ctrl + v 进入行模式
(2) 选中所需要注释的行
(3) 按d 删除