# Basic

# Linux 系统目录结构

file-system

# Linux 命令行基本操作

# 文件操作

# touch

用法:touch [选项]... 文件...

# cp

cp --help
-a # 将文件的特性一起复制
-p # 连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-i # 若目标文件已经存在时,在覆盖时会先询问操作的进行
-r # 递归持续复制,用于目录的复制行为,此时将复制该目录下所有的子目录和文件。
-u # 目标文件与源文件有差异时才会复制
# 基本使用
cp file1 file2
cp -a file1 file2 #连同文件的所有特性把文件file1复制成文件file2
cp file1 file2 file3 dir #把文件file1、file2、file3复制到目录dir中

# rm

-f # 就是force的意思,忽略不存在的文件,不会出现警告消息
-i # 互动模式,在删除前会询问用户是否操作
-r # 递归删除,最常用于目录删除,它是一个非常危险的参数
rm -i file # 删除文件file,在删除之前会询问是否进行该操作
rm -rf dir # 强制删除目录dir中的所有文件

# mv

-f # force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i # 若目标文件已经存在,就会询问是否覆盖
-u # 若目标文件已经存在,且比目标文件新,才会更新
mv old_name new_name # 重命名文件

# cat

cat text | less # 查看text文件中的内容
# 注:这条命令也可以使用less text来代替

# grep

global search regular expression

-a # 将binary文件以text文件的方式查找数据
-c # 计算找到‘查找字符串’的次数
-i # 忽略大小写的区别,即把大小写视为相同
-v # 反向选择,即显示出没有‘查找字符串’内容的那一行
# 搜索/etc/passwd文件中包含bash字符串的行
grep bash /etc/passwd
# 取出文件/etc/man.config中包含MANPATH的行,并把找到的关键字加上颜色
grep --color=auto 'MANPATH' /etc/man.config
# 把ls -l的输出中包含字母file(不区分大小写)的内容输出
ls -l | grep -i file

# find


# 目录操作

# cd

cd /root/Docements # 切换到目录/root/Docements
cd ./path          # 切换到当前目录下的path目录中,“.”表示当前目录
cd ../path         # 切换到上层目录中的path目录中,“..”表示上一层目录

# ls

-l # 列出长数据串,包含文件的属性与权限数据等
-a # 列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
-d # 仅列出目录本身,而不是列出目录的文件数据
-h # 将文件容量以较易读的方式(GB,kB等)列出来
-R # 连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来

# 系统相关

# ps

-A # 所有的进程均显示出来
-a # 不与terminal有关的所有进程
-u # 有效用户的相关进程
-x # 一般与a参数一起使用,可列出较完整的信息
-l # 较长,较详细地将PID的信息列出

# kill

# 该命令用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号
kill -signal PID

# top

top
# 
apt install btop
btop

# 网络相关

# netstat

netstat -h
netstat -r
netstat -apn

# ip

ip -h
ip link
ip addr
ip -4 addr
ip route

# 权限相关

# useradd

#添加一个一般用户
useradd kk # 添加用户kk

# 为添加的用户指定相应的用户组
useradd -g root kk # 添加用户kk,并指定用户所在的组为root用户组

# 创建一个系统用户
useradd -r kk //创建一个系统用户kk

# 为新添加的用户指定/home目录
useradd -d /home/myf kk # 新添加用户kk,其home目录为/home/myf

# chgrp

chgrp [-R] dirname/filename
-R # 进行递归的持续对所有文件和子目录更改
# 例如:
chgrp users -R ./dir # 递归地把dir目录下中的所有文件和子目录下所有文件的用户组修改为users

# chown

chown user[:group] file
chown runoob:runoobgroup file1.txt # 将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup

# chmod

chmod [-R] xyz  # 文件或目录
-R # 进行递归的持续更改,即连同子目录下的所有文件都会更改

|read|write|execute|

chmod 755 file # 把file的文件权限改变为-rwxr-xr-x
chmod g+w file # 向file的文件权限中加入用户组可写权限

# 其他

# Tar

Linux 常用解压缩软件

  • 功能

    • -c,--create 创建新的 tar 文件
    • -x,--extract,--get 解开 tar 文件
    • -t,--list 列出 tar 文件中包含的文件的信息
    • -r,--append 附加新的文件到 tar 文件中
    • -u,--update 用已打包的文件的较新版本更新 tar 文件
    • -A,--catenate,--concatenate 将 tar 文件作为一个整体追加到另一个 tar 文件中
    • -d,--diff,--compare 将文件系统里的文件和 tar 文件里的文件进行比较
    • --delete 删除 tar 文件里的文件。注意,这个功能不能用于已保存在磁带上的 tar 文件。
  • 常用命令

    • -v,--verbose 列出每一步处理涉及的文件的信息,只用一个“v”时,仅列出文件名,使用两个“v”时,列出权限、所有者、大小、时间、文件名等信息。
    • -k,--keep-old-files 不覆盖文件系统上已有的文件。
    • -f,--file 文件名 指定要处理的文件名。可以用“-”代表标准输出或标准输入。 此项为必须
    • -P,--absolute-names 使用绝对路径。
    • -j,--bzip2 调用 bzip2 执行压缩或解压缩。注意,由于部分老版本的 tar 使用-I 实现本功能,因此,编写脚本时,最好使用--bzip2。
    • -J,--xz,--lzma 调用 XZ Utils 执行压缩或解压缩。依赖 XZ Utils。
    • -z,--gzip,--gunzip,--ungzip 调用 gzip 执行压缩或解压缩。
    • -Z,--compress,--uncompress 调用 compress 执行压缩或解压缩。
  1. 查看

# 在不解压的情况下查看压缩包的内容
tar -tf file.tar.gz
  1. 压缩

# 将目录里所有jpg文件打包成tar.jpg
tar –cvf jpg.tar *.jpg
# 将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –czf jpg.tar.gz *.jpg
# 将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cjf jpg.tar.bz2 *.jpg
# 将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
tar –cZf jpg.tar.Z *.jpg
  1. 解压

#  z使用gzip x解压  v展示每一步信息 f指定文件
tar zxvf file_name.tar
tar zxvf file_name.tgz
tar zxvf file_name.tar.gz

# 学习资料

Linux20 个常用命令 (opens new window)