文章目录
Ubuntu快捷键 | 功能 |
---|---|
Ctrl + Alt + t | 调出终端 |
Ctrl + c | 终端中退出锁定 |
Ctrl + Alt + 左右方向键 | 切换工作区 |
Ctrl + Alt + Shift + 左右方向键 | 移动当前窗口移至其他工作区 |
命令 | 功能 |
---|---|
uname -a | 查看系统版本信息; 也可以 cat /etc/issue ;或 cat /etc/lsb-release ;Linux查看系统基本信息:https://blog.csdn.net/qq_31278903/article/details/83146031 |
`` |
1. 文件系统
1.1 目录和路径
-
Linux目录分隔符为斜杠
'/'
; 而DOS为反斜杠'\'
; -
绝对路径(以
'/'
开始);相对路径('.'
当前 、'..'
上一级); -
文件/目录创建规则:
- 大小为256; - 不能包含特殊字符; - 见名知义,驼峰命名;
-
Linux 的文件没有扩展名,可通过颜色区分,或命令区分
'file 文件名'
-
Linux常用的文件类型(5种6类):
- 普通文件:用于存放数据、程序等信息; - 目录文件:用于构成文件系统的树形结构; - 设备文件:用于向I/O设备提供连接,分文字符设备文件和块设备文件(2类); - 管道文件:用于进程间的通信; - 链接文件:类似于windows下的快捷方式,分为软链接和硬链接;
目录名 | 作用 |
---|---|
/ | 根目录,根目录只存放根目录,Linux有且只有一个根目录 |
/bin ;/usr/bin | 存放可执行二进制文件,如常用的命令ls,tar,mv,cat 等等 |
/boot | 存放系统启动时用到的文件,如Linux内核文件、系统引导管理器 |
/dev | 存放Linux系统下的设备文件 |
/etc | 存放系统配置文件 |
/home | 系统默认的用户家目录,新增用户的家目录都存放于此,~ 表示当前用户的家目录 |
/lib ;/usr/lib ;/usr/local/lib | 系统使用的函数库的目录 |
/lost+fount | 系统异常产生错误时,存放一些遗失的片段 |
/mnt ;/media | 光盘默认挂载点 |
/opt | 存放主机额外安装软件 |
/proc | 存放系统核心、外部设备、网络状态;此目录的数据都在内存中 |
/root | 系统管理员root 的家目录 |
/sbin ;/usr/sbin ;/usr/local/sbin | 存放系统管理员使用的可执行命令 |
/tmp | 存放一般用户或正在执行的程序临时文件 |
/srv | 服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www 内 |
/usr | 应用程序存放目录:/usr/bin 应用程序,/usr/share 共享数据,/usr/lib 不能直接运行却是许多程序运行所必需的函数库文件,/usr/local 软件升级包,/usr/share/doc 系统说明文件,/usr/share/man 程序说明文件 |
/var | 系统执行过程中经常变化的文件,如/var/log 随时更改的日志文件 |
1.2 文件权限
示例:
-rw-rw-r-- 1 root root 4096 4月 24 2019 test
d | rwx | rwx | rwx |
---|---|---|---|
文件类型 | 文件所有者权限 | 文件所属用户组权限 | 其他用户权限 |
- 文件类型:【d】文件夹;【-】普通文件;【c】硬件字符设备,【b】硬件块设备,【s】管道文件,【l】软链接文件;
- 权限:读【r】、写【w】、执行【x】(execute);
2. 常用命令
- Linux命令格式:
command [-options] [parameter1] ...
1)command : 命令名,单词或缩写;
2)[-options] : 选项,对命令进行控制,可省略;
2)[parameter1] … : 传给命令的参数,可零个或多个; - 查看帮助文档:
1)--help
,命令自带帮助信息,格式命令名 --help
;
2)man
,Linux提供的手册,格式man [选项] 命令名
;
注:man
功能键与下面more
功能键相同; - 使用技巧:
1)自动补全,tab
;
2)历史命令,↑↓
;
2.1 文件管理
-
通配符:
通配符 功能 '*'
任意个字符(0~256) '?'
一个字符 '[]'
字符组内任意一个;支持区间如 [a-z]
'\'
转义字符; * ?
处于'[]'
内时不使用'\'
即失去通配符的作用 -
ls
:列出目录的内容参数 功能 -a
显示所有子目录与文件,包括隐藏文件(以 .
开头)-l
以列表方式显示文件详细信息 -lh
配合 -l
以人性化方式显示文件大小-all
以列表方式显示文件详细信息,包括隐藏文件, ls -all
可缩写为ll
-
cd
:切换工作目录命令 功能 cd
切换到用户主目录 cd ~
切换到当前用户的主目录 cd ..
切换到上级目录 cd -
切换到上一个进入的目录 -
rm
:删除文件参数 功能 -i
以交互方式执行(防误删) -f
强制删除,无需提示,忽略不存在的文件,可不加 -r
递归地删除目录下的文件,删除文件夹时必须加 注 删除文件夹也可用 rmdir
,但必须离开目录且是空目录 -
|
:管道,一个命令的输出可以通过管道作为另一个命令的输入
注意:管道前后必须都有命令 -
more
:分屏显示,可搭配管道|
使用功能键 功能 Space
显示下一屏 Enter
显示下一行 b
上滚一屏 f
下滚一屏 q
退出命令 h
列出所有功能键 /+字符串
搜索字符串 -
> / >>
:重定向:将本该显示在终端的内容保存在指定文件中命令 功能 >
输出重定向 ,会覆盖原文件内容 >>
附加重定向,会追加到原文件内容的尾部 "1>" 和 “2>”:
指令 含义 1>file.out
把标准输出重定向到file.out 2>file.err
把标准错误输出重定向到file.err 1>&2
把标准输出重定向到标准错误 2>&1
把标准错误输出重定向到标准输出 &>filename
把标准输出和标准错误输出都重定向到文件filename中 &
和&&
,|
和||
,>
和&>
的区别指令 含义 例 &
任务在后台执行 python test.py > log.txt &
&&
上一条命令执行成功时,才执行后一条命令 ls -l && cd ..
|
上一条命令的输出,作为下一条命令参数(输入) ps -aux | grep aux
||
上一条命令执行失败后,才执行后一条命令 als -l || cd ..
>
将正常信息重定向 find / -name “*.txt” > log.txt
&>
将错误信息或者普通信息都重定向输出 find / -name “*.txt” &> log.txt
-
ln
:建立链接文件,类似于Windows下的快捷方式链接类型 命令 功能 硬链接 ln 源文件 链接文件
占用磁盘空间,删除源文件不影响硬链接文件;
只能链接普通文件,不能链接目录;
区别于拷贝,修改任一方,内容都会保持一致软连接 ln -s 源文件 链接文件
不占磁盘空间,删除源文件则软链接文件失效 -
cat
:查看或合并文件内容功能 格式 查看 cat 1.txt
合并 cat 1.txt 2.txt > 3.txt
(不使用重定向即打印出来) -
grep
:文本搜索
1)格式:grep [-选项] '搜索内容串' 文件名
(有无引号都可以)
2)搜索内容串可以使正则表达式选项 功能 -v
显示不包含匹配文本的所有行(相当于求反) -n
显示匹配行及行号 -i
忽略大小写 正则表达式示例 含义 ^a
行首,搜索以 a
开头的行;grep -n '^a' 1.txt
ke$
行尾,搜索以 ke
结束的行;grep -n 'ke$' 1.txt
[Ss]igna[Ll]
匹配 []
里字符中的一个,支持区间.
匹配一个非换行的字符; grep -n 'e.e' 1.txt
可匹配eee; eae; eve
等*
匹配任意字符,可换行匹配 -
wc
:统计文件行数或字数
wc 文件名
会显示行数 单词数 字节数 文件名
相当于wc -lwc 文件名
选项 功能 -l
统计行数 -w
统计字数
(字的定义:由空白、跳格、换行字符分隔的字符串)-c
统计字节数 -m
统计无效字符以外的字符数(不能与 -c
同时使用)
(主要区别在中文字符,Linux中1中文字符=3字节) -
cut
:从文件的每一行剪切字节、字符和字段并将其写至标准输出选项 功能 -b
以字节为单位进行分割 -c
以字符为单位进行分割 -d
自定义分隔符,默认为制表符 -f
与 -d
一起使用,指定显示哪个区域-n
取消分割多字节字符(仅和 -b 标志一起使用) -
find
:文件搜索(可使用通配符)
1)在特定目录下搜索符合条件的文件;
2)搜索特定用户属主的文件;命令 功能 find ./ -name test.sh
查找当前目录下名为 test.sh
的文件find ./ -name '*.sh'
查找当前目录下后缀为 .sh
的文件find ./ -name '[A-Z]*'
查找当前目录下以大写字母开头的文件 find /tmp -size 2M
查找 /tmp
目录下等于为2M的文件find /tmp -size +2M
查找 /tmp
目录下大于2M的文件find /tmp -size -2M
查找 /tmp
目录下小于为2M的文件find ./ -size +4k -size -5M
查找当前目录下大于4k小于5M的文件
(一定要注意小写k和大写M)find ./ -perm 0777
查找当前目录下权限为777的文件或目录 -
tar
:文件归档解档(只打包不压缩)
1)格式:tar [参数] 打包文件名 文件
2)示例:
归档tar -cvf 3.tar 1.txt 2.txt
;
解档tar -xvf 3.tar [-C 指定路径]
3)很特殊,参数前可使用-
,也可以不使用参数 功能 -c
生成档案文件,创建打包文件 -v
列出归档解档的详细过程,显示进度 -f
指定档案文件名称, f
后面一定是.tar
文件,所以必须放在最后-t
列出档案中包含的文件 -x
解开档案文件 -C
解档到指定目录,大写C -
gzip
:文件压缩解压(压缩后源文件消失)
1)格式:gzip [参数] 被压缩文件
2)一步归档加压缩:tar -czvf 3.tar.gz 1.txt 2.txt
3)一步解压加解档:tar -xzvf 3.tar.gz
4)用gzip
压缩tar
打包后的文件,其扩展名一般用xxxx.tar.gz
参数 功能 -d
解压 -r
压缩所有子目录 -C
解压到指定目录,大写C -
bzip2
:文件压缩解压(与gzip
用法一样)
1)一步归档加压缩:tar -cjvf 3.tar.bz2 1.txt 2.txt
2)一步解压加解档:tar -xjvf 3.tar.bz2
3)用bzip2
压缩tar
打包后的文件,其扩展名一般用xxxx.tar.bz2
-
zip / unzip
:文件压缩解压(压缩后源文件不会消失)
1)压缩文件的目标文件不需要指定扩展名,默认扩展名为zip
2)压缩:zip [-r] 目标文件(无扩展名) 源文件
3)解压:unzip -d [指定路径] 压缩文件
-
其他
命令 功能 cat
查看或合并文件内容 clear
清屏,快捷键 Ctrl+l
cp
拷贝文件,复制目录时加 -a
file
获取文件类型 mkdir
创建目录,目录后加参数 -p
可递归创建该目录mv
移动文件;移动多个文件 mv file1 file2 file3 -t 目标地址
;pwd
当前目录绝对地址 which
查看命令位置,如 which ls
whoami
查看当前用户 touch
修改文件或者目录的时间属性,包括存取时间和更改时间。
若文件不存在,系统会建立一个新的文件。
···························补充······························
-
lsof
:列出当前系统打开文件语法:lsof [options] filename lsof abc.txt 显示开启文件abc.txt的进程 lsof -c abc 显示abc进程现在打开的文件 lsof -c -p 1234 列出进程号为1234的进程所打开的文件 lsof -g gid 显示归属gid的进程情况 lsof +d /usr/local/ 显示目录下被进程开启的文件 lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长 lsof -d 4 显示使用fd为4的进程 lsof -i 用以显示符合条件的进程情况 lsof -i[46] [protocol][@hostname|hostaddr][:service|port] 46 --> IPv4 or IPv6 protocol --> TCP or UDP hostname --> Internet host name hostaddr --> IPv4地址 service --> /etc/service中的 service name (可以不止一个) port --> 端口号 (可以不止一个)
-
shuf
:随机提取一个文本文件的不同行用法: shuf [选项]... [文件] 或者: shuf -e [选项]... [参数]... 或者: shuf -i LO-HI [选项]... Write a random permutation of the input lines to standard output. 如果没有指定文件,或者文件为"-",则从标准输入读取。 必选参数对长短选项同时适用。 -e, --echo treat each ARG as an input line -i, --input-range=LO-HI treat each number LO through HI as an input line -n, --head-count=COUNT output at most COUNT lines -o, --output=FILE write result to FILE instead of standard output --random-source=FILE get random bytes from FILE -r, --repeat output lines can be repeated -z, --zero-terminated line delimiter is NUL, not newline --help 显示此帮助信息并退出 --version 显示版本信息并退出
-
tail -f text.txt
实时查看text.txt文件的更新 -
查看某进程文件的启动位置:
cd /proc/PID
ls -al
一般cwd指向的那个就是位置
2.2 用户、权限管理
-
root账号通常用于系统的维护和管理,具有不受限制的访问权限;
-
查看切换用户
命令 功能 whoami
查看当前用户 who
查看登录用户 w
查看登录用户;格式 w [选项] [用户名]
;
功能更强大,能显示用户正在进行的操作,并给出更加详细的统计数据。exit
退出登录用户 su
切换用户; su [用户名]
切换后工作目录不变;su - [用户名]
切换后会将工作目录转换到切换后的用户主目录; -
工作组
命令 功能 groupadd
新建组账号(需sudo或切换至root账户,sudo仅Ubuntu) groupdel
删除组账号(需sudo或切换至root账户,sudo仅Ubuntu) usermod
修改用户所在组,格式 usermod -g 用户组 用户名
-
创建用户:
useradd
或adduser
格式:useradd [参数] 新建用户账户
;
常用:useradd -d 主目录 用户名 -g 组名 -m
例子:useradd -d /home/abc abc -g test -m
设置用户密码:passwd abc
参数 含义 -d <dirname>
指定用户登录系统时的主目录;不使用时默认 /home/用户
为主目录-m
自动建立目录 -g
指定组名称,不指定时自动创建一个与用户名相同的组 删除用户:
userdel
命令 含义 userdel abc
删除 abc
用户,但不会自动删除用户的主目录userdel -r abc
删除 abc
用户,同时删除用户的主目录 -
查询用户登录情况:
last
管理员可通过该命令查出任何用户的登录情况,包括非法登录; -
修改文件权限:
chmod
1)字母法:chmod 用户类型+/-/=权限 文件
例:chomd a+x abc
,字母和操作之间无空格,多字母可一起使用;字母 含义 u
user 表示该文件的所有者 g
group 表示所属用户组 o
other 表示其他人 a
all 表示这三者皆是 +
增加权限 -
删除权限 =
设定权限 (剥夺原有权限,依照本次设定) rwx
读取、写入、可执行 2)数字法:
chmod 用户类型+/-/=权限 文件
字母和操作之间无空格(g+x
);
多字母可一起使用(go+x
);
多操作可用,
隔开(g+x,o-r
);字母 含义 u
user 表示该文件的所有者 g
group 表示所属用户组 o
other 表示其他人 a
all 表示这三者皆是 +
增加权限 -
删除权限 =
设定权限 (剥夺原有权限,依照本次设定) rwx
读取、写入、可执行 2)数字法:
rwx
可用数字代替
例:chmod u=rwx,g=rx,o=r abc
相当于chmod u=7,g=5,o=4 abc
例:chmod ugo=rwx abc
相当于chmod 777 abc
注意:-R
递归所有目录,如chomd 777 test/ -R
test下所有文件777字母 数字 r
读取权限,数字为 4
w
写入权限,数字为 2
x
执行权限,数字为 1
-
不具有任何权限,数字为 0
-
修改文件所有者:
chown 用户名 文件或目录名
-
修改文件所属组:
chgrp 用户组名 文件或目录名
2.3 系统管理
-
命令 含义 cal
查看当前日历, -y
显示整年日历date
查看时间,可设置 ps
查看进程,可添加选项 top
动态显示进程 kill
终止进程,搭配 ps
使用;
格式kill [-sigal] PID
,信号值0-15
,9
绝对终止命令 &
将前台执行的程序调入后台执行;
如果程序正在执行,也可以使用Crtl + z
将程序调入后台jobs
查看后台运行程序 fg 编号
将后台运行程序调出到前台,编号为 jobs
查看的编号shutdowm
关机; shutdown -r now
重启;shutdown -h now
立刻关机now
相当于时间为0的状态;shutdown -h 20:25
今天20:25关机;shutdown -h +10
10分钟后关机;reboot
重启 init
init 0
关机;init6
重启;init 3
切换到字符界面,快捷键Ctrl + Alt + F2
;init 5
切换到图形界面,快捷键Ctrl + Alt + F7
;df
检测磁盘空间, -a
所有文件,-m
以1024字节为单位,-T
显示文件系统du
检测目录所占磁盘空间,格式 df [选项] 目录或文件名
;-a
递归显示各文件;-s
显示占用的数据块;-d
以字节为单位;mkfs
格式化命令,用于创建指定的文件系统 rpm
应用软件的安装和卸载,格式 rpm [选项] [软件包名]
;
一般直接rpm -ivh 软件包名
即可;-i
指定安装的软件包;-h
显示安装进度;-v
显示安装信息;-q
查询是否已安装;-a
查询已安装所有软件包;-e
卸载软件包;--nodeps
配合-e
使用,强制卸载,不检查依赖项;--force
强制操作,如强制安装删除等;ifconfig
查看或配置网卡信息 ping
测试远程主机连通性,如 ping IP地址
、ping 网址
route
网络路由设置 netstat
监控网络状态
3. vi编辑器
-
vi是最常用的文本编辑器,vim是vi的升级版;
-
两种模式:文本编辑模式 和 命令行模式,通过Ese键切换;
-
另一种编辑器gedit,类似于windows下的写字板程序,例:
gedit 1.txt
; -
常用补充(更新):
1.禁止vim将tab变成空格,在文件(~/.vimrc)里面将set expandtab
设置为set noexpandtab
;
2.按照指定编码方式打开文件vim "+e ++enc=编码名称“ 文件名
; -
插入
按键 功能 a
光标位置右边插入文字 i
光标位置处插入文字 o
(字母)光标位置下方开启新行 O
(字母)光标位置上方开启新行 I
光标所在行首插入文字 A
光标所在行尾插入文字 -
退出
按键 功能 ZZ (shift+z+z)
保存退出 :wq
保存退出 :x
保存退出 :w filename
保存到指定文件 :q
退出,如果有修改会提示无法退出 :q!
退出,不保存 :! 命令
暂时离开vi,执行命令 -
删除和修改
按键 功能 [n]x
删除光标后n个字符 [n]X
删除光标前n个字符 D
删除光标到行尾的字符 [n]dd
删除从当前行开始的n行(准确来说时剪切) [n]yy
复制从当前行开始的n行 p
把粘贴板上的内容插入到当前行 dG
删除光标所在行到文件尾的所有字符 J
合并两行 .
执行上一次操作 u
撤销前一个命令 -
行定位功能
按键 功能 Ctrl + b
上滚一屏 Ctrl + f
下滚一屏 gg
到文件第一行行首 G
到文件最后一行行首 :$
到文件最后一行行首 mG
或mgg
到指定行,m为目标行数 /内容
定位到首个查找内容, n
向下查找,N
向上查找 -
文本查找功能(从光标开始往下)
按键 功能 /字符串
查找字符串 n
寻找下一个 N
寻找上一个 ?
寻找上一个 /^字符串
查找以字符串开始的行 /字符串$
查找以字符串开始的尾 /a.b
查找 a任意字符b
-
替换
按键 功能 r
替换当前光标字符 :r 文件名
在光标下一行插入一个文件的内容 :s/p1/p2/g
将当前行中所有 p1
均用p2
替代:g/p1/s//p2/g
将文件中所有 p1
均用p2
替代:n1,n2s/p1/p2/g
将 n1
到n2
行中所有p1
均用p2
替代 -
set指令
按键 功能 set ic
搜索时忽略大小写 set noic
搜索时不忽略大小写 set ts=4
设置tab的长度 set [no]nu
[不]显示行号 set [no]expandtab
[不]将tab转换为空格 set [no]wrap
[不]自动换行 set cursorline
突出显示当前行
4.远程操作
-
SSH是建立在应用层和传输层基础上的安全协议;
-
SSH常用于远程登录,以及用户之间进行资料拷贝;
-
ubuntu安装ssh:
sudo apt install ssh
;sudo apt install net-tools
; -
注意:远程登录的两台机器必须要能ping通;
-
Windows远程连接可使用Xshell;
-
Linux远程连接:
sudo ssh -l 用户名 IP地址
; -
远程传输文件:
scp
命令本地文件复制到远程: scp FileName RemoteUserName@RemoteHostIp:RemoteFile scp FileName RemoteHostIp:RemoteFolder scp FileName RemoteHostIp:RemoteFile 本地目录复制到远程: scp -r FolderName RemoteUserName@RemoteHostIp:RemoteFolder scp -r FileName RemoteHostIp:RemoteFolder 远程文件复制到本地: scp RemoteUserName@RemoteHostIp:RemoteFile FileName scp RemoteHostIp:RemoteFolder FileName scp RemoteHostIp:RemoteFile FileName 远程目录复制到本地: scp -r RemoteUserName@RemoteHostIp:RemoteFolder FolderName scp -r RemoteHostIp:RemoteFolder FolderName
参数 含义 RemoteUserName 远程用户名 RemoteHostIp 远程IP RemoteFile 远程文件名/拷贝到远程后的文件名;可带上路径 FileName 本地文件名/拷贝到本地后的文件名;可带上路径 -
Xshell:
1)(如果没有Xftp软件)点击Xftp,取消后进入新窗口;
2)切换远程服务器路径使用cd
;切换本地路径路径使用lcd
;
3)上传使用put
; 下载使用get
;
5. webserver环境搭建
- 服务器搭建:
1)上传文件http.tar.gz
,tar -xzvf http.tar.gz
解压解档;
2)cd http
后,make
编译一下;
3)./myhttp start/stop/status
(启动/停止/查看状态),通过IP地址
访问; - 创建网页:
1)确定http目录;
2)编辑代码vi hello.c
;
3)gcc -o hello.cgi hello.c
;
4)./myhttp start
;
5)通过IP地址/hello.cgi
访问;
6. shell 脚本
-
sh
命令
“-n”选项进行shell脚本的语法检查
“-x”选项实现shell脚本逐条语句的跟踪,巧妙地利用shell的内置变量增强“-x”选项的输出信息等 -
' '
、" "
、``
三者的区别:
单引号' '
和双引号" "
都是解决变量中间有空格的问题;
单引号' '
剥夺了所有字符的特殊含义;
双引号" "
则对于双引号内的参数替换($
)和命令替换(``
)是个例外;
反引号``
是命令替换; -
整数比较:
指令 含义 eq
相等 ne
不等 gt
大于 lt
小于 ge
大于等于 le
小于等于 -
断语句if中
-a
至-z
的意思:
https://www.cnblogs.com/coffy/p/5748292.html
命令 | 含义 |
---|---|
dirname | 获取给定路径的目录部分; 例如 dirname /usr/sbin/ → /usr ;脚本中常用 cd dirname $0 返回这个脚本文件放置的目录; |
`` | |
`` | |
`` | |
`` | |
`` | |
`` | |
`` |
7.其他
- Python中执行linux命令:
os.system('cd /usr/local')