Linux速查(自用)

Linux速查(自用)

常用相似命令

cd => fasd
cat => bat
ls => exa , ranger
find => fd , fzf   如:fzf --preview 'cat {}'
grep => ack , ag , rg
rm => trash
man => tldr
history => hstr
du => ncdu , nnn
wget,curl => axel , httpie
taskbook
tmux
sshrc
goaccess

查找

grep 命令

# 搜目录下
grep * "关键字" --color=auto    

# 递归搜目录下及其子目录
grep * -r "关键字" --color=auto    

# 查找.c和.h
grep * "关键字" -rn –color=auto --include='*.c' --include='*.h'
grep * "关键字" -rn –color=auto --include='*.[ch]'    // 路径可选

# 查找排除.txt
grep * "关键字" --exclude "*.txt"    // 排除txt文件
grep * "关键字" 文件名 -v             //文中不包含关键字的行    

#精确匹配
grep * -w "关键字"          

#同时多条件或查找
grep -e 'addr' -e 'data' 路径或文件 -w  --color=auto

#附加:
  -i 忽略大小写
  -n 显示行号
#一般与cat命令,管道| 连起来用

find 命令

find 路径 -name "*.txt"
find 路径 -iname "*.txt"    # -iname 忽略大小写

# 查找最近15分钟修改的文件
find 路径 -cmin -15

# 查找超过15分钟修改的文件
find 路径 -cmin +15
	#解释:
	+n  大于n
	-n  小于n
	 n  恰好n

压缩与解压缩 命令

xx是文件或者目录(文件夹)

类型压缩解压
xx.tartar -cvf xx.tar xx (打包)tar -xvf xx.tar (解包)
xx.tar.gz (gzip)tar -zcvf xx.tar.gz xxtar -zxvf xx.tar.gz
xx.tar.bz2 (bzip2)tar -jcvf xx.tar.bz2 xxtar -jxvf xx.tar.bz2
xx.xzxz -z xx (xx必须是文件)xz -d xx.xz
xx.tar.xzxz -z xx.tarxz -d xx.tar.xz变成xx.tar, 再解包
xx.tar.Z
xx.zipzip -r xx.zip xxunzip xx.zip (解压到指定目录 -d)
xx.rarrar a xx.rar xxrar e xx.rar
tar命令说明:
五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。
	-c: 建立压缩档案
	-x:解压
	-t:查看内容
	-r:向压缩归档文件末尾追加文件
	-u:更新原压缩包中的文件

下面的参数是根据需要在压缩或解压档案时可选的。
	-z:有gzip属性的
	-j:有bz2属性的
	-Z:有compress属性的
	-v:显示所有过程
	-O:将文件解开到标准输出

下面的参数-f是必须的
	-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

删除 命令

rm 文件          #删除文件
rm -r 文件夹     #删除文件和目录

删除时间大于21天的文件

find /tmp -mtime +21 -name "*.*" -exec rm -Rf {} \;

释义:
	/tmp :准备要进行清理的任意目录
	-mtime:标准语句写法
	+10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件
	"*.*":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件
	-exec:固定写法
	rm -rf:强制删除文件,包括目录
	 {} \; :固定写法,一对大括号+空格+\+;

拆分与合并

拆分

split -b 1024M -d -a 3 文件名 [前缀]
如:
split -b 1024M -d -a 3 filename filename_

释义:
	-b 配个拆分文件大小,100M = 100MB, 100K=100KB,
		有(K,M,G,T,P,E,Z,Y) (powers of 1024)
	-a 生产长度为n的后缀
	-d 使用十六进制数值起始,起始值为0

如最后生成:
filename =>
    filename_000
    filename_001
    filename_002

合并

cat filename_* > filename

查看文件

查看某几行

# 查看 20到25行
sed -n '20,25p' 文件名

# 查看 20到25行
head -n 25 文件名 | tail 5

# 用变量灵活实现,是需要修改行数既可
set head_n=20; set tail_n=25; set line_n=`expr $tail_n - $head_n - 1`
head -n $tail_n 文件名 | tail -n $line_n

查看某一行

# 查看第20行
sed -n '20p' 文件名

#查看头20行内容
head -n 20 文件名

#查看尾20行内容
tail -n 20 文件名

history命令

history 是一个 Linux 命令,用于显示当前用户在当前会话中执行过的命令历史记录。它会列出已经执行过的命令,并显示与每个命令关联的编号。下面是 history 命令的一些常见用法和选项:
显示完整的命令历史记录:
history
这将显示当前用户在当前会话中执行过的所有命令历史记录。默认情况下,命令历史记录会显示最近执行的命令在最上面,并附带每个命令的编号。

显示指定数量的命令历史记录:
history N
这将显示最近执行的 N 条命令历史记录。将 N 替换为您想要显示的命令数量。

grep 过滤命令历史记录:
history | grep "keyword"
这将显示包含指定关键字的命令历史记录。将 “keyword” 替换为您要搜索的关键字。

执行命令历史记录中的命令:
!N
这将执行命令历史记录中特定编号(N)对应的命令。将 N 替换为要执行的命令的编号。

清除命令历史记录:
history -c
这将清除当前会话中的所有命令历史记录。

将命令历史记录保存到文件:
history -w filename
这将将当前会话中的命令历史记录保存到指定的文件中。将 filename 替换为您要保存的文件名。

请注意,history 命令默认会将命令历史记录保存在用户的家目录下的 .bash_history 文件中。这个文件可以在新的终端会话中加载和使用。
这些是 history 命令的一些常见用法和选项。您可以通过运行 man history 命令来查看更详细的帮助文档。

sed 命令

查找替换

sed -i 's/原字符串/新字符串/' 文件名
sed -i 's/原字符串/新字符串/g' 文件名    (加 g 表示替换每一处匹配)
sed -i 's/原字符串/新字符串/2g' 文件名    (加 Ng 表示从第N处匹配开始替换)
或 
sed 's/text/replace/' 文件名 > 新文件名

不加-i,标准输出stdout
sed 's/原字符串/新字符串/' 文件名
或
cat 文件名 | sed 's/原字符串/新字符串/'

例子:
sed -i 's/df_common/nbdf_common/' *.c
sed -i 's/get_reg(dev, id)/get_reg(dev)/' *.c
sed -i 's/app/APP/2g' *.c
注意:一种有益的做法是先使用不带-i选项的sed命令,以确保正则表达式没有问题,
     一旦结果符合要求,再加入-i选项将更改写入文件。
     使用单引号时,变量不会被扩展(expand),将依照原样显示。
     加 /g ,有时候我们只需要从第n处匹配开始替换。对此,可以使用/Ng选项。

查找删除某行

sed -i '/字符串/d' 文件名
例子:
sed -i  '/nbdf_common/d' *.c
sed -i  '/df_common/d' *.c

附加说明

单引号使用

sed表达式通常用单引号来引用。使用单引号时,变量不会被扩展(expand),将依照原样显示。这意味着:

echo '$var' will print $var
双引号使用

sed表达式通常用单引号来引用。不过也可以使用双引号。双引号会通过对表达式求值来对
其进行扩展。当我们想在sed表达式中使用一些变量时,双引号就能派上用场了。
例如:

text=hello
echo hello world | sed "s/$text/HELLO/"  
输出:HELLO world  
$text的求值结果是hello。
定界符

字符/在sed中被作为定界符使用。我们可以像下面一样使用任意的定界符:

sed 's/原字符串/新字符串/g'
sed 's:原字符串:新字符串:g'
sed 's|原字符串:新字符串|g'

当定界符出现在样式内部时,我们必须用前缀\对它进行转义:

有如下样式, 'te|xt'要被'replace'替换
sed 's|te\|xt|replace|g'
\| 是一个出现在样式内部并经过转义的定界符。
sed 选项与参数:
-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。
     但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e :直接在命令列模式上进行 sed 的动作编辑;
-f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;
-r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)
-i :直接修改读取的文件内容,而不是输出到终端。使用它时,一种有益的做法是先使用不带-i选项的sed命令,
     以确保正则表达式没有问题,一旦结果符合要求

动作说明: [n1[,n2]]function
n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,
         如果我的动作是需要在 1020 行之间进行的,则『 10,20[动作行为] 』

function:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!
    例如 1,20s/old/new/g 就是啦!

用户增加删除和添加sudo权限

添加新用户

创建用户
useradd -r -m -s /bin/bash 用户名
备注:
	-r   创建系统账户
	-m 创建home路径
	-s 注册shell新账户
创建用户并且具有sudo权限

(默认情况下,在Ubuntu上,sudo组的成员被授予sudo访问权限。
如果您希望新创建的用户具有管理权限,请将用户添加到sudo组)

usermod -aG sudo 用户名
	-a 把用户追加到某些组中,仅与-G选项一起使用
	-G 修改用户所属的附加群组。
或
adduser 用户名 sudo

配置新用户密码

passwd 用户名

切换用户

su 用户名

删除用户

删除用户
userdel -r 用户名

仅删除用户sudo权限,从sudo组中删除
deluser 用户名 sudo


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ha-Ha-Interesting

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值