Linux常用命令

下文中一般一行一个命令,多个命令用分隔符“;”隔开。

扩展命令 在命令之中执行子命令,用$(command)执行子命令或者用`command`执行子命令。子命令的输出将以字符串的形式作为命令的一部分。如:

echo $(echo hi)
#等价于
echo `echo hi`
#等价于
echo hi

扩展算术 在命令中可以执行算术运算,例如:

echo $[1+2*3]
echo $((1+2*3))
#$(())中的变量可以省去$符号

循环 自增循环:

for((i=1;i<100;i++)) # 最后一个也可以是i+=2之类,和C一致
do
  echo $i
done

枚举遍历循环:

for i in 1 2 abc # 枚举的以逗号隔开
do
  echo $i
done

打印数字序列:

printf  '%d\n' {1..20}

按行处理文本:

cat file.txt | while read line; do echo $line; done
#或
while read line; do echo $line; done < file.txt

while循环例子两个:

while :
do
  ((++index))
  echo $index
  ((index==10))&&break
done
###########################
i=1
while((i<100))
do
  echo $i
  i=$((i+1))
done

命令的别名:

alias # 查看别名
alias ll="ls -l" # 设置别名
unalias ll # 删除别名

打印变量的值:

echo $HOME

常用的变量:

  1. $PATH 可执行文件路径
  2. $HOME 当前用户的home目录
  3. $USER 当前用户名

查看命令帮助信息(按q退出):

man command

显示命令的位置(如命令ls):

which ls

显示过往命令:

history

重启、关机:

shutdown -h now # 关机
init 0 # 关机
reboot # 重启

1. 用户基本操作

id # 显示我的信息
who # 显示已登录的用户信息
finger username # 查看用户username的信息
useradd username # 添加用户username
passwd username # 为用户username设置密码
usermod # 修改用户信息,如分组、HOME目录、密码等
userdel username # 删除用户username
userdel -r username # 删除用户username及HOME目录、Mail目录
groupadd grpname # 添加分组grpname
groupmod grpname # 修改分组grpname
groupdel grpname # 删除分组grpname

以另外一个用户的身份执行一段脚本:

runuser -l  用户名 -c '要执行的命令'

查看系统的用户登录记录,用root用户执行:

last -x

查询系统的所有用户,用root用户执行:

cat /etc/passwd

2. 文件操作

2.1 基本概念

根目录:/

当前用户Home目录:~

文件匹配元字符:符号*匹配0或1或多个字符;符号?匹配任一个字符;符号[]匹配[]中的任一个字符。

管道 符号|,将|左边命令的标准输出作为标准输入输入到|右边的命令中。

导向 符号>>><,通过>将标准输出导向到文件,通过>>将标准输出追加到文件尾部,或者通过<将文件输入到命令。

tee 命令tee a.txt将标准输入的内容原样输出到标准输出,同时写入到a.txt中。

2.2 常用命令

基本操作:

pwd #显示当前目录
cd dirname # 进入文件夹dirname
mkdir dirname # 创建文件夹dirname
mv src dest # 将文件src移动到dest处,可用于重命名文件
cp src dest # 将文件src複製到dest处
ln -s src dest # 将文件src软链到dest处
rm src # 删除文件
rm -r src # 删除文件夹

查看文件:

cat filename # 查看filename的内容
less filename # 支持分页地查看filename的内容
tail filename # 查看文件filename的尾部
tail -f filename # 连续查看文件filename的尾部,有新的追加会马上显示,适合查看日志
# tail -f filename 也适合加|grep去筛选内容,非常使用,具体的grep高级特性详见linux:text页面

grep keyword filename # 查看filename中有keyword的行
grep keyword dirname -R # 查看文件夹dirname下所有文件中有keyword的行

查看文件信息:

stat filename # 查看文件filename的信息
file filename # 查看文件filename的编码格式
type filename # 查看文件filename的类型

查找文件:

find / -name filename # 在位置“/”查找文件filename

文本处理:

sort filename # 按行排序filename中的内容并输出
uniq filename # 按行去除filename中的重複行并输出

改变文件权限和拥有者:

chmod 777 filename # 修改文件权限
chown root filename # 修改文件拥有者,如需整个文件夹遍历修改,加-R
chgrp root filename # 修改文件的组

统计文件中的字节、单词、行数等:

wc -c filename # 显示文件filename中的字节数
wc -w filename # 显示文件filename中的单词数
wc -l filename # 显示文件filename中的行数

查看磁盘分区空间佔用情况:

df # 查看加载的文件系统
du # 查看磁盘使用空间

linux可以通过attr属性保护文件,有些文件在执行rm删除时,会提示Operation not permitted,即使你有写权限。原因是这个文件有i属性,相关命令:

lsattr 文件名 #查看文件的属性
chattr -i 文件名  #去掉文件的i属性,这样就可以删除了
chattr +i 文件名  #加上文件的i属性,这样就保护不能删除

更多的attr可以参考这里

3. 进程相关操作

查看进程信息:

ps aux
ps ax
pstree # 查看进程树
free # 查看内存佔用情况
top # 动态查看进程信息

top使用细则:

#启动参数
-d 1    指定刷新频率,单位秒
-p pid  指定查看某个pid的信息
-b      显示为字节符结果,方便用于输出>file
-n 5    循环次数,默认无穷大

#交互命令
f 键 :选择显示的内容。
按shift + m按照内存大小排序
按s键修改刷新频率,单位秒

终止某个进程,kill命令发送指定的信号给指定的进程或进程组。如果没有指定信号,则发送TERM信号:

kill -l # 查看所有信号及代码
kill -9 pid号 # 通过pid号终止进程
kill -9 %job号 # 通过job号终止进程,用百分号“%”
kill -STOP pid号 # 通过pid号暂停进程
kill -CONT pid号 # 通过pid号继续某个暂停的进程
killall exename # 终止文件名为exename的所有程序

常用信号:

1  Sighup,挂起信号
2  代表与由键盘输入Ctrl+C同样的动作
9  立刻强制删除一个工作,通常是一个非正常的程序
15 以正常的程序方式终止一项工作,比如vi会做备份文件清理等工作

将命令转为后台执行,在命令后面加上符号&,例如:

sleep 3 &

将当前运行中的程序转为后台并停止:按Ctrl+Z

前后台程序:

jobs -l # 查看后台程序
fg jobs# 把后台程序jobs号放到前台
bg jobs# 把后台程序jobs号(通常为Stopped)放在后台并执行

4. 硬件及网络

4.1 硬件信息

cat /proc/cpuinfo # 查看CPU信息
文档更新时间: 2018-11-10 20:23   作者:nick