Linux基础命令
ls
ls 查看当前文件夹下的内容
- -a 显示指定目录下所有子目录与文件,包括隐藏文件(以”.“开头的文件为隐藏文件)
- -l 以列表方式显示文件的详细信息
- -h 配合 -l以人性化的方式显示文件大小
ls -l 的详细信息,从左到右依次是:
- 权限,第一个字符如果是d表示目录
- 硬链接数,通俗地讲,就是有多少种方式,可以访问到当前目录/文件
- 拥有者,家目录下文件/目录的拥有者通常都是当前用户
- 组,在Linux中,很多时候会出现组名和用户名相同的情况
- 大小
- 时间
- 名称
通配符:
- . 代表任意个数字符
- ? 代表任意一个字符
- [] 表示可以匹配字符组中的任意一个
- [abc] 匹配a、b、c中的任意一个
- [a-f] 匹配从a到f范围内的任意一个字符
pwd
pwd 查看当前所在文件夹
cd
cd[目录名] 切换文件夹
- cd 切换到当前用户的主目录(/home/用户目录)
- cd ~ 切换到当前用户的主目录(/home/用户目录)
- cd . 保持在当前目录不变
- cd . . 切换到上级目录
- cd - 可以在最近两次工作目录之间来回切换
touch
touch[文件名]
- 如果文件不存在,可以创建一个空白文件
- 如果文件已经存在,可以修改文件的末次修改日期
mkdir
mkdir[目录名] 创建目录
rm
rm[文件名] 删除指定的文件
- -f强制删除,忽略不存在的文件,无需提示
- -r递归的删除目录下的内容,删除文件夹时必须加此参数
clear
clear清屏
小技巧:
- ctrl + shift + = 放大终端窗口的字体显示
- ctrl + - 缩小终端窗口的字体显示
- tab键自动补全
拷贝和移动命令
tree
tree 可以以树状图列出文件目录结构
cp
cp 将给出的文件或目录复制到另一个文件或目录中 格式:cp 源文件 目标文件
- -f已经存在的目标文件直接覆盖,不会提示
- -i覆盖文件前提示
- -r若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
mv
mv 可以用来移动文件或者目录,也可以给文件或者目录重命名 格式:mv 源文件 目标文件
文件内容命令
cat
cat命令可以用来查看文件内容、创建文件、文件合并、追加文件内容等功能 cat会一次显示所有的内容,适合查看内容较少的文本文件 格式:cat 文件名
- -b对非空输出行编号
- -n对输出的所有行编号
注:Linux中还有一个nl的命令和cat -b的效果等价
more
more命令可以用于分屏显示文件内容,每次只显示一页内容,适合于查看内容较多的文本文件 格式:more 文件名
- 空格键 显示手册页的下一屏
- Enter键 一次滚动手册页的一行
- b 回滚一屏
- f 前滚一屏
- q 退出
- /word 搜索word字符串
grep
grep 搜索文本文件内容 格式:grep 搜索文本 文件名
- -n 显示匹配行及行号
- -v 显示不包含匹配文本的所有行(相当于求反)
- -i 忽略大小写
- ^a 行首,搜寻以a开头的行
- ke$ 行尾,搜寻以ke结束的行
其他
echo
echo会在终端中显示参数指定的文字,通常会和重定向联合使用 格式:echo 内容
重定向>和>>
Linux允许将命令执行结果重定向到一个文件,将本应显示在终端上的内容 输出/追加到指定文件中,其中: > 表示输出,会覆盖文件原有内容 >> 表示追加,会将内容追加到已有文件的末尾 例: (1)echo hello world > a hello world输出到a文件中(若a文件已存在则会覆盖a文件内容) (2)ls -lh > a ls -lh的查询结果输出到a文件中 (3)echo hello world >> a hello world追加到a文件中 (4)ls >> a ls的查询结果追加到a文件中 (5)tree >> a tree的查询结果追加到a文件中
管道|
Linux允许将一个命令的输出可以通过管道做为另一个命令的输入 常用的管道命令:
- more:分屏显示内容
- grep:在命令执行结果的基础上查询指定的文本
远程管理常用命令
关机/重启
shutdown命令可以安全关闭或者重新启动系统 格式:shutdown 选项 时间
提示: (1)不指定选项和参数,默认表示1分钟之后关闭电脑 (2)远程维护服务器时,最好不要关闭系统,而应该重新启动系统
例: (1)重新启动操作系统,其中now表示现在 shutdown -r now (2)立即关机,其中now表示现在 shutdown now (3)系统在今天的20:25分会关机 shutdown 20:25 (4)系统再过十分钟后自动关机 shutdown +10 (5)取消之前指定的关机计划 shutdown -c
查看或配置网卡信息
ifconfig
ifconfig可以查看/配置计算机当前的网卡配置信息 (1)查看网卡配置信息 ifconfig (2)查看网卡对应的ip地址 ifconfig | grep inet
提示:
- 一台计算机中可能会有一个物理网卡和多个虚拟网卡,在Linux中物理网卡的名字通常以ensXX表示
- 127.0.0.1被称为本地回环/环回地址,一般用来测试本机网卡是否正常
ping
ping一般用于检测当前计算机到目标计算机之间的网络是否通畅,数值越大,速度越慢 提示: 在Linux中,想要终止一个终端程序的执行,绝大多数都可以使用ctrl + c 例: (1)检测到目标主机是否连接正常 ping IP地址/域名 (2)检测本地网卡工作正常 ping 127.0.0.1
ssh
格式:ssh [-p port] user@remote
- user是在远程机器上的用户名,如果不指定的话默认为当前用户
- remote是远程机器的地址,可以是IP/域名,或者是别名
- port是SSH Server 监听的端口,如果不指定,就默认值22
提示: (1)使用exit退出当前用户的登录 (2)ssh这个终端命令只能在Linux或者Unix系统下使用,如果在Windows系统中,可以安装Putty或者Xshell客户端软件即可
scp
scp就是secure copy,是一个在Linux下用来进行远程拷贝文件的命令 它的地址格式与ssh基本相同,需要注意的是,在指定端口时用的是大写的**-P**,而不是小写的
- -r 若给出的源文件是目录文件,则scp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
- -P 若远程SSH服务器的端口不是22,需要使用大写字母**-P**选项指定端口
格式: (1)把本地当前目录下的01.py文件复制到 远程 家目录下的Desktop/01.py 注意:“:”后面的路径如果不是绝对路径,则以用户的家目录作为参照路径 scp -P port 01.py user@remote:Desktop/01.py (2)把远程家目录下的Desktop/01.py文件复制到本地当前目录下的01.py scp -P port user@remote:Desktop/01.py 01.py (3)加上 -r选项可以传送文件夹,把当前目录下的demo文件夹复制到远程家目录下的Desktop scp -r demo user@remote:Desktop (4)把远程家目录下的Desktop复制到当前目录下的demo文件夹 scp -r user@remote:Desktop demo
注意:scp 这个终端命令只能在Linux或者UNIX系统下使用
免密码登录
组管理
格式:
groupadd 组名 添加组groupdel 组名 删除组cat /etc/group 确认组信息chgrp 组名 文件/目录名 修改文件/目录的所属组chgrp -R 组名 文件/目录名 递归修改文件/目录的所属组
提示: (1)创建组/删除组的终端命令都需要通过sudo执行 (2)组信息保存在/etc/group文件中 (3)/etc目录是专门用来保存系统配置信息的目录
用户管理
注意:创建用户/删除用户/修改其他用户密码的终端命令都需要通过sudo 执行
创建用户/设置密码/删除用户
(1)添加新用户 useradd -m -g 组 新建用户名
- -m 自动建立用户家目录
- -g 指定用户所在的组,否则会建立一个和用户名同名的组
(2)设置用户密码 passwd 用户名 如果是普通用户,直接用passwd可以修改自己的账户密码
(3)删除用户 userdel -r 用户名
(4)确认用户信息 cat /etc/passwd | grep 用户名 新建用户后,用户信息会保存在/etc/passwd文件中
提示:
- 创建用户时,默认会创建一个和用户名同名的组名
- 用户信息保存在/etc/passwd文件中
查看用户信息
(1)查看用户UID和GID信息 id [用户名] (2)查看当前所有登录的用户列表 who (3)查看当前登录用户的账户名 whoami
passwd文件 /etc/passwd文件存放的时用户的信息,由6个冒号组成的7个信息,分别是
- 用户名
- 密码(x,表示加密的密码)
- UID(用户标识)
- GId(组标识)
- 用户全名或本地帐号
- 家目录
- 登录使用的Shell,就是登录之后使用的终端命令,ubuntu默认是dash
usermod
usermod可以用来设置用户的主组/附加组和登录Shell
- 主组:通常在新建用户时指定,在/etc/passwd的第4列GID对应的组
- 附加组:在/etc/group中最后一列表示改组的用户列表,用于指定用户的附加权限
注:设置了用户的附加组之后,需要重新登录才能生效!
格式: (1)修改用户的主组(passwd中的GID) usermod -g 组 用户名 (2)修改用户的附加组 usermod -G 组 用户名 (3)修改用户登录Shell usermod -s /bin/bash 用户名
注:默认使用useradd添加的用户是没有权限使用sudo以root身份执行命令的,可以使用以下命令,将用户添加到sudo附加组中: useradd -G sudo 用户名
which
提示:
- /etc/passwd是用于保存用户信息的文件
- /etc/bin/passwd是用于修改用户密码的程序
which 可以查看执行命令所在位置,例如: (1)which ls (输出“/bin/ls”) (2)which useradd (输出“/usr/sbin/useradd”)
bin和sbin
- 在Linux中,绝大多数可执行文件都是保存在/bin、/sbin、/usr/bin、/usr/sbin
- /bin(binary)是二进制执行文件目录,主要用于具体应用
- /sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理
- /usr/bin(user commands for application)后期安装的一些软件
- /usr/sbin(super user commands for application)超级用户的一些管理程序
注: cd 这个终端命令是内置在系统内核中的,没有独立文件,因此用which 无法找到
切换用户
(1)切换用户,并且切换目录 su - 用户名
(2)退出当前登录账户 exit
注: su 不接用户名,可以切换到root,但是不安全
修改文件权限
chown
chown 修改拥有者
格式: chown 用户名 文件名 | 目录名
chgrp
chgrp 修改组
格式: 递归修改文件|目录的组 chgrp -R 组名 文件名 | 目录名
chmod
chmod可以修改用户/组对文件/目录的权限 格式1: chmod +/-rwx 文件名|目录名 说明:
- - 减号,表示减少权限,后面接减少的权限
- + 加号,表示增加权限,后面接增加的权限
- r 读
- w 写
- x 执行
- 会一次性修改拥有者/组权限
例:
- 减少01.py文件的读写权限
chmod -rw 01.py - 增加01.py文件的读权限
chmod +r 01.py
格式2: chmod -R 755 文件名 | 目录名
- chmod在设置权限时,可以简单地使用三个数字分别对应拥有者/组和其他用户的权限
常见数字组合(u表示用户/g表示组/o表示其他):
- 777===>u=rwx,g=rwx,o=rwx
- 755===>u=rwx,g=rx,o=rx
- 644===>u=rw,g=r,o=r
例:
- 将01.py的权限修改为u=rwx,g=rx,o=r
chmod 754 01.py - 将123.txt的权限修改为u=rw,g=r,o=-
chmod 640 123.txt - 将test目录以及目录下的所有文件权限修改为u=rwx,g=rwx,o=rx
chmod -R 775 test
系统信息
日期和时间
- 查看系统时间
date - 查看日历,-y选项可以查看一年的日历
cal
磁盘信息
- disk free显示磁盘剩余空间
df -h - disk usage显示目录下的文件大小
du -h[目录名]
进程信息
-
process status 查看进程的详细状况 ps aux
- ps选项说明:
- a 显示终端上的所有进程,包括其他用户的进程
- u 显示进程的详细状态
- x显示没有控制终端的进程
注:ps默认只会显示当前用户通过终端启动的应用程序 -
动态显示运行中的进程并且排序,要退出top可以直接输入q top -
终止指定代号的进程,-9表示强行终止 kill [-9] 进程代号
其他
查找文件
find命令常用来在特定的目录下搜索符合条件的文件 格式: 查找指定路径下扩展名是“.py”的文件,包括子目录 find [路径] -name "*.py"
例:
- 搜索桌面目录下,文件名包含1的文件
find -name "*1*" - 搜索桌面目录下,所有以".txt"为扩展名的文件
find -name "*.txt" - 搜索桌面目录下,以数字1开头的文件
fing -name "1*"
软链接
建立文件的软链接,类似于Windows下的快捷方式 ln -s 被链接的源文件 链接文件
注意:
- 没有**-s选项建立的是一个硬链接文件**,两个文件占用相同大小的硬盘空间,硬链接几乎不用
- 源文件最好用绝对路径,这样移动链接文件后仍然能够正常使用
- 链接文件即快捷方式的名称
硬链接
在使用ln 创建链接时,如果没有-s选项,会创建一个硬链接,而不是软链接
打包/解包
tar 是Linux中最常用的备份工具,可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件 格式:
- 打包文件
tar -cvf 打包文件.tar 被打包的文件/路径…… - 解包文件
tar -xvf 打包文件.tar
选项说明:
- c 生成档案文件,创建打包文件
- x 解开档案文件
- v 列出归档解档的详细过程,显示进度
- f 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后(其他选项随意)
压缩/解压缩
gzip
格式:
- 压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件/路径…… - 解压缩文件
tar -zxvf 打包文件.tar.gz - 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目标路径
bzip2(two)
格式:
- 压缩文件
tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径…… - 解压缩文件
tar -jxvf 打包文件.tar.bz2 - 解压缩到指定路径
tar -jxvf 打包文件.tar.bz2 -C 目标路径
软件安装
通过apt安装/卸载软件
apt(Advanced Packing Tool) 格式:
- 安装软件
sudo apt install 软件包 - 卸载软件
sudo apt remove 软件名 - 更新已安装的包
sudo apt upgrade
配置软件源
- 如果希望在ubuntu中安装软件更加快速,可以通过设置镜像源,选择一个访问网速更快的服务器,来提供软件下载/安装服务
- 更换完成之后,再安装软件都会从新设置的服务器下载软件了
- 所谓镜像源,就是所有服务器的内容是相同的(镜像),但是根据所在位置不同,国内的服务器通常速度会快一些
|