linux常用命令
(一)学习linux终端命令的原因
1、linux没有图形界面,所有的操作全靠命令完成,如磁盘操作,文件存取,目标操作,进程管理,文件权限设定等。
2、在职场中,大量的服务器维护工作都是在远程通过SS和客户端来完成的。
(二)终端使用技巧
1、方向键 上下 切换之前的命令
2、方向键 左右 移动光标
3、ctrl + a : 移动光标到命令的头部
4、ctrl + e : 移动光标到命令的尾部
5、善用tab键补齐文件名/目录名
6、ctrl + u 清除当前的命令内容
(三)linux下文件和目录的特点
1、Linux 文件 或者 目录 名称最长可以有 256 个字符
2、以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示
3、. 代表当前目录
4、.. 代表上一级目录
(四)通配符的使用
通配符 |
含义 |
* |
代表任意个数个字符 |
? |
代表任意一个字符,至少 1 个 |
[] |
表示可以匹配字符组中的任一一个 |
[abc] |
匹配 a、b、c 中的任意一个 |
[a-f] |
匹配从 a 到 f 范围内的的任意一个字符 |
(五)文件和目录的常用命令
1、ls:list 查看当前文档下的内容。
ls -a 显示目录下所有子目录的文件,包括隐藏文件。
ls -l 以列表形式显示信息。
ls -h 配合-l以人性化形式显示列表。
一般配合使用:ll 或者 ls -alh
2、pwd:print work directory 查看当前所在文件夹
3、clear:ctrl + l 清屏
4、ctrl + shift + = 放大终端窗口的字体显示,ctrl + - 缩小终端窗口的字体显示
5、command [-options] [parameter]
command:命令名,相应功能的英语单词或者单词缩写。
[-options]:选项,用来对命令进行控制,也可以省略。
[parameter] :传给命令的参数,可以是0个,1个或者多个。
6、command --help:查看命令的帮助(帮助文档)用Q退出文档。
7、man: manual 是 Linux 提供的一个 手册,包含了绝大部分的命令、函数的详细使用说明
space键:显示手册下一页。
Enter键:一次滚动手册页的一行。
b:回滚一屏
f:向前滚一屏
q:退出
8、cd:change directory 切换文件夹
图片
9、touch:创建文件或者修改文件时间。
①如果文件不存在,可以创建一个空白文件。
②如果文件已经存在,可以修改文件的末次修改日期。
10、mkdir make directory 创建目录
makdir -p 可以递归创建目录。
新建目录的名称不能与当前目录中已有的目录或文件同名
11、rm remove 删除指定的文件名(支持通配符)
(用rm要小心,删除文件后不能恢复)
rm -f 强制删除不存在的文件,无需提示
rm -r 递归地删除目录下的内容,删除文件夹时必须加此参数
rm -fr * 删除文件夹下所有的文件
12、tree:命令可以以树状图列出文件目录结构
tree -d 只显示目录
13、cp:命令的功能是将给出的 文件 或 目录 复制到另一个 文件 或 目录 中,相当于 DOS 下的 copy 命令
cp -i 覆盖文件前提示
cp -r 若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
14、mv:命令可以用来 移动 文件 或 目录,也可以给 文件或目录重命名
mv -i 覆盖文件前提示
15、cat:concatenate 查看文件内容、创建文件、文件合并、追加文件内容等功能
会一次显示所有的内容,适合 查看内容较少 的文本文件
cat -b 对非空输出行编号
cat -n 对输出的所有行编号
16、more:命令可以用于分屏显示文件内容,每次只显示一页内容
ls -a | more
17、grep:Linux系统中grep命令是一种强大的文本搜索工具。
grep允许对文本文件进行 模式查找,所谓模式查找,又被称为正则表达式。
grep -n 显示匹配行及行号
grep -v 显示不包含匹配文本的所有行(相当于求反)
grep -i 忽略大小写
^a:行首,搜寻以 a 开头的行
ke$:行尾,搜寻以 ke 结束的行
18、echo:会在终端中显示参数指定的文字,通常会和 重定向 联合使用
19、重定向:将终端的输出内容重定向到文件里(注意,重定向不要重定向到文件自身,否则会导致内容丢失)
>:相当于文件操作的 w ,如果文件不存在,则创建文件并写入数据,如果文件存在则清空文件再写入数据。
ps -aux > ps_info.txt 把进程输出的文本写入ps_info的文件里。
>>:相当于文件操作的 a,如果文件不存在,则创建文件并写入数据,如果文件存在则在文件末尾追加新的数据。
cat file1 >> file2 (文件合并)
20、管道(|):将第一个命令的结果,通过管道,传递给第二个命令处理
ps -aux | grep "sogou" 将进程信息放到管道里,抓取带sogou的内容
(六)用户权限的相关命令
1、在 Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限
2、在 Linux 中,可以指定 每一个用户 针对 不同的文件或者目录 的 不同权限
3、-rw-rw-r-- 1 python python 1466 9月 11 14:52 a.py
第一个字符表示文件类型:-普通文件,d表示目录
rwx rw- r--
文件所有者权限 所属用户组的权限 其他用户的权限
r read 表示读权限
w write 表示写权限
x execute 表示执行权限
1 表示硬链接数量 :相当于文件拷贝,拷贝越多,硬链接就越多,删除一个拷贝,硬链接就减少一个。
python python : 用户名 和 组名
1466:文件大小,单位 Byte
9月 11 14:52 :表示文件的最后修改时间
a.py :文件名
4、修改文件权限:
chmod +x 让所有用户都具有执行权限
chmod -r 让所有用户都没有读权限
这样处理权限要么都有,要么都没有。
chmod 777 test.py # 所有用户可读可写可执行
chmod 400 test.py # 文件所有者 4:读, 其他用户没有权限
0 表示没有权限
1 表示执行权限
2 表示写权限
4 表示读权限
(七)其他命令
修改密码系统密码用:passwd
1、reboot 重新启动计算机
2、关机的相关操作
shutdown -h now 立刻关机
shutdown -h 20:20 八点二十的时候关机
shutdown -h +10 十分钟后关机
shutdown -r now 重新启动
init 0 关机 init 6 重启
3、date:查看系统时间
4、cal:calendar 查看日历
cal -y 选择查看一年的日历
5、磁盘信息:
df -h 以人性化显示磁盘大小,disk-free
du -h 以人性化显示磁盘使用情况,disk-use
6、进程信息:
ps -aux:process status 查看信息进程情况
top:动态显示运行中的信息
htop:动态运行情况
kill -9 进程代号 强制杀死进程
7、find:查找指定目录下的所有符合条件的文件(注意,find会递归查找所有的子目录)
如果不写路径,则默认查找当前目录;如果不写 -name 文件名,则默认查找所有文件
# 查找当前目录下所有的 .py 文件,包括子目录
find ./ -name "*.py"
8、软连接:ln -s 源文件的绝对路径 软连接的路径和名称
1. 源文件必须用绝对路径
2. 创建好软连接后,不要移动源文件,否则会失效。
硬链接:简单理解为文件的拷贝(课后了解)
9、Linux 打包:一般把需要打包的文件和目录全部存到统一的一个目录,再去打包这个目录。
tar 只是包,并没有做压缩
# 打包
tar -cvf 打包后的包名.tar 需要打包的目录
# 解包
tar -xvf 打包后的包名.tar
10、linux 压缩(gz,bz2)(一般将零散的文件放入文件夹中打包或者压缩)
tar.gz 会进行压缩,大小会大大降低
# 压缩 gzip
tar -zcvf 压缩后的包名.tar.gz 需要打包的目录
# 解压缩
tar -zxvf 压缩后的包名.tar.gz
# 压缩 bz2
tar -jcvf 压缩后的包名.tar.bz2 需要打包的目录
# 解压缩
tar -jxvf 压缩后的包名.tar.bz2
解压到别的文件夹下:
tar -jxvf 压缩后的包名.tar.bz2 -C 文件夹/
11、which: 查看我的命令在哪个文件夹下。
12、ifconfig:查看电脑的ip地址信息。windows用ipconfig
修改IP地址:sudo ifconfig 网卡名(ens33)新的ip地址。
13、ping:ping+别人电脑的ip,看是否能通讯
14、linux是多任务,多用户
①添加账户:
sudo useradd caozhe -m 不加-m则不会在home中创建caozhe文件夹
②怎么查看是否创建新的用户。
cat/etc/passwd
③怎么切入别的账号:su caozhe
④修改密码:sudo passwd caozhe
⑤查看当前账户名:whoami
⑥查看谁登陆:who
15、怎么建立远程连接?
ssh 对方用户名(python)@对方IP
或者用xshell
17、创建多个用户窗口:ctrl+shift+T
18、切换用户窗口:alt+1 alt+2
19、删除账户:sudo userdel caozhe 只是删除了账户,没删除目录。删除目录得在userdel后加-r。
20、超级用户
①如何切换超级管理员:sudo —s 或者sudo su (需要密码)
②$表示普通账户,#为超级管理员
③怎么查看用户组:cat/etc/group
④如何创建用户组:sudo groupadd YYY
⑤如何删除用户组:sudo groupdel YYY
21、创建的用户为什么切不到管理员?不具备adm和sudo组
如何将一个账户添加到另一个组:
sudo usermod -a -G adm 用户名 -a表示添加,-G表示组
sudo usermod -a -G sudo 用户名
22、chown:修改文件的使用者
chown + 新的账户 + 文件
chgrp 修改文件的所属组
chgrp + 新的账户 + 文件名
23、linux中安装软件
sudo apt install 软件包
linux中卸载软件
sudo apt remove 软件名
更新已安装的包
sudo apt upgrade
定期更新源服务器软件列表 : /var/lib/apt/lists
sudo apt update
24、如何操作可执行文件
Windows 在目录里执行:
先找当前目录,如果当前目录有,则立刻执行;如果当前目录没有,则去找环境变量。
Linux 在目录里执行:
直接找环境变量,如果环境变量有,则执行;如果没有,则报错。
所以,需要在前面加上 ./ 指明Linux执行当前目录下的文件。
#!/usr/bin/python3
# 表示如果文件作为可执行程序运行,则使用指定解释器进行解释。
#coding:utf-8
# Python2 默认环境是ascii编码,不能处理中文。coding:utf-8 表示按utf-8编码处理中文。在Python2的代码里比较常见。
# Python3 环境已经改为utf-8,所以不用指定了。
print("你好世界,你坏世界。")