Linux命令学习札记

2022-10-16
预计阅读时间:5分钟

1.使用unzip命令批量递归解压缩文件

ls  $(pwd)|grep zip |xargs -I {} sh -c "unzip {} -d data_trs"
# 使用下面的命列出当前位置下的文件个数
ls -l | grep "^-"| wc -l

其中data_trs指代解压后的文件另存到的文件夹目录

2.Hybase批量导出trs格式数据文件以及读取trs文件向库中导入数据

./hybase-load.sh -h 127.0.0.1 -u admin -p trsadmin  -db dh_media_analysis_test  ./a.trs ./b.trs ./c.trs

3.Hybase批量导出数据trs格式数据文件

./hybase-export.sh -h 127.0.0.1 -u admin -p tradmin -out  /home/trs/lfa.trs -db dh_media_analysisCE

4.给文件或文件夹赋予权限

# 例如,在Tomcat安装目录的bin文件夹下对启动脚本授予可执行权限
chmod +x *.sh

5.基本开关机

sync #将数据由内存同步到硬盘中
shutdown #关机命令
shutdown -h 10 #10分钟后关机
shutdown -h now #立即关机
shutdown -h 20:25 #在下午20:25关机
shutdown -h +10 #十分钟后关机
shutdown -r now #立即重启
shutdown -r +10 #10分钟后重启
rebot #重启,相当于shutdown -r now
halt #关闭系统,等同于shutdown -h now 和 power off  

6.文件操作

rmdir #删除空文件夹
rmdir -p #递归删除多个目录

rm -f 强制删除
rm -i 互动,询问是否删除
rm -r 递归删除

mv -f 强制移动
mv -u 只替换已经更新过的文件

vim test.txt #如果文件存在 则修改文件内容 如果文件不存在 则创建文件 并进入命令模式(命令模式下编辑器底部依次是文件名,行数,字符数,光标位置)在命令模式下添加按i/a/o进入输入模式;按Esc退出输入模式进入命令模式;输入":"进入底线命令模式,继续输入"wq"保存修改内容并退出编辑器 
#在编辑器中设置行号:set nu
#命令模式下使用"n(数字) <Space>"使得可以将光标向右跳转n个位置
#命令模式下使用"n(数字) <Enter>"使得可以将光标向下跳转n行

7.文件权限

文件类型 属主权限 属组权限 其他用户权限
d:目录 l:链接 -:文件 r(读)w(写)x(执行) r(读)w(写)x(执行) r(读)w(写)x(执行)
chgrp [-R] 属组名 文件名 #递归更改文件属组
chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
chmod 777 文件名 #给文件赋予可读可写可执行权限,rwx分别代表读、写、执行权限,分别与具有4,2,1分,可以根据需要来赋予文件不同的权限分

8.文件查看

cat #查看文件所有内容
tac #倒序查看文件所有内容
nl #带行号查看你
more #翻页查看文件 按空格来向下翻页 按回车来往下翻一行
less #翻页查看文件 使用空格键向下翻页 使用上下键上下按行翻动 使用Q键退出查看文件(相比于more命令,less可以向前翻动 向下查询指定字符使用/ 向上查询指定字符使用? n继续搜寻上一个 N继续搜寻下一个)
head -n x(数字) #查看头x行文件内容
tail -n x(数字) #查看尾部x行内容
tail -f 文件名    #持续监控文件内容变化,ctrl+s暂停,ctrl+q继续

9.创建连接

ln f1 f2 #为f1创建硬连接 f1中的内容发生变化后 访问f2也会发生变化
ln -s f1 f3 #为f1创建软连接(类似与windows中的快捷方式) f1中的内容发生变化后 访问f3会同步变化
  • 软连接和硬连接的区别

    将上述创建的f1删除后,f2依旧可以访问原来f1中的内容,而f3因无法链接到f1而成为死链接

    实质:硬连接为一个文件,而软连接为一个链接

10.账号管理

#添加用户
useradd -选项 用户名
#-m:自动创建这个用户的主目录/home/qinjiang 即在系统中创建文件夹并写入用户信息"/etc/passwd"
#删除用户
userdel -选项 用户名
#-r:删除用户并递归删除用户的所有信息

11.硬盘挂载

mount /dev/demo /mnt/demo #将/dev/demo挂载到/mnt/demo下
unmount [挂载位置] #卸载指定位挂载的硬盘

12.查看进程信息

ps:查看当前系统中的正在执行的各种进程信息

ps -xx:

  • -a:显示当前终端运行的所有进程信息
  • -u:以用具的信息显示进程
  • -x:显示后台运行进程的参数
# ps -aux查看所有的进程
ps -aux|grep mysql

# "|"在linux中称为管道符 A|B
# grep查找文件中符合条件的字符串

ps -ef|grep mysql #查看父进程消息

pstree -pu #以目录树的结构查看父进程消息,-p:显示父id,-u:显示用户组

kill -9 进程id 

13.linux安装java环境和发布应用

  • 下载JDKrpm包
  • 安装java环境
#检测当前系统是否存在java环境 "java -version"
#如果存在则需要卸载linux自带的jdk
rpm -qa|grep jdk #检测jdk版本信息
rpm -e --nodeps [jdk名称] #卸载jdk,卸载完成后即可安装jdk
rpm -ivh [rpm包名称] #安装JDKrpm包
#完成上述步骤后配置环境变量
vim /etc/profile #在配置文件中添加下面的内容
JAVA_HOME=/usr/java/[具体名称]
CLASSPATH=%JAVA_HOME%/lib;%JAVA_HOME%/jre/lib
PATH=$JAVA_HOME/bin;$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
#更新保存配置文件后,更新配置文件
source /etc/profile

14.开启防火墙端口

# 开启防火墙端口
firewall-cmd --zone=public --add-port=9000/tcp --permanent
# 重启防火墙
systemctl restart firewalld.service
# 查看所有开启的端口
firewall-cmd --list-ports

# 查看firewall服务状态
systemctl status firewalld

# 开启、重启、关闭、firewalld.service服务
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop

# 查看防火墙规则
firewall-cmd --list-all # 查看全部信息
firewall-cmd --list-ports # 只看端口信息

# 开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent # 开启端口命令
systemctl restart firewalld.service # 重启防火墙

# 命令含义
--zone # 作用域
--add-port=80/tcp # 添加端口,格式为:端口/通讯协议
--permanent # 永久生效,没有此参数重启失效

16.统计指定文件夹下某格式文件数量

#如在当前目录下统计pdf格式文件的数量
find ./ -type f -iname '*.pdf' | wc -l

17.已知应用所用端口号查询服务进程号以及监听的端口号,以及找到可执行文件路径

netstat -anp|grep -w LISTEN|grep 3306
ls -l /proc/{进程id}/cwd (或者'cd /proc/{进程id}'后'ls -l cwd')
# 或者使用以下命令快速查看当前进程的工作目录
pwdx {进程id}

18.已知应用名称查询应用进程信息,找到可执行文件路径

ps -aef|grep guns-vip-main
cd /proc/{进程id}
ls -l cwd
# 或者使用以下命令快速查看当前进程的工作目录
pwdx {进程id}

19.多种方式切换管理员身份

su仅仅取得root权限,工作环境变不变,还是在切换之前用户的环境;sudo是完全取得root的权限和root的工作环境

# 环境用的是当前用户本身的环境
sudo -s
# 环境用的是目标用户(root)的环境
sudo su
# 以root身份登录,目录转换为root用户目录
su - root (或su)
# 与root建立一个链接,通过root执行命令,目录为原先用户目录
su root