Skip to content

Linux 常用命令

cd 命令

change directory

# cd 目录  切换指定目录

# 切换到当前用用户主目录   cd
cd ~       

# 切换到上一级目录
cd ..        

# 切换到上一次所在的目录
cd -       

# 切换到当前目录
cd .        

ls 命令

作用: 查看目录的信息

形式: ls [选项] [默认当前目录]

常用选项:

-l 详细信息

-h human being 人类友好 方式显示文件大小(需要和 l 合用才有效果)

-a all 显示指定目录下所有的文件信息(包括隐藏文件)

# 常用容量单位  bit-8-Byte-1024-KB-1024-MB-1024-GB-TB-PB-EB-ZB
ls ~/Desktop/
ls -l -a == ls -a -l == ls -la == ls -al  == ll
ls -alh ~/Desktop/ready/

在 Linux 中不以后缀名区分文件类型
以点符 .开始的文件默认隐藏 需要使用-a 才能显示出来

mkdir 命令选项

作用:创建目录

形式:mkdir 选项 目录名

常用选项:

-p parents 如果子目录的父目录不存在就自动创建父目录

# 不能直接创建多级目录
python@ubuntu:~/py27$ mkdir 2/3/4
mkdir: 无法创建目录"2/3/4": 没有那个文件或目录
python@ubuntu:~/py27$ mkdir -p 2/3/4
python@ubuntu:~/py27$ tree
.
├── 1   └── 2       └── 3
├── 1.py
├── 2   └── 3       └── 4
├── haha
└── project1.py

rm 命令选项

作用:删除文件或者目录

形式:rm 选项 文件目录名 ...

常用选项:

-r 递归删除目录下所有的文件

-f 静默删除一个文件

-i 交互式 需要用户确认是否删除

-f 静默删除一个文件

-d 删除空目录

leo@ubuntu:~/py27$ rm -i 1.py
rm:是否删除普通空文件 '1.py' yes

python@ubuntu:~/py27$ rm 1.py
rm: 无法删除'1.py': 没有那个文件或目录

python@ubuntu:~/py27$ rm -f 1.py
python@ubuntu:~/py27$ rm -d haha  # 等价于  rmdir haha
python@ubuntu:~/py27$ rm -d 1  # 非空出错 
rm: 无法删除'1': 目录非空

rm -r /home/python/py27/
rm -rf /  删除整个系统根目下及其所有的子目录

cp 命令

作用: 复制文件或者目录

形式: cp 选项 源目录/源文件名 目的目录/

常用选项:

# -r  递归拷贝目录
cp -r ../code /home/python/Desktop

# -i  交互式  默认情况会自动覆盖目的目录的同名文件 
cp 1.py ~/Desktop/
#    加-i  并且 在目的目录有同名文件就提示 需要用户确认是否需要覆盖
cp -i 1.py ~/Desktop/

# -v 显示拷贝的文件所在的路径信息 
cp -v 1.py ~/Desktop/

# -a 保留原有文件的相关属性 权限时间等 默认情况不保留
cp xjj.jpg ~/Desktop/
cp -a xjj.jpg ~/Desktop/

cp 也可以在拷贝文件的时候给文件一个新的名字

cp 选项 源目录/源文件名 目的目录/新文件名

cp xjj.jpg ~/Desktop/xjj2.jpg

mv 命令选项

作用:移动、重命名 文件 、目录

形式:mv 选项 源目录/源文件名 目的目录/

常用选项:

# -i 如果目的路径下有同名文件默认覆盖  加-i 要求用户确认是否覆盖文件数据
mv -i xjj.jpg ~/Desktop/

# -v 显示移动的文件路径信息
mv -v xjj.jpg ~/Desktop/

# 移动文件并且改名
mv girl.jpg ~/xjj.jpg

# 目录改名
mv Linux/ linux/

cat 文件名

more 文件名

文件内容很少 一样的

文件内容很多的额情况下 cat 查看内容会直接全部显示<刷屏>

more 会分屏显示文件内容 空格显示下一页 q 退出

tail命令

输出重定向

概念: 把原本要输出到终端的结果 转而输出到文件中<输出重定向>

用法: 命令 符号 文件名字

符号种类:

​ > 覆盖输出重定向 类似文件打开方式的"w"模式

​ >> 追加输出重定向 类似文件打开方式的"a"模式

ls -l > a.txt 
ls -alh > a.txt   # 第二次命令结果会覆盖文件原有内容 

ls -alh /bin >> a.txt  # 本次命令结果会追加原有文件内容后面

管道

概念:把左边命令的输出结果 给 右边的命令当做输入来用。

形式:命令 | 命令

用法:

 # cat a.txt | more   # more a.txt
 ls -alh /bin | more


 显示当前目录下所有文件详细信息         搜索以-开始的行          统计行数
ls -al | grep "^-" | wc -l

|右侧一般是 more grep awk

链接

作用: 通过链接文件**间接访问**、修改源文件 方便快捷 link

分类:

​ 软 ln -s 源文件 链接文件

​ 硬 ln 源文件 链接文件

用法:

ln -s 1.txt 1s.txt
gedit 1s.txt 
python@ubuntu:~/Desktop/Linux$ cat 1.txt 
hehehehehheHEIHEI

# 通过软链接可以间接访问 、修改源文件数据
# 如果源文件删除了   软连接不可用   硬链接不受影响
ln 1.txt 1h.txt  # 可以通过1h.txt 间接访问和修改源文件

# 硬链接本质
# 硬链接其实是一个文件数据的别名  硬链接数就是一个文件数据的名字的数量
rm 文件 # 只是删除文件数据的一个别名 而数据只有在没有名字的情况下才会删除

工作建议: 创建 跨目录的链接文件 建议都写成 绝对路径方式

工作中软链接常用 软链接可以指向一个目录 硬链接 不可以

文本搜索grep

作用: 根据文本数据去文件中搜索

格式: grep 选项 "文本数据" 文件名

选项:

-i 忽略大小写

-n 显示行号

-v 反选条件

用法:

leo@ubuntu:~/Desktop/Linux$ grep "itcast.cn" grep.txt
www.itcast.cn
itcast.cn
python@ubuntu:~/Desktop/Linux$ grep -i "itcast.cn" grep.txt
www.itcast.cn
WWW.ITCAST.CN
itcast.cn
ITCAST.CN
python@ubuntu:~/Desktop/Linux$ grep -ni "itcast.cn" grep.txt
1:www.itcast.cn
2:WWW.ITCAST.CN
6:itcast.cn
7:ITCAST.CN
python@ubuntu:~/Desktop/Linux$ grep -niv "itcast.cn" grep.txt
3:ia
4:ib
5:a.com.cn
11:itheima.com
12:www.itheima.com

# 管道可以结合 grep 对前面命令的输出结果进行筛选
python@ubuntu:~/Desktop/Linux$ ls | grep "txt" 
12.txt
1h.txt
1s.txt
2.txt
3.txt
4.txt
a.txt
grep.txt
#  grep结合正则使用 
# 查询文件中 以itcast.cn的开始行并且显示行号 忽略大小写
python@ubuntu:~/Desktop/Linux$ grep -ni "^itcast.cn" grep.txt
# 查询文件中 以cn的结束的行并且显示行号 忽略大小写
python@ubuntu:~/Desktop/Linux$ grep -ni "cn$" grep.txt
# 查询文件中 i字母后为任意非换行字符的 数据
python@ubuntu:~/Desktop/Linux$ grep -ni "i." grep.txt

查找文件find

作用: 根据文件特征(名字)查找文件

形式: find 路径 选项 参数

会在路径参数对应的**路径及其所有的子目录**当中去查找

用法:

find . -name ".py"  # 在当前下查找名字叫.py的所有文件
find / -name ".py"  # 在/下查找名字叫.py的所有

sudo find / -name ".py"  # sudo 命令....  以系统管理员权限运行后面命令 输入 python 用户密码

# 大多数情况下可能并不知道文件的完整名字  此时可以使用通配符(非正则)
*   任意(0)个任意字符     a*    *.txt
?   一个任意字符      a?     ?.txt
python@ubuntu:~/Desktop/Linux$ find . -name "?.txt"
python@ubuntu:~/Desktop/Linux$ find . -name "*.txt"

通配符在 Linux 命令中可以和很多命令合用

ls cd cp mv

leo@ubuntu:~/Desktop/Linux$ ls 1?.txt 12.txt 1h.txt

leo@ubuntu:~/Desktop/Linux$ ls 1*.txt 12.txt 1h.txt 1.txt

gz和bzip2文件操作

格式: tar 选项 压缩包名字 […..]

常用选项:

​ -c create打包

​ -v 显示详细过程

​ -f 指定压缩包名字 紧跟压缩包名字

​ -x 解包

​ -z gzip算法格式

​ -j bzip2算法格式

​ -C 解压到指定路径 紧跟目的路径

-f 选项之后必须立马跟上 压缩包的名字

# 将当前目录下所有文件和目录 打包压缩成 1.tar.gz
tar -zcvf 1.tar.gz *
# # 将当前目录下所有文件和目录 打包压缩成 1.tar.bz2
tar -jcvf 1.tar.bz2 *

# 解压缩gz 文件
tar -zxvf  1.tar.gz
# bz2 文件
tar -jxvf 1.tar.bz2 

# -C 解压到指定路径
tar -jxvf 1.tar.bz2 -C ~/Desktop/

zip文件操作

# 压缩当前目录下所有的txt 文件成 my.zip
zip my.zip *.txt   
# 解压当前目录下 my.zip
unzip my.zip
# 解压当前目录下 my.zip 到 桌面
unzip my.zip -d ~/Desktop/

unzip my.zip

unzip my.zip -d ~/Desktop/

chmod文件权限

每个文本所拥有的的 读read r 写 write w 执行 eXecute x的权利。

leo@ubuntu:~/Desktop/Linux/Test$ ll
drwxrwxr-x 4 python python 4096 7月  20 11:47 ./
drwxrwxr-x 9 python python 4096 7月  20 11:26 ../
-rw-rw-r-- 1 python python    0 7月  20 11:25 12.txt
-rw-rw-r-- 1 python python   18 7月  20 11:25 1h.txt
-rw-rw-r-- 1 python python   13 7月  20 11:25 2.txt
-rw-rw-r-- 1 python python  714 7月  20 11:25 3.txt

python1 用户   python2 用户  python 组
python3 用户   itheima 组

rw-        rw-         r-- 分为三组   每一组有三个权限分别是读  执行
-表示占位 无权限
文件所属用户 同组用户权限  其他(非所属用户 非同组用户)
user  u    group  g    other o                    所有 all a

# 修改文件的权限
# 1   字母法 方式1 小白都会使用
chmod augo+-=rwx   文件名
chmod u+x 2.txt
#chmod u + x 2.txt

# 2 数字法 方式 2 高手都用这种
r    4
w    2
x    1
# 用一个数字来表示一组权限 如果需要设置一个权限 需要将这个权限对应的值加到这个数字中
# 0表示该组没有任何权限

chmod 755 2.txt   # rwx r-x r-x
chmod 644 2.txt   # rw-r--r--
chmod 640 2.txt   # rw-r-----

ps命令

用户基本操作

root 用户 超级系统管理员 拥有系统最高权限

# sudo  命令  可以让一个命令以 系统管理员root权限运行<安装卸载软件>
sudo mkdir haha

# sudo -s 切换到 root 用户使用
exit   退出登录用户;退出终端

whoami 查看当前用户的名字

passwd 用户名  修改指定用户的密码 一般需要输入这个用户原密码
        root 用户修改所有普通用户都不用知道原密码

which 指令  这个指令程序所在的路径
reboot 重启
shutdown -r 20:25 定时重启
shutdown -r now 关机后重启
shutdown -r +10 10分钟后重启

用户管理

用户管理和用户组管理 都需要 root 权限 即 sudo 命令

# 创建用户    创建用户时如果不指定用户组 会自动创建一个同名组
python@ubuntu:~$ useradd laowang -m 
python@ubuntu:~$ useradd laowang -m -g python

#验证用户   
python@ubuntu:~$ cat /etc/passwd
python@ubuntu:~$ id laowang      # 发现laowang 用户已经创建成功

# 验证组信息  
python@ubuntu:~$ cat /etc/group # 发现新增了 laowang 组

# 设置用户密码   sudo passwd laowang   

# 切换到新用户需要先设置这个用户的密码
#切换用户 
python@ubuntu:~$ su laowang  # 需要输入 laowang 的密码  不切换当前路径
python@ubuntu:~$ su - laowang #输入laowang 的密码  当前路径切换为用户主目录

# exit 退出登录的用户

# 如果需要一个用户使用 sudo  需要这个添加 sudo 这个附加组 
# 修改用户所在普通组 和 附加组  usermod 用户名 -g 普通组 -G 附加组

# 以 root 权限运行( 设置老王的附加组为 sudo)  
python@ubuntu:~$ sudo usermod laowang -G sudo
# 以 root 权限运行( 设置老王的附加组为 sudo) 并且设置老王的组为 python
python@ubuntu:~$ sudo usermod laowang -G sudo -g python

操作附加组

1
useradd laowang -m

删除用户

1
userdel 删除用户时 -r 能够删除用户主目录

在删除用户时 用户必须不能被占用(需要把占用的用户 使用 exit 退出 )

用户组 -g 家庭

附加组 -G 组织

用户组管理

# 创建用户组  
sudo groupadd heihei

# 修改用户组
sudo usermod -g 普通组 用户名

# 删除用户组
sudo groupdel heihei

# 查看用户组
cat /etc/group

远程登录

FinalShell

# 1 在服务器上安装 
sudo apt-get install openssh-server<虚拟机自带>

# 2 在客户端需要安装 ssh 工具
windows 双击 exe 一直下一步 直到完成
运行-cmd-ssh  显示参数说明安装完成

# 3 在服务器中获取服务器 IP
ip a

# 4 在客户端中登录服务器    黑窗口中输入 ssh 用户名@服务器ip地址
ssh python@192.168.134.100

远程拷贝

# 上传(客户端到服务器)
scp  -r 本机地址路径  远程主机路径(远程服务器用户名@远程服务器ip地址:绝对路径)
scp -r 1.py leo@192.168.134.100:/home/python/Desktop/

# 下载(服务器到客户端)
scp  -r 远程主机路径 本机地址路径  
scp -r leo@192.168.134.100:/home/python/Desktop/1.py .

Shell

Ubuntu22.04 Tips

安装软件

# 在线
    sudo apt-get install sl
    sudo apt install sl

# 离线<明天学习网络需要使用>
    sudo dpkg -i mNetAssist-release-amd64.deb 

卸载

# 在线
sudo apt-get remove sl

# 离线
sudo dpkg –r 安装包

设置软件安装源

https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
# /etc/apt/sources.list

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
### 3.3 相对和绝对路径

相对路径  从当前所在目录出发描述的路径  cd ../../Desktop

绝对路径  从系统根目录/出发描述的路径    cd /home/python/Desktop



命令中  Tab 键作用     自动补齐文件、目录名

>   清屏      ctrl l     《clear》