查看当前用户的uid, gid, 所属group : id
查看帮助 : man cmd / cmd --help / info cmd
ls : 列出指定目录下的所有文件
-a, 所有的, 包括隐藏文件`-l``, 列出每个文件的具体信息, 读写权限, 字节大小, 更新日期, 所属用户等等建立软链接 : ln -s slink source
建立硬链接 : ln link source创建文件夹 : mkdir directory_name
递归创建文件夹 : mkdir -p directory_name1/directory_name2/directory_name3创建目录时显示信息 : mkdir -v directory_name创建目录时设置权限 : mkdir -m 777 directory_name创建文件 : touch file_name
创建多个文件 : touch file_name{1,2,3} (创建文件夹同理)向一个不存在的文件输出都会创建文件, vi / vim /echo “ad” >> a复制文件 : cp source_file new_file
递归复制 : cp -r directory1 directory2 把文件夹1中的所有文件全部复制到文件夹2-i : 覆盖之前提示, 是否覆盖, 默认也是这个-f: 直接覆盖不提示权限修改 : chmod
三种所属(user, group, others), 三种权限(read, write, execute), a (all表示所有, +增加, -删除, 之间用逗号分隔, 逗号两边不能有空格) chmod 751 filechmod u=rwx, g=rx, o=x filechmod =r filechmod a-wx, a+r filechmod u+x, g-r filechmod -R u+r directory 递归该文件夹所有文件改变相同的权限分页查看文件内容 : less file_name
j : 向下移动一行k : 向上移动一行f : 向下滚动一页b : 向上滚动动一页到末尾不会自动退出百分比分页查看文件内容 : more file_name
ctrl + f : 向下滚动一页ctrl + b : 向上滚动一页到末尾自动推出查阅正在改变的日志 : tail -f file_name
循环输出末尾更新的内容输出末尾指定行数 : tail -n num file_name (默认10行)
输出开头指定行数 : head -n num file_name (默认10行)
终端是哪个文件夹下的哪个文件 : /dev/tty
黑洞是哪个文件夹下哪个文件 : dev/null
改名, 移动 : mv old_file new_file
删除操作 : rm
直接删除, 无需确定 : rm -f file_name递归删除文件夹, 需要逐一确认 : rm -r directory递归删除, 无需确认 : rm -rf directory对文件内容进行统计 : wc (从小到大输出, 分别是行数, 字数, 字节数)
统计字节数 : wc -c file统计字数 : wc -w file (空格分隔)统计行数 : wc- l file查看使用过的命令列表 : history
grep : 一种强大的文本搜索工具
grep -ni "string" file_name 不区分大小写,输出包含string的行, -n是在行首显示行号grep -c "string" file_name 统计匹配的行数grep -v "string" file_name 查找没有string的行word\> 匹配单词结尾 ( \将后面特殊字符转变为普通含义 )Linux中进程的五种状态
运行 : 正在运行或在运行队列中等待中断 : 休眠中, 受阻, 在等待某个条件的形成或接受某个信号不可中断 : 收到信号也不被不唤醒和不可运行, 进程必须等待直到有中断发生僵死 : 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放停止 : 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行ps工具标标识进程的状态码
R 运行 runnable (on run queue)
S 中断 sleeping
D 不可中断 uninterruptible sleep (usually IO)
Z 僵死 a defunct (”zombie”) process
T 停止 traced or stopped
使一个命令在后台执行 : &
输出重定向 : command > out.file 2>&1 &使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。nohup命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。该命令的一般形式为:nohup command &ctrl + z : 将一个正在前台执行的任务, 放在后台并暂停jobs : 查看当前有多少在后台运行的命令 jobs -l : 显示对应的pid fg : 将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出bg : 将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出kill : 杀死进程 法子1:通过jobs命令查看job号(假设为num),然后执行kill %num法子2:通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid 前台杀死进程 : ctrl + cps -aux : -a 显示同一终端下所有进程, -x 不以终端来区分, -u 显示用户信息.
ps -ef : 显示所有进程, 包括进程进的关系 (父子, pid, ppid)
杀死进程 : kill
kill命令是通过向进程发送指定的信号来结束相应进程的。在默认情况下,采用编号为15的TERM信号。, 高速进程要“安全、干净的退出", 但是有可能进程推出过程中遇到其他问题, 无法正常退出, 就会忽略该信号.
kill -l 列出所有信号
kill -9 pid; 强制杀死进程, 不可被忽视, 可能造成数据丢失, 或者状态无法恢复.
init是Linux系统操作中不可缺少的程序之一。所谓的init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。 其它所有进程都是init进程的子孙。init进程是不可杀的!
搜索文件 : find directory -name "string"
-i : 忽略大小写-type f/d/c: 类型参数 , f 文件, d 文件夹, c字符文件, b块设备, l 符号链接, s 套接字last : 显示特定用户登陆系统的历史
whoami (id -un);显示的是当前用户下的用户名 (可能由su切换过来)
who am i (who -m):显示的是登录时的用户信息和终端信息
who:显示当前真正登录系统中的用户(不会显示那些用su命令切换用户的登录者)
文件系统磁盘空间的占用情况 : df (disk free)
显示指定磁盘文件的可用空间。如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示`-l``, 只显示本地的文件系统`-h`` , 方便阅读的方式显示-H : 1k = 1000字节, 而不是1024-m : 区块为1048576字节k : 区块为1024字节 (默认显示)du : 查看每一个文件占用空间的情况
查看 ip 地址及接口信息 : ifconfig
查看所有环境变量 : env
查看某个环境变量具体什么值 : echo $HOME / echo $PATH / echo $PWD查看网络连接状况 : netstat
-t : 查看tcp连接-u : 查看udp连接-n : 禁用反向域名解析, 加快查询速度l : 只列出正在监听的 (不和a同用)p : 查看进程信息命令提示符环境变量 : PS1
\u : 显示当前用户\h : 显示当前主机名\W : 显示当前路径最后一个目录$PWD : 显示当前全路径`\d : 显示当前日期\t : 显示24小时时间 HH:MM:SS\T : 显示12小时时间\A : 显示24小时时间 HH:MM\v : 显示当前bash版本取别名 : alias la='ls -a'
查找命令 : which cmd 在PATH指定的搜索路径中, 查找某个命令的位置, 返回第一个
whereis : 只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息
和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通过 遍历硬盘来查找,效率自然会很高。awk 用于文本分析, 文本有一条条记录构成, 每一条记录由域构成, 默认域分隔符是空白符, 可以使用-F 指定
awk : tail -n 5 /etc/passwd | awk -F: 'BEGIN{print "name \t shell"} {print $1,"\t",$7} END{print "end of file"}'
awk 'BEGIN{print "FNR \t NR \t NF"} {print FNR,"\t", NR, "\t" , NF, $1, $2} END{print "end of file";print "byebye"}' awk1 awk2
FS : file separator 域分隔符
NF : number field 正在处理的记录中域的个数
NR : number row 已处理的记录数, 新文件也会继续延续FNR: file number row 一个文件中已处理的记录数, 新文件中会置0