从linux用户管理、文件管理、字符处理、进程管理、网络管理等方面总结Linux常用操作
本篇我们先来关注文件(文件夹)和字符的相关操作
一、文件管理
1. 文件和目录相关操作
创建、复制、移动文件
#创建文件
touch 文件名
#移动或者重命名
重命名:mv 源文件名 现文件名
移动:mv 源文件 目标文件夹
#cp
#复制并重命名
cp new_file one/new_file_copy
# 把以txt结尾的文件拷贝到folder下
cp *.txt folder
# 将test1/下(不包含test1)的所有文件和目录拷贝到test2/中
cp -rf test1/. test2/
文档编辑vim
#命令模式
gg跳到第一行
shift+g跳到文件最后一行
#搜索模式
/
文件压缩和打包
tar
# 压缩
tar -cvf 打包文件.tar 被打包的文件/路径
# 解包
tar -xvf 打包文件.tar
2. 文件属性查看
ll命令
ll -h
lrwxrwxrwx. 1 root root 7 6月 1 2021 bin -> usr/bin
dr-xr-xr-x. 4 root root 4.0K 6月 1 2021 boot
drwxr-xr-x. 8 root root 4.0K 7月 7 15:14 data
drwxr-xr-x. 2 root root 6 6月 1 2021 data1
属性 | 属性解释 |
---|---|
第一组:第一个字母 | - 普通文件 、d 文件夹、l 链接文件 、b 二进制文件 、c 字符设备文件 |
第一组:权限解释 | rwx r-x r-x:分别为当前用户、组、其他用户的权限描述 |
第二组 | 链接数(普通文件=1,文件夹代表子文件夹的个数) |
其他 | 所属用户、组;文件大小;修改时间;文件名 |
查看文件大小
du -h jdk-8u60-linux-x64.tar.gz
173M /home/Downloads/jdk-8u60-linux-x64.tar.gz
3.文件权限修改
修改所属
#修改文件的所有者
chown thomas file.txt
#修改文件的所在组
chgrp thomas file.txt
#修改文件的所有者和所在组
chown thomas:friends file.txt
#修改文件夹
chown -R oscar:oscar /home/thomas
修改权限
#文件 file.txt 的所有者增加读和运行的权限。
chmod u+rx file.txt
用字母来分配权限:chmod 的相对用法
权限对象
• u:user 的缩写,是英语“用户”的意思。表示所有者;
• g:group 的缩写,是英语“群组”的意思。表示群组用户;
• o:other 的缩写,是英语“其他”的意思。表示其他用户;
• a:all 的缩写,是英语“所有”的意思。表示所有用户。
权限操作
• +:加号,表示添加权限;
• -:减号,表示去除权限;
• =:等号,表示分配权限。
1. 加最高权限
chmod 775 文件名
2. 加可执行权限
chmod +x 文件名
3. 赋予文件夹下所有文件的最高权限
chmod -R 775 sbin
二、文本处理
某个文件内容查看
#查看文件时显示行号
cat -n 文件名
#查看文件头
head filename
#动态显示README.txt的500行末尾
tail -500 -f README.txt
# 一页一页的查看+搜索模式
#前进:空格 后退:b
#搜索模式:/connect 下一个:n
#退出:q
less hadoop-common-namenode-ecs.log
grep定位日志信息
根据关键字查找日志文件中相关日志,快速定位问题
grep -C10 "Get debug Log faild,Exception" /data/logs/xxx/xxx.log
2022-07-20 14:25:03.857|ERROR |103879|http-nio-10.0.9.207-18341-exec-12|com.cloudwise.dodp.datalake.api.controller.DataflowDebugController.getDebugLog(DataflowDebugController.java:173)|Get debug Log faild,Exception is null
java.lang.NullPointerException: null
at com.cloudwise.dodp.datalake.api.service.impl.SqlDebugServiceImpl.getDebugLog(SqlDebugServiceImpl.java:761) ~[datalake-api-DODP.RELEASE.jar:DODP.RELEASE]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_152]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_152]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_152]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_152]
at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282) ~[spring-core-5.2.15.RELEASE.jar:5.2.15.RELEASE]
at org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:499) ~[spring-cloud-context-2.2.9.RELEASE.jar:2.2.9.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.15.RELEASE.jar:5.2.15.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) ~[spring-aop-5.2.15.RELEASE.jar:5.2.15.RELEASE]
--
at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[?:1.8.0_152]
at java.io.File.createNewFile(File.java:1012) ~[?:1.8.0_152]
at com.xxl.job.core.log.XxlJobFileAppender.appendLog(XxlJobFileAppender.java:99) ~[xxl-job-core-2.3.0.jar:?]
at com.xxl.job.core.context.XxlJobHelper.logDetail(XxlJobHelper.java:164) ~[xxl-job-core-2.3.0.jar:?]
at com.xxl.job.core.context.XxlJobHelper.log(XxlJobHelper.java:118) ~[xxl-job-core-2.3.0.jar:?]
at com.xxl.job.core.thread.TriggerCallbackThread.callbackLog(TriggerCallbackThread.java:197) ~[xxl-job-core-2.3.0.jar:?]
at com.xxl.job.core.thread.TriggerCallbackThread.doCallback(TriggerCallbackThread.java:170) ~[xxl-job-core-2.3.0.jar:?]
at com.xxl.job.core.thread.TriggerCallbackThread.access$200(TriggerCallbackThread.java:26) ~[xxl-job-core-2.3.0.jar:?]
at com.xxl.job.core.thread.TriggerCallbackThread$1.run(TriggerCallbackThread.java:76) ~[xxl-job-core-2.3.0.jar:?]
at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_152]
2022-07-20 14:30:07.107|ERROR |103879|http-nio-10.0.9.207-18341-exec-10|com.cloudwise.dodp.datalake.api.controller.DataflowDebugController.getDebugLog(DataflowDebugController.java:173)|Get debug Log faild,Exception is null
java.lang.NullPointerException: null
at com.cloudwise.dodp.datalake.api.service.impl.SqlDebugServiceImpl.getDebugLog(SqlDebugServiceImpl.java:761) ~[datalake-api-DODP.RELEASE.jar:DODP.RELEASE]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_152]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_152]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_152]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_152]
at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282) ~[spring-core-5.2.15.RELEASE.jar:5.2.15.RELEASE]
at org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:499) ~[spring-cloud-context-2.2.9.RELEASE.jar:2.2.9.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.15.RELEASE.jar:5.2.15.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) ~[spring-aop-5.2.15.RELEASE.jar:5.2.15.RELEASE]