学习Linux终端命令的原因
- Linux面世时没有图形界面,磁盘操作、文件存取、目录操作、进程管理、文件权限等全部靠命令完成。
- 大量服务器维护都是在远程通过SSH客户端完成,它没有图形界面,必须通过终端命令完成。
- Linux发行版本有二百多个命令,但常用的只有十多个。
终端命令格式
command [-options] [parameter]
command:命令名,响应功能英文单词或单词缩写;[-options]:选项,可用来对命令进行控制,也可以省略,[parameter]:传给命令的参数,可以是一个、零个、多个
[]代表可选
查询终端命令
command --help
man command
man是manual的缩写,操作键包括:
空格——显示下一屏;Enter——一次滚动手册页的一行;b(back)——回滚一屏;f(forward)——前滚一屏;q(quit)——退出;/word——搜索word字符串。
常用Linux命令的使用
序号 | 命令 | 详情 | 作用 |
---|---|---|---|
1 | ls | list | 查看当前文件夹下内容 |
2 | pwd | print work directory | 查看当前所在文件夹 |
3 | cd [目录名] | change directory | 切换文件夹 |
4 | touch [文件名] | touch | 如果文件不存在,新建文件 |
5 | mkdir [目录名] | make directory | 创建目录 |
6 | rm[文件名] | remove | 删除指定文件名 |
7 | clear | clear | 清屏 |
rm只能删除文件,rm -r+[目录名]删除目录
Linux区分大小写,文件目录切换等操作务必写对
文件和目录常用命令
ls cd touch rm mkdir cp mv cat more grep echo > >> |
ls
-a
list,以.开头的文件为隐藏文件,ls -a查看包含的所有文件(包括隐藏文件)
.代表当前目录,..代表上级目录
-l(以列表形式显示文件的详细信息)、-h(配合-l以人性化的方式显示文件大小)
文件夹:蓝色;文件:白色,显示创建时间、日期、占用资源大小,纵向显示,文件夹第一列是d,文件是-
ls -l -h==ls -lh(终端命令的选项可以分开、组合,顺序随意)
ls -lha(列表显示包括隐藏文件在内的文件)
注:隐藏文件是保存安装软件隐藏内容的。
ls通配符
目录中文件很多,精确的定位到某个文件
一些特殊的符号,可以代表其它的字符
*——代表任意多个字符;?——代表任意一个字符;[]——匹配字符组
cd
change directory
返回用户家目录:cd和cd ~ cd . cd .. cd -(在最近两次目录之间来回切换)
相对路径和绝对路径
绝对路径最前面是/或者~,表示从根目录/家目录开始的具体目录位置
相对路径表示相对当前目录所在的目录位置
touch
如果文件不存在,创建空白文件;如果文件已经存在,修改文件末次修改日期。
mkdir
-p:连续创建工作目录
另,Linux中,文件名、目录名均不能重复
rm
rm直接将文件从磁盘删除,不能恢复
-r:递归删除目录下的内容
-f:强制删除,不会有任何提示,即使没有这个文件也不会提示
以通配符删除也可以rm -r *1.txt/rm -r *
拷贝和移动命令
tree
以树状图列出目录结构
tree [目录名]
tree -d只显示目录,不显示文件
cp
cp 源文件 目标文件
如果文件名不需要发生改变,只需要指定目标路径就可以
文件内容查看命令
cat
cat 文件名
concatenate(连接合并) 查看文件内容、创建文件、文件合并、追加文件内容
一次性显示文件中的所有内容,适合查看内容少的文本文件
-b 对于非空输出行,前面都有一个行编号
-n 对输出的所有行,前面都有一个行编号
more
more 文件名
more分屏显示文件内容,适合查看内容较多的文本文件
与man命令很像,空格——显示下一屏;Enter——一次滚动手册页的一行;b(back)——回滚一屏;f(forward)——前滚一屏;q(quit)——退出;
grep
grep 搜索文本 文件名
grep 搜索文本文件内容,显示包含文本的行内容,-n,显示行及行号,-v显示不包含匹配文本的所有行(取反),-i(忽略大小写)
允许对文本文件进行模式查找,^a(行首),k$(行尾),搜索以a开始的行,搜索以k结束的行
其他命令
echo与重定向
在终端显示参数指定的文字,一般与重定向联合使用
重定向>(输出) >>(追加)
将本应显示到终端上的内容输出/追加到指定文件
echo heool python > a:路径下出现文本文件a,其中的内容是heool python
ls -lh > a :将命令执行的结果直接写入文本文件a,>会把文件原有的内容完全覆盖掉
echo heool python >> a:追加到文件末尾
ls >> a :将命令执行的结果直接追加到文本文件a
可以使用echo在创建文件的同时指定文件内容,或者将太长的执行结果放入文本文件中
touch只能创建,不能写入
管道命令|
一个命令的输出可以通过管道作为另一个命令的输入,左端写,右端读
执行并输出结果、接收输出结果
more(分屏显示)和grep(查询文本)
例如,分屏显示查询的结果:
远程管理命令
关机/重启
shutdown 选项(默认关机,-r重新启动) 时间(不指定时间,一分钟之后关闭,mow表示现在),取消关机计划 -c,在今天某个时间关机 shutdown 22:30 ,再过十分钟关机shutdown +10
注意:在日常远程维护服务器时,最好不要关闭系统,而应该重新启动系统
查看或配置网卡信息
网卡是专门负责网络通讯的硬件设备(连接网线的硬件设备,有线网卡/无线网卡(WIFI))
IP地址是设置在网卡上的地址信息,通过地址信息可以唯一标识一个网卡,电脑之间就可以正常通讯。
把电脑比作电话,网卡相当于SIM卡,IP地址相当于电话号码。
IP地址是唯一的,不能冲突
ipconfig (configure a network interface) 查看/配置计算机当前的网卡配置信息
127.0.0.1一般用来测试本机网卡是否正常
用管道快速过滤
ping ip地址 (ping) 检测到目标ip地址的连接是否正常
检测本地 ping 本地环回地址
也可以接收域名作参数
ping一般用于检测当前计算机到目标计算机之间的网络是否通畅,数值越大,速度越慢
原理:网络上的及其都有唯一确定的ip地址,我们给目标ip地址发送一个数据包,对方就要返回一个数据包,根据返回的数据包以及时间,我们可以确定目标主机的存在。
远程登录和复制文件
首先在服务器安装ssh服务器软件,在自己的电脑安装ssh客户端软件,就可以通过网络远程登录到服务器对服务器进行管理维护。(只有Windows不会默认安装)
windows安装putty或者xshell
ssh客户端是一种使用Secure Shell(SSH)协议连接到远程计算机的软件程序。
优点:数据是加密的,防止信息泄露;数据传输是压缩的,可以提高传输速度。
(1)域名和端口号
域名:用点分隔的名字 www.baidu.com 就是ip地址的别名,方便用户记忆,可以通过ip地址找到计算机,也可以通过域名找到计算机。
例如,ping www.baidu.com 可以看到的ip地址是110.242.68.3,就是百度的ip地址
端口号:通过ip地址找到计算机,通过端口号找到计算机上运行的应用程序,然后才可以看到访问结果,如果没有指定端口,就用默认端口。
ssh服务器默认端口:22
web服务器:80
HTTPS:443
FTP服务器:21
(2)ssh客户端的简单使用
ssh [-p port]user@remote
user:远程机器上的用户名,默认当前用户
remote:远程机器地址,ip/域名/别名
port:ssh server监听的端口,默认22
ssh chang@192.168.247.128
sudo shutdown -r now(不加sudo提示没有权限,加了意思是超级用户操作)
断开连接exit
(3)scp
secure copy,远程拷贝文件命令
scp -P port 01.py user@remote:Desktop/01.py
把本地01.py复制到远程机器
scp -P port user@remote:Desktop/01.py 01.py
把远程机器文件复制到本地
-r选项可以传送文件夹
scp -r demo user@remote:Desktop
scp -P user@remote:Desktop demo
windows下,xftp进行文件交换,也可以是filezilla,可以直接拖拽
ssh高级
关于ssh的所有信息都在家目录下的.ssh目录下
第一次连接陌生主机,授权之后,连接信息保存到ssh目录下的一个konw_host文件,下一次连接不会再提示授权。
免密码登录:在ubuntu执行两个命令
1、ssh-keygen,生成ssh钥匙,生成加密使用的文件id_rsa、id_rsa.pub保存到.ssh目录下 2、ssh-copy-id -p port user@remote,上传公钥到服务器,可以让远程服务器记住这个公钥
非对称加密算法
id_rsa是私钥、id_rsa.pub是公钥
使用公钥加密的数据,需要使用私钥解密;
使用私钥加密的数据,需要使用公钥解密。
ssh-copy-id是把公钥文件复制到服务器,公钥在服务器,私钥在本地,进行数据传输时,从客户端发送数据到服务器,在客户端使用私钥进行加密,把加密之后的数据通过网络传送给服务器,服务器端通过公钥解密。服务器使用公钥加密,客户端使用私钥解密。
配置远程计算机的别名:windows直接xftp
用户权限相关命令
基本概念
用户和权限
-
Linux系统必须有一个账号,对不同的系统资源有不同的使用权限。
-
可以指定每一个用户针对不同文件或目录的不同权限
-
权限包括:
- 读,r,4
- 写,w
- 执行,x
组:预先针对组设置权限,将不同的用户添加到对应的组中,组中的每一个用户都具有相同的权限。
ls -l中,-表示文件,d表示目录,后面跟了三组权限,第一组表示文件/目录的拥有者,就是第三列,第二组表示用户对应的组的权限,就是第四列,最后一组表示其他用户的权限。第二列表示硬链接数,就是可以访问到当前目录/文件的方式。
文件访问:绝对路径,硬链接数通常为1
目录访问:绝对路径/当前路径中cd ./从子目录cd..访问,子目录越多,硬链接数目越多。目录的硬链接数取决于它有多少的子目录。
权限修改chmod
chomd +/-(增加/减少权限)rwx(可以任意组合) 文件名/目录名
会看ls -l前面的标记
执行权限:
目录权限修改:
目录如果没有可执行权限,就不能执行终端命令。
如果没有可读权限,就不能查看目录下面的文件内容。
如果没有可写权限,就不能修改目录中的内容
超级用户
-
Linux中,root通常用于系统的维护和管理,对操作系统的所有资源具有访问权限.但是出于误删等的考虑,大多数不推荐直接使用root账号登录系统
-
在Linux安装过程中,系统会自动创建一个用户账号,这个默认用户就称为“标准用户”(只能在自己家目录下操作,不能修改与系统设置相关的文件)。
sudo
-
标准用户想要执行系统维护和管理命令时,在命令前添加
-
su→substitute user,表示使用另一个用户的身份,预设身份为root,
-
用户使用sudo,先输入密码,之后有五分钟有效期限,超过期限必须重新输入密码
组管理
创建/删除组的终端命令都要通过sudo
执行。
groupadd/groupdel 组名(增加/删除组)
cat /etc/group (确认组信息)
chgrp -R 文件/目录名(递归修改文件/目录的所属组)
sudo groupdel sev
查看文件,末尾没有了,删除成功
用户管理
添加新用户:
1、添加新用户
useradd -m -g 组名 新建用户名
-m自动建立用户家目录并设置对应的权限;-g指定用户所在的组,如果不指定,会建立和用户同名的组
2、设置用户密码
passwd 用户名
注:所有用户家目录都保存在home文件夹下,用户信息保存在\etc\passwd中。
如果不指定密码,就无法进行远程登录
如果不指定-m,系统不会建立相应用户名的家目录,如果忘记添加,最好的办法就是删除用户重新创建,否则赋予权限等会非常麻烦。
sudo useradd -g dev lisi
3、删除用户
userdel -r 用户名 -r会自动删除用户家目录
记得加上suodo,否则文件中lisi的信息不会删除
但是cat查看会去掉了lisi一行
4、查看用户信息
id [用户名]
查看用户代号(/etc/passwd)和组代号(/etc/group)信息
不指定用户名的情况:
who 查看当前所有登录的用户列表
时间表示上一次开机的时间
whoami 我是谁,显示当前登录用户的账户名
4、用户主组与附加组设置
usermod -g 组 用户名 #修改主组
usermod -G 组 用户名 #修改附加组
usermod -s /bin/bash #修改用户登录Shell
主组:在新建用户时指定,在passwd的第四列gid对应的组
附加组:通常指定用户的附加权限
修改用户附加组:sudo usermod -G sudo zhangsan,group文件中sudo一行:
21 sudo:x :27:chang,zhangsan
需要重新退出zhangsan用户再登录才能生效
$ sudo useradd -m -g dev wangwu
$ cat -n /etc/passwd
结果:52 wangwu:x:1003:1001::/home/wangwu:/bin/sh
登录使用的shell,即为登陆之后使用的终端命令,ubuntu默认是dash(一个软件),在xshell使用不方便,还有一种是bash
zhangsan@chang-virtual-machine:~$
$
5、which查看命令所在位置
/etc/passwd只是用户保存用户信息,不可执行;/usr/bin/passwd用于修改用户密码程序
bin和sbin的区别
/bin:二进制执行文件目录,binary,用于具体应用
/sbin:系统管理员专用二进制代码存放目录,用于系统管理,system binary
/usr/bin:后期安装的一些软件,user commands for applications
/usr/sbin:超级用户的一些管理程序,super user commands for applications
6、su切换用户
当前用户可能不能满足权限要求,使用exit返回之前的用户(上一级)
su - 用户名(-可以切换目录)(不加用户名切换到root,但是因为root权限很多,这样使用不安全)
7、文件权限修改
chown:修改拥有者;chgrp:修改组;chmod:修改权限。
chown 用户名 文件名|目录名
chgrp -R 组名 文件名|目录名 -R递归修改
chmod -R 755 文件名|目录名
#三个连续数字分别表示文件/目录的拥有者、组用户、其他用户的权限
chomd +/-(增加/减少权限)rwx(可以任意组合) 文件名/目录名
sudo chown zhangsan python学习/
用户的可读可写可执行权限分别是r w x ,代表的数字分别是4 2 1
chmod 754 01.py
chmod 640 01.py
chmod -R 775 test
系统信息
方便远程维护使用的
- 时间和日期
date:查看系统时间
cal:calendar查看日历,-y可以查看一年的日历
2023年 01月 26日 星期四 19:51:18 CST
- 磁盘信息
df -h :disk free显示磁盘剩余空间
du -h[目录名]:disk usage显示目录下的文件大小,-h可以人性化的显示文件大小
- 进程(当前正在执行的一个程序)信息
ps aux process status查看进程的详细状况
默认只显示当前用户通过终端启动的应用程序,不需要使用-带选项,
a 显示所有进程,包括其他用户的进程
u 进程的详细状态
x 没有控制终端的进程
top 动态显示运行中的进程并排序
q退出top
kill [-9] 进程代号
终止指定代号的进程,-9表示强行终止,注意不能随意使用,系统很多启动时默认开启的进程,否则可能导致系统崩溃。
其他命令
-
查找文件find
find[路径] -name "*.py"
路径默认当前路径
find Desktop/ -name "*.txt"
find -name '*.py'
-
软链接(快捷方式)
ln -s 被链接的文件 链接文件
-
没有-s建立的是硬链接
链接的源文件删除不会影响链接的文件。
在Linux中,文件名和文件数据分开存储,软链接文件中保存的是链接到源文件的完整路径,通过这个路径可以查找到文件数据。硬链接就是文件的另外一个文件名。
在使用中,几乎不会使用到硬链接。
ln /home/chang/Desktop/aa/b/c/01.py 01_hard
-
源文件必须使用绝对路径,方便移动链接文件后,仍然能够正常使用
- 打包和压缩
Windows----rar
Mac--------zip
Linux------tar.gz
#打包与解包
#注意:tar只负责打包,不负责压缩
打包:tar -cvf 打包文件.tar 被打包的文件
解包:tar -xvf 打包文件.tar
tar -cvf py.tar 01.py 02.py 03.py(多个文件可用空格)
#压缩与解压缩
#gzip
gzip压缩tar打包后的文件,得到文件的扩展名是.tar.gz
tar中加-z可以调用gzip
tar -zcvf py.tar.gz 0*.py
tar -zxvf py.tar.gz
#bzip2
bzip2压缩tar打包后的文件,得到文件的扩展名是.tar.bz2
tar中-j可以调用bzip2
tar -jcvf py.tar.bz2
tar -jxvf py.tar.bz2 -C bz2/
#-C
解压缩到指定目录,但是目标目录必须是存在的,否则会报错
chang@chang-virtual-machine:~/Desktop$ tar -jxvf py.tar.bz2 -C bz2/
tar: bz2:无法 open: 没有那个文件或目录
tar: Error is not recoverable: exiting now
- 软件安装
#使用apt(Advanced Packaging Tool)安装或卸载软件,它是Linux下的一款安装包管理工具,可以在终端方便的安装、卸载和更新
$ sudo apt install 软件包
$ sudo apt remove 软件名
$ sudo spt upgrade
#更新已经安装的包
---------------------------
sudo apt install sl
sudo apt install htop
#使用的软件没有安装时,一般系统会给出提示
---------------------------
#设置软件源
#软件源
ubuntu提供有主服务器,保存有所有可以通过apt安装程序的软件安装包,apt安装时,首先在主服务器查找是否有此软件的安装包,下载到本地后执行安装,这个主服务器也叫软件源,提供所有软件安装的源头。
#镜像源
让用户从服务器上能够更加快速地下载软件,所有服务器的内容是相同的,只是所在位置不同。
其他
快捷键使用:
Ubuntu终端字体:ctrl+shift+=(放大字体)
ctrl+-(缩小字体)
Linux区分大小写
自动补全:Tab键
上下光标在曾经使用过的命令切换
退出选择ctrl+C
复制粘贴分别为ctrl shift +C/V
总结
跟着bilibili学习了Linux命令,安装的ubuntu(以前不懂虚拟机的时候接触过,稀里糊涂安装在了本机,然后非常费劲的卸载了,当时很讨厌来着,但是因为一些原因现在又要去学),以前用centos有老师教过,但是很多都忘了,而且很多命令没有解释,详细地学了一遍,花的时间有点长(太懒了),幸好以前安装的xftp和xshell没有卸载可以直接使用(当时用不知道啥意思,现在要去系统地学一下了,内心OS:欠的债迟早是要还的),学的都是一些基础的命令,对于一些选项有了基础的了解,受益匪浅,继续努力。
标签:总结,文件,tar,py,用户,命令,Linux,权限,目录 From: https://www.cnblogs.com/chang-xiaotong/p/17069019.html