文章目录
Linux 导读
linux 一般用来做服务器的操作系统
Ubuntu 里的命令行叫 terminal,也叫终端
linux 只有一个根目录,没有盘符的概念
linux 对后缀的概念并不严谨,有的文件都没有后缀
一般带后缀的是文件,不带后缀的是文件夹
shell 是用来解析命令的,它接收用户命令然后调用相应的程序执行
Linux 指令
指令后面要加空格
linux 指令要区分大小写,不管是一个单词还是一个字母
在输入文件名时按下 tab 可进行自动补全,但如果有重复的话则无法补全,可再按一下 tab,会罗列出所有候补的文件
方向键 ↑
自动输入上一个命令
方向键 ↓
切换下一个命令,常与 ↑
配合使用
管道,就是一个竖线 |
,意思是将前面指令的输出作为后面指令的输入
路径跳转指令
- 查看当前所在路径:
pwd(print work directory)
- 打开某个文件夹(不能打开文件):
cd(change directory)
- 打开上一级路径:
cd ..
- 回到 home 目录:
cd ~
,波浪号~
就代表 home - 返回上一级目录:
cd -
再输入一次返回刚才的目录:cd -
- 打开多级目录:
cd home/desktop
,打开 home 里的 desktop 文件中间要用斜杠隔开
如果在路径最前面加 /
的话,就是从根目录开始,斜杠 /
就代表根目录,如 cd /home/webking
,先从根目录进入到 home 再进入 webking
文件相关指令
文件查看
- 列出当前所在路径下所有文件:
ls(list)
- 以竖排方式列出当前路径文件:
ls -l
- 显示隐藏文件:
ls -a
- 列出所有以 .odt 为结尾的文件:
ls *.odt
- 列出所有以 1 开头的文件:
ls 1*
- 列出前缀必须是 4 个字符,并且结尾是 .odt 的文件:
ls ????.odt
- 列出开头是a,第二个字符是 abc 中的一个,并且后缀是 .odt 的文件:
ls a[abc].odt
- 以 kb 的单位显示大小:
ls -l -h
星号 *
代表 0 个或者多个字符,而问号 ?
代表一个字符,例如:
中括号 []
也代表一个字符,中括号表示包含中括号里的字符的文件,就选出来
其中括号里可以填数字,字母或者范围如 a-z,1-10 都可以
ls
后也可以跟相对路径或绝对路径,绝对路径要加 /
:
指令可可以组合使用 ls -l -a
,也可以写一块ls -la
,组合使用的指令先后顺序不影响
文件操作
基本文件操作
- 创建文件:
touch
,要带上后缀 - 创建文件夹:
mkdir(make directory)
,在创建的文件名字前加个点.
就能创建隐藏文件 - 删除文件:
rm(remove)
,该命令不能删除文件夹 - 删除文件夹:
rm -d
,rm
是命令,-d
是选项,代表告诉系统这是个 directory,后面跟的参数,也就是要删除的文件夹名 - 移动文件(剪切):
mv(move)
如move test.txt home
,中间用空格隔开,后面可以用相对路径也可以用绝对路径/home/desktop
文件复制
复制命令:cp
如 cp 123.txt home
,把 123.txt 复制到 home 文件,或 cp 123.txt .
,后面跟点 .
,代表当前目录,注意复制文件夹的时候要添加选项 -r
,如 cp -r 123 home
;
文件重命名
在 mv
和 cp
命令后加 /name
可以实现重命名操作,如:
mv 123.txt home/124.txt
,将 123.txt 移动到 home 文件并改名为 124.txt
创建快捷方式
创建某个文件的快捷方式 ln /home/abc.txt
,将会在当前目录创建一个 abc.txt 的快捷方式,也叫软链接
find 文件搜索
- 找出 home 文件下叫 123.txt 的文件:
find home -name 123.txt
- 忽略大小写,根据名字搜索:
find home -iname 123.txt
- 根据文件类型搜索:
find home -type f(文件)/d(路径)/l(软链接)
- 根据 id 搜索,
find /home -inum 778778
条件连接符 -a(and)
,-o(or)
,如 find home -type f -a -name 12*
locate
搜索,直接全局进行搜索,不管是文件还是文件夹,并且只要名字带有所给的参数内容都会搜索出来
文件预览指令
cat
和 more
命令,都是在命令行中直接显示某个文件的内容,但 more
会进行分页显示,语法 cat 123.txt
预览文件时按 space 下一页,B 上一页
cat -b
会显示行号(会忽略空行),-n
不会忽略空行
grep 文件内容搜索
grep
在文件中进行内容搜索,类似于 crtl+F
例如 grep -n abc 123.txt
,在 123.txt 中搜索带有 abc 字符的行并显示行号
反相内容搜索 grep -v abc 123.txt
,搜索不带 abc 的行
选项尖括号 ^
代表以某个字符开头,要放在字符前面
$
符号代表以某个字符结尾,要放在字符后面,如 grep ^s 123.txt
grep s$ 123.txt
,这样只对 s 开头或 s 结尾的行进行搜索,s 在中间的行是不会进行搜索的
文件权限修改
只有文件所有者和超管可以修改权限
r
可读权限
w
可写权限
x
可执行权限
- 给 123.txt 增加(减少)一级权限:
chmod u+x 123.txt
- 去掉 123.txt 所属人的读写权限和所属组的读权限:
chmod u-rw
,g-r 123.txt
, - 权限修改为 rwx(可读可写可执行):
chmod u=rwx 123.txt
,
用数字表示权限
r=4 w=2 x=1,可相加,如 rw=6
r 为什么等于 4 ?因为 rwx 可以看做一个二进制数,哪位有权限哪位就是 1,只有读权限那就是 100,二进制就是 4
chmod 446 123.txt
三个数字分别代表所属人,所属组和其他人,该句的含义是修改所属人的权限为 4,也就是 r,所属组也是 4,其他人是 6(4+2),也就是 r+w,可读和可写权限
- 修改所属人:
chown
- 修改所属组:
chgrp
例如 chown user1 123.txt
,将 123.txt 的所属人修改为 user1
用户相关指令
用户操作
- sudo + 指令意味着以超管的权限执行命令
- 添加一个用户:
sudo useradd 用户名
- 给用户添加密码:
sudo passwd 用户名
- 创建用户并给该用户创建 home 下目录:
useradd -m 用户名
, - 给root设置密码:
sudo passwd root
,先给 root 设置密码才能登陆- root - 切换用户:
su 用户名
,切换为 root 用户:su root
- 退出 root 用户:
exit
或者 ctrl+d - 切换为 user 用户并回到 home 目录:
su -用户名
,su -user
- 删除 user1 用户:
userdel user1
- 删除 user1 并删除它的家目录:
userdel -r user1
- 强制删除 user1:
userdel -f user1
查看用户信息
- 查看 id 信息:
id
,或者使用id xxuser
- 查看当前登陆用户:
whoami
- 查看所有用户:
who
用户组操作
需要在 root 下操作用户组
- 创建group1用户组:
groupadd group1
- 用户组重命名:
groupmod -n newname group1
- 删除用户组:
groupdel
影子文件
影子文件 /etc/shadow 和 etc/gshadow
/etc/shadow 是本机用户密码文件
/etc/gshadow 是 /etc/group 的加密资讯文件,比如用户组(Group)管理密码就是存放在这个文件
其他指令
终端操作指令
- 清空整个 cmd 页面:
clear
- crtl+C 提前终止命令
- 帮助命令:
rm --help
:打印所有和rm
有关的命令或者使用man(manual) rm
查看命令位置
which
查看命令所在位置,我们输入的命令其实是一个系统程序,它存放在某个系统文件中,但 which cd
无效,因为 cd
命令是 shell 内置命令
echo 回响命令
直接在控制台输入 echo abc
我们会看到下面一行输出了 abc 字符,我们可以将 abc 输入到某个文件内,如 echo abc > 123.txt
,代表将 abc 输入到 123.txt,但是会直接覆盖所有内容,只剩 abc,我们可以用两个 >>
,这样 abc 会添加到内容的末尾
其他的命令也可以用 >
输入到某个文件,如 ls > 123.txt
,会直接将 ls
命令打印的内容输入到 123.txt,只要这个命令是有结果的,用 >
就可以将它的结果输出,如果 123.txt不存在,则会直接创建一个 123.txt