查看脚本文件是dos还是unix
查看脚本文件是dos格式还是unix格式,dos格式的文件行尾为^M$ ,unix格式的文件行尾为$
cat -A filename
把dos格式的文件转换为unix格式的文件
dos2unix filename
[ -d DIR ] 如果 FILE 存在且是一个目录则为真。
[ -z STRING ] 如果STRING的长度为零则为真 ,即判断是否为空,空即是真;
二、文件/文件夹(目录)判断
[ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。
[ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。
[ -d DIR ] 如果 FILE 存在且是一个目录则为真。
[ -e FILE ] 如果 FILE 存在则为真。
[ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。
[ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真。
[ -k FILE ] 如果 FILE 存在且已经设置了粘制位则为真。
[ -p FILE ] 如果 FILE 存在且是一个名字管道(F如果O)则为真。
[ -r FILE ] 如果 FILE 存在且是可读的则为真。
[ -s FILE ] 如果 FILE 存在且大小不为0则为真。
[ -t FD ] 如果文件描述符 FD 打开且指向一个终端则为真。
[ -u FILE ] 如果 FILE 存在且设置了SUID (set user ID)则为真。
[ -w FILE ] 如果 FILE存在且是可写的则为真。
[ -x FILE ] 如果 FILE 存在且是可执行的则为真。
[ -O FILE ] 如果 FILE 存在且属有效用户ID则为真。
[ -G FILE ] 如果 FILE 存在且属有效用户组则为真。
[ -L FILE ] 如果 FILE 存在且是一个符号连接则为真。
[ -N FILE ] 如果 FILE 存在 and has been mod如果ied since it was last read则为真。
[ -S FILE ] 如果 FILE 存在且是一个套接字则为真。
[ FILE1 -nt FILE2 ] 如果 FILE1 has been changed more recently than FILE2, or 如果 FILE1 exists and FILE2 does not则为真。
[ FILE1 -ot FILE2 ] 如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真。
[ FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的设备和节点号则为真。
三、字符串判断
[ -z STRING ] 如果STRING的长度为零则为真 ,即判断是否为空,空即是真;
[ -n STRING ] 如果STRING的长度非零则为真 ,即判断是否为非空,非空即是真;
[ STRING1 = STRING2 ] 如果两个字符串相同则为真 ;
[ STRING1 != STRING2 ] 如果字符串不相同则为真 ;
[ STRING1 ] 如果字符串不为空则为真,与-n类似
开启摄像头
cheese
显示系统进程
显示系统进程 top
杀死这个进程号的进程 sudo kill pid
获取最高用户权限
sudo -i
挂载和弹出U盘
查看挂载情况
df -h
挂载
查看系统磁盘设备信息,并找到待U盘的目录(Linux系统中所有设备均被视为文件)
fdisk -l
#/dev/sdb1
将U盘挂载到系统某个位置
mount /dev/sdb1 /mnt
现在U盘所有文件被挂载到了/mnt目录中,进入U盘目录查看内容
cd /mnt
弹出
df 查看一下有没有usb设备在挂载使用
umount /dev/sdb1
export 添加环境变量
last 显示最近使用者的登录列表
set 观察bash下的所有环境变量
id vvv 查询是不是有这个用户
alias 设置永久的alias别名
更改./.bashrc配置
vim ./.bashrc
source ./.bashrc
批量改权限
sudo chmod +x ~/bin/*
bash快捷键
按键 | 功能 |
---|---|
ALT+B | 光标移动到所在单词词首 |
— | — |
CTRL+C | 停止当前运行的命令 |
CTRL+L | 清空屏幕并重新显示当前行 |
CTRL+U | 删除光标前的所有字符 |
CTRL+K | 删除光标后的所有字符 |
CTRL+A | 快速移动到行首 |
CTRL+E | 移动到行末 |
CTRL+T | 交换最后两个字符 |
重启命令:
- reboot
- shutdown -r now 立刻重启(root用户使用)
- shutdown -r 10 过10分钟自动重启(root用户使用)
- shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启
关机命令:
- halt 立刻关机
- poweroff 立刻关机
- shutdown -h now 立刻关机(root用户使用)
- shutdown -h 10 10分钟后自动关机
关机前准备
who 查看谁在线
netstat -a 网络的联机状态
dmesg 查看内核信息
通过cpu-checker实用程序
sudo apt-get install cpu-checker
sudo kvm-ok
查看系统位数
file /bin/ls
vmstat 命令功能说明: 命令报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息
du(disk usage) 命令功能说明:统计目录(或文件)所占磁盘空间的大小
qemu-kvm - 为 KVM 管理程序提供硬件模拟的软件程序
libvirt-daemon-system - 将 libvirt 守护程序作为系统服务运行的配置文件
libvirt-clients - 用来管理虚拟化平台的软件
bridge-utils - 用来配置网络桥接的命令行工具
virtinst - 用来创建虚拟机的命令行工具
virt-manager - 提供一个易用的图形界面,并且通过libvirt 支持用于管理虚拟机的命令行工具
查看电量
sudo apt-get install acpi
使用acpi命令行工具
查看电池是否在充电,剩余电量百分比,具体剩余时间,使用命令acpi
[matrix@localhost ~]$ acpi
Battery 0: Discharging, 33%, 00:44:53 remaining
如果你要看更多的信息,如电池总容量、温度等信息,使用acpi -V命令
使用IBAM检测电池用量
IBAM自称为“智能的电池监测器”
upower –dump | grep –color=never -E “state|to\ full|to\ empty|percentage”
systemctl isolate multi-user.target
systemctl isolate graphical.target
目录 | 用途 |
---|---|
/ | 虚拟目录的根目录,万物起源。通常不会在这里存储文件 |
/bin | 二进制目录,存放许多用户级的GNU工具 |
/boot | 启动目录,包含Linux内核,存放启动文件 |
/boot/grub/grub.conf or menu.lst | 被用来配置启动加载程序 |
/boot/vmlinuz | Linux 内核 |
/dev | 设备目录,Linux在这里创建设备节点 |
/etc | 系统配置文件目录,也包含一系列的shell脚本 |
/etc/crontab | 定义自动运行的任务 |
/etc/fstab | 包含存储设备的列表,以及与他们相关的挂载点 |
/etc/passwd | 包含用户帐号列表 |
/home | 主目录,Linux在这 里创建用户目录 |
/lib | 库目录,存放系统和应用程序的库文件 |
/media | 媒体目录,可移动媒体设备的常用挂载点 |
/mnt | 挂载目录,另一个可移动媒体设备的常用挂载点 |
/opt | 可选目录,常用于存放第三方软件包和数据文件 |
/proc | 进程目录,存放现有硬件及当前进程的相关信息 |
/root | root用户的主目录 |
/sbin | 系统二进制目录,存放许多GNU管理员级工具 |
/run | 运行目录,存放系统运作时的运行时数据 |
/srv | 服务目录,存放本地服务的相关文件 |
/sys | 系统目录,存放系统硬件信息的相关文件 |
/tmp | 临时目录,可以在该目录中创建和删除临时工作文件 |
/usr | 用户二进制目录,大量用户级的GNU工具和数据文件都存储在这里,它可能是Linux系统中最大的一个 |
/usr/bin | 包含系统安装的可执行程序,通常会包含许多程序 |
/usr/lib | 包含由/usr/bin目录中的程序所用的共享库 |
/usr/local | 非系统发行版自带却打算让系统使用的程序的安装目录 |
/usr/sbin | 包含许多系统管理程序 |
/usr/share | 包含许多由/usr/bin目录中的程序使用的共享数据,其中包括像默认的配置文件、图标、桌面背景、音频文件等等 |
/usr/share/doc | 大多数安装在系统中的软件包会包含一些文档 |
/var | 可变目录,用以存放经常变化的文件,比如日志文件 |
常用的库
GCC multilib主要是用于支持交叉编译(cross compiling),即编译出来的程序是用来在其他处理器平台上运行的。例如可以在x86 64位处理器上编译出x86 32位程序,运行在32位处理器上,或者在x86平台上编译出可以在ARM处理器上运行的程序
build-essential
Ubuntu缺省情况下,并没有提供C/C++的编译环境,因此还需要手动安装。但是如果单独安装gcc以及g++比较麻烦,幸运的是,Ubuntu提供了一个build-essential软件包。查看该软件包的依赖关系:
libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中,也就是说,你可以通过如下所示的标准方法,在不同平台上创建并调用动态库,我们 可以认为libtool是gcc的一个抽象,也就是说,它包装了gcc或者其他的任何编译器,用户无需知道细节,只要告诉libtool说我需要要编译哪 些库即可,并且,它只与libtool文件打交道,例如lo、la为后缀的文件。
第二种方法:使用mount命令
mount -l
第三种方法:查看文件/etc/mtab。
cat /etc/mtab
第四种方法:使用lsblk命令查看
lsblk -P
查看端口号
netstat -tunpl | grep 端口号
chrony
Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,因此让你的计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算机提供时间同步服务。
modprobe
modprobe命令用于智能地向内核中加载模块或者从内核中移除模块。
modprobe -V
kmod version 27
+XZ -ZLIB +LIBCRYPTO -EXPERIMENTAL
加载模型
modprobe sysrq
都从这个路径下加载
/lib/modules/
error:
modprobe: FATAL: Module sysrq not found in directory /lib/modules/5.10.16.3-microsoft-standard-WSL2
lsmod
查看已加载的内核模块信息
sudo insmod hello.ko //插入模块
sudo rmmode hello // 卸载模块
modinfo hello.ko // 查看模块信息
lsmod //查看系统模块
dmesg // 查看系统日志信息
systemctl
-p 从指定文件夹加载
sysctl -p /etc/sysctl.d/my-default.conf
which systmd
查看状态
sysctl docker status
wget https://github.com/microsoft/WSL2-Linux-Kernel/archive/refs/tags/linux-msft-5.4.72.tar.gz
modprobe br_netfilter
linux透明防火墙–br_netfilter
更新内核
查看内核是否存在
apt-cache search linux | grep “linux-buildinfo-5.4.0-122-generic”
寻找内核是否存在
apt search ‘linux-image-5.4.0-122-generic’
apt install ‘linux-image-5.4.0-122-generic’
sudo update-initramfs -u -k all
sudo update-grub
sudo update-initramfs -u -k all
lsof
swapoff
Linux swapoff命令用于关闭系统交换区(swap area)。
-a 将/etc/fstab文件中所有设置为swap的设备关闭
-h 帮助信息
-V 版本信息
sudo -i 切换用户身份到root.
mount
mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件。
-t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
mount -t glusterfs
\cp
不会询问是否覆盖
\cp /app/WEB-INF/com/cfg.properties /app_bak/WEB-INF/com/cfg.properties
crontab 是用来定期执行程序的命令
crontab 命令
crontab 命令需要 crond 服务支持
crond 是 Linux 下用来周期地执行某种任务或等待处理某些事件的一个守护进程,和 Windows 中的计划任务有些类似。
当安装完成操作系统之后,默认便会启动此任务调度命令。
crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。
而 linux 任务调度的工作主要分为以下两类:
1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2、个人执行的工作:某个用户定期要做的工作,例如每隔 10 分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置
apt-get install cron 安装
crontab -l 列出目前的时程表,检查是否安装成功
cat /etc/crontab 输出使用说明
service crond status查看服务状态
ubuntu上的crond名称为cron没有d
星号(*):代表所有可能的值,如month字段为星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。
查看ubuntu下都开启了哪些服务
service –status-all
systemctl
pstree
列出当前目录的隐藏权限
lsattr
date +%Y%m%d_%H%M%S
轮循任务
readlink
readlink是Linux系统中一个常用工具,主要用来找出符号链接所指向的位置。
echo “shell脚本本身的名字: $0”
echo “传给shell的第一个参数: $1”
echo “传给shell的第二个参数: $2”
一、dirname命令
dirname命令去除文件名中的非目录部分,仅显示与目录有关的内容。dirname命令读取指定路径名保留最后一个/及其后面的字符,删除其他部分,并写结果到标准输出。如果最后一个/后无字符,dirname 命令使用倒数第二个/,并忽略其后的所有字符。dirname 和 basename 通常在 shell 内部命令替换使用,以指定一个与指定输入文件名略有差异的输出文件名。
sed
选项
-e是编辑命令,用于sed执行多个编辑任务的情况下。在下一行开始编辑前,所有的编辑动作将应用到模式缓冲区中的行上。
sed -e ‘1,10d’ -e ‘s/My/Your/g’ datafile
#选项-e用于进行多重编辑。第一重编辑删除第1-3行。第二重编辑将出现的所有My替换为Your。因为是逐行进行这两项编辑(即这两个命令都在模式空间的当前行上执行),所以编辑命令的顺序会影响结果。
ls -t $DIR/*_timedata.db | sed -e ‘1,10d’ | xargs rm
按时间排序,1-10行删除掉
wget
参考文献
[查看linux用户密码]https://blog.csdn.net/feikillyou/article/details/109129870
[chrony]https://www.cnblogs.com/my-show-time/p/14658895.html
[linux kernel文档]https://www.kernel.org/doc/html/v5.4/admin-guide/sysctl/kernel.html
[lsof]https://www.cnblogs.com/bangerlee/archive/2012/05/03/2464495.html
[strace]https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html
[Linux crontab命令详解-博客]https://www.cnblogs.com/ftl1012/p/crontab.html
[Linux Crontab定时任务-菜鸟教程]https://www.runoob.com/w3cnote/linux-crontab-tasks.html
[systemd]https://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
[linux下计划任务学习记录 ]https://blog.51cto.com/u_15060465/4164796
[xargs]https://ruanyifeng.com/blog/2019/08/xargs-tutorial.html
[用history查看历史命令]https://blog.csdn.net/qq_34243930/article/details/107007654
[让 history 命令显示日期和时间]https://zhuanlan.zhihu.com/p/99818664
[环境变量HISTCONTROL命令及对快捷键Ctrl+o命令的影响]https://blog.csdn.net/weixin_30723433/article/details/96641179