Linux

发布时间 2024-01-09 10:52:46作者: Zzzy君不见

常用命令

su

切换用户身份

# su指令的全称为"superuser"
# su是最简单的身份切换命令,一般都是su - username,然后输入password。root用su至其他用户无须密码;但非root用户切换时需要密码。切换到root可以使用su -和su - root。

su [选项] username -c 'command'
# 选项
-l # login;su -l username 相当于 su - username
-c # 变更账号为user的使用者,并执行指令(command)后再变回原来使用者

# 切换用户
su username # 非登录式切换,即不会读取目标用户的配置文件
su - username # 登录式切换,会读取目标用户的配置文件;完全切换
# su - username,完整的登录,加载该用户的环境变量,跳转到该用户的主目录;su username,临时登录,只是获取到该用户权限,当前目录、环境变量等还是当前用户的,做简单操作的时候用

# 退回原用户
exit	 
# 查看当前登录用户名
whoami

chown

修改文件或目录的所属用户和组

chown [选项] [所有者][:[组]] 文件或目录
# 选项
-R # 递归处理,将目录下的所有文件和子目录的所有权都修改为指定的用户和组。
-f # 不显示错误信息。
-v # 显示详细的处理信息。 

# 将文件的所有权修改为指定用户
chown username file.txt
# 将文件的所有权修改为指定用户和组
chown username:group file.txt
# 将目录下的所有文件和子目录的所有权都修改为指定用户和组
chown -R username:group directory

# 注意事项
# chown 命令只能由文件或目录的所有者或超级用户使用,其他用户无法修改文件或目录的所有权。
# chown 命令默认只修改文件或目录的所有者,如果要修改组,需要使用 : 分隔符指定组名。
# chown 命令可以使用 -R 参数递归处理目录下的所有文件和子目录,需要谨慎使用,避免修改不必要的文件或目录。

tail

用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

tail [必要参数] [选择参数] [文件]
# 命令参数
-q # 不显示处理信息
-v # 显示详细的处理信息
-c<数目> # 显示的字节数
-n<行数> # 显示行数
--pid=PID # 与-f合用,表示在进程ID,PID死掉之后结束.
-q, --quiet, --silent # 从不输出给出文件名的首部
-s, --sleep-interval=S # 与-f合用,表示在每次反复的间隔休眠S秒

#  监视filename文件的尾部内容(默认10行,相当于添加参数 -n 10)
tail -f filename  
# 显示filename最后20行
tail -n 20 filename   
# 显示filename前面10行以后的(展示不全)
tail -n +10 filename   
# 显示filename的最后 10 个字符
tail -c 10 filename   
# 输出文件最后n行的内容,同时监视文件的改变
tail -nf filename   
tail -1000f filename | grep '关键字'
# 可以进行多屏显示(ctrl + f 或者 空格键可以快捷键)
tail -n 4700 filename | more -1000 

zip/unzip

压缩/解压指定文件

# 查看是否安装压缩/解压zip软件包
yum list installed | grep zip
# 安装zip/unzip软件
sudo apt-get install zip unzip # 方式一
yum -y install zip unzip # 方式二
# 安装 卸载 更新
yum -y install [关键词] # 安装
yum -y remove [关键词] # 卸载
yum -y update [关键词] # 更新

zip [选项] 压缩包名 源文件或源目录列表
# 选项
-r # 递归地将一个目录及其所有子目录和文件压缩到ZIP文件中
-q # 在压缩文件时启用静默模式,即不显示压缩过程的详细信息
-d # 从现有的ZIP文件中删除指定的文件或目录
-u # 用于更新现有的ZIP文件,将新的文件或修改后的文件添加到ZIP存档中
-f # 用于刷新(更新)现有ZIP文件中的指定文件。
-m # 用于移动(归档)文件到一个ZIP压缩文件中,并在移动后将源文件删除。
-e # 用于对ZIP压缩文件进行加密
-z # 为压缩文件添加注释

# 使用静默模式将file目录及其所有子目录和文件压缩到file.zip文件中
zip -q -r file.zip file/ 

unzip [选项] 压缩包名 源文件或源目录列表
# 选项:
-f # 更新现有的文件。
-l # 显示压缩文件内所包含的文件。
-u # 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v # 执行是时显示详细的信息。
-z # 仅显示压缩文件的备注文字。
-n # 解压缩时不要覆盖原有的文件。
-o # 不必先询问用户,unzip执行后覆盖原有文件。
-P<密码> # 使用zip的密码选项。
-q # 执行时不显示任何信息。
-d<目录> # 指定文件解压缩后所要存储的目录。
-x<文件> # 指定不要处理.zip压缩文件中的哪些文件。
-Z unzip # -Z等于执行zipinfo指令

# 将 file.zip 解压到当前目录下并自动覆盖原有文件
unzip -o file.zip 

dos2unix/unix2dos

dos2unix:将Windows格式文件转换为Unix/Linux格式(换行符)

unix2dos:将Linux&Unix格式文件转换为Windows格式文件

dos2unix [options] [-c convmode] [-o file ...] [-n infile outfile ...]
# 参数 (不同版本Linux的dos2nnix命令参数有可能不同)
-h # 显示命令dos2unix联机帮助信息
-k # 保持文件时间戳不变
-q # 静默模式,不输出转换结果信息等
-V # 显示命令版本信息
-c # 转换模式
-o # 在源文件转换,默认参数
-n # 保留原本的旧档,将转换后的内容输出到新档案.默认都会直接在原来的文件上修改

# 将filename从Windows格式文本转换为Unix&Linux格式文件
dos2unix filename 
# 一次转换多个文件
dos2unix filename1 filename2 filename3 
# 默认会在源文件上进行转换,若需保留源文件,则可以使用参数-n
dos2unix -n dosfile linuxfile 

unix2dos [options] [-c convmode] [-o file ...] [-n infile outfile ...]

# 查找当前目录下bin文件夹下所有.sh格式的文件并转换为Linux格式
find ./bin -name "*.sh" | xargs dos2unix

curl

curl 是一个工具,用于传输来自服务器或者到服务器的数据。

# 发送GET请求
curl URL
curl URL?a=1&b=nihao

# 发送POST请求
curl -X POST -d 'a=1&b=nihao' URL

# 发送json格式请求
curl -H "Content-Type: application/json" -X POST -d '{"abc":123,"bcd":"nihao"}' URL
curl -H "Content-Type: application/json" -X POST -d @test.json URL

# 其中,-H代表header头,-X是指定什么类型请求(POST/GET/HEAD/DELETE/PUT/PATCH),-d代表传输什么数据。这几个是最常用的。

# 查看所有curl命令: man curl或者curl -h
# 请求头:H,A,e
# 响应头:I,i,D
# cookie:b,c,j
# 传输:F(POST),G(GET),T(PUT),X
# 输出:o,O,w
# 断点续传:r
# 调试:v,--trace,--trace-ascii,--trace-time

others

# 用标准的格式显示进程
ps -ef | grep 'java'

# 查看指定端口占用情况
netstat -tlnp | grep [端口号|程序]
# or
netstat -anp | grep [端口号|程序]

# 查看磁盘空间
df -lh 
# 打印当前目录和子目录中所有文件和目录的用户友好磁盘使用情况
du -h * 

# 将空字符串写入txt文件
echo "" > filename.txt

# runcate命令可以将文件截断为指定大小或清空文件内容
truncate -s 0 bill-service.log # 清空名为logfile.log的日志文件

# 查找:grep -A -B -C n name file.txt
grep -A # 显示匹配指定内容及之后的n行
grep -B # 显示匹配指定内容及之前的n行
grep -C # 显示匹配指定内容及其前后各n行