绝对路径就是从根目录算起的,相对路径就是从当前文件所在目录算起的路径叫相对路径。例如:
/home/python/Desktop
就是绝对路径
./test/hello
就是相对路径
终端命令格式说明
command [-options] [parameter]
每项信息的说明:
command:命令名, 比如: ls、pwd
[-options]:选项,可以有零个、一个或者多个选项,多个选项可以合并,比如使用的 -r 就是选项。
[parameter]:参数,可以有零个、一个 或者 多个参数, 比如: touch 文件名、mkdir 目录名、cd 目标目录(路径),这些文件名和目录名都是参数。
[]:代表可选
选项可以分为短选项和长选项:
短选项的格式: '-'后面接单个字母, 比如:-r
长选项的格式: '–'后面接单词, 比如:–help
对于命令,它的选项和参数一般情况下没有顺序要求,但是scp命令是必须先选项然后在跟上参数。
man 命令
命令 --help
–help和man是查看命令帮助的两种方式,主要是查看命令所对应的选项信息。
ctrl+a可以直接把光标定位到输入的命令的最前方
ctrl+e可以直接吧光标定位到输入的命令的最后方
ls
命令只能查看本级目录下的文件。
ls -l
以列表方式显示
ls -h
把大小单位显示出来,默认是字节,超过1024字节则按K显示,超过1024K则按M显示,以此类推
ls -a
显示隐藏文件
tree
命令可以以树状结构展示本级及本级目录之下的所有文件和文件夹。(ubuntu默认可能没有这个命令,需要sudo apt-get install tree
安装)
tree 目录
则可以直接查看目录下的所有文件。
pwd
命令可以查看当前所在的工作目录
命令 | 说明 |
---|---|
cd 目录 |
切换到指定目录 |
cd ~ |
切换到用户家目录 |
cd .. |
切换到上一级目录 |
cd - |
切换到上一次使用的目录 |
cd . |
切换到当前目录 |
命令 | 说明 |
---|---|
touch 文件名 | 创建指定文件 |
rm 文件 | 删除文件 |
rm -r 目录名 | 以递归的方式将目录以及目录下的全部文件删除 |
rm -i | 交互式提示 |
rm -f | 如果文件不存在,也不提示 |
mkdir 目录名 | 创建一个目录 |
mkdir -p | 创建所依赖的文件夹,例如mkdir -p AA/BB/CC,会自动创建AA和BB和CC目录 |
rmdir 目录名 | 只能删除空目录 |
总结:
创建嵌套文件夹使用 mkdir –p
嵌套目录
删除空目录使用 rmdir 目录名
或者 rm –d 目录名
删除非空目录使用 rm –r 目录名
命令 | 说明 |
---|---|
cp 文件名 | 拷贝文件 |
cp -r 目录名 | 以递归方式拷贝目录,cp拷贝目录必须加-r参数 |
cp -a | -a参数表示保留原文件的权限 |
mv | 移动文件、移动目录、文件重命名 |
总结:
拷贝文件防止覆盖使用 cp –i
操作
拷贝文件夹使用 cp –r
操作,拷贝文件夹并且文件权限不丢失使用 cp –a
操作。
移动文件防止覆盖使用 mv –i
操作
移动文件夹直接使用 mv
即可,mv
还可以给文件和文件夹重命名。
重定向也成为输出重定向,把在终端执行显示内容重定向到文件。
命令 | 说明 |
---|---|
> | 如果文件存在会覆盖原有文件内容,相当于文件操作中的‘w’模式 |
>> | 如果文件存在会追加写入文件末尾,相当于文件操作中的‘a’ 模式 |
cat命令,适合查看小型文件
more命令,可以分屏查看大型文件
more命令操作键说明:
操作键 | 说明 |
---|---|
空格 | 显示下一屏 |
回车 | 显示下一行 |
b | 显示上一行 |
v | 进入vim模式 |
q | 退出 |
管道(|):一个命令的输出可以通过管道做为另一个命令的输入,可以理解成是一个容器,存放在终端显示的内容。
管道(|)一般结合 more 命令使用,即一条命令运行完,结果太多不好查看,管道符后面接more命令,则可以更好的查看上一条命令的输出内容。
命令 | 说明 |
---|---|
ln -s 源文件 软链接文件 | 创建软链接,类似Windows的快捷方式,源文件必须使用绝对路径 |
ln源文件 硬链接文件 |
软链接注意点:
如果软链接和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。
删除源文件则软链接失效
可以给目录创建软链接
硬链接注意点:
创建硬链接使用相对路径和绝对路径都可以
删除源文件,硬链接还可以访问到数据。
创建硬链接,硬链接数会加1,删除源文件或者硬链接,硬链接数会减1。
创建软链接,硬链接数不会加1
不能给目录创建硬链接
硬链接的作用是可以给重要文件创建硬链接,能够防止文件数据被误删。
命令 | 说明 |
---|---|
grep -i | 忽略大小写 |
grep -n | 显示匹配行号 |
grep -v | 显示不包含匹配的所有行 |
正则表达式 | 说明 |
---|---|
grep ‘^J’ /var/log/syslog | 过滤以J开头的 |
grep ‘s$’ /var/log/syslog | 过滤以s结尾的 |
命令 | 说明 |
---|---|
find -name | 根据文件名(包括目录名)去查找 |
find . -name ‘*a’ | 在当前目录下查找以a结尾的文件或文件夹,*是通配符,代表0个或多个任意字符 |
find . -name ‘?a’ | 在当前目录下查找名字为“?a”的文件或文件夹,?是通配符,代表任意一个字符 |
find . -name ‘*abc"’ | 在当前目录下查找名字包含abc字符串的文件或文件夹【最常用】 |
通配符不仅能结合 find 命令使用,还可以结合其它命令使用, 比如: ls、mv、cp
等,这里需要注意只有 find 命令使用通配符需要加上引号。
tar命令用于压缩解压缩,支持gz和bz2两种压缩格式
命令参数 | 说明 |
---|---|
-c | 打包 |
-v | 显示打包或解包的详细信息 |
-f | 指定文件名,必须放到所有选项后面 |
-z | 使用gz格式压缩或解压缩 |
-j | 使用bz2格式压缩或解压缩 |
-x | 解包 |
-C | 解压缩到指定目录 |
例如:
tar -xzvf test.tar.gz -C /home/security
tar -czvf test.tar.gz 1.txt 2.txt 3.txt
zip和unzip命令用于压缩和解压缩zip格式的压缩包
命令 | 说明 |
---|---|
zip | 压缩 |
unzip | 解压缩 |
unzip -d | 解压缩到指定目录 |
例如:
zip test.zip 1.txt 2.txt 3.txt
unzip test.zip -d /home/security
总结:
压缩文件尽量使用.gz格式,因为占用空间较少。
使用zip命令压缩的文件占用空间比较多, 当时比较通用,操作更加简单。
权限说明
权限 | 说明 |
---|---|
r | 读 |
w | 写 |
x | 执行 |
- | 无任何权限 |
角色说明
角色 | 说明 |
---|---|
u | user,文件所有者 |
g | group,文件所有者所在的用户组 |
o | other,其他用户 |
a | all,所有用户 |
使用chmod命令可以修改文件的权限,该命令有2种写法:字母法和数字法。
子母法:
操作符 | |
---|---|
+ | 增加权限 |
- | 撤销权限 |
= | 设置权限 |
例如:
chmod u+w 1.txt
chmod g-w 1.txt
chmod o+x 1.txt
chmod u=rwx 1.txt
数字法:
权限 | 权限值 |
---|---|
r | 4 |
w | 2 |
x | 1 |
x | 0 |
例如:
chmod 777 1.txt
who
查看所有的登录用户
whami
查看当前使用的用户
passwd
命令用于修改用户的密码,后面不指定用户名的时候,默认修改当前登录用户的密码。
命令 | 说明 |
---|---|
useradd -m | 自动创建用户的家目录,家目录的名字就是用户名 |
useradd -g | 指定用户所属的用户组,不指定则默认创建和用户名同名的用户组 |
命令 | 说明 |
---|---|
userdel -r xiaoming | 删除xiaoming这个用户,-r参数代表同时删除这个用户的家目录 |
查看用户是否创建成功,可以cat /etc/passwd这个文件
查看用户组是否创建成功,可以cat /etc/group这个文件
passwd文件中的每项信息说明,以root❌0:0:root:/root:/bin/bash为例:
第一个:用户名
第二个:密码占位符
第三个:uid, 用户id
第四个:gid, 用户所在组id
第五个:用户描述, 可选,
第六个:用户的主目录所在位置
第七个:用户所用 shell 的类型,一般由bash或者sh,默认不设置是sh类型
group文件中的每项信息说明, 以laowang❌1001:为例:
第一个:用户组名
第二个:用户组密码占位符,一般Linux系统的用户组都没有密码的
第三个:组id
使用id
命令。例如id laowang
直接使用su 用户名
即可完成用户的切换
使用usermod命令可以修改用户的组,也可以给用户设置附加组:
命令 | 说明 |
---|---|
usermod -G | 给用户设置一个sudo附加组 |
usermod -g | 修改用户组 |
root@linux:/home/xiaoming# usermod -G sudo xiaoming
root@linux:/home/xiaoming# id xiaoming
uid=1000(xiaoming) gid=1000(xiaoming) groups=1000(xiaoming),27(sudo)
root@linux:/home/xiaoming#
命令 | 说明 |
---|---|
gpasswd -a xiaoming sudo | 给小明添加sudo附加组,xiaoming必须在前,sudo在后 |
gpasswd -d xiaoming sudo | 给小明删除sudo附加组,xiaoming必须在前,sudo在后 |
groupadd test
代表用来创建(添加)一个用户组"test"
groupadd -m -g test xiaoming
代表创建一个用户xiaoming,并指定xiaoming用户组是test
groupdel test
代表删除用户组“test”
ssh -p 22 [email protected]
以上命令中-p代表指定端口号,security代表用户,@后面是服务端的ip地址|
把本地文件拷贝到远端目录:scp -r 本地文件 [email protected]:/home/security
把远端文件拷贝回本地:scp -r [email protected]:/home/security/1.txt 本地目录
vim 是一款功能强大的文本编辑器,也是早年 Vi 编辑器的加强版,它的最大特色就是使用命令进行编辑,完全脱离了鼠标的操作。
:w | 保存 |
:wq | 保存退出 |
:x | 保存退出 |
:q! | 强制退出 |
:/张三 | 搜索张三,按n从光标位置向下查找下一个结果,按N从光标位置向上查找下一个结果 |
:%s/张三/李四/g | 全局将张三替换成李四 |
:开始行数,结束行数s/张三/李四 | 将行数范围内局部张三替换成李四 |
:set nu | 显示行号 |
命令 | 说明 |
---|---|
yy | 复制光标所在行内容 |
p | 粘贴 |
dd | 删除光标所在行内容 |
V | 选中光标所在行内容 |
u | 撤销 |
ctrl + r | 反撤销 |
> | 向右缩进 |
< | 向左缩进 |
. | 重复上一次命令 |
G | 把光标移到最后一行 |
gg | 把光标移到第一行 |
dG | 删除光标所在行及以下全部内容 |
数字+G | 回到指定行 |
shift+6 | 回到当前行的行首 |
shift+4 | 回到当前行的末尾 |
ctrl+f | 下一屏 |
ctrl+b | 上一屏 |
sudo apt-get install xxx
这条命令代表在线安装xxx软件。
sudo apt-get remove xxx
这条命令代表卸载xxx软件。
命令 | 说明 |
---|---|
dpkg -i xxx.deb | 安装xxx.deb软件 |
dpkg -r xxx.deb | 卸载xxx.deb软件 |
两种方法,下述命令中,xxx填写你要查找的软件包名:
sudo apt list | grep 'xxx'
sudo dpkg -l | grep 'xxx'