背景:CentOS 6.3
持续更新,作为我的速查小词典
超棒的文档:https://man.linuxde.net/xinshoumingling
sudo apt-get install
安装软件,因为一般需要root权限来操作,所以一般搭配sudo。
apt-get对安装、卸载升级软件提供一条龙服务。yum list | grep 软件名或者包名
“|”是一个『管道』wget 某url
从指定的url下载文件。稳定。对限定了链接时间的服务器上下载大文件非常有用。rpm -qa
列出所有安装过的软件包;rpm -q | grep 包名
包是否安装;rpm -qa | grep XXX
列出包含某字符的包;rpm -ql 包名
包安装的文件到哪里去了whereis XXX
???????这几个有点混【回去补】。ps -ef | grep xxx
ps看哪些进程正在运行、运行状态、进程是否结束等…service mysql status
显示Mysql服务当前状态;service mysql start
启动mysql;service mysql stop
停止mysql服务;service mysql restart
重启服务等。scp -r root@10.10.10.10:/opt/soft/mongodb /opt/soft/
从10.10.10.10机器拷贝monggodb到本地/opt/soft/目录来。tar -xvf *.tar
;tar -zxvf *.tar.gz
tar -zcvf anaconda3.tar.gz ./anaconda3
cp 源目录/xxx 目标目录
把xxx拷贝到目标目录下;cp 源 ./
拷到当前目录下。 cp -r 源 目标
源文件下还有很多文件或者子目录,用-r递归处理…rm -rf /usr/temp
彻底删除temp文件夹;rm -i
删之前先询问一下;rm -r
递归处理;rm -f
强制删除文件或目录。mv 原文件 目标文件目录
,将XX文件移动到当前目录:mv /../XX .
;2)给文件改名 mv 旧文件名 新文件名
。必须在英文输入法下!!!
vim /usr/test/hi.py
就ok。:set encoding=utf8
‘Shift’+’:’进入命令行模式
翻页:
搜索关键字:/关键字 可快速定位 n:可快速查找next 大写N,上一个
gg : 跳转到文件头
Shift+g: 跳转到文件末尾
行数+gg : 跳转到指定行,例跳转到123行:123gg
j:下一行
K:上一行
:n (跳转到文件第n行,需要回车)
w:按单词移动
u:撤销。一直按u一直撤
ctrl+r:取消撤销。一直按一直取消
行号:
设置:set nu
取消:set nonu
Q:添加了新用户bae,sudo一条安装命令后报错xxxis not in the sudoers file. This incident will be reported. 需要允许用户youuser执行sudo命令(需要输入密码),怎么做: 1、切换到root用户下 2、/etc/sudoers文件默认是只读的,对root来说也是,因此需先添加sudoers文件的写权限,命令是: 即执行操作:chmod u+w /etc/sudoers 3. 编辑sudoers文件 即执行:vi /etc/sudoers 找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
ps:这里说下你可以sudoers添加下面四行中任意一条
youuser ALL=(ALL) ALL
%youuser ALL=(ALL) ALL
youuser ALL=(ALL) NOPASSWD: ALL
%youuser ALL=(ALL) NOPASSWD: ALL
第一行:允许用户youuser执行sudo命令(需要输入密码).
第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码).
第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.
4、撤销sudoers文件写权限,命令: chmod u-w /etc/sudoers
我最常用的两个:
其他:
df:磁盘使用情况查看 df -ah
du:查文件或目录大小。du -sh * | sort -n
查当前目录下的大文件或目录;查看上GB的目录并且排序,可以用这个命令du -h --max-depth=1 |grep 'G' |sort
;-h以K,M,G为单位,提高可读性;-s仅显示统计;
常用:du -h –max-depth=1
**查找大文件:**find /home/bae -name *log -size +100M -print0 | xargs -0 du -h | sort -r
wc 文件名
返回:行数 字数 字节数 文件名
还可以一次查多个文件
wc 文件名1 文件名2 文件名3
cat 20210620 | grep ‘uniqid’ | wc -l grep时候注意,不要把机器拉宕机 cat 20210620 | grep ‘uniqid’ | more
mv 旧文件名 新文件名
https://www.cnblogs.com/youyoui/p/10680329.html 有好几种方式 我一般用: vim ~/.bashrc 加export … source ~/.bashrc 对当前用户生效
注意!!!用nohup的时候要用命令的绝对路径 type python获取python的绝对路径 type hadoop获取hadoop的绝对路径
后台运行:nohup /xx/xx/python **.py &
终端退出后命令仍然执行。
注意把解释器路径打全
可以用type python
获得绝对路径
启动成功了能看到返回一个编号和进程id,如,[1] 22772
还会返回: appending output to `nohup.out’
查看当前终端后台运行的任务: jobs jobs -l
能查看到pid
查看当前的所有进程:ps -ef|grep codeFilename
或者ps -ef|grep 进程Id
终止后台运行的进程:kill -9 进程id
我最常用:
linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
Mac下 比方想杀掉Outlook: 1、查出Outlook的pid: ps aux | grep Outlook ps axu | grep "Outlook" | grep -v grep | awk -F " " '{print
把远程机器上的文件夹拷贝到本机:
例如:把机器x上的/home/chen/life文件夹拷贝到当前机器的当前目录下:
scp -r 用户名@ip地址:机器x上的文件路径/文件夹 本机上的路径
scp -r root@10.138.37.187:/home/tem ./
把当前机器上的文件拷贝到远程机器:
scp 本机上的路径/文件 用户名@ip地址:机器x上的文件路径/目标文件夹/
scp -r 本机上的路径/文件夹 用户名@ip地址:机器x上的文件路径/目标文件夹/
eg:
scp -r XXX/NA.2020-09-27 root@10.138.37.137:/home/bae/
如果相互有权限,就直接cp。
如果是隔离的,就先放到系统的/tmp/
下,再从/tmp/搬运。
快速光标定位到命令头:ctrl + a
快速光标定位到命令头:ctrl + e
删除本条命令:ctrl + e
再ctrl + u
ll -a
hostname -i
a. 在rp.log文件查找sql result number,输出的是所在行的整行内容:grep "sql result number" rp.log
b. 查找出来后写到另一个文件grep "process sql result number" rp.log >a
c.想查多个:grep -e
。 比如既查sql number又查time: grep -e “sql number” -e “time” rp.log
一般我用在项目里查找代码变量什么的
在当前文件夹下查找XXX出现的所有地方grep -ri XXX ./
匹配除XXX在的行以外的所有行
head -n 10 file tail -n 10 file tail file
sh XXX.sh sh xxx.sh >>tmp 追加 sh -x XXX.sh Sh *.sh >res 2>&1 Sh *.sh >res 2>&1 & Nohuo *.sh
sh *.sh 1>>log.txt 2>&1
修改目录下文件的所属用户:sudo chown -R bae /home
-R为递归
修改目录下的文件的所属用户组:sudo chgrp -R bae /home
查找某个目录下的该文件
eg.查找.jumbo文件夹下是否有github.com文件夹find .jumbo -name github.com
查找.jumbo文件夹下是否有github相关的文件夹find .jumbo -name *github*
查找/home/test路径下是否有*.go文件find /home/test -name *.go
-iname不区分大小写
! -name非…
增删查改。
sed -n '/name/p' 1.txt#逐行读取文件,找出匹配文件中name的行,结果: 常用,获取name的值:sed -n '/name/p' noah_test | grep name | awk -F "=" '{print
sed -i 's/原字符串/新字符串/' /home/1.txt
sed -i 's/原字符串/新字符串/g' /home/1.txt
加g与不加g的区别:
#cat 1.txt
d
ddd
#ff
sed -i 's/d/7523/' /home/1.txt
执行结果
7523
7523dd
#ff
sed -i 's/d/7523/g' /home/1.txt
执行结果
7523
752375237523
#ff
其它:
见上面的sed,namePerson=(sed -n '/name/p' noah_test | grep name | awk -F "=" '{print
cat frequency.log | awk -F ':' '2>100{print
-F 以什么作为分隔列 2>100 第二列大于100 {print
搞两个面板:
面板1输入:tail -f *.log.wf *.log
观察着
面板2启动程序,看日志输出
netstat -tnlp
查看有哪些监听
/usr/sbin/lsof -i:8800
比如看8800
传开发机的文件到本地。
1、python -m SimpleHTTPServer 8030
8030为指定的端口号
2、开发机ip:port
在本地浏览器访问,即可
按行数分隔:
split -l 50000 大文件名
5W行一个小文件
split -l 50000 大文件名 filen_ -d -a 2
5W行一个小文件
eg. split -l 2000000 …/bigfile.txt file_ -d -a 2 结果如下:
这篇sort写的很好。
使用方法:sort [选项]… [文件]… sort默认是把结果输出到标准输出
-r 降序, sort默认升序
-n 要以数值来排序 sort只认字符
-t 设定间隔符
-t $'间隔符' -k 第几列
定了间隔符之后,就可以用-k来指定列数了。
-u 在输出行中去除重复行
-o 结果输出到原文件 写法不太一样:sort oldfile -o oldfile
sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort oldfile > newfile。如果你想把排序结果输出到原文件中,用-o。
1、原文内容 每行以tab间隔
黄皮书 50 0.5
龙虾 30 0.4
龙族 40 0.6
黄金 60 0.8
2、升序:cat 文件名 | sort > 新文件名
效果:
黄皮书 50 0.5
黄金 60 0.8
龙族 40 0.6
龙虾 30 0.4
3、降序:cat 文件名 | sort -r > 新文件名
效果:
龙虾 30 0.4
龙族 40 0.6
黄金 60 0.8
黄皮书 50 0.5
要是需要写到新文件的话,就>重定向到新文件
cat testcn.txt | awk -F '\t' '2<40{print 0}' >result.txt -F 指以什么做分隔符 符号前面最好加上
效果:
龙虾 30 0.4
龙族 40 0.6
sort -n -t $'\t' -k 2 testcn.txt
效果:
龙虾 30 0.4
龙族 40 0.6
黄皮书 50 0.5
黄金 60 0.8
sort -r -n -t $'\t' -k 2 testcn.txt
效果:
黄金 60 0.8
黄皮书 50 0.5
龙族 40 0.6
龙虾 30 0.4
sed -i '1d' 文件名
删第n行:
sed -i 'nd' 文件名
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/184493.html原文链接:https://javaforall.cn