Linux个人常用命令
最近
使用阿里云仓库下载npm包
npm install -g cnpm --registry=https://registry.npm.taobao.org
Linux系统命令
将指定文件设置为root权限
sudo chown root.root file
文件权限分布
rwx rwx rwx 421 421 421 7 7 7 user group other
远程拷贝
发送当前目录下所有文件到目标主机的dir目录下
scp -r ./* user@hostname:dir
给用户获取指定目录的读写权限
chown -R 用户名 文件夹路径
添加用户、修改用户密码
添加用户:useradd 修改密码:passwd user
重定向
>和>>
>:输出重定向,右侧文件不存在时会创建;存在的话内容会被覆盖,时间会更新
>>:输出重定向,右侧文件不存在时会创建;存在的话内容追加,时间会更新
解压缩
解压zip:unzip 解压rar: unrar e
压缩tar.gz: tar -czf jpg.tar.gz *.jpg
邮件
root用户在收到邮件后,会提示you have mail. 输入$mail 以读取邮件 #进入邮箱后的操作 d-删除 enter-不做修改 s name保存至文件 q-退出
制作命令别名
#常用于只有基础命令的docker中的Linux镜像,在制作镜像的时候可以自己添加 vim /etc/profile alias ll='ls -al' #在最后一行添加一句
source /etc/profile
crontab相关
创建crontab
1.在用户.bash_profile中添加EDITOR=VI;EXPORT EDITOR 指定编辑器 2.创建名为<user>cron 的文件,其中user即用户名,内容写cron表达式 3.执行crontab davecron,将新建的文件提交给crontab,开始执行,同时一个新的副本已经被放在/var/spool/cron目录中,命名为用户名
文件查找命令:find
find 支持指定路径、表达式查找文件/目录,当不加参数时,默认查找当前路径下所有文件目录,这种模糊搜索较为耗资源 find -name 按名称查找 find -size 按文件大小查找 find -perm 按文件权限查找 find -iname 忽略大小写 find -mtime -n +n 按文件更改时间查找,-n表示更改时间距现在n天以内,+n表示在n天之前 find -type 按类型查找 类型有: b 块设备文件 d 目录 c 字符设备文件 p 管道文件 l 符号链接文件 f 普通文件
tips:
find寻找多个文件可以搭配xargs一起使用
find . -name "*.txt" -print0 | xargs -0 rm 删除.txt后缀的文件。
解释:find -print0会在find的每一个结果后面加一个NULL字符
xargs -0表示用null来作为分隔符,用户删除文件夹中带有空格或奇怪符号的文件,确保一定能搜索到并删掉,也不会产生一些奇怪的问题
监控命令
查看内存占用前3的进程
ps -e -o "%C : %p : %z : %a" sort -k5 -nr | head -n 3
查看CPU占用前3的进程
ps -e -o "%C : %p : %z : %a" sort -nr | head -n 3
优化命令
清理
寻找并删除该目录下4天前的文件
find /home/tmp/ -ctime +4 | xargs rm -rf
查看当前目录和文件大小
du -sh ./
文本操作
vim相关命令
搜索关键字:在命令模式下输入/xx,即可匹配xx的相关位置,并高亮显示。此时可以按n查看下一个,按N查看上一个
关闭高亮:输入:noh
sed替换文本中的关键字
指定某文件或目录下包含vim的文件,将vim替换成nano: sed -i 's/vim/nano/g'`grep'vim' -rl ./test.sh` -l:直接修改文本内容,而不是输出到终端 s:字符串替换 s/a/b/g:将所有的a替换为b
日志查看命令
ls -lS ls列表按文件大小正序排序 ls | head -n 10列出列表前10个 cat -n 行号 > test.txt 清空test.txt内容 实时显示日志:tail-20f test.log f:循环读取
管道操作
cut切分文本
-d -f :按-d给的分隔符切分文本,获取-f段的值,例如:echo $PATH | cut -d ':' -f 3-5 将path的值按照 : 进行分割后,取出第三、第四、第五个段 -c:按字符数划分获取区间字符,例如:echo $PATH | cut -c 12- 获取path第12个字符往后所有字符;echo $PATH | cut -c -12:获取前12个字符
grep搜索文本
-i:忽略大小写 -n:带行号 -v:反向选择,查找不匹配的项 --color=auto:高亮 '^a' 搜索a开头的项
wc 统计文本
wc [ -l -w -m ] :分别是统计行数、子数、字符数
整合str内容为一个shell命令
/bin/sh -c ' str '
在使用sudo 模式执行命令偶尔会出现'Permission denied'等权限问题。如:sudo echo "hahah" >> test.csv 这里的sudo 只给了echo root权限,后续的>>并没有给,因此bash认为两个命令都没有写入权限。使用/bin/sh -c 可让 bash 把后续的一个字符串作为完整的命令来执行,这样就可以将 sudo 的影响范围扩展到整条命令。
Shell相关
echo使用
echo+特殊变量
echo $$ 返回登录shell的PID echo $? 返回上一个命令的状态,0代表没有错误,其他数值代表有错误 echo $# 返回传入参数的个数 echo $@ 返回所有参数并打印出来 echo $n n代表第几个参数,从1开始
防火墙相关
操作防火墙
firewall-cmd --reload #重启firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
查看已开放的端口
firewall-cmd --list-8080
lsof -i:8080
CentOS7开启指定端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
---------------------------
以下内容未验证
另一种方法是利用管道和 tee 命令,该命令可以从标准输入中读入信息并将其写入标准输出或文件中,具体用法如下:
注意,tee 命令的 "-a" 选项的作用等同于 ">>" 命令,如果去除该选项,那么 tee 命令的作用就等同于 ">" 命令
$ echo "hahah" | sudo tee -a test.asc
注意,tee 命令的 "-a" 选项的作用等同于 ">>" 命令,如果去除该选项,那么 tee 命令的作用就等同于 ">" 命令
本文来自博客园,作者:我永远喜欢石原里美,转载请注明原文链接:https://www.cnblogs.com/yuan-zhou/p/15626850.html