linux命令行
来源:互联网 发布:淘宝流失金额多少正常 编辑:程序博客网 时间:2024/06/12 10:09
export
语 法:export [-fnp][变量名称]=[变量设置值]
补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。
参 数:
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的shell赋予程序的环境变量。
用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,运行shell脚本程序时,系统将创建一个子shell。此时,系统中将有两个shell,一个是登录时系统启动的shell,另一 个是系统为运行脚本程序创建的shell。当一个脚本程序运行完毕,它的脚本shell将终止,可以返回到执行该脚本之前的shell。从这种意义上来 说,用户可以有许多 shell,每个shell都是由某个shell(称为父shell)派生的。
在子 shell中定义的变量只在该子shell内有效。如果在一个shell脚本程序中定义了一个变量,当该脚本程序运行时,这个定义的变量只是该脚本程序内的一个局部变量,其他的shell不能引用它,要使某个变量的值可以在其他shell中被改变,可以使用export命令对已定义的变量进行输出。
lmz:父shell不可以引用子shell的变量,孙shell可以使用子shell的变量(得用export输出)。
在Linux里设置环境变量的方法(export PATH):
1.直接用export命令:
#export PATH=$PATH:/opt/au1200_rm/build_tools/bin
2.修改profile文件:
#vim /etc/profile export PATH="$PATH:/opt/au1200_rm/build_tools/bin"
3.修改.bashrc文件:
# vim /root/.bashrcexport PATH="$PATH:/opt/au1200_rm/build_tools/bin"
lmz:后两种方法一般需要重新注销系统才能生效,最后可以通过echo命令测试一下。
一般情况下,父进程的自定义变量是无法再子进程内使用的。但是通过export将变量变成环境变量后,就能在子进程下面使用了。
ctrl+z/c
Control
+Z
is used for suspending a process by sending it the signal SIGSTOP
, which cannot be intercepted by the program.
While Control
+C
is used to kill a process with the signal SIGINT
, and can be intercepted by a program so it can clean its self up before exiting, or not exit at all.
If you suspend a process, this will show up in the shell to tell you it has been suspended:
[1]+ Stopped yes
However, if you kill one, you won’t see any confirmation other than being dropped back to a shell prompt. When you suspend a process, you can do fancy things with it, too. For instance, running this:
fg
With a program suspended will bring it back to the foreground.
And running the command
bg
With a program suspended will allow it to run in the background (the program’s output will still go to the TTY, though).
If you want to kill a suspended program, you don’t have to bring it back with fg first, you can simply do the command:
kill %1
If you have multiple suspended commands, running
jobs
will list them, like this:
[1]- Stopped pianobar[2]+ Stopped yes
Using %#
, where #
is the job number (the one in square brackets from the jobs output) with bg, fg, or kill, can be used to do the action on that job.
命令提示符
[root@localhost ~]#
其中:
root
当前登录用户 localhost
主机名 ~
当前所在目录 #
超级用户提示符 $
普通用户提示符-a等价于–all
压缩1
常用压缩格式:.zip .gz .bz2
zip 压缩文件名 源文件 //压缩文件zip -r 压缩文件名 源目录 //压缩目录unzip 压缩文件 //解压缩
gzip 源文件 //源文件会消失gzip -r 目录 //压缩目录下的所有子文件,但是不能压缩目录gzip -d 压缩文件 //解压缩gunzip 压缩文件 //解压缩
bzip2 源文件 //不保留源文件bzip2 -k 源文件 //保留源文件__注意:bzip2命令不能压缩目录__bzip2 -d 压缩文件 //解压缩,-k保留压缩文件bunzip2 压缩文件 //解压缩,-k保留压缩文件
压缩2
常用压缩格式:.tar.gz .tar.bz2
tar
tar -cvf 打包文件名 源文件 //打包选项:-c:打包-v:显示过程-f:制定打包后的文件名
tar -xvf 打包文件名 //解包选项:-x:解打包
.tar.gz
tar -zcvf 压缩包名.tar.gz 源文件 //打包选项:-z:压缩为.tar.gz格式
tar -zxvf 压缩包名.tar.gz //解包选项:-x:解压缩.tar.gz格式
.tar.bz2
tar -jcvf 压缩包名.tar.bz2 源文件 //打包选项:-z:压缩为.tar.bz2格式
tar -jxvf 压缩包名.tar.bz2 //解包选项:-x:解压缩.tar.bz2格式
注意:
可以制定解压缩文件位置
可以压缩多个文件
用户和用户组
配置文件:
/etc/group //存储当前系统中所有用户组的信息Group : x : 123 : abc,def,xyz组名称:组密码占位符:组编号:组中用户名列表
/etc/gshadow //存储当前系统中用户组的密码信息Group : * : : abc,def,xyz组名称:组密码:组管理者:组中用户名列表
/etc/passwd //存储当前系统中所与用户的信息user : x : 123 : 456 : XXXXXXXX : /home/user:/bin/bash用户名:密码占位符:用户编号:用户组编号:用户注释信息:用户主目录:shell类型
/etc/shadow //存储当前系统中所与用户的密码信息user:vf;/Zu8sdf :::::用户名:密码 :::::
命令:
useradd/del/modgroupadd/del/mod
链接
文件有inode和block。硬链接的两个文件名都拥有同一个inode。inode一样的话,指向的block也就一样。文件名就是链接。
软连接拥有自己的inode和block,但是block存储的是硬链接的inode号。
举例:ln -s 文件的绝对路径 软连接
buffer cache
缓冲 缓存
递归建立目录
madir -p /1/1
补全
linux既可以实现命令补全也可以实现目录补全
man
man命令有等级,可以通过man man
查看,一共九个等级。
如何显示命令的所有等级:
man -f commandwhatis command
查看特定等级的命令
man 5 passwd //没有横杠
关机重启
shutdown [选项] 时间
选项:
- -c:取消前一个关机命令
- -h:关机 (init 0)
- -r:重启 (init 6)
重启:
reboot
runlevel
在Debian Linux中,下列路径对应不同的运行级别。当系统启动时,通过其中的脚本文件来启动相应的服务。
- /etc/rc0.d Run level 0
- /etc/rc1.d Run level 1
- /etc/rc2.d Run level 2
- /etc/rc3.d Run level 3
- /etc/rc4.d Run level 4
- /etc/rc5.d Run level 5
- /etc/rc6.d Run level 6
显示当前运行级别:
runlevel //两个字符:前一次级别 当前级别
开机进入哪一等级是可控的:
vim /etc/inittab //默认3
logout
退出(英语:logout),登录的相反行为,是指在某种正在活动中的事物离开,如用户退出当前正在运行的操作系统、在线游戏、论坛、即时通、查询系统等的账户,以便下一个用户可以登录。
使用操作系统时,每当退出时,将会关闭所有操作系统使用中的程序,但不会关闭电脑。退出后可以再次以相同或不同用户身份登录。
在其他场合(如在线游戏、论坛、即时通、查询系统等)退出后可以再次以相同或不同用户身份登录;有的可以以匿名身份继续使用。
而登陆是与注销是相反的。在台湾繁体的退出,与中国简体的注销则是同义词
挂载/分配盘符
# mount //mount命令显示已经挂载的。/dev/sda5 on / type ext4 (rw) //第一块sata硬盘的第一个逻辑分区挂载在根目录下。
注:硬盘都是挂载在某一个目录下,u盘也是挂载在某一个目录下。
# mount -a //依据配置文件/etc/fstab,将默认挂载的设备挂载一遍
# mount [-t文件系统] [-o特殊选项] 设备文件名 挂载点(目录) //挂载命令
# umount 设备文件名/挂载点 //卸载
特别的,挂载U盘:
# fdisk -l //显示所有已经挂载的设备文件,查找u盘设备文件名。u盘当做硬盘来处理,命名体系一样。# mount /dev/sdb1 /mnt/usb/
查看登录用户信息
# w# who# last //查询当前登录和过去登录的用户信息# lastlog
磁盘管理
# df [选项] //查看磁盘分区使用状况# du [选项] //统计磁盘上的文件大小
分区
必须对硬盘进行分区、格式化、挂载后才能使用
分区模式之MBR:
- 主分区不超过四个
- 单个分区容量最大2TB
# fdisk [选项] //只能用于mbr分区
分区模式之GPT:
- 主分区个数几乎没有限制(128个)
- 单个分区容量几乎没有限制(18EB)
# parted [选项] //既可以用于mbr分区,也可以gpt分区
GPT的主分区中不适合安装x86架构的系统(32位)
bash命令
uname -a
Show system and kernelwhoami
Show your usernamemount
Show mounted filesystems
前台后台 fg/bg
有些命令执行很花时间,我们可以将其放在后台执行。
- 在命令的结尾加上&
- 执行完命令后,输入ctrl+z
(暂停)和bg
(继续以一个任务在后台运行)
如何将后台程序调入前台呢?
- 执行命令jobs
,列出所有后台命令
- fg %进程id,eg:fg %2
进程
进程管理的作用:
* 查看服务器的健康状态
* 查看所有的进程
* 杀死进程
-
ps
最基础的浏览进程的命令。常用的是ps aux
或ps -le
-
pstree
每个进程都是由父进程创建的,可视化显示进程间的关系。指定了进程号,那么根进程就是该进程。没有指定,根进程是init
,pid=1。pstree -pu
,可选参数。 -
top
实时显示系统的进程状态,判断系统健康状态。可以实时交互。输入h M P
-
ps
Show snapshot of processes -
top
Show real time processes -
kill -1/9/15(default) pid
Kill process with id pid1:平滑重启9:强制杀死15:正常杀死
kill的缺点是只能针对单一进程,多进程的杀死只能用pkill
和killall
都可以加参数。
进程名是什么?
- pkill name
Kill process with name name
- killall name
Kill all processes with names beginning name
杀死进程
kill pid
杀死某个进程kill -9 pid
强制杀死。慎用。没有机会清理现场,比如,文件可能没有写完
查找命令
find
最强大的文件查找命令(遍历所有文件)。
格式:find <指定目录> <指定条件> <指定动作>
。
举例:find . -name 'my*' -ls
。locate
查找速度比find
快,但是查找不到最近更新的文件,可以预先执行updatedb
(遍历一个数据库)。
举例:locate file
which
在PATH变量指定的路径中,搜索命令,返回命令位置以及别名。whereis
在PATH变量指定的路径中,搜索命令,返回的是命令位置(-b
)以及帮助文档(-m
)。grep
在文件中查找包含指定字符串的行。
举例:grep [选项] 字符串 文件
命令列表
cmd1 ; cmd2
Run cmd1 then cmd2cmd1 && cmd2
Run cmd2 if cmd1 is successfulcmd1 || cmd2
Run cmd2 if cmd1 is not successfulcmd &
Run cmd in a subshell
管道命令
cmd1 | cmd2
stdout of cmd1 to cmd2cmd1 |& cmd2
stderr of cmd1 to cmd2
重定向
1> :以覆盖的方法将『正确的数据』输出到指定的文件或装置上;1>>:以累加的方法将『正确的数据』输出到指定的文件或装置上;2> :以覆盖的方法将『错误的数据』输出到指定的文件或装置上;2>>:以累加的方法将『错误的数据』输出到指定的文件或装置上;
文件操作
touch file
Create filecat file1 file2
Concatenate files and outputless file
View and paginate filefile file
Get type of file
grep
grep [选项] pattern filepa aux | grep chrome
bash变量
env
Show environment variablesecho $NAME
Output value of $NAME variableexport NAME=value
Set $NAME to value$PATH
Executable search path$HOME
Home directory$SHELL
Current shell
ubuntu16.04没有声音
gnome-alsamixer
标签:linux
- linux 命令行
- Linux 命令行
- linux命令行
- Linux命令行
- linux 命令行
- linux命令行
- linux 命令行
- Linux命令行
- linux 命令行
- linux命令行
- linux命令行
- Linux 命令行
- Linux命令行
- Linux命令行
- linux命令行
- Linux 命令行
- linux命令行
- Linux命令行
- isotropic reconstruction 笔记整理 2:各向同性图像重建方法简述
- java.sql.SQLException: Access denied for user 'Administrator'@'localhost' (using password: YES)
- Ruby on Rail环境搭建Ubuntu 14.04
- java架构师修炼之路
- edge快捷键
- linux命令行
- Bootstrap学习总结笔记(10)-- 基本组件之导航
- Volley简单的使用
- linux知识
- Codeforces 742A Arpa’s hard exam and Mehrdad’s naive cheat(水题)
- Codeforces 742B Arpa’s obvious problem and Mehrdad’s terrible solution(map水题)
- 试着用宏拼接做stm32管脚电平控制
- Codeforces 741A Arpa's loud Owf and Mehrdad's evil plan(思维)
- lib dll