**Linux学习命令总结**
一般都在家目录操作
cd ~
1. 学习命令文档
man + 命令
命令 --help
2.rm 删除文件夹
rm -r 文件夹名
3.绝对路径 与 相对路径
1. 以‘/’开始的;
2. 相对于当前家目录
4.mkdir -p 创建多层目录
5.同一个目录下,不管是文件夹还是文件,都不允许同名
6.*号,rm 1.txt*(删除以1开头的文件)
7.复制目录要 +r
cp -r a test(a 为目录)
8.查看文档
cat -b(行号)n(所有行号,包括空行)
more
less
head -n (列出前面多少行)
tail -n(列出后面多少行)
9.grep -n(显示匹配行及行号)
-v(显示不包含匹配的所有行号)
-i(忽略大小写)
模式查找:
^a 以a开头的行
a$ 以a结尾的行
10.重定向:echo
echo Hello python > a
讲显示在终端的内容 输出/追加 到指定文件中
> 表示输出,会覆盖文件原有的内容
>> 表示追加,会将内容追加到已有文件的末尾
11.管道 | more\grep常用
more:分屏显示内容
grep:在命令执行结果的基础上查询指定文本
12.远程管理命令
关机/重启
shutdown 1分钟后关机
shutdown -r now 立刻重启
shutdown -c 取消前面的命令
shutdown 22:59 指定时间关机
shutdown +10 十分钟之后关机
查看或配置网卡信息
ifconfig 查看/配置计算机当前的网卡配置信息
ping ip 检测到目标ip地址的连接是否正常
ssh:加密 压缩
ssh [-p port] user remote
port:端口号,22
user:远程机器上的用户名
remote:远程机器的地址,ip/域名
window:putty 和 shell
域名 和 端口号:
ssh:22
http:80
https:443
ftp:21
13. scp(secure copy)(在windows下用filezilla、putty窗口),是一个在linux下用来进行远程拷贝文
件的命令
它的地址格式与ssh基本相同,注意的是,在指定端口时,用的是大写 -P 而不是小
写
scp -P port 01.txt user@ip地址:desktop/01.txt
将本地文档复制到远程服务器
scp -P port user@ip地址:desktop/01.txt 01.txt
将远程服务器文档复制到本地
加上 -r 可以传送文件夹
scp -r li user@ip:Desktop
14. SSH 高级(知道)
1. 免密码登录
1.配置公钥
ssh -keygen 一直enter
ssh-copy-id lcj@ip
2. 配置别名
提示:有关SSH配置信息都保存在用户家目录下的.ssh目录下
3. 如果在家目录下ls没有.ssh目录,
ssh localhost输入上面命令,然后按照提示yes在输入密码就可以生成了, ssh是记
录你密码信息的, 没有登录过root ,
是没有.ssh 文件夹的
15. id指令的相关用法:
id user 查看用户user的id信息
id -u user 查看用户user的uid
id -g user 查看用户user的gid
id -G user 查看用户user所在的所有组的id信息
id -n user 显示名字而不显示数字
16. 我有2个账号li和lcj
想让两个用户可以相互访问各自的家目录下的内容:
添加li_lcj用户组
/usr/sbin/groupadd li_lcj
切换sudo -s到root账户下
/usr/sbin/usermod -a -G li_lcj li
/usr/sbin/usermod -a -G li_lcj lcj
最后查询用户所属组,看看添加成功没
[lcj@localhost li]$ groups li
li : li li_lcj
[lcj@localhost li]$ groups lcj
lcj : lcj li_lcj
最后递归修改/home/li 和 /home/lcj 文件夹的所属组
chown -750 li:li_lcj /home/li
chown -750 lcj:li_lcj /home/lcj
17. ls -l扩展
硬链接:如果一个目录的子目录越多,它的硬链接就越多
18. chmod :可以修改 用户/组 对 文件/目录的权限
chmod +/- w/r/x 文件名
chmod 777 文件名 (w:4 r:2 x:1)
19. 组管理 终端命令
groupadd 组名 (添加组)
groupdel 组名 (删除组)
cat /etc/group (确认组信息)
chgrp 组名 文件/目录名 (修改文件/目录的所属组)
20. 创建用户/设置密码/删除用户
1.useradd -m -g 组 新建用户名 (-m 自动建立用户家目录 -g 指定用户所在的组,否则
会建立一个同名的组)
2.passwd 用户名 (设置密码) (如果是普通用户,直接用passwd可以修改自己的密码)
3.userdel -r 用户名
4.whoami 查看当前用户
21. 查看用户信息
1.id 用户名
2.who
3.whoami
22. usermod修改用户的 主组 附加组
1.添加用户li到sudo组
usermod -g 组 用户名 (修改主组)
usermod -G 组 用户名 (修改附加组)
usermod -g sudo li(添加完附加组需要重新登录才生效)
2.usermod指定用户登录shell
usermod -s /bin/bash 用户名
23. which 可以查看执行命令所在的位置
1.which passwd
2.which ls
24. bin 与 sbin
1.bin(binary)是二进制执行文件目录
/usr/bin (后期安装的一些软件)
2.sbin(system binary)是系统管理员专用的二进制代码存放目录
/usr/sbin (超级用户的一些管理程序)
25. chown chgrp
1.chown 新的用户名 文件名/目录名 (修改拥有者)
2.chgrp -R 组名 文件名/目录名 (修改主组)
3.chmod -R 755 文件名/目录名 (修改权限)
26. 系统信息相关命令
1.时间和日期
date
cal -y 可以查看月 日
2.磁盘和目录空间
df -h (disk free 显示磁盘剩余空间)
du -h 目录名 (disk usage 显示当前所在目录下的文件大小)
3.进程信息(正在运行的程序)(pid:进程代号)
ps aux(a:显示终端上的所有进程,包括其他用户的进程; u:显示进程的详细信息; x:
显示没有控制终端的进程)
top (q退出)
kill -9 进程代号 (-9表示强制执行)(不能随意使用kill命令)
27. 查找文件 find
1. find [路径] -name "*.txt"(查找指定路径下扩展名是.txt的文件,包括子目录)
如果省略路径,表示在当前文件夹下查找
2. 软连接
ln -s 被链接的源文件 链接文件名 (没有-s 建立的是硬链接)
注意:使用绝对路径
3. 硬链接
ln 被链接的源文件 链接文件名 (硬链接的源文件被删除,不会影响硬链接的内容
;软链接的源文件被删除,软链接的数据内容就受影响)
日常工作中几乎不会建立文件的硬链接
28. 打包 压缩
打包:tar -cvf 打包文件名.tar 被打包的文件/路径..
解包:tar -xvf 包文件.tar
c:生成档案文件,创建打包文件
x:解开档案文件
v:列出归档解档的详细过程,显示进度
f:指定档案文件名称,f后面一定是.tar文件,所以必须放在最后
使用-z可以直接调用gzip,从而方便地实现压缩和解压缩的功能
tar -zcvf 01.tar.gz 被打包文件/路径
tar -zxvf 01.tar.gz 被打包文件/路径
压缩:gzip,扩展名是:xxx.tar.gz
bzip2
xxx.tar.bz2
tar -jcvf 01.tar.bz2 被打包文件/路径
tar -jxvf 01.tar.bz2 被打包文件/路径
tar -jxvf 01.tar.bz2 -C 路径 (解压缩到指定路径,注意:要解压缩的
目标目录必须存在;bz2和gzip都可以使用)
29. 软件安装
1. apt(ubantu)
安装软件:sudo apt install 软件包名
卸载软件:sudo apt remove 软件包名
更新软件:sudo apt upgrade
30. 因为linux安装软件的方式比较多,所以没有一个通用的办法能查到某些软件是否安装了。总结起
来就是这样几类:
1、rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa
| grep “软件或者包的名字”。
[root@hexuweb102 ~] rpm -qa | grep ruby
2、以deb包安装的,可以
用dpkg -l能看到。如果是查找指定软件包,用dpkg -l | grep “软件或者包的名字”;
[root@hexuweb102~]dpkg-l|grepruby
3、yum方法安装的,可以用yum list installed查找,如果是查
找指定包,命令后加 | grep “软件名或者包名”;
[root@hexuweb102 ~] yum list installed | grep ruby
31.VIM
(1)基本上vi可以分为三种状态,分别是一般模式、编辑模式和命令行模式
一般模式:
以vi打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用上下左右按键来移动光标,你可以使用删除字符或删除整行来处理文件内容, 也可以使用复制、粘贴来处理你的文件数据。
编辑模式:
在一般模式中可以进行删除、复制、粘贴等的操作,但是却无法编辑文件的内容,只有当到你按下【i, I, o, O, a, A, r, R】等任何一个字母之后才会进入编辑模式。这时候屏幕的左下方会出现【INSERT或 REPLACE】的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下【Esc】即可退出编辑模式。
命令行模式:
输入【 : / ? 】三个中的任何一个,就可以将光标移动到最底下那一行。在这个模式中, 可以提供查找、读取、存盘、替换字符、离开vi、显示行号等的动作则是在此模式中完成的!
硬件设备文件目录/dev
1. 设备文件
1./dev/hdal(IDE硬盘接口)
2./dev/sda1(SCSI硬盘接口、SATA硬盘接口)
目前剩下使用最多的是 sdh(SATA)
2. 硬盘分区:
1.主分区
2.扩展分区
3.逻辑分区
3. 挂载:给每个分区分配挂载点(必须是空目录)
必须分区
/(根分区)
swap分区(交换分区,内存2倍,不超过2GB)
推荐分区
/boot(启动分区,200MB)
磁盘分区(先分区、格式化、挂载、配置一下 /etc/fstab文件)
mbr分区
主分区和扩展分区最多有4个。
扩展分区最多只能一个,逻辑分区是扩展分区持续切割出来的分区。
能够被格式化的是主分区和逻辑分区,扩展分区无法被格式化。
1–4号是保留给主、扩展分区的,逻辑分区一定是由5号开始。
1. 所有磁盘的分区信息都是存储在分区表中,Linux系统仅支持4个分区表信息(主分区+扩展分区),
一个分区表的大小在64bytes
Linux一般分为三个分区分别是:boot分区、swap分区、/根分区
Linux的分区编号:主分区1-4,逻辑分区从5开始计算
实际生产环境分区要求
2. 磁盘分区工具fdisk
fdisk /dev/sda
: #对/dev/sda1进行分区操作
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition #删除一个分区
l list known partition types
m print this menu
n add a new partition #新建一个分区
o create a new empty DOS partition table
p print the partition table #打印出分区表信息
q quit without saving changes #不保存退出
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit #将分区信息写入分区
表并退出程序
x extra functionality (experts only)
fdisk -l
:列出磁盘信息
3. 分区、挂载 操作 :
1. 虚拟机添加硬盘
2. fdisk /dev/sdb 进入分区模式
df -h 查看硬盘挂载情况
3.(格式化make file system)mkfs -t ext3 /dev/sdb ***把sdb格式化成ext3文
件格式
4. mount -w /dev/sdb /wufan/ 把硬盘sdb挂载到wufan文件夹下面, -w意思是以
读写方式挂载
mount /midia/cdrom /mnt 挂载CD-ROM
4.1. umount /wufan 卸载wufan对应的分区
5. 配置一下 /etc/fstab文件(设置开机可以自动挂载;永久挂载)
/dev/sdb1 /home/li/newdisk ext4 defaults 0 0
分区路径 挂载路径 系统类型 默认 默认
修改完之后:mount -a
4. lsblk -f :查看分区情况
LInux下文件查找命令
1.命令查找:
(1)Which命令:找出命令的绝对路径
(2)Whereis 命令:找出命令的路径以及文档手册信息
2.文件查找:
(1)Find命令:精确查找,磁盘搜索,IO读写,
-name 按照文件名查找
-iname 按照文件名忽略大小写查找
-size 按照文件大小查找
-type 按照文件类型 (l:软链接;f:普通文档;d:目录)
-mtime 按照修改时间
-atime 按照访问时间查找
-ctime 按照文件创建时间
日期相关指令
1.Date
(1)-s 设置时间(root权限)
①‘2020-12-12’
②‘11:11:11’
③‘11:11:11 2020-12-12’
(2)-d 显示不是当前的时间日期
①Date +d ‘+/-3days’ +%F
(3)自定义格式显示日期:
①date +%y_%m_%d
②date +’%y %m %d’
(4)硬件时间:hwclock(root权限)
①-r(打印硬件时钟)
②-s(从硬件时钟设置系统时间)
③-w(从当前系统时间设置硬件时钟)
(5)Timedatectl:同时修改系统时间、硬件日期时间
①timedatectl set-ntp no(先停止)
②Timedatectl set-time 2020-10-10
③设置时区:
1)Timesatectl set-timezone ZONE
(6)手动同步时间:(chronyc makestep)
①首先ntp要打开:
1)Timedatectl set-ntp yes
②chronyc makestep
(7)$():括号内的命令优先执行:
①Mkdir $(date +%F)
1):以当前日期名创建一个目录
来源:CSDN
作者:菜鸡_1
链接:https://blog.csdn.net/weixin_45809039/article/details/103746105