6.Linux命令
- ls 查看目录的内容 常用ls -la/home 显示目录下的所有文件的详细信息,详细信息第一个内容有四块,d或者-开头rwx
- clear 清屏
- cd 切换文件路径
- pwd 显示当前文件夹
- mkdir 创建文件夹
- touch 创建文件
- rm 删除文件或者文件夹
- mv 移动文件或者对文件重命名
- ">" 输出重定向
- "|" 管道
- cp 拷贝
- chmod 更改权限
- find 查找文件
- grep 查找文件内容
- reboot 重启
- shutdown 关机
- who 查看当前登录用户
- exit 退出登录用户
- passwd 设置密码
- su 切换管理员
- which 查看命令的位置
- ln 链接
- tar 打包,解包
- zip/gzip/bzip2 压缩,解压缩
6.1cd 切换文件夹
cd /home 绝对路径 以根目录开头
cd admin 想等路径,不以根目录开头
cd .. 返回上级目录
cd ~ 到自己的家 /home/admin
cd - 电视回看功能
注意:..代表上级目录,.代表当前目录
6.2pwd 查看当前目录
对应英文print work directory
6.3ls 查看目录的内容
ls 查看目录的内容
ls -l 显示详细列表,更快捷的可以用ll表示 ls -l ==ll
ls -lh 把文件的带下以人性化的方式显示
ls -a 显示所有文件,包含隐藏文件、隐藏文件夹,隐藏文件是.开头的文件
ls tupian 查看相对路径下的tupian文件夹下的内容
ls / 查看根目录下的文件,不用切换目录cd
ls -la / 查看根目录下所有文件的详细信息
通配符
*匹配多个字符
?匹配一个字符
[ ]括号里面的字符随机匹配一个
转义字符,将通配符当成普通的符号看
ls *txt 查看当前目录下所有以txt结尾的文件
6.4mkdir 创建文件夹
英文名:make diretory
只要没有写绝对路径,都是默认的相对路径
mkdir tupian 在当前目录下创建文件夹
mkdir /home/admin/tupian 以绝对路径创建文件夹
mkdir /home/admin/a/tupian -p 如果上级目录不存在,加上-p自动创建父目录
mkdir shipin/nan shipin/nv
mkdir wendang/{nan,nv} 同时创建多个文件夹
mkdir .ren 以.开头,创建的是隐藏文件夹
由此发现..保存的是上级文件
6.5touch 创建文件
touch abc.txt 在当前目录下创建 如果指定了目录,必须保证上级目录存在
touch .abc 创建隐藏文件
- Linux系统中没有严格的后缀(格式),所以创建文件时可以命名为人同意的文件名
6.6gedit 打开文件的命令
gedit abc.txt
6.7rm 删除文件或者目录
rm abc.txt 删除文件
rm a -r 加上-r表示删除的是目录
rm * -r 删除所有的内容,但是.和..不能删除
drwxrwxr-x d 表示文件夹 -表示文件
rwx rwx r-x r 可读 w 可写 x 执行
第一组指文件的拥有者的权限,第二组代表文件拥有的组的权限,第三组代表其他用户的权限
tmp这个目录全部的用户都有rwx权限
6.8clear 清屏
6.9自动补全
在敲出文件/目录/命令的前几个字母后,按下tab键
- 如果输入没有歧义,系统会自动补全
- 如果还存在其他文件/目录/命令,再按一下tab键,系统会提示可能存在的命令
小技巧:
ctrl+l清屏
按上/下光标可以在曾经使用过的命令之间来回切换
如果想要退出选择,并且不想执行当前选中的命令,可以按ctrl+c
ctrl+shift+= 放大总段窗口的字体显示
ctrl + - 缩小终端窗口的字体显示
6.10man 终端命令
man command 查阅command命令的使用手册
man是manual的缩写,是Linux提供的一个手册,包含绝大多数的命令,函数的详细使用说明
使用man时的操作键
操作键 | 功能 |
---|---|
空格键 | 显示手册的下一屏 |
Enter键 | 一次滚动手册页一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出 |
/word | 搜索word字符串 |
6.11--help
command --help显示command命令的帮助信息
6.12cp 拷贝
拷贝一个文件,在指定目录下粘贴文件,若目录下已经有该文件,会自动覆盖之前的文件
cp 1.txt a 把1.txt复制到a这个文件夹下
cp 1.txt 2.txt 把1.txt复制到2.txt,若当前目录下没有2.txt则会自动创建一个文件
cp a a_bak -r 拷贝文件夹
常用选项说明
选项 | 含义 |
---|---|
-a | 该选项通常在复制目录时使用,它保留连接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。 |
-f | 覆盖已经存在的目标文件而不提示。默认直接覆盖,所以可以不用加。 |
-i | 交互式复制,覆盖文件前给出用户提示要求用户确认。 |
-r | 若给出的源文件时目录文件,则cp递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。 |
-v | 显示拷贝进度。 |
注意:cp命令需要看后面一个参数到底存不存在,存在的话则将其第一个参数拷贝过去第二个参数的文件夹下,不存在则创建一个新的文件名字为第二个参数。
需要加常用选项的有
rm -r 删除文件夹
cp -r 拷贝到文件夹
mkdir -p 目录不存在则自动生成
6.13mv 移动、重命名
用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名
mv 1.txt abc.txt 同样是移动到当前目录下,可以当作是重命名
mv abc.txt nv 将abc.txt移动到nv这个文件夹下
mv abc.txt nv/abc_bak.txt 将abc.txt移动到nv这个文件夹下并且改名为abc_bak.txt
mv abc nv 将abc文件夹移动到nv文件夹下
注意:移动文件夹的时候不用加-r也不会报错
常用选项
选项 | 含义 |
---|---|
-f | 禁止交互式操作,如有覆盖也不会给出提示 |
-i | 确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免错误覆盖文件 |
-v | 显示移动进度 |
mv 4.txt /home/admina 将4.txt移动到home文件夹下并且改名为admina,这样会提示权限不够
mv 4.txt /home/admin 将4.txt移动到admin目录下,运行不会报错
6.14输出重定向命令: >
Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中
ls >test.txt test.txt如果不存在,则创建,存在则覆盖其内容
ls的结果一般会显示到终端上,现在加上>会将显示的结果存放到test.txt中,且覆盖
注意:>输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部
6.15cat 查看或者合并文件内容
cat test1.txt 在终端上查看test1.txt的内容
cat test1.txt test2.txt 查看两个文件的内容,且先显示test1.txt
cat test1.txt test2.txt >test3.txt 合并两个文件的内容到第三个文件中,并且终端上不显示
若一个文件中的内容特别多,cat命令会直接翻到最后一行,不方便我们的查看
6.16more 顺序查看文件
more 1.txt 顺序从上往下查看文件,按enter/空格可以往下翻,enter是一行一行翻,空格是一页一页翻,按b往回翻页,按q键退回,翻到最尾就不能再翻了,会自动返回终端。
6.17管道 : |
管道:一个命令的输出可以通过管道作为另一个命令的输入
管道我们可以理解为显示中的管子,管子的一头塞东西进行,另一头取出来,这里的"|"的左右分为两端,左端塞东西(写),右端读取东西(读)。
ls / | more 管道里面 不能往回翻,因为这不是一个文件,只是将左边的结果返回给右边的命令进行处理
6.18建立链接文件:ln
Linux链接文件类似于Windows下的快捷方式。
链接文件分为软链接和硬链接。
软链接:不占用磁盘空间,源文件删除则软链接失效。
硬链接:硬链接只能链接普通文件,不能链接目录
使用格式:
硬链接
ln 源文件 链接文件
软链接
ln -s 源文件 链接文件
例子:
软链接本身不存储内容,只记录源文件的名称
ln -s 1.txt 1_link 给1.txt创建一个软链接,只记录名称,相当于windows的快捷方式
ln -s 1,txt ~.1_link 给其他目录创建一个软链接,如果源文件不写绝对路径,软链接指向的文件是不存在的
ln -s /home/admin/1.txt ~/1_link
ln -s abc abc_link 给目录创建软链接
如果没有-s表示建立硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s是更常见的形式。
注意:如果软链接的文件和源文件不在同一个目录,源文件需要使用绝对路径,不能使用相对路径。
将软链接的源文件删除以后,会发现链接文件会标红,再创建一个相同名字的源文件,链接文件又恢复正常。
创建链接以后,操作链接文件和操作源文件的效果是一样的。
硬链接相当于把源文件的内容全部拷贝过去,本身占用空间,能与源文件保持同步的变化,ll查看的第二项的数字就是文件同步的数量,删除源文件对链接文件不会产生影响。
6.19grep 查找文件内容
grep hello test.txt 按行搜索test.txt中包含hello的行
grep -n hello test.txt 会多显示在哪一行
grep -i hello test.txt 对hello不区分大小写
grep -v hello test.txt 反向查找
grep -n hello . -r 查找一个目录下的文件里面是否存在hello,需要加上-r
常用选项说明:
选项 | 含义 |
---|---|
-v | 显示不包含匹配文本的所有行 |
-n | 显示匹配行及行号 |
-i | 忽略大小写 |
grep搜索的内容可以是正则表达式
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特殊字符、及这些特定字符的组合组成一个“规则字符串”,这个规则字符串用来表达对字符串的一种过滤逻辑。
grep常用正则表达式:
参数 | 含义 |
---|---|
^a | 行首,搜索以m开头的行:grep -n '^a' 1.txt |
ke$ | 行尾,搜索以ke结束的行:grep -n 'ke$' 1.txt |
[Ss]igna[LI] | 匹配[]里面的一系列字符串中的一个,搜寻匹配单词signalsignaLSignalSignaL的行 |
. | 点匹配一个非换行符的字符,匹配e和e之间又任意一个字符,可以eee,eae,eve,但是不匹配ee,eaae。grep -n 'e.e' 1.txt |
6.20find 查找文件
通常用来在特定目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。
常用用法:
命令 | 含义 |
---|---|
find . -name test.sh | 查找当前目录下所有名为test.sh的文件 |
find . -name '*.sh' | 查找当前目录下所有后缀为.sh的文件 |
加上通配符的应用需要加引号
find ~ -name '*txt' 找到家目录下所有以txt结尾的文件
find / -type f -size +1G 找到根目录下大于1G的文件(+表示大于,-表示小于)
6.21归档管理:tar
此命令可以将一系列文件归档到大文件中,也可以把档案文件解开以恢复数据
tar使用格式tar[参数] 打包文件名 文件
tar cvf a.tar *.txt 打包
tar xvf a.tar -C atar 解包
tar命令很特殊,其参数前面可以使用“-”,也可以不使用
常用参数:
参数 | 含义 |
---|---|
-c | 生成档案文件,创建打包文件 |
-v | 列出归档解档的详细过程,显示进度 |
-f | 指定档案文件名称 |
-t | 列出档案中包含的文件 |
-x | 解开档案文件 |
注意:需要指定文件名则必须加f,且f一般放到最尾
例子:
tar cvf a.tar 1.txt 2.txt
f后面的第一个参数是打包的文件名,后面的都是要打包的文件
tar tf a.tar 列出包里面的文件
tar xvf a.tar 解包,如果没写目录,则将包里面的文件解开放到当前目录
tar xvf a.tar -C tar 写上目录,且这个目录必须存在,不然会报错,目录存在则解开包里面的文件放到此目录下
6.22gzip 压缩
tar cf a.tar * 打包当前目录下的所有文件,目录下会生成a.tar文件
gzip -r a.tar 压缩a.tar文件,生成a.tar.gz
gzip -d a.tar.gz 先解压,得到a.tar文件
mkdir ~/atar 创建目录
tar xf a.tar -C ~/atar 解包到指定文件夹
一般需要一步到位用
tar czf b.tar.gz * 打包加压缩
tar zxf b.tar.gz -C btar 解压解包到btar目录下
6.23文件压缩解压:bzip2
tar jcf j.tar.bz2 *txt 生成j.tar.bz2的压缩文件
tar xjf j.tar.bz2 -C jtar 解压到jtar目录下
6.24zipunzip 压缩解压
zip -r zz *txt 这个会自动生成扩展名,生成zz.zip文件
unzip -d zz zz.zip 若目录不存在,则自动生成一个zz文件夹,将zz.zip解压到zz文件中
压缩率:zip<gzip<bzip2
通用性:zip>gzip>bzip2
2.25which查看位置命令
which ls
which zip
用which命令的时候,可以查看命令的位置
注意:windows中一般可执行程序是.exe结尾,但在Linux中,只要其rwx含有x就代表是可执行文件
2.26su切换管理员
su 切换到root 需要输入密码才能切换
su admin 回车直接切换到admin用户
6.27who查看当前登录用户
admin pts/0
admin tty1
pts表示一个终端,tty表示用户登录了操作系统
pkill -kill -t tty1 杀死用户登录的操作系统,需要重新进行登录
6.28reboot 和 shutdown
reboot 不需要权限,shutdown需要root权限
reboot 立即重启操作系统
shutdown -r now 重新启动操作系统,shotdown会给别的用户提示
shutdown -h now 立即关机,其中now相当于时间为0的状态
shutdown -h 20:25 系统在今天的20:25分关机
shutdown -h +10 系统在10分钟后自动关机
6.29用户管理
超级用户可以使用passwd命令为普通用户设置或者修改用户密码,用户也可以直接使用该命令来修改自己的密码,且无需再命令后使用用户名。
useradd admin #创建新用户
passwd 1234 #设置用户密码
userdel -r admin #删除用户
6.30退出登录账户:exit
- 如果是图形界面,退出当前终端
- 如果是使用ssh远程登录,则退出登录账户
- 如果是切换后的登录用户,退出则返回上一个登录账号
6.31修改文件权限:chmod
linux操作系统是多任务用户操作系统,每当我们使用用户名登录操作系统时,linux都会对该用户进行认证、授权审计等操作。操作系统为了识别每个用户,会给每个用户定义一个ID,就是UID。用户组就相当于多个用户的容器,在Linux系统中,用户组也有一个ID、GID。
在Linux操作系统中,root的权限是最高的,相当于windows的administrator,拥有最高权限,能执行任何命令和操作,而其他用户都是普通用户。
chmod修改文件权限又两种使用格式,字母法与数字法
字母法:chmod u/g/o/a +/-/= rwx 文件
u | user表示该文件的所有者 |
---|---|
g | group表示与该文件所有者属于同一组者,即用户组 |
o | other表示其他以外的人 |
a | all表示这三者皆是 |
+/-/= | 含义 |
---|---|
+ | 增加权限 |
- | 撤销权限 |
= | 设定权限 |
rwx | 含义 |
---|---|
r | read表示可读取对于一个目录,如果没有r权限,就意味着不能通过ls查看这个目录的内容 |
w | write表示写入,对于一个目录,如果没有w权限,则不能在目录下创建新的文件 |
x | excute表示可执行,对于一个目录,如果没有x权限,则不能通过cd进入到这个目录 |
例子:
chmod u+x test.txt
chmod u-r test.txt
chmod u=rw test.txt 设定文件所有者权限为rw
chmod u=- test.txt 设置权限为空,什么权限都没有
chmod u+r,g-w,o=x test.txt
chmod a+w test.txt 所有人都添加w权限
数字法:
rwx这些权限也可以通过数字来代替
字母 | 说明 |
---|---|
r | 读取权限,数字代号为"4" |
w | 写入权限,数字代号为"2" |
x | 执行权限,数字代号为"1" |
- | 不具任何权限,数字代号为"0" |
如chmod u=rwx,g=rx,o=r filename 等价于 chmod u=7,g=5,o=4 filename
chmod 751 file:文件所有者有rwx,同组用户为rx,其他用户为x
注意:如果想递归加上所有目录加上相同的权限,需要加上参数-R,如chmod 777 test/-R递归test目录下所有文件加777权限
6.32vim/vi
vi有三种基本工作模式
- 命令模式
- 文本输入模式
- 末行模式
vim基本操作
vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富。
进入插入模式:
i:插入光标前一个字符
I:插入行首
a:插入光标后一个字符
A:插入行末
o:向下新开一行,插入行首
O:向上新开一行,插入行首
进入命令模式:
ESC:从插入模式或者末行模式进入命令模式
移动光标:
h 左移
j 下移
k 上移
l 右移
M 光标移动到中间行
L 光标移动到屏幕最后一行行首
G 移动到指定行,行号 -G
w 向后移动一个字
b 向前移动一个字
{ 按段移动,上移
} 按段移动,下移
Ctrl -d 向下翻半屏
Ctrl -u 向上翻半屏
Ctrl -f 向下翻一屏
Ctrl -b 向上翻一屏
gg 光标移动文件开头
G 光标移动到文件末尾
删除命令:
x:删除光标后一个字符,相当于Del
X:删除光标前一个字符,相当于Backspace
dd:删除光标所在行,n dd 删除指定的行数,D:删除光标后本行所有内容,包含光标所在字符
d0:删除光标前本行所有内容,不包含光标所在字符
dw:删除光标开始位置的字,包含光标所在字符
撤销命令:
u: 一步一步撤销
Ctrl -r :反撤销
重复命令:
. : 重复上一次操作的命令
复制粘贴:
yy : 复制当前行,n yy 复制n行
p : 在光标所在位置向下开辟一行,粘贴
可视模式:
v:按字符移动,选中文本
V:按行移动,选中文本可视模式看配合 d, y ,>>,<<实现对文本块的删除,复制,左右移动
查找命令:
/ : str查找
n : 下一个
N : 上一个
按shitf+:进入末行模式:
w 存盘
wq 存盘退出
q! 不存盘,强制退出
例子:
vim 1.txt
按回车以后首先进入到命令模式,想写东西可以按a/A/I/i/o/O,进入插入模式,写完东西,需要保存则先按ESC,回到命令模式,再按shift+:进入末行模式,输入w回车即可保存文件写入的内容,再次返回命令行模式则再按ESC即可返回命令行模式。
6.33ps
ps 查看ps命令本身的进程,当前终端进程
ps -ef 相当于打开任务管理器,查看正在运行的程序
UID表示用户编号 PID表示每个进程的编号 PPID表示父亲进程的编号
6.34kill
kill命令用来种植执行的程序
kill -9 12345 #杀死pid为12345的进程
-9表示Linux中的第九号信号,杀死某一个进程
6.35网络和服务管理命令
service命令是用来控制系统服务的实体工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统业务的当前状态。
service network status #查看网络服务状态
service network stop #停止网络服务
service network start #启动网络服务
service network restart #重启网络服务
Linux查看ip地址:ifconfig
Windows查看ip地址:ipconfig