1. 常用命令

1.1 Linux目录树结构

可以用tree 来遍历以为根的目录树 例如:

tree /var/www/ 展示以/var/www为根的所有树叶

tree -L 1 /usr/ 展示以/usr为根的第一层树叶

路径的两种表示方式: 绝对路径,从/开始一层一层写全目录或文件名 相对路径,以当前目录为根表示目标路径,"."表示当前工作目录,".."表示上一层。

1.2 Linux命令

是一个命令别名、环境变量中的函数或可执行文件

基本用法:cmd [options] object

当输入一个命令,Linux系统搜索顺序为
1. aliases (e.g. ll)
2. exported functions
3. built-in shell commands (e.g. export)
4. scripts and binaries in your PATH (可执行文件)
如果搜索完毕均找不到,则报错(command not found)

查看帮助可以尝试:

cmd --help
cmd -h
man cmd

例如:

查看有哪些命令:

compgen -c will list all the commands you could run
compgen -a will list all the aliases you could run
compgen -b will list all the built-ins you could run
compgen -k will list all the keywords you could run
compgen -A function will list all the functions you could run
compgen -A function -abck will list all the above in one go

查看命令属性:

type cmd: Display information about command type.
which cmd: locate a command

例如:

1.3 目录命令

当前目录(pwd)

pwd – return working directory name
单独运行,无参数

创建目录(mkdir)

创建目录dir: mkdir dir
递归创建系列dir:mkdir -p dir1/dir2/dir3

删除目录(rmdir、rm -r)

删除空目录:rmdir emptydir
删除任意目录:rm -r anydir

列出目录内容(ls)

列出当前路径内容:ls
列出目录dir内容:ls dir
以长格式列出目录dir内容:ls -l dir

长格式输出的内容依次为:

  1. The file type. 第一个字段的第一个字符。文件类型包括:
    1. - - Regular file.
    2. b - Block special file.
    3. c - Character special file.
    4. d - Directory.
    5. l - Symbolic link.
    6. n - Network file.
    7. p - FIFO.
    8. s - Socket.
  2. The file permissions. 第一个字段的第2-10字符,每3个字符表示一组用户对该文件所拥有的权限。
    1. r - Permission to read the file. 使用chmod时可以用4表示
    2. w - Permission to write to the file.使用chmod时可以用2表示
    3. x - Permission to execute the file.使用chmod时可以用1表示
    4. s - setgid bit.少见
    5. t - sticky bit.少见
  3. Number of hard links to the file.
  4. File owner.
  5. File group.
  6. File size. 如果是目录,此处展示的并非该目录实际所占存储大小,而是目录元数据的大小。(ls returns meta-data for the directories, not the actual size.)
  7. Date and Time.
  8. File name.

切换路径(cd)

切换到主目录:cd
切换到目录dir:cd dir

1.3 文件命令

复制文件(cp)

复制file1到file2:cp file1 file2
复制目录1到目录2:cp -r dir1 dir2

移动/重命名文件(mv)

移动对象1到对象2:mv object1 object2

删除文件(rm)

删除文件:rm file

查看文件内容(more、less、cat、head、tail)

按页展示文件内容:more file或者less file,空格翻页
将文件内容全部展示到屏幕上:cat file
查看文件前十行:head file
查看文件后十行:tail file

文件链接(ln)

符号链接(软链接):ln -s file1 file2

文件创建及修改(touch)

创建一个新的空文件:touch newfile
修改已存在的文件的时间信息:touch existingfile

1.4 系统管理

查看磁盘使用情况(df、du)

查看当前硬盘使用情况:df
查看目标目录dir所占空间:du dir

查看当前cpu及内存使用情况(top)

查看当前系统内存cpu等使用情况:top

查看进程(ps)

列出当前所有进程及详细信息:ps -ef
列出用户username的所有进程及详细信息:ps -f -u username

进程终止(kill)

终止进程pid:kill pid

1.5 其他常用命令

压缩与解压缩(tar、gz)

打包并压缩目录dir:tar czvf dir.tar.gz dir/
解包dir.tar.gz:tar xzvf dir.tar.gz
压缩文件abc:gzip abc
解压缩文件abc.gz:gunzip abc.gz

权限修改(chmod)

改成仅owner可读可写可执行:chmod 700 object或者chmod u=rwx,g=,o= object
给所有用户增加可执行的权限:chmod +x object
给属主增加可执行的权限:chmod u+x object

别名设置(alias)

设置新的别名:alias newname='cmd option'
删除别名:unalias aliasname

例如:设置过alias mywkdir='cd /public/workspace/shaojf/Course/advancedLinux'后,可以直接通过运行mywkdir切换到advancedLinux目录。

文件下载(wget、curl)

断点续传下载url到当前路径:wegt -c url
下载url并列出进度:curl -OL url

2. 文本处理

2.1 文本处理三剑客

awk适合对文本进行格式化处理

从文件file中提取第一列:awk '{print $1}' file

例如:

grep适合查找匹配

从文件file中查找匹配到keyword的行:grep keyword file

例如:

sed适合匹配替换

将文件file中的old替换成new:sed 's/old/new/' file

例如:

2.2 其他文本处理工具

文本排序(sort)

按第col列排序:sort -k col ile
去重复:sort -u file > newfile

去重复(uniq)

Filter adjacent matching lines:uniq file > new file

统计字符(wc)

文件file行数:wc -l file

其他常用工具

join - join lines of two files on a common field
paste - merge lines of files
diff - compare files line by line
cut - remove sections from each line of files
split - split a file into pieces

2.3 文本编辑器

vim使用教程可以参考: https://www.runoob.com/linux/linux-vim.html