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 命令,该命令可以从标准输入中读入信息并将其写入标准输出或文件中,具体用法如下:
$ echo "hahah" | sudo tee -a test.asc
注意,tee 命令的 "-a" 选项的作用等同于 ">>" 命令,如果去除该选项,那么 tee 命令的作用就等同于 ">" 命令
 
 
 
posted @ 2021-11-30 22:58  我永远喜欢石原里美  阅读(75)  评论(0编辑  收藏  举报