您的位置 首页 > 数码极客

[linux返回上一级目录]linux创建目录的命令…

Base

$和#区别:$普通用户即可执行,#为root用户才可执行,或普通用户使用sudo。

JDK环境变量配置

# 方式一:非root用户安装JDK # 编辑用户根目录下的.bash_proFile文件 vi .bash_profile # 向.bash_profile文件中导入配置 export JAVA_HOME=/home/xxx export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib # 立刻生效 source .bash_profile# 方式二:yum安装JDK配置环境变量 # 查看CentOS自带JDK是否已安装 yum list installed |grep java # 批量卸载JDK rpm -qa | grep java | xargs rpm -e --nodeps # 直接yum安装1.8.0版本openjdk yum install java-1.8.0-openjdk* -y # 默认jre jdk安装路径是/usr/lib/jvm下面 vim /etc/profile # 添加以下配置 export JAVA_HOME=/usr/lib/jvm/java export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PATH:$JAVA_HOME/bin # 使得配置生效 . /etc/profile# 方式三:root用户下是配置JDK vim /etc/profile # 添加以下配置 export JAVA_HOME=/home/xxx export PATH=.:$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib # source环境变量 source /etc/profile

基本常用命令

# 查看机器cpu核数: # 1.CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数 # 2.总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数 # 查看CPU信息(型号) cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c # 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l # 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu cores"| uniq # 查看逻辑CPU的个数 cat /proc/cpuinfo| grep "processor"| wc -l # 重启 reboot # 关机 poweroff # 添加用户 useradd # 设置密码 passwd # 查看nginx的位置 whereis nginx # Tab补全 # 1.未输入状态下连按两次Tab列出所有可用命令 # 2.已输入部分命令名或文件名,按Tab进行自动补全 # 根据端口查看占用情况 netstat -tln | grep 8080 # 根据端口查看进程 lsof -i :8080 # 查看java关键词的进程 ps aux|grep java # 查看所有进程 ps aux # 查看java关键词的进程 ps -ef | grep java

常用复合命令

# 查找和tomcat相关的所有进程并杀死 ps -ef | grep tomcat | grep -v grep | awk '{print $2}' | xargs kill -9 # 从100行开始显示,支持滚动 less +100 /home/te # 从100行开始显示,不支持滚动 more +100 /home/te # 查看文件头10行 head -n 10 exam # 每隔3s出12234进程的gc情况,每个20录就打印隐藏列标题 jstat -gc -t -h20 <pid> 3s # Java线程Dump快照导出(建议使用tdump或log格式) jstack -l <pid> > # Java内存Dump快照导出(建议使用hprof格式),format=b表示二进制文件(一般较大) jmap -dump:[live,]format=b,file= <pid> # JMC分析 jcmd <pid> VM.unlock_commercial_features jcmd <pid> JFR.start name=test duration=60s filename=ou

cd/ls

cd /home # 进入 '/ home' 目录 cd .. # 返回上一级目录 cd ../.. # 返回上两级目录 cd # 进入个人的主目录 cd ~user1 # 进入个人的主目录 cd - # 返回上次所在的目录 ls # 查看目录中的文件 ls -l # 显示文件和目录的详细资料 ls -a # 列出全部文件,包含隐藏文件 ls -R # 连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来 ls [0-9] # 显示包含数字的文件名和目录名

chmod/chown/chgrp

# 显示权限 ls -lh # 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r,4 )、写(w,2)和执行(x,1)的权限 chmod ugo+rwx directory1 # 删除群组(g)与其他人(o)对目录的读写执行权限 chmod go-rwx directory1 # chown改变文件的所有者 # 改变一个文件的所有人属性 chown user1 file1 # 改变一个目录的所有人属性并同时改变改目录下所有文件的属性 chown -R user1 directory1 # 改变一个文件的所有人和群组属性 chown user1:group1 file1 # chgrp改变文件所属用户组 # 改变文件的群组 chgrp group1 file1 # 常用命令 # 修改文件为最高权限777 chmod 777 # 修改文件所属的用户和组, – R表示递归处理 chown - R username:group # 改变/opt/local和/book/及其子目录下的所有文件的属组为xxx, – R表示递归处理 chgrp - R xxx /opt/local /book

vi/vim

:set nu # 设置显示行号 :set nonu # 取消显示行号 ctr+f # 向前翻页 ctr+b # 向后翻页 u # 恢复修改操作 yy # 复制本行 nyy # 本行往下n行进行复制 p # 粘贴在光标以下的行 P # 粘贴在光标以上的行 x # 向后删除一个字符 X # 向前删除一个字符 nx # 向后删除n个字符 :w # 保存 :q # 退出 :q! # 强制退出不保存 :w! # 强制保存 :wq # 保存并退出 :w otherfilename # 另存为 # 在文件中移动 nG # 光标移动到n行 gg # 光标移动到文件第1行 G # 光标移动到文件最后1行 75% # 光标移动到百分之75的位置 $ # 移动到行末 0 # 移动到行首 dd # 删除当前行 dG # 删除当前后面的全部内容 # 移动到指定字符 fx # 把光标移动到右边的第一个’x’字符上 Fx # 把光标移动到左边的第一个’x’字符上 3fx # 把光标移动到光标右边的第3个’x’字符上 tx # 把光标移动到右边的第一个’x’字符之前 Tx # 把光标移动到左边的第一个’x’字之后 n空格 # 光标移动到本行第n个字符 $ # 光标移动到本行最后一个字符 # H/M/L(大写):可以让光标跳到当前窗口的顶部、中间、和底部,停留在第一个非空字符上 3H # 表示光标移动到距窗口顶部第3行的位置 5L # 表示光标移动到距窗口底部5行的位置 # 相对于光标滚屏 zt # 把光标所在行移动窗口的顶端 zz # 把光标所在行移动窗口的中间 zb # 把光标所在行移动窗口的底部 # 查找 /word # 向光标之后搜索字符串 ?word # 向光标之前搜索字符串 n # 重复上一次的查找命令向后查找 N # 重复上一次的查找命令向前查找 :n1,n2s/word1/word2/gc # 逐个替换 :1,$s/word1/word2/g # 从第一行到最后一行进行替换应该是 :n1,n2s/word1/word2/g # 从第n1行到第n2行搜索word1字符串,并替换为word2

scp

# 拷贝本机/home/xxx/test整个目录至远程主机192.168.1.100的/test目录下 scp -r /home/xxx/test/ root@192.168.1.100:/test/ # 拷贝单个文件至远程主机 scp /home/xxx/ root@192.168.1.100:/test/ # 远程文件/文件夹下载举例 # 把192.168.62.10上面的/test/文件夹,下载到本地的/home/xxx/下 scp -r root@192.168.62.10:/test/ /home/xxx/

tar

# 格式:tar [-cxtzjvfpPN] 文件与目录 .... # 参数说明: # -c :压缩 # -x :解压 # -t :查看内容 # 注意:c/x/t只能同时存在一个 # # -r:向压缩归档文件末尾追加文件 # -u:更新原压缩包中的文件 # -v:显示操作过程 # -f:指定备份文件,其后不能再跟参数 # 压缩文件 tar -czf /test1 /test2 # 列出压缩文件列表 tar -tzf # 解压文件 tar -xvzf # 仅打包,不压缩 tar -cvf log.tar log01.log # 打包后,以gzip压缩 tar -zcvf log. log01.log # 打包后,以bzip2压缩 tar -jcvf log. log01.log # 总结 # *.tar:用tar –xvf解压 # *.gz:用gzip -d或者gunzip解压 # *.和*.tgz:用tar –xzf解压 # *.bz2:用bzip2 -d或者用bunzip2解压 # *.:用tar –xjf解压 # *.Z:用uncompress解压 # *.:用tar –xZf解压 # *.rar:用unrar解压 # *.zip:用unzip解压

su

# 切换到其它身份用户,默认是root,如下相同 su - # 切换到root用户,并至root目录,不带-只切换用户 su - root # 变更帐号为root并在执行ls指令后退出变回原使用者 su -c ls root

df

# 易读的显示目前磁盘空间和使用情况,-h(1024计算)/-H(1000计算) df -h

Install

rpm

rpm -ivh # 安装一个rpm包 rpm -ivh --nodeeps # 安装一个rpm包而忽略依赖关系警告 rpm -U # 更新一个rpm包但不改变其配置文件 rpm -F # 更新一个确定已经安装的rpm包 rpm -e # 删除一个rpm包 rpm -qa # 显示系统中所有已经安装的rpm包 rpm -qa | grep httpd # 显示所有名称中包含 "httpd" 字样的rpm包 rpm -qi package_name # 获取一个已安装包的特殊信息 rpm -qg "System Environment/Daemons" # 显示一个组件的rpm包 rpm -ql package_name # 显示一个已经安装的rpm包提供的文件列表 rpm -qc package_name # 显示一个已经安装的rpm包提供的配置文件列表 rpm -q package_name --whatrequires # 显示与一个rpm包存在依赖关系的列表 rpm -q package_name --whatprovides # 显示一个rpm包所占的体积 rpm -q package_name --scripts # 显示在安装/删除期间所执行的脚本l rpm -q package_name --changelog # 显示一个rpm包的修改历史 rpm -qf /etc/httpd/con # 确认所给的文件由哪个rpm包所提供 rpm -qp -l # 显示由一个尚未安装的rpm包提供的文件列表 rpm --import /media/cdrom/RPM-GPG-KEY # 导入公钥数字证书 rpm --checksig # 确认一个rpm包的完整性 rpm -qa gpg-pubkey # 确认已安装的所有rpm包的完整性 rpm -V package_name # 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间 rpm -Va # 检查系统中所有已安装的rpm包- 小心使用 rpm -Vp # 确认一个rpm包还未安装 rpm2cpio | cpio --extract --make-directories *bin* # 从一个rpm包运行可执行文件 rpm -ivh /usr/src/redhat/RPMS/`arch`/ # 从一个rpm源码安装一个构建好的包 rpmbuild --rebuild # 从一个rpm源码构建一个 rpm 包

yum

# 下载并安装一个rpm包 yum install package_name # 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系 yum localinstall # 更新当前系统中所有安装的rpm包 yum update # 更新一个rpm包 yum update package_name # 删除一个rpm包 yum remove package_name # 列出当前系统中安装的所有包 yum list # 在rpm仓库中搜寻软件包 yum search package_name # 删除所有缓存的包和头文件 yum clean all

Filter

tail

# tail语法格式: # tail [-f] [-c Number|-n Number|-m Number|-b Number|-k Number] [File] # 倒数300行并进入实时监听文件写入模式 tail -300f exam # 查看文件尾10行 tail -n 10 exam # 实时查看日志文件 tail -f exam

grep

# 文件查找 grep forest # 多文件查找 grep forest exam # 目录下查号所有符合关键词的文件 grep 'log' /home/test -r -n # 在文件 '/var/log/messages'中查找以"Aug"开始的词汇 grep ^Aug /var/log/messages # 查找指定文件中的关键词并打印至控制台 cat f.txt | grep -i shopbase # 查找指定文件中的关键词并统计其出现次数 cat f.txt | grep -c 'shopbase' # 指定文件后缀 grep 'shopbase' /home/test -r -n --include *.{vm,java} # 反匹配 grep 'shopbase' /home/test -r -n --exclude *.{vm,java} # 上匹配 seq 10 | grep 5 -A 3 # 下匹配 seq 10 | grep 5 -B 3 # 上下匹配,平时用这个就妥了 seq 10 | grep 5 -C 3 # 查找当前目录中的所有jar文件 ls -l | grep '.jar' # 查找所以有的包含spring的xml文件 grep -H 'spring' *.xml # 显示所有以d开头的文件中包含test的行 grep 'test' d* # 显示在aa,bb,cc文件中匹配test的行 grep 'test' aa bb cc # 显示所有包含每个字符串至少有5个连续小写字符的字符串的行 grep '[a-z]\{5\}' aa # 找出文件中包含123或者包含abc的行 grep -E '123|abc' # 找出文件中包含123,且包含abc的行 grep '123' | grep 'abc' # 显示foo及后5行 grep -A 5 Exception a # 显示foo及前5行 grep -B 5 Exception a # 显示a文件里匹配Exception字串那行以及上下5行 grep -C 5 Exception a

查看文件内容

cat file1 # 从第一个字节开始正向查看文件的内容 tac file1 # 从最后一行开始反向查看一个文件的内容 more file1 # 查看一个长文件的内容 less file1 # 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作 head -2 file1 # 查看一个文件的前两行 tail -2 file1 # 查看一个文件的最后两行 tail -f /var/log/messages # 实时查看被添加到一个文件中的内容

文本处理

cat file1 file2 ... | command <> general syntax for text manipulation using PIPE, STDIN and STDOUT cat file1 | command( sed, grep, awk, grep, etc...) > re # 合并一个文件的详细说明文本,并将简介写入一个新文件中 cat file1 | command( sed, grep, awk, grep, etc...) >> re # 合并一个文件的详细说明文本,并将简介写入一个已有的文件中 grep Aug /var/log/messages # 在文件 '/var/log/messages'中查找关键词"Aug" grep ^Aug /var/log/messages # 在文件 '/var/log/messages'中查找以"Aug"开始的词汇 grep [0-9] /var/log/messages # 选择 '/var/log/messages' 文件中所有包含数字的行 grep Aug -R /var/log/* # 在目录 '/var/log' 及随后的目录中搜索字符串"Aug" sed 's/stringa1/stringa2/g' exam # 将exam文件中的 "string1" 替换成 "string2" sed '/^$/d' exam # 从exam文件中删除所有空白行 sed '/ *#/d; /^$/d' exam # 从exam文件中删除所有注释和空白行 echo 'esempio' | tr '[:lower:]' '[:upper:]' # 合并上下单元格内容 sed -e '1d' re # 从文件exam 中排除第一行 sed -n '/stringa1/p' # 查看只包含词汇 "string1"的行 sed -e 's/ *$//' exam # 删除每一行最后的空白字符 sed -e 's/stringa1//g' exam # 从文档中只删除词汇 "string1" 并保留剩余全部 sed -n '1,5p;5q' exam # 查看从第一行到第5行内容 sed -n '5p;5q' exam # 查看第5行 sed -e 's/00*/0/g' exam # 用单个零替换多个零 cat -n file1 # 标示文件的行数 cat exam | awk 'NR%2==1' # 删除exam文件中的所有偶数行 echo a b c | awk '{print $1}' # 查看一行第一栏 echo a b c | awk '{print $1,$3}' # 查看一行的第一和第三栏 paste file1 file2 # 合并两个文件或两栏的内容 paste -d '+' file1 file2 # 合并两个文件或两栏的内容,中间用"+"区分 sort file1 file2 # 排序两个文件的内容 sort file1 file2 | uniq # 取出两个文件的并集(重复的行只保留一份) sort file1 file2 | uniq -u # 删除交集,留下其他的行 sort file1 file2 | uniq -d # 取出两个文件的交集(只留下同时存在于两个文件中的文件) comm -1 file1 file2 # 比较两个文件的内容只删除 'file1' 所包含的内容 comm -2 file1 file2 # 比较两个文件的内容只删除 'file2' 所包含的内容 comm -3 file1 file2 # 比较两个文件的内容只删除两个文件共有的部分

awk

# 1.原理 # 逐行处理文件中的数据 # 2.语法 awk 'pattern + {action}' # 说明: # 单引号''是为了和shell命令区分开 # 大括号{}表示一个命令分组 # pattern是一个过滤器,表示命中pattern的行才进行action处理 # action是处理动作 # 使用#作为注释 # 3.内置变量 FS # 分隔符,默认是空格 NR # 当前行数,从1开始 NF # 当前记录字段个数 $0 # 当前记录 $1~$n # 当前记录第n个字段 # 4.内置函数 gsub(r,s) # 在$0中用s代替r index(s,t) # 返回s中t的第一个位置 length(s) # s的长度 match(s,r) # s是否匹配r split(s,a,fs) # 在fs上将s分成序列a substr(s,p) # 返回s从p开始的子串 # 5.案例 # 显示中的第3行至第5行的命令为 cat | awk 'NR==3, NR==5{print;}' # 显示中,正则匹配hello的行的命令为 cat | awk '/hello/' # 显示中,长度大于100的行号的命令为 cat | awk 'length($0)>80{print NR}' # 显示中的第3行至第5行的第一列与最后一列 cat | awk 'NR==3, NR==5{print $1,$NF}' # 基础命令 # 在控制台循环打印打印第4列和第6列数据 awk '{print $4,$6}' f.txt awk '{print NR,$0}' f.txt c awk '{print FNR,$0}' f.txt c awk '{print FNR,FILENAME,$0}' f.txt c awk '{print FILENAME,"NR="NR,"FNR="FNR,"$"NF"="$NR}' f.txt c echo 1:2:3:4 | awk -F: '{print $1,$2,$3}' # 匹配 # 匹配ldb awk '/ldb/ {print}' f.txt # 不匹配ldb awk '!/ldb/ {print}' f.txt # 匹配ldb和LISTEN awk '/ldb/ && /LISTEN/ {print}' f.txt # 第五列匹配ldb awk '$5 ~ /ldb/ {print}' f.txt # 内建变量 # NR:NR表示从awk开始执行后,按照记录分隔符读取的数据次数,默认的记录分隔符为换行符,因此默认的就是读取的数据行数,NR可以理解为Number of Record的缩写 # FNR:在awk处理多个输入文件的时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件的时候,FNR就从1开始计数,FNR可以理解为File Number of Record # NF: NF表示目前的记录被分割的字段的数目,NF可以理解为Number of Field

find

# 根据名称查找/目录下的文件 find / -name # 递归查找所有的xml文件 find . -name "*.xml" # 递归查找所有文件内容中包含hello world的xml文件 find . -name "*.xml" |xargs grep "hello world" # 删除文件大小为零的文件 find ./ -size 0 | xargs rm -f & # 多个目录查找 find /home/admin /tmp /usr -name \*.log # 大小写都匹配 find . -iname \*.txt # 当前目录下的所有子目录 find . -type d # 当前目录下所有的符号链接 find /usr -type l # 符号链接的详细信息 eg:inode,目录 find /usr -type l -name "z*" -ls # 超过250000k的文件,当然+改成-就是小于了 find /home/admin -size +250000k # 按照权限查询文件 find /home/admin -f -perm 777 -exec ls -l {} \; # 1天内访问过的文件 find /home/admin -atime -1 # 1天内状态改变过的文件 find /home/admin -ctime -1 # 1天内修改过的文件 find /home/admin -mtime -1 # 1分钟内访问过的文件 find /home/admin -amin -1 # 1分钟内状态改变过的文件 find /home/admin -cmin -1 # 1分钟内修改过的文件 find /home/admin -mmin -1 # 删除大于50M的文件 find /var/mail/ -size +50M -exec rm {} \

netstat

# 查看当前连接,注意CLOSE_WAIT偏高的情况 netstat -nat|awk '{print $6}'|sort|uniq -c|sort -rn # 显示所有tcp连接,并包括pid和程序名 netstat -atnp # 统计所有tcp状态的数量并排序 netstat -atn | awk '{print $6}' | sort | uniq -c | sort -rn # 每隔1s显示网络信息(-c参数) netstat -ctn | grep "ESTABLISHED" # 列出所有处于连接状态的ip并按数量排序 netstat -an | grep ESTABLISHED | awk '/^tcp/ {print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr

echo

# 创建文件,并向该文件写入“内容” echo "内容" > # 输出环境变量$JAVA_HOME的值 echo $JAVA_HOME

telnet

# 查看端口是否通畅:telnet IP 端口号 telnet 11.100.121.70 5516

whereis

Linux whereis命令用于查找文件。

whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...] # 参数: # -b:只查找二进制文件 # -B<目录>:只在设置的目录下查找二进制文件 # -f:不显示文件名前的路径名称 # -m:只查找说明文件 # -M<目录>:只在设置的目录下查找说明文件 # -s:只查找原始代码文件 # -S<目录>:只在设置的目录下查找原始代码文件 # -u:查找不包含指定类型的文件

gzip/rar/tar

bunzip2 # 解压一个叫做 ''的文件 bzip2 file1 # 压缩一个叫做 'file1' 的文件 gunzip # 解压一个叫做 ''的文件 gzip file1 # 压缩一个叫做 'file1'的文件 gzip -9 file1 # 最大程度压缩 rar a test_file # 创建一个叫做 '' 的包 rar a file1 file2 dir1 # 同时压缩 'file1', 'file2' 以及目录 'dir1' rar x # 解压rar包 unrar x # 解压rar包 tar -cvf arc file1 # 创建一个非压缩的 tarball tar -cvf arc file1 file2 dir1 # 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件 tar -tf arc # 显示一个包中的内容 tar -xvf arc # 释放一个包 tar -xvf arc -C /tmp # 将压缩包释放到 /tmp目录下 tar -cvfj archive. dir1 # 创建一个bzip2格式的压缩包 tar -xvfj archive. # 解压一个bzip2格式的压缩包 tar -cvfz archive. dir1 # 创建一个gzip格式的压缩包 tar -xvfz archive. # 解压一个gzip格式的压缩包 zip file1 # 创建一个zip格式的压缩包 zip -r file1 file2 dir1 # 将几个文件和目录同时压缩成一个zip格式的压缩包 unzip # 解压一个zip格式压缩包

Statistics

# 查看某个进程的PID ps -ef | grep ar # 查看java关键词的进程的数量 ps -ef | grep java| wc -l # 查看线程是否存在死锁 jstack -l <pid> # 统计某个进程的线程数量 ps -efL | grep [pid] | wc -l # 查看某个进制有哪些线程 ps -Lp [pid] cu # 统计所有的log文件中,包含Error字符的行 find / -type f -name "*.log" | xargs grep "ERROR" # 统计日志文件中包含特定异常数量 cat xxx.log | grep ** *Exception| wc -l # 统计log中301、302状态码的行数,$8表示第八列是状态码,可以根据实际情况更改 awk'{print $8}' 2020-05-22-access_log|egrep '301|302'| wc -l

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“linux返回上一级目录,linux创建目录的命令,linux怎么返回到主目录,linux,创建文件夹,linux返回第一行”边界阅读