Linux常用命令笔记
用户
切换用户
su命令
su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
参数说明:
-c command, --command=command:变更为帐号为USER的使用者并执行指令后再变回原来使用者
-s shell, --shell=shell:指定要执行的shell,预设值为使用者(USER)的shell
ARG 传入新的 shell 参数
su只是切换身份,但shell环境仍然是原用户的shell。su -是连用户的shell环境一起切换
sudo命令以系统管理者的身份执行指令
sudo command
文件用户组
设置文件所有者和文件关联组
chown user[:group] file...
日期时间
设置服务器时间
date -s 20240127
date -s 10:10:10
date -s "20240127 10:10:10"
格式化显示时间(不同字符集下可能会影响输出结果)
date '+%Y-%m-%d %H:%M:%S'
FORMAT参数:
%a 缩写的星期几
%A 完整名称星期几
%b 缩写的月份
%B 完整的月份
%j 一年中的第几天 (001..366)
%u 一周中的第几天 (1..7)
%U 一年中的第几周,以周日作为一周的起始 (00..53)
%w 一周中的第几天(0..6)
%W 一年中的第几周,周一作为一周的起始(00..53)
%H 24小时制 (00..23)
%I 12小时制 (01..12)
%M 分钟 (00..59)
%S 秒 (00..60)
%r 本地的12小时制时间(上午 10时51分49秒)
%X 本地的时间格式(10时55分56秒)
%y 年份后两位数字 (00..99)
%Y 年
%m 月份 (01..12)
%d 日 (01..31)
%x 本地的日期格式(2024年01月27日)
%D 日期,等价于%m/%d/%y
%F 完整的日期;等价于 %Y-%m-%d
时间加减操作
date -d "+1 day" +%Y%m%d # 显示后一天的日期
date -d "1 day ago" +%Y%m%d # 显示前一天的日期
定时任务
查询当前用户下的定时任务
crontab -l
编辑当前用户下的定时任务
crontab -e
删除当前用户下所有的定时任务
crontab -r
以文件修改当前用户下的定时任务(将会以文件中定义覆盖原有crontab)
crontab crontab_all.conf
以空文件清空当前用户下的定时任务
crontab crontab_null.conf
crontab定义
26 10 * * * echo "123456"
#分 时 日 月 周 命令行
#0~59 0~23 1~31 1~12 0~7
辅助字符:
* 任何时刻
, 分隔时段,即第几和第几
- 时间范围,即第几到第几
/ 时间间隔,即每隔
内存、消息队列、进程
查询消息队列、共享内存段、信号量数组
ipcs -a
用法:ipcs [选项]...
-m:共享内存段
-q:消息队列
-s:信号量数组
-p:共享内存、消息队列PID之间的消息情况
-u:消息状态、共享内存状态、信号量状态
-l:消息限制、同享内存限制、信号量限制
查询系统默认的最大文件句柄数
ulimit -n
查询当前打开了多少句柄
lsof -n|wc -l
查看每个进程打开了多少句柄数
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr
系统
查询内核版本信息
cat /proc/version
查询内核详细信息
uname -a
用法:uname [选项]...
-s, --kernel-name 输出内核名称
-n, --nodename 输出网络节点上的主机名
-r, --kernel-release 输出内核发行号
-v, --kernel-version 输出内核版本
-m, --machine 输出主机的硬件架构名称
查询发行版信息
lsb_release -a
用法:lsb_release [选项]...
-v, --version 版本信息
-i, --id 发⾏版的ID
-d, --description 发⾏版的描述信息
-r, --release 发⾏版的具体版本号
-c, --codename 发⾏版代号
查询GNU发布的libc库版本
ldd --version
rpm -qa | grep glibc
文件
grep查找包含指定范本样式的文件
用法:grep [选项]...
-i:忽略大小写进行匹配
-v:反向查找,只打印不匹配的行
-n:显示匹配行的行号
-c:只打印匹配的行数
-m num:取匹配到的前num行
-r:递归查找子目录中的文件
-l:只打印匹配的文件名
-a:不要忽略二进制的数据
-w, --word-regexp:只显示全字符合的列
-x, --line-regexp:只显示全列符合的列
-s, --no-messages:不显示错误信息
-E, --extended-regexp:样式使用正则表达式
-A 行数:除了显示符合样式的那一行之外,并显示该行之后的内容
-B 行数:除了显示符合样式的那一行之外,并显示该行之前的内容
-C 行数:除了显示符合样式的那一行之外,并显示该行之前后的内容
find在指定目录下查找文件和目录
find path -option [ -print ] [ -exec -ok command ] {} \;
参数说明:
-name name, -iname name:文件名称符合 name 的文件;iname 会忽略大小写
-size n:文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组
-type type:按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等
动作:
-amin n:查找在 n 分钟内被访问过的文件
-atime n:查找在 n*24 小时内被访问过的文件
-cmin n:查找在 n 分钟内状态发生变化的文件
-ctime n:查找在 n*24 小时内状态发生变化的文件
-mmin n:查找在 n 分钟内被修改过的文件
-mtime n:查找在 n*24 小时内被修改过的文件
tar压缩
tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-C <目的目录>][-f <备份文件>][文件或目录...]
参数:
-A:新增文件到已存在的备份文件
-r, --append:新增文件到已存在的备份文件的结尾部分
-c:建立新的备份文件
-C<目的目录>:切换到指定的目录
-d, --compare:对比备份文件内和文件系统上的文件的差异
-f<备份文件>:指定备份文件
-N<日期格式>, --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里
-t:列出备份文件的内容
--delete:从备份文件中删除指定的文件
--exclude=<范本样式>:排除符合范本样式的文件
--totals:备份文件建立后,列出文件大小
--remove-files:文件加入备份文件后,就将其删除
其他
别名
查看所有别名定义
alias
定义别名
alias cds='cd /opt;ls -lrth'
查看挂载磁盘信息
cat /etc/fstab
查看DNS配置信息
cat /etc/resolv.conf
显示文件差异
diff file1 file2
diff file1 file2 -y #以并列的方式显示文件的异同之处
查看文件权限
getfacl filename
清空文件
cat /dev/null > ./test.txt