作为开发者,公司职务分的不是很明确,开发有时候也得去linux上搞搞版本上线,环境搭建,部署系统之类的,所以下面是个人经历过,遇到在linux上经常用到什么命令,记录下来
进入文件夹命令
cd + 文件夹名字
列出文件夹下面的文件:
ll
或者
ls
ll和ls的区别是一个更加详细一些,可以看到权限,文件大小,文件时间之类的
效果如图:
当然还有ls 还可以加参数,常用过的也就是下面
ls -lth
统计当前文件夹文件个数
ls | wc -l
查看进程
一般用于查看某个项目是否在运行状态
ps -ef | grep + 进程名,一般是项目名#可以过滤多个文件夹名字,比如:ps -ef | grep java | grep cmis
上面查出进程,可以通过命令杀死进程,通过进程id杀进程,上面的818和864就是进程id,命令如下:
kill -9 + 进程id
根据端口结束进程
lsof -i:端口号
根据pid结束掉
[root@VM_0_8_centos ~]# lsof -i:3001COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEnode 21583 root 19u IPv6 119642 0t0 TCP *:origo-native (LISTEN)[root@VM_0_8_centos ~]# kill -9 21583[root@VM_0_8_centos ~]# lsof -i:3001[root@VM_0_8_centos ~]#
查看文件命令
查看小文件内容,可用cat命令:
cat + 文件名
查看日志文件可用veiw命令:
view + 文件名
根据端口结束进程
lsof -i:端口号
根据pid结束掉
[root@VM_0_8_centos ~]# lsof -i:3001COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEnode 21583 root 19u IPv6 119642 0t0 TCP *:origo-native (LISTEN)[root@VM_0_8_centos ~]# kill -9 21583[root@VM_0_8_centos ~]# lsof -i:3001[root@VM_0_8_centos ~]#
查看文件命令
查看小文件内容,可用cat命令:
cat + 文件名
查看日志文件可用veiw命令:
view + 文件名
在view打开文件下查询文件内容:
输入/即可查询
/ 关键字
选择下一个关键字只需要点击键盘n键,选择上一个关键字键盘大写N键:
n 下一个关键字N 上一个关键字
翻页用快捷键是:
Ctrl + f 下翻ctrl + b 上翻
如果文件太大可以改用more命令,这个命令是一页一页的显示出来的,对于查找会比较不方便,但是对于查看文件效率高一些
查找文件:find
find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索
特定用户属主的文件。
常用用法:
命令 含义
find ./ -name test.sh 查找当前目录下所有名为test.sh的文件
find ./ -name \’.sh’ 查找当前目录下所有后缀为.sh的文件
find ./ -name \”[A-Z]\” 查找当前目录下所有以大写字母开头的文件
find /tmp -size 2M 查找在/tmp 目录下等于2M的文件
find /tmp -size +2M 查找在/tmp 目录下大于2M的文件
find /tmp -size -2M 查找在/tmp 目录下小于2M的文件
find ./ -size +4k -size -5M 查找当前目录下大于4k,小于5M的文件
find ./ -perm 777 查找当前目录下权限为 777 的文件或目录
vi命令
用于在linux下编辑一些配置文件用的,操作如下:
vi + 文件名#也可以用下面的,但是部分系统没有vimvim + 文件名
命令模式:
yy:复制 光标所在的这一行
4yy:复制 光标所在行开始向下的4行
p: 粘贴dd:剪切 光标所在的这一行2dd:剪切 光标所在行 向下 2行D:从当前的光标开始剪切,一直到行末d0:从当前的光标开始剪切,一直到行首x:删除当前的光标,每次只会删除一个X:删除当前光标前面的那个,每次只会删除一个h左 j下 k上 l右H:当前屏幕的上方M:当前屏幕的中间L:当前屏幕的下方ctrl+f--->向下翻一页代码ctrl+b--->向上翻一页代码ctrl+d--->向下翻半页代码ctrl+u--->向上翻半页代码20G:快速的定位到第2行代码G:快速的回到 整个代码的最后一行gg:快速回到 整个代码的第1行w:向后跳一个单词的长度,即调到下一个单词的开始出b:向前跳一个单词的长度,即调到上一个单词的开始出u:撤销刚刚的操作ctrl+r:反撤销选中一片代码v:V:>>:向右移动代码<<:向左移动代码.:重复执行上一次的命令r:替换一个字符R:替换光标以及后面的字符shift+zz:相当于wq
末行模式:
w:保存
q:退出
q!:强行退出,不保存内容
wq:保存并且退出
x:保存退出
新增
退出vim的快捷键,不需要进入命令编辑模式
按住shift
zz 保存退出
zq 不保存退出,q表示放弃
在vim命令模式下查找文件内容
输入:号,然后在输入/+要查找的内容然后点击enter即可
压缩解压
x是解压的意思
v是让你看过程
f是指定文件
不带z或者j就是用tar格式压缩,z是gzip格式,j是bzip格式
tar命令
解包: #第一种, .tar.gz或.tar后缀名的压缩包 tar zxvf FileName.tar #第二种,根据后缀名去区分,解压.tar.xz的 tar xJf node-v12.14.0-linux-x64.tar.xz 打包:tar czvf FileName.tar DirName
zip命令
安装zip工具
yum install -y unzip zip
使用:
压缩:zip -r file_backup.zip 文件夹名字解压 :unzip xahot.zip
查看动态日志文件
一般是查看tomcat下的logs文件夹里的catalina.out文件
进入到logs文件夹下,使用以下命令:
tail -f catalina.out
如果想查看前面多少条日志,可以加上-n 和条数:
下面是查看基于当前往回找1500行日志
tail -f -n 1500 catalina.out
修改(添加)环境变量
改的是 etc目录下的profile文件,命令如下:
vim /etc/profile
例如添加java环境,jdk解压在opt目录:
注意点:等号两边不能有空格,不然会报错:bash: export: `=’: 不是有效的标识符
#jdk1.7 settingexport JAVA_HOME=/opt/jdk1.7.0_80export JRE_HOME=$JAVA_HOME/jreexport PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binexport CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
保存退出后,让/etc/profile文件修改后立即生效,需要执行以下命令:
source /etc/profile
然后检查效果,输入java -version就知道了
[root@localhost ~]# java -versionjava version \"1.7.0_80\"Java(TM) SE Runtime Environment (build 1.7.0_80-b15)Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)[root@localhost ~]#
wget命令使用
该命令是用来下载文件的,比如下载maven文件
我们可以在window上找到官方文件的下载地址,然后复制地址到linux用wget下载到linux下面:
下面是window下的网页打开看到maven文件下载地址:
linux下面使用命令下载该文件,地址加上文件名:
wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz
执行效果如下,在哪个目录下输入这个下载命令就是下载到那个目录下的:
[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz--2018-06-14 16:29:54-- http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz正在解析主机 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.8.193, 2402:f000:1:408:8100::1正在连接 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.8.193|:80... 已连接。已发出 HTTP 请求,正在等待回应... 200 OK长度:8799579 (8.4M) [application/octet-stream]正在保存至: “apache-maven-3.5.3-bin.tar.gz”100%[=============================================>] 8,799,579 1.37MB/s 用时 7.1s 2018-06-14 16:30:01 (1.17 MB/s) - 已保存 “apache-maven-3.5.3-bin.tar.gz” [8799579/8799579])
创建文件
touch 文件名
touch aa.txt
复制文件或者重命名文件
cp命令
用cp来重命名,原文件依然存在,不过这个命令是用来拷贝文件的,可以拷贝到其他地方去,文件名可以是带路径的
cp 文件名1 文件名2
mv命令
这样重命名,原文件就没了
mv test.txt wbk.txt
创建目录
mkdir -p 目录名称,可以是多级目录比如 /home/test
改变目录权限
hadoop:hadoop是用户和用户组
chown -R hadoop:hadoop 目录名
操作实例:
[root@master apache-tomcat-7.0.90]# cd ..[root@master tomcat]# chown -R hadoop:hadoop apache-tomcat-7.0.90[root@master tomcat]# ll总用量 8884drwxr-xr-x 9 hadoop hadoop 220 9月 5 17:43 apache-tomcat-7.0.90-rw-r--r-- 1 root root 9094712 7月 3 01:30 apache-tomcat-7.0.90.tar.gz[root@master tomcat]#
数字类型改变档案权限
Linux档案的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限
举例:档案的权限字符为 -rwxrwxrwx 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4 w:2 x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx—] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= — = 0+0+0 = 0
所以我们设定权限的变更时,该档案的权限数字就是770啦!变更权限的指令chmod的语法是这样的:
[root@www ~]# chmod [-R] xyz 档案或目录 选项与参数: xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。 -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有档案都会变更
实例:
[root@www ~]# ls -al .bashrc -rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc [root@www ~]# chmod 777 .bashrc [root@www ~]# ls -al .bashrc -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
删除日志
rm -f *.2017-03* 就是删除包含2017-03的文件名 rm -f zx-200.22-20090[1-7]*.log 删除09年一到七月的
其他命令删除文件
一、cd命令进入这个linux文件夹目录。
二、打:
find . -type f -name *.log -mtime +x -exec rm -fv { } \\;
命令作用:在当前目录下查找x天前的后缀为log的文件并且删除。
例:
find . -type f -name *.log -mtime +300 -exec rm -fv { } \\;
查找300天前的后缀名为log的文件并且删除。
命令详细解释:
. 在当前目录下查找,如果要全盘查找的话,可以把.换成/,这样前面的cd命令就不需要了。
-type f 查找的是普通文件,而不是文件夹
*-name .log 查找后缀为log的文件
-mtime +x 查找x天以前的文件,所以需要把这个x换成你自己需要查找的天数,比如30.你要删除20090808以前的,就需要计算一下,它距离现在多少天。
-exec rm -fv { } ; 把查找的文件强制删除
如果权限不足,请以root身份运行命令。
如果是ubuntu,前面可以加sudo即可。
找到安装后的程序在哪个文件夹
用的命令是whereis +你的程序名
[root@VM_0_8_centos ~]# whereis gitgit: /usr/bin/git /usr/local/git /usr/local/git/bin/git /usr/share/man/man1/git.1.gz[root@VM_0_8_centos ~]# whereis javajava: /usr/local/soft/jdk1.8.0_221/bin/java /usr/local/soft/jdk1.8.0_221/jre/bin/java[root@VM_0_8_centos ~]#