系统相关
uname
uname -a // 查看系统的全量信息uname -m // 查看系统架构uname -s // 查看系统名称uname -r // 查看系统的内核版本uname -v // 查看系统的内核的发布时间uname -v // 查看系统的平台uname -n // 查看系统的网络节点名称ldd --version // 查看系统的ABI版本
文件/文件夹修改
目录
目录跳转:cd
cd ~cdcd /cd -
创建目录:mkdir
mkdir dir1mkdir dir1 dir2mkdir -p parent/child //递归创建目录mkdir -pv parent/child //递归创建目录,并显示创建过程mkdir -m 755 dir1 // 创建目录,并设置权限
参数作用简述:
- -p 递归创建目录
- -v 显示目录的创建过程
-
文件
ls
ls是我们使用linux中最最常用的命令,也是一个比较简单的命令。但有效的使用ls命令可以使得我们在命令行中的效率得到很大的提升。下面是我们在平时可能会用到的命令组合:ls // 列出当前目录中的文件(不包含隐藏文件)ls -alh // 以可读形式,列出当前目录中的所有文件(包含隐藏文件和当前目录表示 . 和上一级目录表示 ..)ls --sort=size // 按文件大小进行排序ls -S //按文件大小进行排序ls --size // 显示文件大小ls -d */ // 只显示当前目录下的目录ls -p | grep -v / //只显示当前目录下的文件ls -lt //按时间从现在往之前排序ls -ltr //按时间从古至今排序
创建文件:touch
命令
touch除了可以创建文件之外,还可以修改文件的时间戳。touch file //创建空文件 filetouch file1 file2 // 创建空文件 file1 file2touch file{01...05} //创建空文件 file01~file05,即批量创建touch -a file1 //修改文件 file1 的最后访问时间为当下touch -m file1 //修改文件 file2 的最后修改时间为当下touch -d 20201002 file1 //修改文件 file1 的最后修改时间的 2020年10年02日touch -r a.txt file1 //修改 file1 的时间戳属性和 a.txt 一致touch -t 20201002122334.00 file1 //修改 file1的时间为 2020年10月02日12时23三34秒,格式为ISO格式
删除文件或目录
简单删除文件:
rm file_name //删除文件rm dir_name -r //删除目录和文件rmdir dir_name //删除空目录
组合的删除文件
ls | grep 8000*.txt > list.txt // 把要删除的文件保存在list.txt文件中cat list.txt | xargs rm // 删除list.txt文件中的文件
压缩/解压文件
tar
指定目录解压
tar -xzf example.tar.gz -C example// 请确保example文件夹存在
zip
zip是一个可以和window系统一起使用的压缩格式。
其常用的命令如下:zip -q -r dist.zip ./dist // 把当前目录下的dist目录及其内容压缩为 dist.zipzip -dv dist.zip index.html // 从压缩文件 dist.zip 中删除文件index.html
格式化/分区
格式化U盘为NTFS格式
安装
ntfs-3g:paru -S ntfs-3g
格式化
mkfs.ntfs -Q -L diskLabel /dev/sdXX
命令中各参数的含义:
-Q 不向驱动器填充0且不检查坏扇区,以加快格式化速度
- -L diskLabel 指定U盘名为 diskLabel
-
权限
用户和组
用户
查看所有用户
cat /etc/passwd
删除用户
userdel user_name
组
sudo gpasswd -a $USER docker // 把当前用户添加到docker用户组sudo gpasswd -d $USER docker // 把当前用户从docker用户组中移除
权限介绍
Linux的文件权限有以下设定:
Linux下的文件权限类型一般包括:读,写,执行。对应的字母为 r , w 和 x 。
- Linux下权限的属组有 拥有者 , 群组 和 其它组 三种。每个文件都可以针对这三个属组,设置不同的权限(rwx)。
- 通常情况下,一个文件只能归属于一个用户和组,如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。
一个文件的所有权限详情,有两种方式:
- 第一种是十位二进制表示法,例如:
-rw-rw-rw-,可简化为三个八进制数字形式,如666 -
十位二进制表示法
在形如
-rw-rw-rw-的格式中,在linux中是这样解释的 第一位表示当前文件的类型:
- 文件
- d 文件夹
- l 软链接
- 再三位表示当前文件的拥有者的权限
- 再三位表示当前文件的拥有者所有的群组的权限
- 再三位表示其它群组的权限
示例: -rwxrw----
该示例的含义为:
- 当前文件的文件类型为 文件
- 当前拥有者有 rwx权限,即 读,写,执行
- 当前拥有者所在的群组只有 rw 权限,即 读,写 ,没有执行权限
- 其它群组的没有任何权限
修改拥有者
chown user dirchown user:group dirchown user filechown user:group filechown -R user dirchown -R user:group dir
关机:
half 立刻关机poweroff 立刻关机shutdown -h now 立刻关机(root)shutdown -h 10 10分钟后,关机shutdown -c 取消关机
查看端口占用
lsof -i:端口
在一些系统中,可能会出现 command not found: lsof的错误。我们就需要安装lsof模块了。
yay -S lsof
也可以使用netstat命令:
netstat -tunlp | grep 端口号
- -t (tcp) 仅显示tcp相关选项
- -u (udp) 仅显示udp相关选项
- -n 拒绝显示别名,能显示数字的全部转为数字
- -l 仅列出在Listen的服务状态
-
zsh使用
别名
alias la = 'ls -alh'
查看别名
alias
防火墙设置
查看
可以使用
firewall-cmd --list-all命令来查看当前防火墙的所有请罪。端口设置
firewall-cmd --zone=public --add-port=80/tcp --permanent #开放80端口firewall-cmd --zone=public --remove-port=80/tcp --permanent #关闭80端口firewall-cmd --zone=public --list-ports #查看所有开放端口
重新加载
firewall-cmd --reload
空间
查看磁盘空间 df
df命令用于查看磁盘空间,通常可以配合
-h来使用df -h//以可读性展示磁盘占用
查看目录大小
当我们想要查看当前目录占用的磁盘大小的时候,
du命令会帮我们实现。du -h --max-depth=0 //查看当前目录占用大小du -h --max-depth=1 //查看当前目录以及目录下的一级目录占用的空间大小du -hs * | sort -hr //查看当前子目录的大小,并按大小从大到小排序du -sh * .[^.]* | sort -hr // 查看当前子目录的大小,并按大小排序(包含隐藏文件)du -hs * | sort -hr | head // 查看当前子目录中文件最大的前10个du -hs * | sort -hr | tail // 查看当前子目录中文件最小的10个
sed
sed是一个流编辑器,用于过滤和转换输出的文本。这意味着我们不需要对原文进化论修改,只需要对输出进行修改。如果需要,我们可以把修改后的内容保存到一个新的文件中。
sed提供了很多有用的选项用于过滤和编辑数据。sed的语法格式如下:sed [OPTION] 'PATTERN' filename
格式中的OPTION,即常用选项一般有:
-n取消默认输出p打印指定的数据d删除指定行q退出sed脚本
示例和解释:
sed -n '3,7 p' data只输出 data文件中的3~7行。其中,-n表示取消默认输出,p表示打印指定数据sed -n '/linux/ p' data只输出含有字符串linux的行。sed -n '/linux/I p' data输出含有字符串linux的行(不区分大小写)sed -n 's/linux/linus p' data把linux替换为linus并输出sed -n 's/\t/\n/gp' 1234.txt把1234.txt中的\t替换为回行符sort
sort是命令是最有用的工具之一。它会对文件的数据进行排序。可以根据字符或数字进行升序或降序排列。它也可以用来对文件中的行进行排序和随机化。
使用sort很简单。其格式为:sort [OPTION] filename
默认的是按照字母顺序对数据进行排序。需要注意的是
sort命令仅仅是对数据进行排序展示。它并不会修改文件。
使用sort命令的些常用选项有:-r对文件中的行按倒序进行排序-R将文件中的行打乱为随机顺序-o将输出保存到另一个文件中-k按照特定列进行排序-t使用指定的分隔符,而不使用空格-
示例
sort data对data文件中的数据根据字符排序sort -R data把data文件打乱为随机顺序sort -n -k2 -t ',' -o sorted.txt data按数值对 data 文件的第二列进行排序(列的分隔符为,)并输出到文件sorted.txt中。scp
scp命令可以通过命令行的方式,在两个linux系统之间传递文件。使用如下:scp ~/example.txt example@192.168.1.101:~ # 把家目录下的example.txt文件上传到192.168.1.101的家目录中scp example@192.168.1.101:/example.txt ~ #把192.168.1.101家目录中的example.txt文件下载到本机的家目录中
查看JSON文件
在Linux的命令行中有效的要有效的查看JSON文件,可以使用jq这个开源工具。这里来介绍一下,jq的安装和使用。安装
本例中的安装基于archlinux的paru安装器。paru -S --needed jq
使用
jq最简单的使用就是把可读性不强的JSON以可读性显示出来。
使用jq读取部分字段:cat example.json | jq '.'
cat example.json | jq '.name'
