起步
1 2 3 4 5 6
| 命令行前的 [root@localhost ~]
root: 当前登录用户 localhost: 主机名 ~: 当前所在目录(家目录)
|
Linux 文件权限
1 2 3 4 5 6 7
| -rw-r--r-- (其中, r: 读, w: 写, x: 执行) 共10位
第1位: 文件类型(共7种, 常用3种 -: 文件, d: 目录, l: 快捷方式) 第2~4位: 所有者(u)权限 第5~7位: 所属组(g)权限 第8~10位: 其他人(o)权限
|
Shell 和 Bash
1. 常用快捷键
ctrl+c
强制终止当前命令;
ctrl+l
清屏;
ctrl+a
光标移动到命令行首;
ctrl+e
光标移动到命令行尾;
ctrl+u
从光标所在位置删除到行首;
ctrl+z
把命令放入后台;
ctrl+r
在历史命令中 搜索;
Tab
自动补全目录或者命令
2. 历史命令
<选项>:
- -c:清空历史命令;
- -w:把缓存中的历史命令写入历史命令保存文件 /root/.bash_history
cat .bash_history
可以查看这个文件,默认关机时会执行 history -w
命令;
历史命令默认保存 1000 条,可以在环境变量配置文件 /etc/profile 中进行修改,修改 HISTSIZE
的值;
!n
可以重复执行 history 里第 n 条命令;
!!
重复执行上一条命令;
!字符串
重复执行最后一条已该字符串开头的命令;
3. 输出重定向(很有用)
date > date.log
将时间信息输入到 date.log 文件中,而不是显示输出;
date >> date.log
将时间信息追加到 date.log 文件中,而 > 是覆盖;
date &>> date.log
同时保存正确和错误信息,如果有错误信息;
date >> date.log 2>> error.log
保存正确信息到 date.log,保存错误信息到 error.log;
4. 输入重定向
<选项>:
- -c:统计字节数;
- -w:统计单词数;
- -l: 统计行数;
例如:wc < date.log
或者直接 wc date.log
统计 date.log 文件里的字节数、单词数、行数;
5. 管道符
多命令顺序执行:
1 2 3
| 命令1 ; 命令2 多个命令顺序执行,命令之间没有任何逻辑联系 命令1 && 命令2 逻辑与,只有当命令1正确执行,则执行命令2 命令1 || 命令2 逻辑或,只有当命令1执行不正确,才执行命令2
|
管道符:(命令 1 和 2 有数据传递)
6. 通配符
1 2 3 4 5
| ? :匹配一个任意字符; * :匹配0个或任意多个任意字符,也就是可以匹配任何内容; [ ] :匹配中括号内的任意一个字符,例如:[abc] 代表一定匹配一个字符,或者是a、或者是b、或者是c; [ - ] :匹配中括号内的任意一个字符,- 代表一个范围,例如:[a-z] 代表匹配一个小写字母; [ ^ ] :逻辑非,表示匹配不是中括号内的一个字符,例如:[^0-9] 代表匹配一个不是数字的字符;
|
7. 第一个脚本
a. 首先新建并打开一个文件
1 2 3
| vim hello.sh
vi hello.sh
|
b. 然后编辑内容
c. 脚本执行
1 2 3 4 5 6 7 8 9 10 11
| chmod 755 hello.sh
./hello.sh
/root/hello.sh
bash hello.sh
|
目录切换与查询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| cd ~
cd
cd -
cd ..
cd .
cd /
pwd
|
补充:Linux 目录说明
- 根目录下的
bin
和 sbin
、usr
目录下的 bin
和 sbin
,这四个目录都是用来保存系统命令的;
bin
下的命令所用用户都可以执行,而 sbin
下的命令只有超级用户才可以执行。
dev
目录内是一些硬件文件,没事别动。
etc
目录下是系统的默认配置文件。
lib
目录下是函数库,用的时候可以调用,不用就没必要调用,这样可以避免 Linux 变得臃肿。
proc
和 sys
目录不能直接操作,这两个目录保存的是内存的挂载点,也就是内存的盘符。
tmp
是临时目录。
var
保存系统的可变文档目录。
显示目录下的文件
<选项>:
-a
显示所有文件,包括隐藏文件
-l
显示详细信息(ll
= ls -l
)
-d
查看目录属性
-h
人性化显示文件大小
-i
显示 inode,查看 id 号
获取帮助
查看用户登录信息
1 2 3 4 5 6 7 8 9 10 11
| w
who
last
lastlog
|
文件操作
创建目录
1 2 3 4
| mkdir <目录名>
mkdir -p xiaomi/redmi
|
目录复制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| cp <选项> <原文件或目录> <目标目录>
cp -p <原文件或目录> <目标目录>
cp -d <原文件或目录> <目标目录>
cp -r <原文件或目录> <目标目录>
cp -a <原文件或目录> <目标目录>
cp -rf folder1/* folder2
|
目录移动
目录重命名
文件/目录删除
1 2 3 4 5
| rm <文件名>
rm -rf <目录名>
|
参考:
- linux 下文件夹的创建、复制、剪切、重命名、清空和删除命令
创建软链
1 2 3 4 5 6 7 8
| ln -s <原文件> <目标文件>
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
rm 软链
|
搜索文件/命令/字符串
搜索文件
locate
find
搜索条件:
-name
: 按文件名索搜,只显示文件名一模一样的文件
-iname
: 不区分大小写
通配符:(放在搜索格式结尾)
*
: 匹配任意内容
?
: 匹配任意一个字符
[]
: 匹配任意一个中括号内的字符
-user <用户名>
: 按照所有者搜索
-nouser
: 查找没有所有者的文件
-mtime <num>
: 修改文件内容时间
-atime <num>
: 文件访问时间
-ctime <num>
: 改变文件属性时间
-10
: 10 天内修改的文件
10
: 10 天当天修改的文件
+10
: 10 天前修改的文件;
-size <num>
: 按文件大小查找
-10k
: 小于 10KB 的文件 / -10M
:小于 10MB 的文件(注意大小写)
10k
: 等于 10KB 的文件
+10k
: 大于 10KB 的文件;
-inum <节点数>
: 按 i 节点查找;(ls -i
查看文件的 i 节点)
例子:
find /etc -size +20k -a -size -50k -exec ls -lh {} \
解释:
- 查找
/etc
目录下大于 20KB 小于 50KB 的文件,
-a
: and 逻辑与,两个条件都满足,
-o
: or 逻辑或,两个条件满足一个即可,
-exec <命令> {} \
: 对搜索结果执行操作;
搜索命令
whereis
选项:
-b
: 只查找可执行文件;
-m
: 只查找帮助文件;
which
搜索字符串
选项:
-i
: 忽略大小写;
-v
: 排除指定字符串,也就是取反;
压缩与解压
.zip 格式压缩(可以压缩目录和文件)
1 2 3 4 5 6 7 8
| zip <压缩文件名> <原文件>
zip -r <压缩文件名> <原文件夹>
unzip <原文件>
|
.gz 格式压缩(可以压缩目录和文件)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| gzip <原文件>
gzip -c <原文件> > <压缩文件>
gzip -c meizu > meizu.gz
gzip -r <目录>
gzip -d <压缩文件名>
gunzip <压缩文件名>
|
.bz2 格式压缩(只可以压缩文件)
1 2 3 4 5 6 7 8 9 10 11
| bzip2 <原文件>
bzip2 -k <原文件>
bzip2 -d <压缩文件名>
bunzip2 <压缩文件名>
|
打包命令 tar(会保留原文件)
1 2 3 4 5 6 7 8 9
| tar -cvf <打包文件名> <原文件>
tar -cfg meizu.tar meizu
tar -xvf <打包文件名>
tar -xvf meizu.tar
|
选项:
-c
: 打包
-v
: 显示过程
-f
: 指定打包后的文件名
-x
: 解打包
.tar.gz 格式压缩(可以压缩目录和文件)(会保留原文件)
其实 .tar.gz
格式是先打包为 .tar
格式,再压缩为 .gz
格式。
1 2 3 4 5
| tar -zcvf <压缩包名.tar.gz> <原文件> (<另一个原文件>)
tar -zxvf <压缩包名.tar.gz>
|
选项:
-c
: 压缩为 .tar.gz
格式
-x
: 解压缩 .tar.gz
格式的文件
.tar.bz2 格式压缩(可以压缩目录和文件)(会保留原文件)
其实 .tar.bz2 格式是先打包为 .tar 格式,再压缩为 .bz2 格式。
1 2 3 4 5 6 7 8 9 10 11 12 13
| tar -jcvf <压缩包名.tar.bz2> <原文件>
tar -jxvf <压缩包名.tar.bz2>
tar -jxvf <压缩包名.tar.bz2> -C <其他目录>
tar -jxvf meizu.tar.bz2 -C /tmp/;
tar -jtvf <压缩包名.tar.bz2>
|
选项:
-j
: 压缩为 .tar.bz2
格式
-x
: 解压缩 .tar.bz2
格式的文件
-t
: 查看里面的内容
查询和挂载
查询命令
挂载命令
1
| mount <-t 文件系统> <-o 特殊选项> <设备文件名> <挂载点>
|
<选项>:
-t
文件系统:加入文件系统类型来指定挂在的类型,可以 ext3、ext4、iso9660 等文件系统;
-o
特殊选项:可以制定挂载的额外选项;
挂载光盘
1 2 3 4 5 6 7 8 9 10 11 12 13
| mkdir /mnt/cdrom
mount -t iso9660 /dev/sr0 /mnt/cdrom
mount -t iso9660 /dev/cdrom /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
|
卸载光盘命令(挂载后必须卸载)
1 2 3 4 5 6 7 8
| umount <设备文件名或挂载点>
umount /dev/sr0
umount /mnt/cdrom
|
挂载 U 盘
1 2 3 4 5 6 7 8
| fdisk -l
mkdir /mnt/usb
mount -t vfat /dev/ <U盘设备文件名> /mnt/usb
|
关机 / 重启 / 退出登录
关机命令
1 2 3 4 5 6 7 8 9 10 11
| shutdown -h now
halt
poweroff
init 0
|
重启命令
1 2 3 4 5 6 7
| shutdown -r now
reboot
init 6
|
退出登录命令
附录:
Systemd 常用命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| systemctl start <单元>
systemctl stop <单元>
systemctl restart <单元>
systemctl reload <单元>
systemctl status <单元>
systemctl is-enabled <单元>
systemctl enable <单元>
systemctl disable <单元>
|
参考:
- systemd-ArchWiki
- Systemd 入门教程:命令篇
Nginx 常用命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
nginx -c /etc/nginx/nginx.conf
nginx
nginx -s stop
nginx -s quit
pkill -9 nginx
nginx -s reload
nginx -t
|
参考:
- systemd-ArchWiki
- Systemd 入门教程:命令篇
firewalld 常用命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| firewall-cmd --version
firewall-cmd --state
firewall-cmd --list-ports
firewall-cmd --zone=public --list-ports
systemctl start firewalld.service
systemctl restart firewalld.service
systemctl enable firewalld.service
systemctl disable firewalld.service
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload
|