Linux命令自学汇总

将linux命令逐步汇总,主要用于自学,也欢迎网友学习和指正。

0.命令行界面快捷键

Esc + F - 跳向下一个空格
Esc + B - 跳回上一个空格
ALT + Backspace - 删除前一个单词

Ctrl+a:光标回到命令行首。 (a:ahead)
Ctrl+e:光标回到命令行尾。 (e:end)
Ctrl+b:光标向行首移动一个字符。 (b:backwards)
Ctrl+ f:光标向行尾移动一个字符。 (f:forwards)
Ctrl+w: 删除光标处到行首的字符。
Ctrl+k:删除光标处到行尾的字符。
Ctrl+u:删除整个命令行文本字符。
Ctrl+h:向行首删除一个字符。
Ctrl+d:向行尾删除一个字符。
Ctrl+y::粘贴Ctrl+u,Ctrl+k,Ctrl+w删除的文本。
Ctrl+p: 上一个使用的历史命令。 (p:previous)
Ctrl+n: 下一个使用的历史命令。(n:next )
Ctrl+r:快速检索历史命令。(r:retrieve)。
Ctrl+t: 交换光标所在字符和其前的字符。
Ctrl+i:相当于Tab键。
Ctrl+o:相当于Ctrl+m.
Ctrl+m:相当Enter键。

1.kill

lsof -i:8000  发现该8000端口号的进程
kill pid


kill -9 pid 强制杀死

2.删除文件

rmdir dirname 删除空文件夹
rmdir -p A/B 删除B,若删后A为空,也删除A
rm -r doorman 循环删除(删除整个文件夹)
rm -rf doorman 强制删除整个文件夹

3. ls命令

a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
-R 若目录下有文件,则以下之文件亦皆依序列出
-h 把内存大小改成可读的(单位不再默认byte)

4.sftp用法

sftp user@ip 登录
pwd lpwd 服务器目录和本地目录
put filename 上传文件
get filename 下载文件
!command 在本地执行command
exit 退出

5.wget

wget url 下载该网址的文件

6.tar和gz

解压和压缩

7.grep

grep test *file    #当前目录查找后缀 file 文件中包含 test 字符串的文件并打印出该字符串的行
grep -v test1 *test2*  #查找文件名中包含test1的文件中不包含test2 的行  
grep -E "word1|word2|word3" file.txt #同时匹配多个关键字–或关系
grep word1 file.txt | grep word2 |grep word3 #同时满足(word1、word2和word3)才匹配
grep 'a' server.log > ~/log/test.log #在server.log中查找 'a' 并输出到目录下的/log/test.log中
grep "recalling intervals:" info.log |awk -F 'intervals:' '{if ($2>1) print $0}' 将结果进行awk操作

8.awk

awk '{print $1,$4}' log.txt #每行按空格或TAB分割,输出1、4项
awk '{printf "%-8s %-10s\n",$1,$4}' log.txt #格式化输出

seq 9 | sed 'H;g' | awk -v RS='' '{for(i=1;i<=NF;i++)printf("%dx%d=%d%s", i, NR, i*NR, i==NR?"\n":"\t")}'  #九九乘法表

9.vim

i 插入
Esc 退出插入
:w 写入
:w! 强制写入
:wq 保存退出
:q! 不保存退出
:q 退出

H :光标移动到这个屏幕的最上方那一行的第一个字符
M: 光标移动到这个屏幕的中央那一行的第一个字符
L:光标移动到这个屏幕的最下方那一行的第一个字符
G: 移动到这个档案的最后一行(常用)
nG: n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
gg: 移动到这个档案的第一行,相当于 1G 啊! (常用)
n+enter: n 为数字。光标向下移动 n 行(常用)
shift+3: 查找文件中单词

10.ps

ps -ef
UID      :程序被该 UID 所拥有
PID      :就是这个程序的 ID 
PPID    :则是其上级父程序的ID
C       :CPU使用的资源百分比
STIME :系统启动时间
TTY     :登入者的终端机位置
TIME   :使用掉的CPU时间。
CMD   :所下达的是什么指令
ps -ef |grep python3 查看返回结果又Python3的进程
ps -t <终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况

11.scp

scp username@ServerName:/path1/filename path2 从服务器上下载file到本地path2
scp /path1/filename username@ServerIp:/path2 本机filename 文件传上服务器path1
scp -r username@serverIp:path1 path2 从服务器path1下载整个目录到本地path2
scp  -r path1 username@servername:path2 #把当前目录下的path1目录上传到服务器的path2 目录

12.free

查看内存用的
转载自 摘自https://www.cnblogs.com/wbxk/p/10774230.html


free -h  以人类可读的方式显示,即后边会自动带上单位
free -l  显示详细的低内存和高内存统计信息(增加了 Low 和High 这两行显示)
free -o   使用旧的格式显示(不显示 -/+buffers/cache 这一行)
free -t  增加显示 Total 行,Total = Mem + Swap
free -s delay  每 delay 秒重复打印一次,delay 为具体的秒数
free -c count   重复打印 count 次后退出,count 为具体的次数。需要配合 -s delay 使用
free -V  显示版本信息

第一行Mem,表示物理内存统计:
(1)total  物理内存总量,total = used + free
(2)used  总计分配给缓存(包含 buffers 与 cache)使用的数量,但其中可能部分缓存并未实际使用
(3)free  未被分配的内存
(4)shared  共享内存,一般系统不会用到,总是0
(5)buffers  系统分配但未被使用的 buffers 数量
(6)cached  系统分配但未被使用的 cache 数量
第二行-/+ buffers/cache:
(1)used 实际使用的内存,等于第一行的used-buffers-cached
(2)free 实际可用内存,等于第一行的 free + buffers + cached
第三行Swap表示交换区的使用情况,也就是通常所说的虚拟内存。
(1)total  总量
(2)used  使用
(3)free  空闲

13 env

env #查看环境变量
export TEST="Test..." #增加一个环境变量TEST
unset  TEST #删除环境变量TEST 
env|grep TEST #此命令若没有输出,证明环境变量TEST不存在

14 ln 软链接

ln -s 绝对路径 相对路径 #

14 ssh

ssh -p 50022 my@127.0.0.1
输入密码:
my@127.0.0.1:

15 cp

-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件

cp -r /filepath1/* /filepath2/ 把/filepath1全部文件复制到/filepath2/

16 alias

Linux alias命令用于设置指令的别名。
用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在.profile或.cshrc中设定指令的别名

alias  jupyter='/Users/name/.local/bin/jupyter'. 

17 crontab

crontab [-u username]    //省略用户表表示操作当前用户的crontab
crontab -e      (编辑工作表)
crontab -l      (列出工作表里的命令)
crontab -r      (删除工作作)

18 wc

wc -l filename 输出 filename 的行数
wc -c filename 输出 filename 的字节数
wc -m filename 输出 filename 的字符数
wc -w filename 输出 filename 的单词数
wc -L filename 输出 filename 文件里最长的那一行是多少个字符数

19 cat

全称concatenate,用于连接文件并打印到标准输出设备上

-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
cat -n textfile1 > textfile2  把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
cat -b textfile1 textfile2 >> textfile3  把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里
cat /dev/null > /etc/test.tx  cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入

20 df du

du

du filepath  -d 1 #输出filepath下面第一层(-d 1)子文件夹的大小
du -d 1 filepath  #同上,但是mac系统用的

--help 显示帮助。
--version 显示版本信息。

df

df  #全部硬盘

21 tar

tar -czf xxx.tar.gz source_file(tar -czxvf 包名.tar.gz 源文件)
tar -xzf xxx.tar.gz -C path (tar -xzvf xxx.tar.gz -C 目标路径)          #解压缩包
-c --create			:压缩文件
-x  --extract		:解压文件

-v --verbose 		:可视化,显示详细的tar处理的文件信息的过程
-f --file 			:要操作的文件名

-z --gzip, --gunzip, --ungzip      :通过 gzip 来进行归档压缩,如 tar -czvf etc.tar.gz /etc/,解压使用tar -zxvf test.tar.gz
-j  --bzip2      	:通过 bzip2 来归档压缩文件,如 tar -jcvf test.tar.bz2 /etc/,解压使用tar -jxvf test.tar.bz2
-J					:使用xz压缩工具压缩成.xz文件,如 tar -Jcvf test.tar.xz /etc/,解压使用tar -Jxvf test.tar.xz

-t  --list 			:表示查看文件,查看文件中的文件内容
-C --directory=DIR  :解压文件至指定的目录,如果是解压到当前目录,可以不加-C

22 systemctl

参考资料:
https://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
https://blog.csdn.net/bandaoyu/article/details/124358513

# 重启系统
$ sudo systemctl reboot

# 关闭系统,切断电源
$ sudo systemctl poweroff

# CPU停止工作
$ sudo systemctl halt

# 暂停系统
$ sudo systemctl suspend

# 让系统进入冬眠状态
$ sudo systemctl hibernate

# 让系统进入交互式休眠状态
$ sudo systemctl hybrid-sleep

# 启动进入救援状态(单用户状态)
$ sudo systemctl rescue
# 立即启动一个服务
$ sudo systemctl start apache.service

# 立即停止一个服务
$ sudo systemctl stop apache.service

# 重启一个服务
$ sudo systemctl restart apache.service

# 杀死一个服务的所有子进程
$ sudo systemctl kill apache.service

# 重新加载一个服务的配置文件
$ sudo systemctl reload apache.service

# 重载所有修改过的配置文件
$ sudo systemctl daemon-reload

# 显示某个 Unit 的所有底层参数
$ systemctl show httpd.service

# 显示某个 Unit 的指定属性的值
$ systemctl show -p CPUShares httpd.service

# 设置某个 Unit 的指定属性
$ sudo systemctl set-property httpd.service CPUShares=500

23mount 命令

将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录作为其它文件访问入口的行为

-a  载入在/etc/fstab中描述的所有设备
-n  载入信息不记录到日志文件/etc/mtab文件中
-r  以只读的模式载入设备
-t  指定载入文件系统的类型(fat32为vfat)
-o  选项,常用的选项有 codepage, iocharset
    (对于中文codepage=936,iocharset=gb2312)
-w  以可读写模式载入设备
-loop  挂载 ISO 文件时用 
[载入点]  是一个目录,请建立一个空目录,mount 后该目录中的内容就是你载入的文件系统内容。
mount -
语法:mount  [选项] [磁盘或分区的设备名] [载入点]
t vfat /dev/hda5 /mnt/wind -o codepage=936,iocharset=gb2312

24修改yum指向源

参考资料:https://blog.csdn.net/qq_53365018/article/details/121268038

vim /etc/yum.repos.d/CentOS-Base.repo
# 插入参数设置描述
yum clean all
yum makecache
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值