一、探索Linux系统
1.1 Linux ls命令
用于显示指定工作目录下之内容
语法:ls [-alrtAFR] [name...]
1.1.1 选项与参数
-a 显示当前目录中的所有文件和目录,包括隐藏文件
-l 以长格式显示当前目录中的文件和目录
-R 递归显示当前目录中的所有文件和子目录
-t 按照修改时间排序显示当前目录中的文件和目录
-lh 以人类可读的方式显示当前目录中的文件和目录大小
注意:以上ls选项参数,我们常用ls、ls -a 、ls -l,建议使用ls -la这样不仅可以查询隐藏文件,而且可以详细查看文件信息。
1.1.2 进一步了解长格式
-rwx-rwx--rwx-- 1 root root 6186 Jun 8 21:02 LICENSE
-drwx-rwx--rwx-- 1 root root 6186 Jun 8 21:02 LICENSE
第一个字符指明文件类型。开头的连字符(-)表示普通文件,(-d)表示目录。前3个字符表示文件属主的访问权限,中间3个字符表示文件属组的访问权限,最后三个字符表示其他人的权限。详细介绍看第五章!
2.1 Linux 查看命令
2.1.1 df查看磁盘空间
语法:df [选项]... [FILE]
df以磁盘分区为单位显示文件系统的磁盘使用情况
df -h命令以人类可读的方式显示磁盘空间使用情况
df files 指定文件显示内存使用情况
2.1.2 free查看磁盘空间
free -b:以bytes为单位来显示内存的信息。
free -k:以kb为单位来显示内存的信息。
free -m:以m为单位来显示内存的信息。
free -g:以G为单位来显示内存的信息。
free -h:以人类可读方式显示内存信息。
free -l:显示高低内存的利用率
free -t:显示linux的全部内存
free -s N:表示每隔N秒打印一次内存信息,直到用ctrl+c
建议只需要使用free -h以人类可读的方式查看。
2.1.3 history历史记录
查看最近历史前10行命令记录
查看最近历史后10行命令记录
二、操作文件和目录
2.1 通用符
通用符 含义
* 匹配任意多个字符
? 匹配任意单个字符
2.1.1 *通用符用例
这个例子中,查看/mnt/d/working/nginx目录中logs的内容
2.1.2 ?通用符用例
这个例子中,?匹配任意单个字符,查看logs的内容
2.2 常用文件操作指令
2.2.1 touch命令-创建文件
命令 | 说明 |
touch ubutun.txt | 创建文件 |
touch ubutun01.txt ubutun02.txt | 多创建文件 |
2.2.2 mkdir命令-创建目录
mkdir [--optional] dir
命令 | 说明 |
mkdir ubutun | 创建目录 |
mkdir ubutun01 ubutun02 | 创建多个目录 |
mkdir -p ubutun/ubutun1 | 创建递归目录 |
注意:创建递归目录时,使用-p选项。
2.2.3 rm命令-删除文件和目录
rm [--optional] dir or file
命令 | 说明 |
rm file.txt file2.txt | 删除多个文件 |
rm -r dir dir2 | 删除多个目录 |
rm -rf dir | 强制递归删除目录 |
注意:删除目录时,需要使用-r选项,强制删除用-f
2.2.4 mv命令-移动和重命名文件或目录
命令 | 说明 |
mv source_file dest_file | 源文件source_file重名为dest_file |
mv source_file dest_dir | 源文件source_file移动到dest_dir |
mv source_dir dest_dir | 源目录source_dir移动到dest_dir |
mv source_dir dest_file | 源目录source_dir移动到dest_file(错误) |
2.2.5 cp命令-复制文件和目录
cp [--optional] dir or file #-optional选择-r或-rf都是删除目录;optional不选择,则复制文件
命令 | 说明 |
cp file1 file2 | 复制文件file1为文件file2 |
cp file1 file2 dir | 复制文件file1和file2到目录dir |
cp dir1/* dir2 | 复制目录dir1的内容到目录dir2 |
cp -r dir1 dir2 | 复制目录dir1到目录dir2 |
2.2.6 cd命令——更改当前工作目录
cd /user/bin #绝对路径,将当前工作目录更改到/usr/bin
cd .. #相对路径,返回本目录上一级
cd - #将当前工作目录切换回前一个工作目录
cd ~#将当前工作目录更改为用户的主目录
2.2.7 which命令——显示文件可执行的命令
三、重定向
3.1 标准输出重定向
ls -l /usr/bin > ls-output.txt(重定向操作符>)
less ls-output.txt
如果输出错误信息,则结果显示在屏幕上,不会保存在输出结果文件中。
3.2 标准错误重定向
标准错误重定向没有相应的重定向操作符,因此用文件描述符0、1以及2表示。
ls -l /c 2> ls-output.txt
3.3 将标准输出和标准错误重定向到同一个文件中
ls -l d &> ls-output.txt
啥也不用,推荐第三种就行,&>
3.4 标准输入重定向
3.4.1 Cat——查看文件
cat b.txt
终端屏幕显示文件内容
3.4.2 Cat——拼接文件
作用将两个文本文件内容之间拼接在一个文本文件中
cat ls-output.txt c.txt > b.txt
3.4.3 Cat——标准输入重定向
cat > chenri.txt
cat < chenri.txt
3.5 管道
3.5.1 | ——管道操作符,将一个命令的标准输出传给另一个命令的标准输入。
ls -l ls-output.txt | less
说白了就是一个过滤的作用,命令1 | 命令2,其中命令1是一个大的范围,命令2就是其中一个小的范围。|需要和grep组合使用。
3.5.2 wc——统计文件中换行符、单词以及字节的数量
wc命令可用于统计文本中换行符、单词以及字节的数量
wc ls-output.txt
3.5.3 grep——输出与模式匹配的行
ls ~ | sort | uniq | grep txt
3.5.4 head/tail——输出文件的开头/结尾部分
head -n 5 Anaconda3-2023.sh
head -f -n 5 Anaconda3-2023.sh:刷新页面显示文件的开头内容
tail -n 5 Anaconda3-2023.sh
tail -f -n 5 Anaconda3-2023.sh:刷新页面显示文件的结尾内容
四、权限
4.1 属主、属组以及其他用户
-drwx-rwx--rwx-- 1 root root 6186 Jun 8 21:02 LICENSE
第一个字符指明文件类型。开头的连字符(-)表示普通文件,d表示目录。前3个字符表示文件属主的访问权限,中间3个字符表示文件属组的访问权限,最后三个字符表示其他人的权限。
4.2 读取、写入和执行
读取——read;写入——wwrite;执行——excute;
4.2.1、指定文件c.txt:ls -l c.txt
-文件;属主具有读写权限;用户组具有读的权限;其他用户具有读的权限。
4.2.2、查看目录ananconda3:ls -l anaconda3/
-d目录;属主具有读写执行权限;用户组具有读执行权限;其他用户具有执行权限。
4.3 chmod——修改文件模式
4.3.1 符号模式
chmod命令可以修改文件或目录的权限
u | user | 用户 |
g | group | 属组 |
o | other | 其他组 |
a | all | u、g、o三者的组合 |
赋予或剥夺用户权限
u+r | 授予用户read权限 |
u+w | 授予用户write权限 |
u+x | 授予用户Excute权限 |
u-r | 剥夺用户read权限 |
u-w | 剥夺用户write权限 |
u-x | 剥夺用户Excute权限 |
u+rwx -R | 授予目录和其子目录层次结构中所有文件读写执行权限 |
案例 chmod u-w b.txt
推荐:如果是你个人使用的文件,使用chmod u+rwx yourfile.txt就行了
4.3.2 八进制语法
# | 权限 | rwx | 二进制 |
7 | 读+写+执行 | rwx | 111 |
6 | 读+写 | rw- | 110 |
5 | 读+执行 | r-x | 101 |
4 | 只读 | r-- | 100 |
3 | 写+执行 | -wx | 011 |
2 | 只写 | -w- | 010 |
1 | 只执行 | --x | 001 |
0 | 无 | --- | 000 |
一般使用750、700两个权限设置。
700权限:
所有者:具有读(r)、写(w)和执行(x)权限。
所属组:没有任何权限;其他用户:没有任何权限。
750权限:
所有者:具有读(r)、写(w)和执行(x)权限。
所属组:具有读和执行权限;其他用户:没有任何权限。
4.4 su——以超级用户管理身份启动命令
su:启动超级用户权限;exit:退出
sudo cat b.txt临时使用超级用户管理身份启动命令
4.5 修改密码
修改用户密码命令:passwd
五、进程
5.1 查看进程
5.1.1 ps aux命令——列出所有进程的详细信息
1、USER:进程的拥有者。
2、PID:进程ID。
3、%CPU:该进程占用的CPU使用率百分比。
4、COMMAND:启动进程的命令名称或命名行
5.1.2 ps -ef | grep 进程关键字 //显示所有命令,连带命令行
5.2 lsof和netstat端口占用查看
5.2.1 lsof是一个列出当前系统打开文件的工具
lsof查看终端占用语法格式:lsof -i:端口号
5.2.2 netstat -tunlp用于显示tcp,udp的端口和进程等相关情况
netstat查看端口占用语法格式:
netstat -at 列出所有tcp端口
netstat -tunlp | grep 端口号
netstat -ap | grep ssh找出程序运行的端口
5.3 kill命令
kill [-optional] PID 杀死进程(-9:强制杀死进程)
killall [-optional] name 杀死所有进程(-9:强制杀死进程)
ctrl+z——终止进程后台运行
ctr+c——结束进程