快上车!Linux常用命令整理
Posted 胡说技术
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快上车!Linux常用命令整理相关的知识,希望对你有一定的参考价值。
对于我们IT人员来说,会经常和服务器打交道,而且服务器基本都是Linux操作系统。我们不管是程序的部署还是问题的排查,都会使用到Linux命令。所以下面就是我整理了一些比较基本的Linux常用命令。
文件管理类命令
-n 或 --number:由 1 开始对所有输出的行数编号
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行
示例:
cat -n textfile1 > textfile2
把textfile1 的文档内容加上行号后输入textfile2 这个文档里
cat -b textfile1 textfile2 >> textfile3
把textfile1和textfile2的文档内容加上行号(空白行不加)之后将内容附加到textfile3文档里
cat/dev/null > /etc/test.txt
清空/etc/test.txt文档内容
chmod
群组
u 表示该文件的拥有者
g 表示与该文件的拥有者属于同一个群体(group)者
o 表示其他以外的人
a 表示这三者皆是
权限设置
+ 表示增加权限
- 表示取消权限
= 表示唯一设定权限
具体权限
r 表示可读取
w 表示可写入
x 表示可执行
X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行
示例:
chmod a+r server.sh
给所有人赋予可读权限针对server.sh
chmod 777 server.sh
数字排列依次为:u,g,o,操作权限r=4,w=2,x=1,rwx=7等同于chmod uga+rwx server.sh
find
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。-type c : 文件类型是 c 的文件
-amin n : 在过去 n 分钟内被读取过
-atime n : 在过去n天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-ctime n : 在过去n天内被修改过的文件
示例:
find . -name "*.java"
将目前目录及其子目录下所有后缀为.java的文件
find . -type f
将目前目录其其下子目录中所有一般文件列出
find . -ctime -20
将目前目录及其子目录下所有最近 20 天内更新过的文件列出
find . -name "*.java" -o -name "*.class"
将目前目录及其子目录下所有后缀为.java或者.class的文件
find -name "*.war*" ! -newermt $startdate
查找startdate之前的文件
find -name "*.war*" -newermt $startdate
查找startdate之后的文件
find -name "*.war*" -newermt $startdate ! -newermt $enddate
查找startdate和enddate之间的文件
less
-N 显示每行的行号
/字符串:n向下搜索"字符串"的功能
?字符串:N向上搜索"字符串"的功能
Q 退出less 命令
示例:
ps -ef |less
ps查看进程信息并通过less分页显示,可以按大写 F,就会有类似 tail -f 的效果,读取写入文件的最新内容, 按 ctrl+C 停止
mv
-i: 若指定目录已有同名文件,则先询问是否覆盖旧文件
-f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示
示例:
mv info /logs
将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs
mv /usr/log/* .
将log目录下的所有文件移动到当前目录
rm
-i 删除前逐一询问确认
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认
-r 将目录及以下之档案亦逐一删除
示例:
rm -rf log/
删除log及其目录下的所有文件,不需要确认
友情提示:该命令谨慎使用,以防被送上热搜。
split
-<行数> : 指定每多少行切成一个小文件
-b<字节> : 指定每多少字节切成一个小文件
示例:
split -6 server.log splitserver
按照每6行,将server.log切成小文件,小文件名为splitservera开头,后面带序号
touch
a 改变档案的读取时间记录
m 改变档案的修改时间记录
c 假如目的档案不存在,不会建立新的档案
示例:
touch server.log
修改server.log的时间属性为当前时间,如果当前server.log文件不存在,会创建一个文件
cp
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式
-f:覆盖已经存在的目标文件而不给出提示
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
示例:
cp -a server/ server1
将server目录及其子目录到复制到server1
scp
-i identity_file:从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh
-r:递归复制整个目录
-q:不显示传输进度条
示例:
scp -i /user/password demo.jar jboss@192.168.1.2/jboss/server
复制当前目录下demo.jar到192.168.1.2服务器的jboss/server目录下,秘钥文件为user目录下的password文件
scp jboss@192.168.1.2/jboss/demo.jar demo.jar
与上面相反,将demo.jar文件复制到本地当前目录
scp -r server jboss@192.168.1.2/jboss/
将server目录及其子目录复制到别的服务上
扩展:
在使用scp命令时通过配置秘钥,可以不再输入密码进行跨服务器传输。秘钥的生成和配置如下:
1、本地服务器
执行ssh-keygen -t rsa命令
查找.ssh/id_rsa.pub文件
将上传id_rsa.pub文件到目的服务器
2、目标服务器
执行cat id_rsa.pub >> ~/.ssh/authorized_keys(此处最好是缀加,不要直接覆盖)
awk
示例:
awk '{print $1,$4}' log.txt
输出log文件中的第一和第四项(即列)
awk 'NR==1{print $1}' log.txt
输出log文件中第一行及第一项
文档编辑类命令
egrep命令用于在文件内查找指定的字符串,执行效果与"grep-E"相似
egrep Linux *
查找当前文件夹下的文件中包含Linux字符串的文件
示例:
egrep Linux *
查找当前文件夹下的文件中包含Linux字符串的文件
grep
-c 或 --count : 计算符合样式的列数
-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容
-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容
-i 或 --ignore-case : 忽略字符大小写的差别
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号
示例:
grep -c aaa server.log
aaa字符串在server.log文件中出现的次数
grpe -A10 aaa server.log
aaa字符串在server.log文件中出现的位置,并把当前行后10行也显示
grep -B10 aaa server.log
aaa字符串在server.log文件中出现的位置,并把当前行前10行也显示
grep -C10 aaa server.log
aaa字符串在server.log文件中出现的位置,并把当前行前后10行也显示
sed
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何东西
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法
示例:
sed 's/要被取代的字串/新的字串/g'
sed '3,$d'
删除第三行到末尾行的数据
sed '2,5c No 2-5 number'
将第二行到第五行替换为No 2-5 number
sed -i '$a demo' server.log
在server.log文件的最后一行插入demo
wc
-l或--lines 只显示行数
-w或--words 只显示字数
示例:
grep aaa server.log | wc -l
aaa在server.log文件中出现的次数。同:grep -c aaa server.log
expr(手工命令行计数器)
用空格隔开每个项
用 / (反斜杠) 放在 shell 特定的字符前面
对包含空格和其他特殊字符的字符串要用引号括起来
示例:
expr length “this is a test”
字符串长度
expr substr “this is a test” 3 5
抓取字符串
expr index "sarasara" a
抓取第一个字符数字串出现的位置
expr 14 + 9
加法运算,结果输出23
expr 30\*3
乘法运算,结果输出90
结尾
关注公众号,你想要的都在这里
以上是关于快上车!Linux常用命令整理的主要内容,如果未能解决你的问题,请参考以下文章
Pycharm常用的小技巧汇总,Python新手上路必备,快上车!