echo $SHELL
基础命令—了解系统概况
- 系统版本信息:cat /etc/centos-release ; uname -a
- CPU信息:cat /proc/cpuinfo ; lscpu
- 内存信息:cat /proc/meminfo ; free
- 网卡信息:ip addr ;
- 磁盘空间:df -h ; df -k
- 主机名:hostname
基础命令 — ulimit
- 用来限制进程对资源的使用情况
- umilit - a 列出当前用户的限制情况
-n size:设置内核可以同时打开的文件描述的最大值.单位:n
-f size:设置创建文件的最大值.单位:blocks
-u size:设置用户的最大进程数,单位:n - /etc/security/limits.conf
基础命令 — 软件安装卸载
- rpm (不会下载依赖的软件)
安装:rpm -ivh
卸载: rpm -e
rpm -qa - yum (自动下载依赖的软件)
安装:yum install
卸载:yum remove
查找:yum search
查看仓库:yum repolist
/etc/yum.repos.d
基础命令 — su
- 切换用户
su root
su - username
基础命令 — ps
- 一般使用 ps -ef
- 显示cpu瞬间的使用率,内存消耗 ps aux (top)
- ps -e -o "user,pid,pcpu,user,sz"
- CPU占用最多的前10个进程:ps auxw|sort -rn -k3|head -10
- 内存消耗最多的前10个进程:ps auxw|head -1;ps auxw |sort -rn -k4|head -10
- ps -eo pid,lstart,etime,cmd|more
- 树型显示:ps -axjf
基础命令 — kill
- kill 信号 进程
- kill [pid] 默认信号量 15
- kill -9 [pid]
- 另外一个常用信号:ctl + z
- bg 后台运行
基础命令 — date
- date -d "2024-06-02 00:00:00"
- date -R 带时区
- date -s "2024-06-02 00:00:00"
- date "+%Y-%m-%d %H:%M:%S"
- date "+%W" 今年第几周
- date "+%w" 今天周几
文件
文件类型
- 普通文件
- 设备文件
- 管道文件
- 网络接口文件
- ......
文件时间属性
- mtime 修改时间
- atime 访问时间
- ctime 属性或位置的修改时间
确认文件类型
- ls -l
- ls -la
- file file_name
- stat file_name
权限
- ROOT/普通用户
- USER/GROUP/OTHER
- r/w/x
r:读 w:写 x:执行
文件类型 属主权限 属组权限 其他用户权限
d rwx r-x r-x
- 权限改变
chown 修改文件和目录的所属用户或组
chown -[R] user[:grp] file
chmod 修改文件的rwx权限
chmod [ugoa]([-+=](r/w/x)) file
文件链接
- ln (创建链接):ln [-s] source target
- 硬链接 (同一个文件系统):target 和source指向同一个数据区域
- 软链接 (-s):新建一个target链接向source但并不直接指向source的数据区域
- ln可以解决,文件名被改了,程序读不到
- 一个目录满了,挪到其他地方存储,在原有的地方建一个符号链接
- ln 快速copy文件
- ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其他的文件都会发生相同的变化
- 源文件移动不会影响到硬链接,但会影响到软链接
文件相关操作 — 复制移动
- cp
- cp -R 递归
- cp -p 附带属性也cp过去
- cp -i 防止覆盖已存在的文件,相反的:-f
- scp
- scp [参数] [源路径] [目标路径]
- push:源为本地,目标为远端
- pull:源为远端,目标为本地
- mv
- rename&move
- mv -i
- -b:当文件存在时,覆盖前备份
- mv 文件夹的时候,目标文件夹存在,源文件夹会变成目标文件的子文件夹
- rm,rmdir
- rm -rf 慎用
- rm -l
文件相关操作 — 解压缩
- tar -- 打包,解包
tar cvf archive.tar foo bar # 将文件 foo和bar 打包进 archive.tar
tar xvf archive.tar # 解包
tar tvf archive.tar # list tar file
查找文件 — find
- find
- find . -name "test*"
- find . -type
- find . -type d
查看文件
- head/tail
- head -100:看头100行
- tail -100f:看后100行
- more
- 显示进度
- 空格后翻页,b键前方
- less
- 可使用上下键翻页
- cat
- 一次性显示整个文件内容
- cat -n/-b 显示行号输出
- cat -E 使用$标记行尾
比较文件
- diff # 文件内容比较
- diff x1.txt x2.txt
- diff -y x1.txt x2.txt 纵向输出
- diff -w x1.txt x2.txt 忽略空格
- diff -c x1.txt x2.txt 上下文格式
- diff -u x1.txt x2.txt 合并格式输出
排序去重 — sort/uniq
- 排序:sort
- 主要选项:
- -t 分隔符
- -k 排序字段
- -n 按数字排序
- 主要选项:
- 去重:uniq
- 主要选项
- -c 重复次数
- d 重复记录
- -u 不重复的记录
- 主要选项
sed — stream editor
- sed
- sed '行号1,行号2[命令]'
- sed -n '/output_temp/p' file
- 与grep命令功能相同,但对regexp支持的更加广泛
- sed '1,6d' file 删除前6行
- sed 's/abc/xyz/g' file 全局替换abc为xyz
- sed 's/[\t]{1,}/;/' file 替换一个或多个空格或制表符为;
- echo "2024-6-1" | sed 's/-([0-9])-{1}/-0\1-/;s/-([0-9]$){1}/-0\1/'
- 2024-6-1 替换为 2024-06-01
- sed '/^$/d;/^#/d' file 删掉空行或注释
文本文件操作 — awk
- 语法格式:awk 'BEGIN{...}{...} END {...}'
- linux awk命令 | 参数说明 | 超详细-CSDN博客
- linux中awk命令详解(最全面秒懂) - 郑琰 - 博客园 (cnblogs.com)
文本编辑工具 — vi
- Vi工作模式
- 命令模式
- 插入模式
- 底行模式
- 移动光标类命令
- h:光标左移一个字符
- l:光标右移一个字符
- k:光标上移
- j:光标下移
- $:光标移至句尾
- ^:光标移至句首
- nG:光标移至第n行首
- G:光标移至文件最后一行
- 屏幕翻滚类命令
- ctrl+u:向前翻半页
- ctrl+d:向后翻半页
- ctrl+f:向后翻一页
- ctrl+b:向前翻一页
- 插入文本类命令
- i:光标前插入
- I:在当前行首
- a:光标后
- A:在当前行尾
- o:在当前行下新开一行
- A:在当前行之上新开一行
- r:替换当前字符
- R:替换当前字符及其后的字符,直至按ESC