Linux 基本命令

快捷键

Tab : 命令补全,当你忘记某个命令的全称时可以只输入它的开头的一部分,然后按下 Tab 键就可以得到提示或者帮助完成。
Ctrl+c : 强行终止当前程序。
Ctrl+d : 键盘输入结束或退出终端。
Ctrl+s : 暂停当前程序,暂停后按下任意键恢复运行。
Ctrl+z : 将当前程序放到后台运行,恢复到前台为命令fg。
Ctrl+a : 将光标移至输入行头,相当于Home键。
Ctrl+e : 将光标移至输入行末,相当于End键。
Ctrl+k : 删除从光标所在位置到行末。
Alt+Backspace : 向前删除一个单词。
Shift+PgUp : 将终端显示向上滚动。
Shift+PgDn : 将终端显示向下滚动。

使用帮助手册

直接输入man man

软件安装、更新、删除

在安装前确认是否软件库有这个软件:
sudo apt-cache search somesoftware
安装只需要执行这样的命令即可:
sudo apt-get install htop
在软件被破坏时重新安装:
sudo apt-get --reinstall install htop

更新软件源:
sudo apt-get update
更新软件包:
sudo apt-get upgrade

卸载一个软件也很简单:
sudo apt-get remove htop
如果连配置文件也想一并删除:
sudo apt-get purge htop

用户

查看用户:
whoami

使用adduser命令创建用户并设置密码:
$ sudo adduser <用户名>

su,su- 与 sudo

$ su 切换到用户 user,执行时需要输入目标用户的密码。
$ sudo 以特权级别运行 cmd 命令,要求当前用户属于 sudo 组,且需要输入当前用户的密码。
$ su - 切换用户,同时环境变量也会跟着改变成目标用户的环境变量

查看用户组

groups user

删除用户

sudo deluser user --remove-home

文件权限管理

变更文件所有者

$ sudo chown new_owner file

修改文件权限

有两种方式对文件权限进行修改:

  • 第一种方式:二进制数字表示。每个文件的三组权限对应一个 “rwx”,每一位可以用 0 或 1 表示是否有权限,例如只有读和写权限的话就是 “rw-” - “110”,所以"rwx"对应的二进制"111"就是十进制的7。
    所以将 file 文件权限改为 “rwx------” 的命令是:
    $ chmod 700 file

  • 第二种方式:加减赋值表示。假设一开始 file 文件的权限是 “rwxr–r–” 完成上述同样的效果,还可以:
    $ chmod go-rr file
    g、o 还有 u 分别表示 group、others 和 user,+ 和 - 分别表示增加和去掉相应的权限。

搜索文件

which

which只从环境变量指定的路径中去搜索文件,所以我们常常使用which来判断是否安装了某个软件。
例如:
$ which nano

whereis

一个比较简单的搜索命令,它直接从数据库而不是硬盘查询,而且只能搜索特定的文件。所以,它的搜索很快。

locate

在这里要先介绍" /var/lib/mlocate/mlocate.db "数据库,因为 locate 命令就是通过这个数据库查找的。这个数据库由系统每天定时维护更新,所以有时候需要手动执行 updatedb 命令来更新数据库。
例如,查找 /usr 及其子目录下所有以 a 开头的文件:
$ locate /usr/a

find

find命令是一个功能非常强大的命令,它可以根据文件的各个属性来搜索,在此只介绍其简单的搜索。其基本命令格式为:
find [path] [option] [action]
例如,在 chen 目录下搜索名字为 myfile 的文件或目录:
$ sudo find chen -name myfile

文件解压缩

rar

创建压缩文件:
创建一个文件名为files.rar的压缩包,压缩内容为名为myfiles的目录(或者文件)
rar a files.rar myfiles

使用 a 参数添加文件进压缩包:
rar a files.rar 文件名

使用 d 参数删除文件:
rar d files.rar 文件名

zip

创建压缩包

zip -r -o ehpc.zip ./Desktop
其中,-r 参数表示递归,所以上面命令是打包ehpc目录进压缩包;-o 参数表示输出到ehpc.zip压缩文件。

使用 -e 参数进行加密

zip -r -e -o ehpc.zip ./Desktop

需要注意的是,由于编码问题linux下和windows下的文本文件可能会不同,如果希望在linux压缩的文件在windows下正常解压,可以加上 -l 参数。

查看与解压

解压很简单:
unzip ehpc.zip

查看只需加上 -l 参数:
unzip -l ehpc.zip

tar

实际上,在linux中用得更多的是tar工具。tar 原本只是一个打包工具,没有压缩功能,需要配合其他具有压缩功能而没有打包功能的工具进行打包压缩。

创建一个 tar 包

tar -cf ehpc.tar ./Desktop
其中,-c 参数表示创建,-f 参数表示指定文件名,必须跟在文件名之前。
可以发现这个tar包和原大小相同。

查看一个 tar 包

tar -tf ehpc.tar

解包一个 tar 包到指定目录

tar -xf ehpc.tar -C ehpcdir
上面我们说了tar需要配合其他工具进行压缩,其实一般只需要加一个参数就可以了。这里以gzip为例:
tar -czf ehpc.tar.gz ./
解压缩:
tar -xzf ehpc.tar.gz

管道与一些文本命令

&&与||

与C语言相同

管道

管道
通常我们在命令行中使用匿名管道,由分隔符 | 表示,而命名管道更常出现在源代码中。
例如:
ls -a | grep mysql
这个命令就是先执行 ls -a 命令,然后将输出结果作为输入执行grep mysql命令在其中查找包含mysql的文件。

grep :

在上面我们已经有一个使用 grep 命令的例子了,实际上我们还可以直接使用:
grep -r “ehpc” ~
搜索 ~ 目录下所有包含"ehpc"的文件。

wc :

统计并输出一个文件中行、字节等数据的数目。其中,-l 参数表示行数,-c 参数表示字节数。
结合管道使用,统计文件的个数:
ls -a | wc -l
ls -a | wc -c
ls -a | wc -lc

uniq :

在上面的统计中,我们可能会想要除去一些重复行以免影响结果,这时候我们可以使用 uniq 命令:
cat words | uniq
值得注意的是,uniq只除去连续重复的的行,如果希望全文达到同样的效果我们往往会先使用 sort 命令进行排序,即:
cat words | sort | uniq

文本处理

sort

默认为字典排序:
ls -a | sort
反转排序:
ls -a | sort -r

col

相信许多程序员在实际中都会遇到类似于将程序代码中的tab转空格的需要,而linux提供了tab和空格相互转换的命令 col。
在这里,-x 参数表示将 tab 转换成空格,而 -h 参数则相反。
例如:
cat myFile | col -x | cat -A

tr

替换操作(删除操作也可以视为一种替换操作)也是文本处理常用的操作之一。

如果是要删除,可以使用 -d 参数:
echo “Hello world!” | tr -d “el”
这样会删除"Hello world!"中所有的“e”和“l”。

再例如将小写转换成大写:
echo “Hello world!” | tr ‘[a-z]’ ‘[A-Z]’

paste

这个命令可以简单地合并文件。
例如将数据以 ‘;’ 为分隔符合并(默认的分隔符为Tab):
paste -d ‘;’ data1 data2 data3

重定向

重定向

重定向是通过 ‘>’ 和 ‘>>’ 等操作符完成的,(当然也有’<‘和’<<’,前者是导向,后者是追加),其实将标准输出看作一个文件的话,将命令输出导向到另一个文件自然也是没问题的。
例如:
echo “Hello world!” > output
结合管道:
cat words | sort | uniq >> output

文件描述符

除了标准输出,我们还经常需要重定向标准错误,在此就必须提到标准输入、标准输出和标准错误的文件描述符。在linux中,它们的文件描述符分别是0、1、2,我们可以通过这几个描述符来完成我们想要的操作。

我们可以这样来将标准输出和标准错误重定向到同一个文件:
cat words | sort | uniq > output 2>&1
其中,&表示后面的是标准输出而不是一个文件名为1的文件,而这里的重定向顺序也是不能改变的。

也可以这么做:
cat words | sort | uniq &> output

永久重定向以及“丢弃”输出

我们很容易想到如果我们想不断将标准输出重定向到某个文件,难道需要在每一个命令后面加上重定向命令?当然是不需要的,linux提供了永久重定向的方法。当然,这里的永久也并不是那么永久。

我们可以这样做:
exec 1> output
其中 exec 命令的作用是用新的进程去替换旧的进程,或者指定重定向。
有时候我们仅仅希望执行命令而不想要其输出,这时候我们可以将输出重定向到空设备 /dev/null :
cat words | sort | uniq 1>/dev/null 2>&1
这样输出结果就没有啦。

进程的基本操作

前台/后台切换

终止一个在前台运行的进程的快捷键是 ctrl + c 。将当前进程停止并转到后台的快捷键是 ctrl + z。
那么,如何让我们的进程在前台与后台之间切换呢?

通过 & 这个符号,让我们的命令在后台中运行。
例如:
ls &
这样命令就会在后台自己运行了。

查看在后台的工作可以使用:
jobs
这时我们可以看到每行是这样的格式:
[1] + suspended …(command)

其中,第一列的数字表示job编号,也就是转到后台的工作的编号,第二列如果是 ‘+’ 表示的是这是最后一个被转入后台的工作, ‘-’ 的话则是倒数第二个,其他的话在这列没有符号。第三列表示状态,而后面则是命令本身。

把工作从后台拿回前台可以使用:
fg %jobid
例如, fg %1

如果只是希望其在后台运行的话,可以:
bg %jobid

终止

终止命令比较简单,但是在参数上我们可以通过选择信号值来决定以何种方式终止程序,信号值可以这样查看:
kill -l
所以可以这样终止程序:
kill -signal pid
或者
kill -signal %jobid

进程管理

top

实时查看系统的一些关键信息的变化。
top详解

ps

配合 grep 和正则表达式使用。
例如:
ps aux | grep slurm

打印出的信息:

  • F:进程的标志(process flags),当 flags 值为 1 则表示此子程序只是 fork 但没有执行 exec,为 4 表示此程序使用 root 权限
  • USER:进程拥有者
  • PID:进程ID
  • PPID:父进程的PID
  • SID:session 的ID
  • TPGID:前台进程组的ID
  • %CPU:进程占用的CPU百分比
  • %MEM:占用内存的百分比
  • NI:进程的 NICE 值
  • VSZ:进程使用虚拟内存大小
  • RSS:驻留内存中页的大小
  • TTY:终端ID
  • S or STAT:进程状态
  • WCHAN:正在等待的进程资源
  • START :启动进程的时间
  • TIME:进程消耗CPU的时间
  • COMMAND:命令的名称和参数

查看进程树:
pstree

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值